From 011434ba56cb8c80703e8880cfe424c611af174e Mon Sep 17 00:00:00 2001 From: steinhelge Date: Mon, 24 Nov 2025 11:43:31 +0100 Subject: [PATCH] feat: Add Docker Compose configurations for development and production environments and update TypeScript compiler options. --- .../deploy/docker-compose.dev.yml | 61 +++++++++++++++++++ .../deploy/docker-compose.prod.yml | 61 +++++++++++++++++++ src/hospitality-web/tsconfig.app.json | 20 +++--- 3 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 src/hospitality-web/deploy/docker-compose.dev.yml create mode 100644 src/hospitality-web/deploy/docker-compose.prod.yml diff --git a/src/hospitality-web/deploy/docker-compose.dev.yml b/src/hospitality-web/deploy/docker-compose.dev.yml new file mode 100644 index 0000000..1c9ba30 --- /dev/null +++ b/src/hospitality-web/deploy/docker-compose.dev.yml @@ -0,0 +1,61 @@ +version: "3.9" + +networks: + hospitality-dev-net: + name: hospitality-dev-net + driver: bridge + +services: + db: + image: postgres:16 + container_name: hospitality-dev-db + restart: unless-stopped + environment: + POSTGRES_DB: hospitality_dev + POSTGRES_USER: hospitality_dev + POSTGRES_PASSWORD: devpassword + volumes: + - hospitality-dev-db-data:/var/lib/postgresql/data + networks: + - hospitality-dev-net + + api: + image: gitea.theriise.net/steinhelge/hospitality-api:dev + container_name: hospitality-dev-api + restart: unless-stopped + environment: + ASPNETCORE_URLS: http://0.0.0.0:8080 + ConnectionStrings__Default: "Host=db;Port=5432;Database=hospitality_dev;Username=hospitality_dev;Password=devpassword" + depends_on: + - db + networks: + - hospitality-dev-net + # ports: + # - "5005:8080" + + web: + image: gitea.theriise.net/steinhelge/hospitality-frontend:dev + container_name: hospitality-dev-frontend + restart: unless-stopped + depends_on: + - api + networks: + - hospitality-dev-net + ports: + - "8085:80" + # Eller via Traefik, samme mønster som over: + # networks: + # - hospitality-dev-net + # - edge + # labels: + # - "traefik.enable=true" + # - "traefik.docker.network=edge" + # - "traefik.http.routers.hospitality-dev.rule=Host(`hospitality-dev.theriise.net`)" + # - "traefik.http.routers.hospitality-dev.entrypoints=websecure" + # - "traefik.http.routers.hospitality-dev.tls=true" + +volumes: + hospitality-dev-db-data: + + +#e7a87ddedabda8ee83bb3a246ce725dd9c030cb2 \ No newline at end of file diff --git a/src/hospitality-web/deploy/docker-compose.prod.yml b/src/hospitality-web/deploy/docker-compose.prod.yml new file mode 100644 index 0000000..c88f4df --- /dev/null +++ b/src/hospitality-web/deploy/docker-compose.prod.yml @@ -0,0 +1,61 @@ +version: "3.9" + +networks: + hospitality-net: + name: hospitality-net + driver: bridge + +services: + db: + image: postgres:16 + container_name: hospitality-db + restart: unless-stopped + environment: + POSTGRES_DB: hospitality + POSTGRES_USER: hospitality + POSTGRES_PASSWORD: supersecretpassword + volumes: + - hospitality-db-data:/var/lib/postgresql/data + networks: + - hospitality-net + + api: + image: gitea.theriise.net/steinhelge/hospitality-api:latest + container_name: hospitality-api + restart: unless-stopped + environment: + ASPNETCORE_URLS: http://0.0.0.0:8080 + # ASP.NET Core-style connection string via env: + ConnectionStrings__Default: "Host=db;Port=5432;Database=hospitality;Username=hospitality;Password=supersecretpassword" + depends_on: + - db + networks: + - hospitality-net + # Hvis du vil nå API direkte uten Traefik: + # ports: + # - "5004:8080" + + web: + image: gitea.theriise.net/steinhelge/hospitality-frontend:latest + container_name: hospitality-frontend + restart: unless-stopped + depends_on: + - api + networks: + - hospitality-net + # Ekstern tilgang (uten Traefik): + ports: + - "8084:80" + # Hvis du vil kjøre via Traefik i stedet: + # networks: + # - hospitality-net + # - edge + # labels: + # - "traefik.enable=true" + # - "traefik.docker.network=edge" + # - "traefik.http.routers.hospitality.rule=Host(`hospitality.theriise.net`)" + # - "traefik.http.routers.hospitality.entrypoints=websecure" + # - "traefik.http.routers.hospitality.tls=true" + +volumes: + hospitality-db-data: diff --git a/src/hospitality-web/tsconfig.app.json b/src/hospitality-web/tsconfig.app.json index a9b5a59..4cd86eb 100644 --- a/src/hospitality-web/tsconfig.app.json +++ b/src/hospitality-web/tsconfig.app.json @@ -3,11 +3,16 @@ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2022", "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], + "lib": [ + "ES2022", + "DOM", + "DOM.Iterable" + ], "module": "ESNext", - "types": ["vite/client"], + "types": [ + "vite/client" + ], "skipLibCheck": true, - /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, @@ -15,14 +20,15 @@ "moduleDetection": "force", "noEmit": true, "jsx": "react-jsx", - /* Linting */ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, - "erasableSyntaxOnly": true, + "erasableSyntaxOnly": false, "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["src"] -} + "include": [ + "src" + ] +} \ No newline at end of file