Plan B: nginx aus eigenem Image (kein Mount) + depends_on entkoppelt
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
FROM nginx:latest
|
||||||
|
COPY nginx/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
COPY nginx/ssl/certificate.crt /etc/nginx/ssl/certificate.crt
|
||||||
|
COPY nginx/ssl/private_key.key /etc/nginx/ssl/private_key.key
|
||||||
+9
-30
@@ -1,6 +1,6 @@
|
|||||||
# AppFlowy Cloud — schlanke Self-Host-Variante fuer Heidrich Digital (Coolify/Traefik)
|
# AppFlowy Cloud — schlanke Self-Host-Variante fuer Heidrich Digital (Coolify/Traefik)
|
||||||
# Abgespeckt: ohne 'ai' und 'appflowy_search'. Mem-Limits als Leitplanke (~2.3 GB).
|
# Ohne 'ai' + 'appflowy_search'. Mem-Limits ~2.3 GB. nginx aus eigenem Image (kein Mount).
|
||||||
# Hinter Traefik: nginx ohne Host-Ports, im coolify-Netz.
|
# depends_on entkoppelt -> alle Container starten sofort, pendeln per restart:on-failure ein.
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: pgvector/pgvector:pg16
|
image: pgvector/pgvector:pg16
|
||||||
@@ -14,7 +14,7 @@ services:
|
|||||||
test: ["CMD","pg_isready","-U","postgres","-d","postgres"]
|
test: ["CMD","pg_isready","-U","postgres","-d","postgres"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 12
|
retries: 20
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_data:/var/lib/postgresql/data
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
@@ -39,9 +39,6 @@ services:
|
|||||||
image: appflowyinc/gotrue:latest
|
image: appflowyinc/gotrue:latest
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 192m
|
mem_limit: 192m
|
||||||
depends_on:
|
|
||||||
postgres:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
- GOTRUE_ADMIN_EMAIL=mail@heidrich-digital.de
|
- GOTRUE_ADMIN_EMAIL=mail@heidrich-digital.de
|
||||||
- GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD}
|
- GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD}
|
||||||
@@ -66,16 +63,13 @@ services:
|
|||||||
test: "curl --fail http://127.0.0.1:9999/health || exit 1"
|
test: "curl --fail http://127.0.0.1:9999/health || exit 1"
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 12
|
retries: 20
|
||||||
start_period: 40s
|
start_period: 60s
|
||||||
|
|
||||||
appflowy_cloud:
|
appflowy_cloud:
|
||||||
image: appflowyinc/appflowy_cloud:latest
|
image: appflowyinc/appflowy_cloud:latest
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 640m
|
mem_limit: 640m
|
||||||
depends_on:
|
|
||||||
gotrue:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
- RUST_LOG=info
|
- RUST_LOG=info
|
||||||
- APPFLOWY_ENVIRONMENT=production
|
- APPFLOWY_ENVIRONMENT=production
|
||||||
@@ -100,15 +94,12 @@ services:
|
|||||||
test: "curl --fail http://127.0.0.1:8000/api/health || exit 1"
|
test: "curl --fail http://127.0.0.1:8000/api/health || exit 1"
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 12
|
retries: 20
|
||||||
|
|
||||||
appflowy_worker:
|
appflowy_worker:
|
||||||
image: appflowyinc/appflowy_worker:latest
|
image: appflowyinc/appflowy_worker:latest
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 256m
|
mem_limit: 256m
|
||||||
depends_on:
|
|
||||||
appflowy_cloud:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
- RUST_LOG=info
|
- RUST_LOG=info
|
||||||
- APPFLOWY_ENVIRONMENT=production
|
- APPFLOWY_ENVIRONMENT=production
|
||||||
@@ -127,9 +118,6 @@ services:
|
|||||||
image: appflowyinc/admin_frontend:latest
|
image: appflowyinc/admin_frontend:latest
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 96m
|
mem_limit: 96m
|
||||||
depends_on:
|
|
||||||
appflowy_cloud:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
- APPFLOWY_GOTRUE_BASE_URL=http://gotrue:9999
|
- APPFLOWY_GOTRUE_BASE_URL=http://gotrue:9999
|
||||||
- APPFLOWY_BASE_URL=http://appflowy_cloud:8000
|
- APPFLOWY_BASE_URL=http://appflowy_cloud:8000
|
||||||
@@ -138,26 +126,17 @@ services:
|
|||||||
image: appflowyinc/appflowy_web:latest
|
image: appflowyinc/appflowy_web:latest
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 256m
|
mem_limit: 256m
|
||||||
depends_on:
|
|
||||||
appflowy_cloud:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
environment:
|
||||||
- APPFLOWY_BASE_URL=https://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io
|
- APPFLOWY_BASE_URL=https://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io
|
||||||
- APPFLOWY_GOTRUE_BASE_URL=https://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io/gotrue
|
- APPFLOWY_GOTRUE_BASE_URL=https://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io/gotrue
|
||||||
- APPFLOWY_WS_BASE_URL=wss://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io/ws/v2
|
- APPFLOWY_WS_BASE_URL=wss://o14i2dg0el8grbbbcm1u20u1.46.224.49.66.sslip.io/ws/v2
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
image: nginx
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.nginx
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
mem_limit: 96m
|
mem_limit: 96m
|
||||||
depends_on:
|
|
||||||
- appflowy_cloud
|
|
||||||
- appflowy_web
|
|
||||||
- gotrue
|
|
||||||
volumes:
|
|
||||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
|
||||||
- ./nginx/ssl/certificate.crt:/etc/nginx/ssl/certificate.crt
|
|
||||||
- ./nginx/ssl/private_key.key:/etc/nginx/ssl/private_key.key
|
|
||||||
networks:
|
networks:
|
||||||
- default
|
- default
|
||||||
- coolify
|
- coolify
|
||||||
|
|||||||
Reference in New Issue
Block a user