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.git
-
Go to the project folder
cd snapify
-
Install packages with npm
npm i
-
Set up your .env file
-
Duplicate
.env.example
to.env
-
Use
openssl rand -base64 32
to generate a key and add it underNEXTAUTH_SECRET
in the .env file. -
Fill in the other variables
Configure DATABASE_URL
- Open Railway and click "Start a New Project", and select Provision "MySQL".
- Select the MySQL App and copy the
DATABASE_URL
into the.env
.
Obtaining the Github API Credentials
- Open Github Developer Settings.
- Next, go to OAuth Apps from the side pane. Then click the "New OAuth App" button. Make sure to set
Authorization callback URL
to<Snapify URL>/api/auth/callback/github
replacing Snapify URL with the URI at which your application runs. - Copy the
Client ID
asGITHUB_ID
into the.env
. - Next, click "Generate a new client secret" and copy the
Client secret
asGITHUB_SECRET
into the.env
.
Obtaining the AWS S3 API Credentials
- Open B2 Cloud Storage Buckets.
- Create a new Bucket, make sure to set the bucket to private to make sure files are not being made publicly available.
- Copy the
Endpoint
asAWS_ENDPOINT
and the Bucket name asAWS_BUCKET_NAME
into the.env
. Additionally you need to add theAWS_REGION
, which is part of the endpoint and should look like this:us-east-005
. - Next, go to Application Keys from the side pane. Then create a new Application Key, with full read and write access to the bucket.
- Copy the
keyID
asAWS_KEY_ID
and theapplicationKey
asAWS_SECRET_ACCESS_KEY
into the.env
.
-
-
Run (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.