AppFlowy Cloud schlanke Self-Host-Compose (Coolify/Traefik, ohne ai+search, Mem-Limits, Secrets via Env)
This commit is contained in:
@@ -0,0 +1 @@
|
||||
SECRETS.txt
|
||||
@@ -0,0 +1,9 @@
|
||||
# appflowy-selfhost (Heidrich Digital)
|
||||
|
||||
Schlanke Self-Host-Variante von AppFlowy Cloud fuer Coolify/Traefik auf dem CX33.
|
||||
- Ohne `ai` + `appflowy_search` (Ressourcen sparen). Mem-Limits ~2.3 GB.
|
||||
- nginx laeuft hinter Coolify-Traefik (keine Host-Ports), im `coolify`-Netz.
|
||||
- FQDN: appflowy.46.224.49.66.sslip.io
|
||||
- Login-Mails: AUTOCONFIRM=true (kein Pflicht-SMTP fuer den Test; Registrierung mit E-Mail+Passwort direkt moeglich).
|
||||
|
||||
Bei Bedarf spaeter: `ai`/`search` ergaenzen, eigener Server, echtes SMTP, OIDC via Forgejo.
|
||||
@@ -0,0 +1,171 @@
|
||||
# AppFlowy Cloud — schlanke Self-Host-Variante fuer Heidrich Digital (Coolify/Traefik)
|
||||
# Abgespeckt: ohne 'ai' und 'appflowy_search'. Mem-Limits als Leitplanke (~2.3 GB).
|
||||
# Hinter Traefik: nginx ohne Host-Ports, im coolify-Netz.
|
||||
services:
|
||||
postgres:
|
||||
image: pgvector/pgvector:pg16
|
||||
restart: on-failure
|
||||
mem_limit: 512m
|
||||
environment:
|
||||
- POSTGRES_USER=postgres
|
||||
- POSTGRES_DB=postgres
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD","pg_isready","-U","postgres","-d","postgres"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
restart: on-failure
|
||||
mem_limit: 128m
|
||||
|
||||
minio:
|
||||
image: minio/minio
|
||||
restart: on-failure
|
||||
mem_limit: 256m
|
||||
environment:
|
||||
- MINIO_BROWSER_REDIRECT_URL=https://appflowy.46.224.49.66.sslip.io/minio
|
||||
- MINIO_ROOT_USER=${MINIO_KEY}
|
||||
- MINIO_ROOT_PASSWORD=${MINIO_SECRET}
|
||||
command: server /data --console-address ":9001"
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
|
||||
gotrue:
|
||||
image: appflowyinc/gotrue:latest
|
||||
restart: on-failure
|
||||
mem_limit: 192m
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- GOTRUE_ADMIN_EMAIL=mail@heidrich-digital.de
|
||||
- GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD}
|
||||
- GOTRUE_DISABLE_SIGNUP=false
|
||||
- GOTRUE_SITE_URL=appflowy-flutter://
|
||||
- GOTRUE_URI_ALLOW_LIST=**
|
||||
- GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}
|
||||
- GOTRUE_JWT_EXP=604800
|
||||
- GOTRUE_JWT_ADMIN_GROUP_NAME=supabase_admin
|
||||
- GOTRUE_DB_DRIVER=postgres
|
||||
- API_EXTERNAL_URL=https://appflowy.46.224.49.66.sslip.io/gotrue
|
||||
- DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres?search_path=auth
|
||||
- PORT=9999
|
||||
- GOTRUE_MAILER_URLPATHS_CONFIRMATION=/gotrue/verify
|
||||
- GOTRUE_MAILER_URLPATHS_INVITE=/gotrue/verify
|
||||
- GOTRUE_MAILER_URLPATHS_RECOVERY=/gotrue/verify
|
||||
- GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE=/gotrue/verify
|
||||
- GOTRUE_MAILER_AUTOCONFIRM=true
|
||||
- GOTRUE_SMTP_MAX_FREQUENCY=1ns
|
||||
- GOTRUE_RATE_LIMIT_EMAIL_SENT=100
|
||||
healthcheck:
|
||||
test: "curl --fail http://127.0.0.1:9999/health || exit 1"
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 40s
|
||||
|
||||
appflowy_cloud:
|
||||
image: appflowyinc/appflowy_cloud:latest
|
||||
restart: on-failure
|
||||
mem_limit: 640m
|
||||
depends_on:
|
||||
gotrue:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- RUST_LOG=info
|
||||
- APPFLOWY_ENVIRONMENT=production
|
||||
- APPFLOWY_DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
|
||||
- APPFLOWY_REDIS_URI=redis://redis:6379
|
||||
- APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}
|
||||
- APPFLOWY_GOTRUE_BASE_URL=http://gotrue:9999
|
||||
- APPFLOWY_S3_CREATE_BUCKET=true
|
||||
- APPFLOWY_S3_USE_MINIO=true
|
||||
- APPFLOWY_S3_MINIO_URL=http://minio:9000
|
||||
- APPFLOWY_S3_ACCESS_KEY=${MINIO_KEY}
|
||||
- APPFLOWY_S3_SECRET_KEY=${MINIO_SECRET}
|
||||
- APPFLOWY_S3_BUCKET=appflowy
|
||||
- APPFLOWY_S3_PRESIGNED_URL_ENDPOINT=https://appflowy.46.224.49.66.sslip.io/minio-api
|
||||
- APPFLOWY_ACCESS_CONTROL=true
|
||||
- APPFLOWY_DATABASE_MAX_CONNECTIONS=20
|
||||
- APPFLOWY_WEB_URL=https://appflowy.46.224.49.66.sslip.io
|
||||
- APPFLOWY_BASE_URL=https://appflowy.46.224.49.66.sslip.io
|
||||
- AI_ENABLED=false
|
||||
- APPFLOWY_SEARCH_SERVICE_URL=
|
||||
healthcheck:
|
||||
test: "curl --fail http://127.0.0.1:8000/api/health || exit 1"
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
|
||||
appflowy_worker:
|
||||
image: appflowyinc/appflowy_worker:latest
|
||||
restart: on-failure
|
||||
mem_limit: 256m
|
||||
depends_on:
|
||||
appflowy_cloud:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- RUST_LOG=info
|
||||
- APPFLOWY_ENVIRONMENT=production
|
||||
- APPFLOWY_WORKER_REDIS_URL=redis://redis:6379
|
||||
- APPFLOWY_WORKER_ENVIRONMENT=production
|
||||
- APPFLOWY_WORKER_DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
|
||||
- APPFLOWY_WORKER_DATABASE_NAME=postgres
|
||||
- APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=30
|
||||
- APPFLOWY_S3_USE_MINIO=true
|
||||
- APPFLOWY_S3_MINIO_URL=http://minio:9000
|
||||
- APPFLOWY_S3_ACCESS_KEY=${MINIO_KEY}
|
||||
- APPFLOWY_S3_SECRET_KEY=${MINIO_SECRET}
|
||||
- APPFLOWY_S3_BUCKET=appflowy
|
||||
|
||||
admin_frontend:
|
||||
image: appflowyinc/admin_frontend:latest
|
||||
restart: on-failure
|
||||
mem_limit: 96m
|
||||
depends_on:
|
||||
appflowy_cloud:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- APPFLOWY_GOTRUE_BASE_URL=http://gotrue:9999
|
||||
- APPFLOWY_BASE_URL=http://appflowy_cloud:8000
|
||||
|
||||
appflowy_web:
|
||||
image: appflowyinc/appflowy_web:latest
|
||||
restart: on-failure
|
||||
mem_limit: 256m
|
||||
depends_on:
|
||||
appflowy_cloud:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- APPFLOWY_BASE_URL=https://appflowy.46.224.49.66.sslip.io
|
||||
- APPFLOWY_GOTRUE_BASE_URL=https://appflowy.46.224.49.66.sslip.io/gotrue
|
||||
- APPFLOWY_WS_BASE_URL=wss://appflowy.46.224.49.66.sslip.io/ws/v2
|
||||
|
||||
nginx:
|
||||
image: nginx
|
||||
restart: on-failure
|
||||
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:
|
||||
- default
|
||||
- coolify
|
||||
|
||||
networks:
|
||||
coolify:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
minio_data:
|
||||
@@ -0,0 +1,227 @@
|
||||
# Minimal nginx configuration for AppFlowy-Cloud
|
||||
# Self Hosted AppFlowy Cloud user should alter this file to suit their needs,
|
||||
# or use the appflowy.site.conf in external_proxy_config/nginx if they are using
|
||||
# an external proxy.
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
# docker dns resolver
|
||||
resolver 127.0.0.11 valid=10s;
|
||||
#error_log /var/log/nginx/error.log debug;
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
map $http_origin $cors_origin {
|
||||
default $http_origin;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
|
||||
# https://github.com/nginxinc/nginx-prometheus-exporter
|
||||
location = /stub_status {
|
||||
stub_status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
server {
|
||||
ssl_certificate /etc/nginx/ssl/certificate.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/private_key.key;
|
||||
|
||||
listen 80;
|
||||
listen 443 ssl;
|
||||
client_max_body_size 10M;
|
||||
|
||||
underscores_in_headers on;
|
||||
set $appflowy_cloud_backend "http://appflowy_cloud:8000";
|
||||
set $gotrue_backend "http://gotrue:9999";
|
||||
set $admin_frontend_backend "http://admin_frontend:3000";
|
||||
set $appflowy_web_backend "http://appflowy_web:80";
|
||||
set $minio_backend "http://minio:9001";
|
||||
set $minio_api_backend "http://minio:9000";
|
||||
# Host name for minio, used internally within docker compose
|
||||
set $minio_internal_host "minio:9000";
|
||||
set $pgadmin_backend "http://pgadmin:80";
|
||||
|
||||
# GoTrue
|
||||
location /gotrue/ {
|
||||
proxy_pass $gotrue_backend;
|
||||
|
||||
rewrite ^/gotrue(/.*)$ $1 break;
|
||||
|
||||
# Allow headers like redirect_to to be handed over to the gotrue
|
||||
# for correct redirecting
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_pass_request_headers on;
|
||||
}
|
||||
|
||||
# WebSocket
|
||||
location /ws {
|
||||
# Existing proxy configuration
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_read_timeout 86400s;
|
||||
}
|
||||
|
||||
location /api {
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
proxy_set_header X-Request-Id $request_id;
|
||||
proxy_set_header Host $http_host;
|
||||
|
||||
location ~* ^/api/workspace/([a-zA-Z0-9_-]+)/publish$ {
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
proxy_request_buffering off;
|
||||
client_max_body_size 256M;
|
||||
}
|
||||
|
||||
# AppFlowy-Cloud
|
||||
location /api/chat {
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
chunked_transfer_encoding on;
|
||||
proxy_buffering off;
|
||||
proxy_cache off;
|
||||
|
||||
proxy_read_timeout 600s;
|
||||
proxy_connect_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
}
|
||||
|
||||
location /api/import {
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
|
||||
# Set headers
|
||||
proxy_set_header X-Request-Id $request_id;
|
||||
proxy_set_header Host $http_host;
|
||||
|
||||
# Timeouts
|
||||
proxy_read_timeout 600s;
|
||||
proxy_connect_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
|
||||
# Disable buffering for large file uploads
|
||||
proxy_request_buffering off;
|
||||
proxy_buffering off;
|
||||
proxy_cache off;
|
||||
client_max_body_size 2G;
|
||||
}
|
||||
}
|
||||
|
||||
# Minio Web UI
|
||||
# Derive from: https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
|
||||
# Optional Module, comment this section if you did not deploy minio in docker-compose.yml
|
||||
# This endpoint is meant to be used for the MinIO Web UI, accessible via the admin portal
|
||||
location /minio/ {
|
||||
proxy_pass $minio_backend;
|
||||
|
||||
rewrite ^/minio/(.*) /$1 break;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
|
||||
## This is necessary to pass the correct IP to be hashed
|
||||
real_ip_header X-Real-IP;
|
||||
|
||||
proxy_connect_timeout 300s;
|
||||
|
||||
## To support websockets in MinIO versions released after January 2023
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
|
||||
# Uncomment the following line to set the Origin request to an empty string
|
||||
# proxy_set_header Origin '';
|
||||
|
||||
chunked_transfer_encoding off;
|
||||
}
|
||||
|
||||
# Optional Module, comment this section if you did not deploy minio in docker-compose.yml
|
||||
# This is used for presigned url, which is needs to be exposed to the AppFlowy client application.
|
||||
location /minio-api/ {
|
||||
proxy_pass $minio_api_backend;
|
||||
|
||||
# Set the host to internal host because the presigned url was signed against the internal host
|
||||
proxy_set_header Host $minio_internal_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/minio-api/(.*) /$1 break;
|
||||
|
||||
proxy_connect_timeout 300s;
|
||||
proxy_read_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
proxy_request_buffering off;
|
||||
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
chunked_transfer_encoding off;
|
||||
client_max_body_size 0;
|
||||
}
|
||||
|
||||
# PgAdmin
|
||||
# Optional Module, comment this section if you did not deploy pgadmin in docker-compose.yml
|
||||
location /pgadmin/ {
|
||||
set $pgadmin pgadmin;
|
||||
proxy_pass $pgadmin_backend;
|
||||
|
||||
proxy_set_header X-Script-Name /pgadmin;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header Host $host;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
# AI
|
||||
location /ai/ {
|
||||
proxy_pass $appflowy_cloud_backend;
|
||||
proxy_set_header X-Request-Id $request_id;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
# Admin Frontend
|
||||
location /console {
|
||||
proxy_pass $admin_frontend_backend;
|
||||
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
# AppFlowy Web
|
||||
location / {
|
||||
proxy_pass $appflowy_web_backend;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
yqGwLIqHYos=
|
||||
-----END CERTIFICATE-----
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
Oi+igzFlcelWDZ/eQ8CpDkSpAqtwwx97
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user