From 6aa9db54f418f775b0accf516c10ee9a4cffb059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kore=C5=84?= Date: Thu, 9 Jul 2026 22:34:24 +0200 Subject: [PATCH] poprawki do deployu --- .gitignore | 2 ++ back/src/lib/nextcloud.ts | 1 + back/src/routes/protected.ts | 12 ++++++++---- back/src/server.ts | 2 +- docker-compose.yml | 26 ++++++++++++++++++-------- front/Dockerfile | 35 ++++++++++++++++++++++++++++++----- nginx.conf | 5 +++-- 7 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d751c0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +out/ +pictures/ diff --git a/back/src/lib/nextcloud.ts b/back/src/lib/nextcloud.ts index 298bd99..1281427 100644 --- a/back/src/lib/nextcloud.ts +++ b/back/src/lib/nextcloud.ts @@ -4,6 +4,7 @@ import path from "path"; export const REMOTE_DIR = "/"; export const LOCAL_DIR = path.resolve("./downloads"); +export const OUT_DIR = path.resolve("./out"); export async function downloadMissing(remoteDir: string = REMOTE_DIR) { await fs.mkdir(LOCAL_DIR, { recursive: true }) diff --git a/back/src/routes/protected.ts b/back/src/routes/protected.ts index 3ed369b..595d4f7 100644 --- a/back/src/routes/protected.ts +++ b/back/src/routes/protected.ts @@ -1,14 +1,16 @@ // src/routes/auth.ts import { Router } from "express"; -import { downloadMissing, LOCAL_DIR } from "../lib/nextcloud"; +import { downloadMissing, LOCAL_DIR, OUT_DIR } from "../lib/nextcloud"; import path from "node:path"; import { encodeFrames } from "../lib/crateClip"; import fs from "node:fs" const router = Router(); +export const out_vid_path = `${OUT_DIR}/out.mp4` + router.get("/video", async (req, res) => { - const videoPath = path.resolve("./out.mp4"); + const videoPath = path.resolve(out_vid_path); const stat = fs.statSync(videoPath); // Simple ETag based on file size + modification time @@ -25,13 +27,15 @@ router.get("/video", async (req, res) => { router.post("/createclip", async (req, res) => { try { + await fs.mkdirSync(OUT_DIR, { recursive: true }) await encodeFrames({ inputPattern: `${LOCAL_DIR}/*.jpg`, - output: path.resolve("./out.mp4"), + output: out_vid_path, fps: 8, }); res.status(200).end(); - } catch { + } catch (e) { + console.log(e) res.status(501).end(); } }) diff --git a/back/src/server.ts b/back/src/server.ts index 098268a..9fb37cb 100644 --- a/back/src/server.ts +++ b/back/src/server.ts @@ -12,7 +12,7 @@ dotenv.config(); const app = express(); app.use(cors({ - origin: "http://localhost:5173", + origin: "https://papryk.com", methods: ["GET", "POST"], credentials: true })); diff --git a/docker-compose.yml b/docker-compose.yml index 99bf570..3565717 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,28 +1,38 @@ services: - backend: + papryk-com-backend: build: ./back container_name: papryk-backend expose: - "3000" environment: - NODE_ENV=development + volumes: + - ./pictures:/app/downloads + - ./out:/app/out + - frontend: + papryk-com-frontend: build: context: ./front args: - VITE_API_URL: "http://localhost/api" + VITE_API_URL: "https://papryk.com/api" container_name: papryk-frontend expose: - "5173" - nginx: + papryk-com-nginx: image: nginx:alpine container_name: papryk-nginx - ports: - - "80:80" + # ports: + # - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - - frontend - - backend + - papryk-com-frontend + - papryk-com-backend + networks: + - proxy-net + +networks: + proxy-net: + external: true diff --git a/front/Dockerfile b/front/Dockerfile index 25fa59e..4736ab0 100644 --- a/front/Dockerfile +++ b/front/Dockerfile @@ -1,9 +1,29 @@ -FROM oven/bun:latest +# FROM oven/bun:latest +# +# WORKDIR /app +# +# COPY package.json bun.lockb* ./ +# RUN bun install +# +# COPY . . +# +# ARG VITE_API_URL +# ENV VITE_API_URL=$VITE_API_URL +# +# RUN rm -f .env .env.* +# +# RUN bun run build --mode production +# +# EXPOSE 5173 +# +# CMD ["bun", "run", "preview", "--", "--host", "--port", "5173"] +# Build stage +FROM oven/bun:latest AS builder WORKDIR /app COPY package.json bun.lockb* ./ -RUN bun install +RUN bun install --frozen-lockfile COPY . . @@ -11,9 +31,14 @@ ARG VITE_API_URL ENV VITE_API_URL=$VITE_API_URL RUN rm -f .env .env.* - RUN bun run build --mode production -EXPOSE 5173 -CMD ["bun", "run", "preview", "--", "--host", "--port", "5173"] +# Production stage +FROM nginx:alpine + +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/nginx.conf b/nginx.conf index bc996c5..e9ef1b5 100644 --- a/nginx.conf +++ b/nginx.conf @@ -5,7 +5,8 @@ server { # FRONTEND (Vite) # ========================= location / { - proxy_pass http://frontend:5173; + # proxy_pass http://papryk-com-frontend:5173; + proxy_pass http://papryk-com-frontend:80; proxy_http_version 1.1; proxy_set_header Host $host; @@ -19,7 +20,7 @@ server { location /api/ { rewrite ^/api/(.*)$ /$1 break; - proxy_pass http://backend:3000; + proxy_pass http://papryk-com-backend:3000; proxy_http_version 1.1; proxy_set_header Host $host;