Loading .gitlab/ci/deploy.yml +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ publish: script: - | docker build --tag $REGISTRY/$IMAGE_NAME \ --build-arg VERSION=$CI_COMMIT_SHA \ --build-arg SENTRY_URL=$SENTRY_URL \ --build-arg SENTRY_ORG=$SENTRY_ORG \ --build-arg CLIENT_SENTRY_PROJECT=$CLIENT_SENTRY_PROJECT \ Loading Dockerfile +7 −5 Original line number Diff line number Diff line FROM node:23-alpine AS base # to be able to read git hash RUN apk -U upgrade && apk add --no-cache git openssh RUN git config --global --add safe.directory /home/node/app FROM base as dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app Loading Loading @@ -50,6 +46,7 @@ ARG SERVER_SENTRY_PROJECT ARG SENTRY_URL ARG SENTRY_ORG ARG SENTRY_AUTH_TOKEN ARG VERSION COPY --from=dev_dep --chown=node:node /home/node/app/ ./ COPY --chown=node:node . . Loading Loading @@ -87,7 +84,7 @@ RUN if [ -n "$SENTRY_AUTH_TOKEN" ]; then npm -w packages/server run sentry; fi FROM base as run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start*.sh .git ./ COPY package*.json docker-start*.sh ./ # --- prepare lib --- Loading @@ -108,6 +105,11 @@ COPY --from=build /home/node/app/packages/admin/dist ./packages/admin/ # --- prepare server --- RUN mkdir -p packages/server ARG VERSION ENV VERSION_PATH=/home/node/app/packages/server/.version RUN echo "${VERSION}" > ./packages/server/.version COPY --from=build /home/node/app/packages/server/package.json ./packages/server/ COPY --from=build /home/node/app/packages/server/prisma ./packages/server/prisma COPY --from=build /home/node/app/packages/server/tool.sh ./packages/server/ Loading docker-compose.yml +4 −5 Original line number Diff line number Diff line Loading @@ -25,27 +25,26 @@ services: image: sc07/canvas build: . environment: - NODE_TYPE=worker - REDIS_HOST=redis://redis - DATABASE_URL=postgres://postgres@postgres/canvas env_file: - .env.local depends_on: - canvas command: ./docker-start-worker.sh redis: restart: always image: redis:7-alpine healthcheck: test: ['CMD', 'redis-cli', 'ping'] test: ["CMD", "redis-cli", "ping"] volumes: - ./data/redis:/data postgres: restart: always image: postgres:14-alpine healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] test: ["CMD", "pg_isready", "-U", "postgres"] volumes: - ./data/postgres:/var/lib/postgresql/data environment: - 'POSTGRES_HOST_AUTH_METHOD=trust' - "POSTGRES_HOST_AUTH_METHOD=trust" docker-start-worker.shdeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line #!/bin/sh ./packages/server/tool.sh start_job_worker No newline at end of file package-lock.json +55 −3 Original line number Diff line number Diff line Loading @@ -8193,6 +8193,43 @@ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, "node_modules/@socket.io/redis-adapter": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@socket.io/redis-adapter/-/redis-adapter-8.3.0.tgz", "integrity": "sha512-ly0cra+48hDmChxmIpnESKrc94LjRL80TEmZVscuQ/WWkRP81nNj8W8cCGMqbI4L6NCuAaPRSzZF1a9GlAxxnA==", "dependencies": { "debug": "~4.3.1", "notepack.io": "~3.0.1", "uid2": "1.0.0" }, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "socket.io-adapter": "^2.5.4" } }, "node_modules/@socket.io/redis-adapter/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { "ms": "^2.1.3" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@socket.io/redis-adapter/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/@svgdotjs/svg.draggable.js": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", Loading Loading @@ -13554,9 +13591,9 @@ } }, "node_modules/ioredis": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.5.0.tgz", "integrity": "sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==", "version": "5.6.1", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz", "integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", Loading Loading @@ -15547,6 +15584,11 @@ "node": ">=0.10.0" } }, "node_modules/notepack.io": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/notepack.io/-/notepack.io-3.0.1.tgz", "integrity": "sha512-TKC/8zH5pXIAMVQio2TvVDTtPRX+DJPHDqjRbxogtFiByHyzKmy96RA0JtCQJ+WouyyL4A10xomQzgbUT+1jCg==" }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", Loading Loading @@ -19051,6 +19093,14 @@ "node": ">= 0.8" } }, "node_modules/uid2": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uid2/-/uid2-1.0.0.tgz", "integrity": "sha512-+I6aJUv63YAcY9n4mQreLUt0d4lvwkkopDNmpomkAUz0fAkEMV9pRWxN0EjhW1YfRhcuyHg2v3mwddCDW1+LFQ==", "engines": { "node": ">= 4.0.0" } }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", Loading Loading @@ -19941,6 +19991,7 @@ "@prisma/client": "^6.2.1", "@sc07-canvas/lib": "^1.0.0", "@sentry/node": "^8.47.0", "@socket.io/redis-adapter": "^8.3.0", "body-parser": "^1.20.2", "bullmq": "^5.40.2", "connect-redis": "^8.0.1", Loading @@ -19948,6 +19999,7 @@ "express": "^4.21.2", "express-rate-limit": "^7.5.0", "express-session": "^1.18.1", "ioredis": "^5.6.1", "openid-client": "^6.1.7", "prom-client": "^15.1.3", "rate-limit-redis": "^4.2.0", Loading
.gitlab/ci/deploy.yml +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ publish: script: - | docker build --tag $REGISTRY/$IMAGE_NAME \ --build-arg VERSION=$CI_COMMIT_SHA \ --build-arg SENTRY_URL=$SENTRY_URL \ --build-arg SENTRY_ORG=$SENTRY_ORG \ --build-arg CLIENT_SENTRY_PROJECT=$CLIENT_SENTRY_PROJECT \ Loading
Dockerfile +7 −5 Original line number Diff line number Diff line FROM node:23-alpine AS base # to be able to read git hash RUN apk -U upgrade && apk add --no-cache git openssh RUN git config --global --add safe.directory /home/node/app FROM base as dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app Loading Loading @@ -50,6 +46,7 @@ ARG SERVER_SENTRY_PROJECT ARG SENTRY_URL ARG SENTRY_ORG ARG SENTRY_AUTH_TOKEN ARG VERSION COPY --from=dev_dep --chown=node:node /home/node/app/ ./ COPY --chown=node:node . . Loading Loading @@ -87,7 +84,7 @@ RUN if [ -n "$SENTRY_AUTH_TOKEN" ]; then npm -w packages/server run sentry; fi FROM base as run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start*.sh .git ./ COPY package*.json docker-start*.sh ./ # --- prepare lib --- Loading @@ -108,6 +105,11 @@ COPY --from=build /home/node/app/packages/admin/dist ./packages/admin/ # --- prepare server --- RUN mkdir -p packages/server ARG VERSION ENV VERSION_PATH=/home/node/app/packages/server/.version RUN echo "${VERSION}" > ./packages/server/.version COPY --from=build /home/node/app/packages/server/package.json ./packages/server/ COPY --from=build /home/node/app/packages/server/prisma ./packages/server/prisma COPY --from=build /home/node/app/packages/server/tool.sh ./packages/server/ Loading
docker-compose.yml +4 −5 Original line number Diff line number Diff line Loading @@ -25,27 +25,26 @@ services: image: sc07/canvas build: . environment: - NODE_TYPE=worker - REDIS_HOST=redis://redis - DATABASE_URL=postgres://postgres@postgres/canvas env_file: - .env.local depends_on: - canvas command: ./docker-start-worker.sh redis: restart: always image: redis:7-alpine healthcheck: test: ['CMD', 'redis-cli', 'ping'] test: ["CMD", "redis-cli", "ping"] volumes: - ./data/redis:/data postgres: restart: always image: postgres:14-alpine healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] test: ["CMD", "pg_isready", "-U", "postgres"] volumes: - ./data/postgres:/var/lib/postgresql/data environment: - 'POSTGRES_HOST_AUTH_METHOD=trust' - "POSTGRES_HOST_AUTH_METHOD=trust"
docker-start-worker.shdeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line #!/bin/sh ./packages/server/tool.sh start_job_worker No newline at end of file
package-lock.json +55 −3 Original line number Diff line number Diff line Loading @@ -8193,6 +8193,43 @@ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, "node_modules/@socket.io/redis-adapter": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@socket.io/redis-adapter/-/redis-adapter-8.3.0.tgz", "integrity": "sha512-ly0cra+48hDmChxmIpnESKrc94LjRL80TEmZVscuQ/WWkRP81nNj8W8cCGMqbI4L6NCuAaPRSzZF1a9GlAxxnA==", "dependencies": { "debug": "~4.3.1", "notepack.io": "~3.0.1", "uid2": "1.0.0" }, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "socket.io-adapter": "^2.5.4" } }, "node_modules/@socket.io/redis-adapter/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { "ms": "^2.1.3" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@socket.io/redis-adapter/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/@svgdotjs/svg.draggable.js": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", Loading Loading @@ -13554,9 +13591,9 @@ } }, "node_modules/ioredis": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.5.0.tgz", "integrity": "sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==", "version": "5.6.1", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz", "integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", Loading Loading @@ -15547,6 +15584,11 @@ "node": ">=0.10.0" } }, "node_modules/notepack.io": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/notepack.io/-/notepack.io-3.0.1.tgz", "integrity": "sha512-TKC/8zH5pXIAMVQio2TvVDTtPRX+DJPHDqjRbxogtFiByHyzKmy96RA0JtCQJ+WouyyL4A10xomQzgbUT+1jCg==" }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", Loading Loading @@ -19051,6 +19093,14 @@ "node": ">= 0.8" } }, "node_modules/uid2": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uid2/-/uid2-1.0.0.tgz", "integrity": "sha512-+I6aJUv63YAcY9n4mQreLUt0d4lvwkkopDNmpomkAUz0fAkEMV9pRWxN0EjhW1YfRhcuyHg2v3mwddCDW1+LFQ==", "engines": { "node": ">= 4.0.0" } }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", Loading Loading @@ -19941,6 +19991,7 @@ "@prisma/client": "^6.2.1", "@sc07-canvas/lib": "^1.0.0", "@sentry/node": "^8.47.0", "@socket.io/redis-adapter": "^8.3.0", "body-parser": "^1.20.2", "bullmq": "^5.40.2", "connect-redis": "^8.0.1", Loading @@ -19948,6 +19999,7 @@ "express": "^4.21.2", "express-rate-limit": "^7.5.0", "express-session": "^1.18.1", "ioredis": "^5.6.1", "openid-client": "^6.1.7", "prom-client": "^15.1.3", "rate-limit-redis": "^4.2.0",