No description
Find a file
2024-11-20 23:46:00 +01:00
.github/workflows add labels to docker container 2023-07-16 20:39:16 +02:00
prisma Update schema.prisma 2024-04-07 05:25:42 +02:00
public update social proof section 2024-04-07 16:37:57 +02:00
src migrate recording tab to new media player 2024-11-20 23:46:00 +01:00
tests add stripe checkout e2e test 2023-04-19 01:32:51 +02:00
.dockerignore add Dockerfile 2023-07-16 17:51:46 +02:00
.env.example make non-core env variables optional 2023-05-03 21:35:58 +02:00
.eslintrc.cjs initial commit 2023-04-10 20:35:08 +02:00
.gitignore add e2e tests 2023-04-15 20:13:19 +02:00
components.json add custom video player 2024-11-20 21:44:37 +01:00
CONTRIBUTING.md add CONTRIBUTING.md 2023-05-03 20:14:54 +02:00
Dockerfile add required env vars to dockerfile 2023-07-16 21:08:05 +02:00
LICENSE.md switch to AGLPv3 license 2023-07-19 15:33:23 +02:00
next.config.mjs fix next.config rewrite fo posthog 2023-07-17 13:06:24 +02:00
package-lock.json add custom video player 2024-11-20 21:44:37 +01:00
package.json add custom video player 2024-11-20 21:44:37 +01:00
playwright.config.ts add e2e tests 2023-04-15 20:13:19 +02:00
postcss.config.cjs initial commit 2023-04-10 20:35:08 +02:00
prettier.config.cjs initial commit 2023-04-10 20:35:08 +02:00
README.md Update the README.md, from pane to panel(line number 79) 2023-10-22 19:47:06 +05:30
tailwind.config.ts add custom video player 2024-11-20 21:44:37 +01:00
tsconfig.json initial commit 2023-04-10 20:35:08 +02:00

Snapify

The self-hostable Loom alternative.
Learn more »

Uptime Github Stars Commits-per-month Pricing twitter

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

  1. 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
    
  2. Go to the project folder

    cd snapify
    
  3. Install packages with npm

    npm i
    
  4. 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
      1. Open Railway and click "Start a New Project", and select Provision "MySQL".
      2. Select the MySQL App and copy the DATABASE_URL into the .env.
      Obtaining the Github API Credentials
      1. Open Github Developer Settings.
      2. Next, go to OAuth Apps from the side panel. 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.
      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.
      Obtaining the AWS S3 API Credentials
      1. Open B2 Cloud Storage Buckets.
      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 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.
  5. Set up the database using the Prisma schema

    npx prisma db push
    
  6. 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

Deploy with Vercel

Contributing

Please see our contributing guide at CONTRIBUTING.md

License

Distributed under the AGPLv3 License. See LICENSE.md for more information.