The self-hostable Loom alternative.
Learn more »
Website - Issue - Bug report
Snapify allows you to record and share recordings asynchronously:
- Make unlimited recordings of your tab, desktop, and any application
- Share recordings with anyone using a public link
- Delete or un-list recordings after a specific timeframe
- Upload and share existing videos
Clone the repo into a public GitHub repository (or fork).
git clone https://github.com/MarconLP/snapify.git
Go to the project folder:
Install packages with yarn:
Set up your .env file:
- Duplicate .env.example to .env
- Use openssl rand -base64 32 to generate a key and add it under NEXTAUTH_SECRET in the .env file
- Fill in the other variables:
- Configure DATABASE_URL:
- Open Railway and click "Start a New Project," and select Provision "PostgreSQL"
- Select the Postgres App and copy the DATABASE_URL into the .env
- Obtaining the Github API Credentials:
- Open Github Developer Settings
- Go to OAuth Apps from the side pane
- Click the "New OAuth App" button
- Set Authorization callback URL to /api/auth/callback/github replacing Snapify URL with the URI at which your application runs
- Copy the Client ID as GITHUB_ID into the .env
- Click "Generate a new client secret" and copy the Client secret as GITHUB_SECRET into the .env
- Obtaining the AWS S3 API Credentials:
- Open B2 Cloud Storage Buckets
- Create a new Bucket, set it to private
- Copy the Endpoint as AWS_ENDPOINT and the Bucket name as AWS_BUCKET_NAME into the .env
- Add the AWS_REGION (e.g., us-east-005) into the .env
- Go to Application Keys and create a new Application Key with full read and write access to the bucket
- Copy the keyID as AWS_KEY_ID and the applicationKey as AWS_SECRET_ACCESS_KEY into the .env
Run (in development mode)
npm run dev
Make sure to set the environment variable NEXTAUTH_URL to the correct value.
In a terminal, run:
npm run test:e2e
Deploy with Vercel
Please see our contributing guide at CONTRIBUTING.md
Distributed under the Sustainable Use License. See LICENSE.md for more information.