Ever® Rec™ - Screen Capture, Screen Recording, Images & Video Sharing Platform.
NOTE: Platform currently is in active development stage / WIP, please use with caution!
- Screen Capture
- Screen Recording
- Images / Videos Storage and Sharing
- Prerequisites
- Technology Stack
- Project Structure
- Getting Started
- Development Workflow
- Browser Extension Development
- Firebase Integration
- Google OAuth Configuration
- Production Build
Before you begin, ensure you have the following installed:
-
Common:
-
Backend:
-
Frontend:
-
Development Tools:
- Turborepo (Monorepo Management)
This is a monorepo containing three main applications:
ever-rec/
├── apps/
│ ├── api/ # API Server (NestJS)
│ ├── portal/ # Web UI Portal
│ └── extensions/ # Browser Extensions Portal
- System Requirements Check
- Node.js: Version 20.x or higher
# Verify Node.js version
node --version
# Should output v20.x.x or higher
- PNPM: Latest stable version
# Install PNPM globally
npm install -g pnpm
# Verify PNPM installation
pnpm --version
- Clone the Repository
git clone /~https://github.com/ever-co/ever-rec
cd ever-rec
- Install Dependencies
pnpm install
- Configure API Environment
# For development
cp apps/api/.env.sample apps/api/.env.dev
# For production
cp apps/api/.env.sample apps/api/.env.prod
- Required API Environment Variables
# Firebase Configuration
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
FIREBASE_DATABASE_URL=https://your_project.firebaseio.com
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_id
FIREBASE_MEASUREMENT_ID=your_measurement_id
# Firebase Admin Configuration
FIREBASE_ADMIN_PRIVATE_KEY=your_private_key
FIREBASE_ADMIN_CLIENT_EMAIL=your_client_email
# Extension Configuration
EXTENSION_ID=your_extension_id
- Configure Portal Environment
cp apps/portal/.env.sample apps/portal/.env.local
- Required Portal Environment Variables
# API Configuration
NEXT_PUBLIC_API_BASE_URL=http://localhost:3000
NEXT_PUBLIC_WEBSITE_URL=http://localhost:4200
NEXT_PUBLIC_STATIC_FILES_URL=your_static_files_url
# Extension Configuration
EXTENSION_ID=your_extension_id
- Configure Extensions Environment
# For development
cp apps/extensions/.env.sample apps/extensions/.env.dev
# For production
cp apps/extensions/.env.sample apps/extensions/.env.prod
- Required Extensions Environment Variables
EXTENSION_ID=your_extension_id
API_BASE_URL=http://localhost:3000
WEBSITE_URL=http://localhost:4200
STATIC_FILES_URL=your_static_files_url
- Start Development Server
pnpm dev
- Access Development Environment
- API Server: http://localhost:3000
- Web Portal: http://localhost:4200
# Development build
pnpm dev:extensions
# Production build
pnpm build:extensions
-
Access Chrome Extensions
- Open Chrome
- Navigate to
chrome://extensions
- Enable "Developer mode" (toggle in top-right)
-
Load Extension
- Click "Load unpacked"
- Navigate to the project directory
- Select the appropriate build folder:
- Development:
apps/extensions/build/dev
- Production:
apps/extensions/build/prod
- Development:
-
Extension Development Notes
- Check the extension's background page console for logs
- Use Chrome's developer tools to debug popup and content scripts
-
Create Firebase Project
- Visit Firebase Console
- Click "Add project"
- Follow the project creation wizard
-
Web App Setup
- In Firebase Console, click "Add app"
- Select web platform (</>)
- Register the app with a nickname
- Copy configuration to the appropriate
.env
file
Enable Authentication Methods
- In Firebase Console, go to Authentication > Sign-in method
- Enable required providers:
- Google
- Email/Password
- Realtime Database Setup
- Create a new Realtime Database
- Start in test mode
- Update security rules using
database.rules.json
:{ "rules": { // Add the database rules here } }
- Configure Storage
- Enable Firebase Storage
- Set up security rules using
storage.rules
- Configure CORS if needed
- Visit https://console.cloud.google.com/apis/credentials
- Select your Firebase project
- Create OAuth Client ID credentials
- Download credentials and configure for all apps:
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
- Configure the OAuth consent screen
# Build all packages
pnpm build
# Build specific app
pnpm build:api # Build API server
pnpm build:portal # Build web portal
pnpm build:extensions # Build extensions
- Ever.co Website Contact Us page
- Slack Community
- Discord Chat
- CodeMentor
- For business inquiries: mailto:rec@ever.co
- Please report security vulnerabilities to mailto:security@ever.co
Ever Rec Platform follows good security practices, but 100% security cannot be guaranteed in any software! Ever Rec Platform is provided AS IS without any warranty. Use at your own risk! See more details in the LICENSES.md.
In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, Socket.io WebSockets, etc.).
If you discover any issue regarding security, please disclose the information responsibly by emailing mailto:security@ever.co and not by creating a GitHub issue.
This software is available under the following licenses:
- Ever® Rec™ Platform Community Edition
- Ever® Rec™ Platform Small Business
- Ever® Rec™ Platform Enterprise
The default Ever® Rec™ Platform license, without a valid Ever® Rec™ Platform Enterprise or Ever® Rec™ Platform Small Business License agreement, is the Ever® Rec™ Platform Community Edition License
We support the open-source community. If you're building awesome non-profit/open-source projects, we're happy to help and will provide (subject to acceptance criteria) Ever Rec Enterprise edition license and free hosting option! Feel free to contact us at mailto:ever@ever.co to make a request. More details are explained in our Wiki.
Please see LICENSES for more information on licenses
Ever® is a registered trademark of Ever Co. LTD. Ever® Rec™, Ever® Demand™, Ever® Gauzy™, Ever® Teams™ and Ever® OpenSaaS™ are all trademarks of Ever Co. LTD.
The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.
All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
- Please give us a ⭐ on Github, it helps!
- You are more than welcome to submit feature requests in the separate repo
- Pull requests are always welcome! Please base pull requests against the develop branch and follow the contributing guide.
See our contributors list in CONTRIBUTORS.md. You can also view a full list of our contributors tracked by Github.