Backend half

This commit is contained in:
2025-07-11 19:56:28 +02:00
parent fa868e7c1d
commit 8600fa7c1d
19426 changed files with 3750448 additions and 8108 deletions
-18
View File
@@ -1,18 +0,0 @@
DB_PASSWORD=QwEr12345.
Default_User=Admin
Default_Password=Admin.Admin
# Database configuration
DB_1=Default
DB_2=QUESTIONS
DB_3=STATISTICS
DB_4=USERS
DB_PSWD_1=42vM2ftPy1YetSz9AdAHkayxKvQHuV9Wh0nT8c5DKYt
DB_PSWD_2=3cYzPBoLtPindO53Eh3cA80DqqjYvq7CJOzA2Eik00k
DB_PSWD_3=HyJcDLDW3ZYXbMLzlkL4zWqWwyhExQ4XvVCuT8ihld0
DB_PSWD_4=965o6d3Mz7YlgI8GkJkiZD6PIpTZfaBzIheZX3nIpY3
# Ports configuration
BACKEND_PORT=3000
FRONTEND_PORT=5173
DATABASE_PORT=80
-30
View File
@@ -1,30 +0,0 @@
FROM node:18 AS base
WORKDIR /usr/local/app
################ FRONTEND BUILD #################
FROM base AS client-build
WORKDIR /usr/local/app/frontend
COPY SerpentRace_Frontend/package.json SerpentRace_Frontend/package-lock.json ./
RUN npm ci
COPY SerpentRace_Frontend/ ./
RUN npm run build
################ BACKEND BUILD #################
# FROM base AS backend-build
# WORKDIR /usr/local/app/backend
# COPY SerpentRace_Backend/package.json SerpentRace_Backend/package-lock.json ./
# RUN npm ci
# COPY SerpentRace_Backend/ ./
# # Copy frontend build output to backend static directory
# COPY --from=client-build /usr/local/app/frontend/dist ./src/static
# generate js files from ts files
RUN npm run build
################ PRODUCTION IMAGE #################
FROM backend-build AS prod
WORKDIR /usr/local/app/backend
ENV NODE_ENV=development
RUN npm ci
EXPOSE 3000
CMD ["node", "dist/index.js"]
-87
View File
@@ -1,87 +0,0 @@
services:
proxy:
image: traefik:v2.11
command: --providers.docker
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# backend:
# build:
# context: ..
# dockerfile: SerpentRace_Docker/Dockerfile
# target: prod
# environment:
# DATABASE_URL_1: "mysql://${DB_1}:${DB_PSWD_1}@db:3306/${DB_1}"
# DATABASE_URL_2: "mysql://${DB_2}:${DB_PSWD_2}@db:3306/${DB_2}"
# DATABASE_URL_3: "mysql://${DB_3}:${DB_PSWD_3}@db:3306/${DB_3}"
# DATABASE_URL_4: "mysql://${DB_4}:${DB_PSWD_4}@db:3306/${DB_4}"
# command: ["npx", "nodemon", "src/index.ts", "--watch", "src", "--ext", "ts"]
# develop:
# watch:
# - path: ../SerpentRace_Backend/src
# action: sync
# target: /usr/local/app/backend/src
# - path: ../SerpentRace_Backend/prisma
# action: sync
# target: /usr/local/app/backend/prisma
# actions:
# - migrate:all
# - path: ../SerpentRace_Backend/package.json
# action: rebuild
# labels:
# traefik.http.routers.backend.rule: Host(`api.localhost`)
# traefik.http.services.backend.loadbalancer.server.port: 3000
# depends_on:
# - db
frontend:
build:
context: ..
dockerfile: SerpentRace_Docker/Dockerfile
target: client-build
command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"]
working_dir: /usr/local/app/frontend
develop:
watch:
- path: ../SerpentRace_Frontend/src
action: sync
target: /usr/local/app/frontend/src
- path: ../SerpentRace_Frontend/package.json
action: rebuild
labels:
traefik.http.routers.frontend.rule: Host(`localhost`)
traefik.http.services.frontend.loadbalancer.server.port: 5173
db:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_1}
MYSQL_USER: ${Default_User}
MYSQL_PASSWORD: ${Default_Password}
DB_1: ${DB_1}
DB_2: ${DB_2}
DB_3: ${DB_3}
DB_4: ${DB_4}
PSWD_1: ${DB_PSWD_1}
PSWD_2: ${DB_PSWD_2}
PSWD_3: ${DB_PSWD_3}
PSWD_4: ${DB_PSWD_4}
volumes:
- ./init-multi-db.sh:/docker-entrypoint-initdb.d/init-multi-db.sh:ro
- ./init-db-users.sh:/docker-entrypoint-initdb.d/init-db-users.sh:ro
- db_data:/var/lib/mysql
adminer:
image: adminer
restart: always
labels:
traefik.http.routers.adminer.rule: Host(`db.localhost`)
traefik.http.services.adminer.loadbalancer.server.port: 8080
volumes:
db_data:
-17
View File
@@ -1,17 +0,0 @@
#!/bin/bash
set -e
mariadb -uroot -p"$MYSQL_ROOT_PASSWORD" <<EOSQL
CREATE USER IF NOT EXISTS '$DB_1'@'%' IDENTIFIED BY '$PSWD_1';
GRANT ALL PRIVILEGES ON \`$DB_1\`.* TO '$DB_1'@'%';
CREATE USER IF NOT EXISTS '$DB_2'@'%' IDENTIFIED BY '$PSWD_2';
GRANT ALL PRIVILEGES ON \`$DB_2\`.* TO '$DB_2'@'%';
CREATE USER IF NOT EXISTS '$DB_3'@'%' IDENTIFIED BY '$PSWD_3';
GRANT ALL PRIVILEGES ON \`$DB_3\`.* TO '$DB_3'@'%';
CREATE USER IF NOT EXISTS '$DB_4'@'%' IDENTIFIED BY '$PSWD_4';
GRANT ALL PRIVILEGES ON \`$DB_4\`.* TO '$DB_4'@'%';
FLUSH PRIVILEGES;
EOSQL
-7
View File
@@ -1,7 +0,0 @@
#!/bin/bash
set -e
mariadb -uroot -p"$MYSQL_ROOT_PASSWORD" <<EOSQL
CREATE DATABASE IF NOT EXISTS \`${DB_2}\`;
CREATE DATABASE IF NOT EXISTS \`${DB_3}\`;
CREATE DATABASE IF NOT EXISTS \`${DB_4}\`;
EOSQL
-2
View File
@@ -1,2 +0,0 @@
docker compose down -v
pause