Update HTTPS port configuration and add cloudflared setup in Docker Compose
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
NUITKA_BUILD=0
|
NUITKA_BUILD=0
|
||||||
INVENTAR_HTTP_PORT=80
|
INVENTAR_HTTP_PORT=80
|
||||||
INVENTAR_HTTPS_PORT=443
|
INVENTAR_HTTPS_PORT=8000
|
||||||
INVENTAR_APP_IMAGE=ghcr.io/aiirondev/legendary-octo-garbanzo:latest
|
INVENTAR_APP_IMAGE=ghcr.io/aiirondev/legendary-octo-garbanzo:latest
|
||||||
|
|||||||
+2
-2
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"dbg": false,
|
"dbg": false,
|
||||||
"key": "InventarsystemSecureKey2026XYZ789abcdef012",
|
"key": "InventarsystemSecureKey2026XYZ789abcdef012",
|
||||||
"ver": "0.0.2",
|
"ver": "0.6.44",
|
||||||
"host": "0.0.0.0",
|
"host": "0.0.0.0",
|
||||||
"port": 443,
|
"port": 8000,
|
||||||
|
|
||||||
"mongodb": {
|
"mongodb": {
|
||||||
"host": "localhost",
|
"host": "localhost",
|
||||||
|
|||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
tunnel: homeserver
|
||||||
|
credentials-file: /etc/cloudflared/credentials.json
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
# Repo 1: Inventar
|
||||||
|
- hostname: inventar.maximiliangruendinger.de
|
||||||
|
service: http://inventory-app:3000
|
||||||
|
|
||||||
|
# Repo 2: Key-Service (Buchung)
|
||||||
|
- hostname: booking.maximiliangruendinger.de
|
||||||
|
service: http://key-service-app:8080
|
||||||
|
|
||||||
|
- service: http_status:404
|
||||||
@@ -48,7 +48,7 @@ services:
|
|||||||
condition: service_started
|
condition: service_started
|
||||||
ports:
|
ports:
|
||||||
- "${INVENTAR_HTTP_PORT:-80}:80"
|
- "${INVENTAR_HTTP_PORT:-80}:80"
|
||||||
- "${INVENTAR_HTTPS_PORT:-443}:443"
|
- "${INVENTAR_HTTPS_PORT:-8000}:8000"
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/nginx/multitenant.conf:/etc/nginx/conf.d/default.conf:ro
|
- ./docker/nginx/multitenant.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
- ./certs:/etc/nginx/certs:ro
|
- ./certs:/etc/nginx/certs:ro
|
||||||
|
|||||||
+32
-93
@@ -1,102 +1,41 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
app:
|
||||||
|
build: .
|
||||||
|
container_name: inventory-app
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- MONGO_URL=mongodb://mongodb:27017/inventar
|
||||||
|
- REDIS_URL=redis://redis:6379
|
||||||
|
- BASE_URL=https://inventar.maximiliangruendinger.de #alle öffentliche subdomains
|
||||||
|
depends_on:
|
||||||
|
- mongodb
|
||||||
|
- redis
|
||||||
|
|
||||||
|
mongodb:
|
||||||
|
image: mongo:latest
|
||||||
|
container_name: mongodb
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- mongo_data:/data/db
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: redis
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
cloudflared:
|
cloudflared:
|
||||||
image: cloudflare/cloudflared:latest
|
image: cloudflare/cloudflared:latest
|
||||||
container_name: cloudflared
|
container_name: cloudflared
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
profiles:
|
# Der Tunnel-Name 'homeserver' muss zu deiner credentials.json passen
|
||||||
- cloudflare
|
command: tunnel run homeserver
|
||||||
command: ["--config", "/etc/cloudflared/config.yml", "tunnel", "run"]
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/cloudflared/config.yml:/etc/cloudflared/config.yml:ro
|
- ./config.yml:/etc/cloudflared/config.yml
|
||||||
- /etc/cloudflared/credentials.json:/etc/cloudflared/credentials.json:ro
|
- ./credentials.json:/etc/cloudflared/credentials.json
|
||||||
depends_on:
|
depends_on:
|
||||||
nginx:
|
- app
|
||||||
condition: service_started
|
|
||||||
|
|
||||||
nginx:
|
|
||||||
image: nginx:1.27-alpine
|
|
||||||
container_name: inventarsystem-nginx
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
app:
|
|
||||||
condition: service_started
|
|
||||||
ports:
|
|
||||||
- "${INVENTAR_HTTP_PORT:-80}:80"
|
|
||||||
- "${INVENTAR_HTTPS_PORT:-443}:443"
|
|
||||||
volumes:
|
|
||||||
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
||||||
- ./certs:/etc/nginx/certs:ro
|
|
||||||
|
|
||||||
mongodb:
|
|
||||||
image: mongo:7.0
|
|
||||||
container_name: inventarsystem-mongodb
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- mongodb_data:/data/db
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping').ok"]
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
|
|
||||||
redis:
|
|
||||||
image: redis:7-alpine
|
|
||||||
container_name: inventarsystem-redis
|
|
||||||
restart: unless-stopped
|
|
||||||
command: ["redis-server", "--appendonly", "yes", "--save", "60", "1000"]
|
|
||||||
volumes:
|
|
||||||
- redis_data:/data
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "redis-cli", "ping"]
|
|
||||||
interval: 10s
|
|
||||||
timeout: 3s
|
|
||||||
retries: 10
|
|
||||||
|
|
||||||
app:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
working_dir: /app/Web
|
|
||||||
command: ["gunicorn", "app:app", "--bind", "0.0.0.0:8000", "--workers", "2", "--timeout", "30", "--graceful-timeout", "20", "--max-requests", "200", "--max-requests-jitter", "50", "--log-level", "info", "--access-logfile", "-", "--error-logfile", "-"]
|
|
||||||
container_name: inventarsystem-app
|
|
||||||
restart: unless-stopped
|
|
||||||
security_opt:
|
|
||||||
- no-new-privileges:true
|
|
||||||
depends_on:
|
|
||||||
mongodb:
|
|
||||||
condition: service_healthy
|
|
||||||
redis:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
INVENTAR_MONGODB_HOST: mongodb
|
|
||||||
INVENTAR_MONGODB_PORT: "27017"
|
|
||||||
INVENTAR_MONGODB_DB: Inventarsystem
|
|
||||||
INVENTAR_REDIS_HOST: redis
|
|
||||||
INVENTAR_REDIS_PORT: "6379"
|
|
||||||
INVENTAR_REDIS_CACHE_DB: "1"
|
|
||||||
INVENTAR_NOTIFICATION_STATUS_CACHE_TTL: "8"
|
|
||||||
INVENTAR_BACKUP_FOLDER: /data/backups
|
|
||||||
INVENTAR_LOGS_FOLDER: /data/logs
|
|
||||||
INVENTAR_DELETED_ARCHIVE_FOLDER: /data/deleted-archives
|
|
||||||
expose:
|
|
||||||
- "8000"
|
|
||||||
volumes:
|
|
||||||
- ./config.json:/app/config.json:ro
|
|
||||||
- app_uploads:/app/Web/uploads
|
|
||||||
- app_thumbnails:/app/Web/thumbnails
|
|
||||||
- app_previews:/app/Web/previews
|
|
||||||
- app_qrcodes:/app/Web/QRCodes
|
|
||||||
- app_backups:/data/backups
|
|
||||||
- app_logs:/data/logs
|
|
||||||
- app_deleted_archives:/data/deleted-archives
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mongodb_data:
|
mongo_data:
|
||||||
app_uploads:
|
|
||||||
app_thumbnails:
|
|
||||||
app_previews:
|
|
||||||
app_qrcodes:
|
|
||||||
app_backups:
|
|
||||||
app_logs:
|
|
||||||
app_deleted_archives:
|
|
||||||
redis_data:
|
|
||||||
@@ -1,4 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Nur die App neu bauen und starten, ohne den Tunnel oder die DB zu killen
|
||||||
|
docker compose up -d --build app
|
||||||
|
|
||||||
|
# Optional: Alles aufräumen, was nicht mehr gebraucht wird
|
||||||
|
docker image prune -f
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|||||||
Reference in New Issue
Block a user