From a3e6585306f6cf3cb4914cb5bd4a31396f22e25f Mon Sep 17 00:00:00 2001 From: babs <41580129+anagobabatunde@users.noreply.github.com> Date: Mon, 23 Jun 2025 20:59:31 +0000 Subject: docs: expand setup instructions with prerequisites and database setup steps --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 20 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 3ccb2b04..af2dbacd 100644 --- a/README.md +++ b/README.md @@ -26,26 +26,66 @@ A free, open-source video editor for web, desktop, and mobile. ## Getting Started -1. **Clone the repository:** - ```bash - git clone - cd OpenCut - ``` -2. **Install dependencies:** - ```bash - cd apps/web - npm install - # or, with Bun - bun install - ``` -3. **Run the development server:** - ```bash - npm run dev - # or, with Bun - bun run dev - ``` -4. **Open in browser:** - Visit [http://localhost:3000](http://localhost:3000) +### Prerequisites + +Before you begin, ensure you have the following installed on your system: + +- [Bun](https://bun.sh/docs/installation) +- [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) +- [Node.js](https://nodejs.org/en/) (for `npm` alternative) + +### Setup + +1. **Clone the repository** + ```bash + git clone + cd OpenCut + ``` + +2. **Start backend services** + From the project root, start the PostgreSQL and Redis services: + ```bash + docker-compose up -d + ``` + +3. **Set up environment variables** + Navigate into the web app's directory and create a `.env` file from the example: + ```bash + cd apps/web + cp .env.example .env + ``` + *The default values in the `.env` file should work for local development.* + +4. **Install dependencies** + Install the project dependencies using `bun` (recommended) or `npm`. + ```bash + # With bun + bun install + + # Or with npm + npm install + ``` + +5. **Run database migrations** + Apply the database schema to your local database: + ```bash + # With bun + bun run db:push:local + + # Or with npm + npm run db:push:local + ``` + +6. **Start the development server** + ```bash + # With bun + bun run dev + + # Or with npm + npm run dev + ``` + +The application will be available at [http://localhost:3000](http://localhost:3000). ## Contributing -- cgit v1.3.1 From b772c6f68e81c4c88186219dc841a14ab278cf50 Mon Sep 17 00:00:00 2001 From: YaoSiQian <2229561981@qq.com> Date: Tue, 24 Jun 2025 05:00:34 +0800 Subject: fix(docker): web service --- README.md | 14 ++++++++++++++ apps/web/Dockerfile | 36 ++++++++++++++++++++++++++++++++++++ docker-compose.yaml | 41 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 apps/web/Dockerfile (limited to 'README.md') diff --git a/README.md b/README.md index 3ccb2b04..998acd36 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,20 @@ A free, open-source video editor for web, desktop, and mobile. 4. **Open in browser:** Visit [http://localhost:3000](http://localhost:3000) +## Run with Docker +1. **Prepare environment variables:** + Edit [docker-compose.yaml](https://github.com/OpenCut-app/OpenCut/blob/main/docker-compose.yaml#L57-L64) +2. **Build and run:** + ```bash + docker-compose up -d --build + ``` +3. *(Optional)* **Migrate database:** + ```bash + docker-compose exec web bun run db:migrate + ``` +4. **Open in browser:** + Visit [http://localhost:3000](http://localhost:3000) + ## Contributing ## License diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile new file mode 100644 index 00000000..ca1f0987 --- /dev/null +++ b/apps/web/Dockerfile @@ -0,0 +1,36 @@ +FROM oven/bun:latest AS base + +# Install dependencies +FROM base AS deps +WORKDIR /app +COPY package.json bun.lock ./ +RUN bun install --frozen-lockfile + +# Build the application +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN bun run build + +# Production image +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV=production + +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs + +COPY --from=builder /app/public ./public +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + +USER nextjs + +EXPOSE 3000 + +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" + +CMD ["bun", "server.js"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index c1c61a47..c654926a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -18,7 +18,8 @@ services: start_period: 10s redis: - image: redis + image: redis:7-alpine + restart: unless-stopped ports: - "6379:6379" healthcheck: @@ -36,12 +37,46 @@ services: SRH_MODE: env SRH_TOKEN: example_token SRH_CONNECTION_STRING: "redis://redis:6379" + depends_on: + redis: + condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:80 || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 10s - -volumes: + web: + build: + context: ./apps/web + dockerfile: ./apps/web/Dockerfile + restart: unless-stopped + ports: + - "3000:3000" + environment: + - NODE_ENV=production + - DATABASE_URL=postgresql://opencut:opencutthegoat@db:5432/opencut + - BETTER_AUTH_URL=http://localhost:3000 + - BETTER_AUTH_SECRET=your-production-secret-key-here + - UPSTASH_REDIS_REST_URL=http://serverless-redis-http:80 + - UPSTASH_REDIS_REST_TOKEN=example_token + - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} + - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} + depends_on: + db: + condition: service_healthy + serverless-redis-http: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3000/api/health || exit 1"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + +volumes: postgres_data: + +networks: + default: + name: opencut-network -- cgit v1.3.1 From 79ac2c28238642436bc57a55671731460ccf2640 Mon Sep 17 00:00:00 2001 From: YaoSiQian Date: Tue, 24 Jun 2025 05:06:21 +0800 Subject: style(README): hot fix at line break --- README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 998acd36..1c377b60 100644 --- a/README.md +++ b/README.md @@ -27,11 +27,13 @@ A free, open-source video editor for web, desktop, and mobile. ## Getting Started 1. **Clone the repository:** + ```bash git clone cd OpenCut ``` 2. **Install dependencies:** + ```bash cd apps/web npm install @@ -39,30 +41,37 @@ A free, open-source video editor for web, desktop, and mobile. bun install ``` 3. **Run the development server:** + ```bash npm run dev # or, with Bun bun run dev ``` -4. **Open in browser:** +4. **Open in browser:** + Visit [http://localhost:3000](http://localhost:3000) ## Run with Docker -1. **Prepare environment variables:** +1. **Prepare environment variables:** + Edit [docker-compose.yaml](https://github.com/OpenCut-app/OpenCut/blob/main/docker-compose.yaml#L57-L64) 2. **Build and run:** + ```bash docker-compose up -d --build ``` 3. *(Optional)* **Migrate database:** + ```bash docker-compose exec web bun run db:migrate ``` 4. **Open in browser:** + Visit [http://localhost:3000](http://localhost:3000) ## Contributing +Visit [CONTRIBUTING.md](.github/CONTRIBUTING.md) ## License -MIT [Details](LICENSE) +[MIT LICENSE](LICENSE) -- cgit v1.3.1 From 37ceaaed5ec4f5484aadb31c1798708bf5e992ee Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Tue, 24 Jun 2025 02:09:43 +0200 Subject: docs: update README with contributing guidelines and quick start instructions for contributors --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 3ccb2b04..3dce0483 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,14 @@ A free, open-source video editor for web, desktop, and mobile. ## Contributing +We welcome contributions! Please see our [Contributing Guide](.github/CONTRIBUTING.md) for detailed setup instructions and development guidelines. + +Quick start for contributors: + +- Fork the repo and clone locally +- Follow the setup instructions in CONTRIBUTING.md +- Create a feature branch and submit a PR + ## License MIT [Details](LICENSE) -- cgit v1.3.1 From f0bdf838afa7ef6759b9e666a5fc66f7066e0891 Mon Sep 17 00:00:00 2001 From: YaoSiQian Date: Tue, 24 Jun 2025 15:54:31 +0800 Subject: style(README): insert logo in header --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 407f5302..dae43afa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ -# OpenCut (prev AppCut) + + +
-A free, open-source video editor for web, desktop, and mobile. +# OpenCut (prev AppCut) +### A free, open-source video editor for web, desktop, and mobile. +
## Why? -- cgit v1.3.1 From 75ee0fb637cc4a89d2106a315412d4d6ae2ce0ae Mon Sep 17 00:00:00 2001 From: iza <59828082+izadoesdev@users.noreply.github.com> Date: Tue, 24 Jun 2025 11:10:58 +0300 Subject: Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index dae43afa..5fb3564f 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@
+ + # OpenCut (prev AppCut) ### A free, open-source video editor for web, desktop, and mobile.
-- cgit v1.3.1