Snapify
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
Development
Setup
Clone the repo into a public GitHub repository (or fork https://github.com/MarconLP/snapify/fork). If you plan to distribute the code, make sure to comply with our
LICENSE.md.git clone https://github.com/MarconLP/snapify.gitGo to the project folder
cd snapifyInstall packages with npm
npm iSet up your .env file
- Duplicate
.env.exampleto.env - Use
openssl rand -base64 32to generate a key and add it underNEXTAUTH_SECRETin the .env file.
- Duplicate
Fill in the other variables
Configure DATABASE_URL
1. Open [Railway](https://railway.app/) and click "Start a New Project", and select Provision "MySQL".
2. Select the MySQL App and copy the `DATABASE_URL` into the `.env`.
</details>
Obtaining the Github API Credentials
1. Open [Github Developer Settings](https://github.com/settings/apps).
2. Next, go to [OAuth Apps](https://github.com/settings/developers) from the side panel. Then click the "New OAuth App" button. Make sure to set `Authorization callback URL` to `/api/auth/callback/github` replacing Snapify URL with the URI at which your application runs.
3. Copy the `Client ID` as `GITHUB_ID` into the `.env`.
4. Next, click "Generate a new client secret" and copy the `Client secret` as `GITHUB_SECRET` into the `.env`.
</details>
Obtaining the AWS S3 API Credentials
1. Open [B2 Cloud Storage Buckets](https://secure.backblaze.com/b2_buckets.htm).
2. Create a new Bucket, make sure to set the bucket to private to make sure files are not being made publicly available.
3. Copy the `Endpoint` as `AWS_ENDPOINT` and the Bucket name as `AWS_BUCKET_NAME` into the `.env`. Additionally you need to add the `AWS_REGION`, which is part of the endpoint and should look like this: `us-east-005`.
4. Next, go to [Application Keys](https://secure.backblaze.com/app_keys.htm) from the side panel. Then create a new Application Key, with full read and write access to the bucket.
5. Copy the `keyID` as `AWS_KEY_ID` and the `applicationKey` as `AWS_SECRET_ACCESS_KEY` into the `.env`.
</details>
</details>
Set up the database using the Prisma schema
npx prisma db pushRun (in development mode)
npm run dev
E2E-Testing
Be sure to set the environment variable NEXTAUTH_URL to the correct value. If you are running locally, as the documentation within .env.example mentions, the value should be http://localhost:3000.
# In a terminal just run:
npm run test:e2e
Deployment
Vercel
Contributing
Please see our contributing guide at CONTRIBUTING.md
License
Distributed under the AGPLv3 License. See LICENSE.md for more information.