Appflowy #4389
carstenjaksch
started this conversation in
Service Template Requests
Appflowy
#4389
Replies: 2 comments
-
As expected, there are some issues.
There is also a tutorial for setting up Applfowy Cloud on Hetzner: https://github.com/hetzneronline/community-content/pull/959/files But had no time yet to go through it. My latest docker-compose.yaml: # documentation: https://docs.appflowy.io/docs
# slogan: An open source Notion alternative.
# tags: notion
# logo: svgs/appflowy.svg
# port: 8443
services:
nginx:
restart: on-failure
image: nginx
ports:
- ${NGINX_TLS_PORT:-8443}:443
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
# You do not need this if you have configured to use your own s3 file storage
minio:
restart: on-failure
image: minio/minio
environment:
- SERVICE_FQDN_APPFLOWY_8443
- MINIO_BROWSER_REDIRECT_URL=$SERVICE_FQDN_APPFLOWY_8443/minio
- MINIO_ROOT_USER=${APPFLOWY_S3_ACCESS_KEY:-minioadmin}
- MINIO_ROOT_PASSWORD=${APPFLOWY_S3_SECRET_KEY:-minioadmin}
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
postgres:
restart: on-failure
image: pgvector/pgvector:pg16
environment:
- POSTGRES_USER=${POSTGRES_USER:-postgres}
- POSTGRES_DB=${POSTGRES_DB:-postgres}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password}
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
- SUPABASE_PASSWORD=${SUPABASE_PASSWORD:-root}
volumes:
- ./migrations/before:/docker-entrypoint-initdb.d
- postgres_data:/var/lib/postgresql/data
redis:
restart: on-failure
image: redis
environment:
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
gotrue:
restart: on-failure
# build:
# context: docker/gotrue
# dockerfile: Dockerfile
image: appflowyinc/gotrue:latest
environment:
# There are a lot of options to configure GoTrue. You can reference the example config:
# https://github.com/supabase/gotrue/blob/master/example.env
- SERVICE_FQDN_APPFLOWY_8443
- GOTRUE_SITE_URL=appflowy-flutter:// # redirected to AppFlowy application
- URI_ALLOW_LIST=* # adjust restrict if necessary
- GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET:-hello456} # authentication secret
- GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP:-7200}
- GOTRUE_DB_DRIVER=postgres
- API_EXTERNAL_URL=$SERVICE_FQDN_APPFLOWY_8443
- DATABASE_URL=postgres://supabase_auth_admin:$SUPABASE_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB
- PORT=9999
- GOTRUE_SMTP_HOST=${GOTRUE_SMTP_HOST:-smtp.gmail.com}
- GOTRUE_SMTP_PORT=${GOTRUE_SMTP_PORT:-465}
- GOTRUE_SMTP_USER=${GOTRUE_SMTP_USER:-email_sender@some_company.com}
- GOTRUE_SMTP_PASS=${GOTRUE_SMTP_PASS:-email_sender_password}
- 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_SMTP_ADMIN_EMAIL=${GOTRUE_SMTP_ADMIN_EMAIL:-comp_admin@some_company.com}
- GOTRUE_SMTP_MAX_FREQUENCY=${GOTRUE_SMTP_MAX_FREQUENCY:-1ns} # set to 1ns for running tests
- GOTRUE_RATE_LIMIT_EMAIL_SENT=${GOTRUE_RATE_LIMIT_EMAIL_SENT:-100} # number of email sendable per minute
- GOTRUE_MAILER_AUTOCONFIRM=${GOTRUE_MAILER_AUTOCONFIRM:-false} # change this to true to skip email confirmation
# Google OAuth config
- GOTRUE_EXTERNAL_GOOGLE_ENABLED=${GOTRUE_EXTERNAL_GOOGLE_ENABLED:-false}
- GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=${GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID}
- GOTRUE_EXTERNAL_GOOGLE_SECRET=${GOTRUE_EXTERNAL_GOOGLE_SECRET}
- GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=${API_EXTERNAL_URL}/gotrue/callback
# GITHUB OAuth config
- GOTRUE_EXTERNAL_GITHUB_ENABLED=${GOTRUE_EXTERNAL_GITHUB_ENABLED:-false}
- GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=${GOTRUE_EXTERNAL_GITHUB_CLIENT_ID}
- GOTRUE_EXTERNAL_GITHUB_SECRET=${GOTRUE_EXTERNAL_GITHUB_SECRET}
- GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=${API_EXTERNAL_URL}/gotrue/callback
# Discord OAuth config
- GOTRUE_EXTERNAL_DISCORD_ENABLED=${GOTRUE_EXTERNAL_DISCORD_ENABLED:-false}
- GOTRUE_EXTERNAL_DISCORD_CLIENT_ID=${GOTRUE_EXTERNAL_DISCORD_CLIENT_ID}
- GOTRUE_EXTERNAL_DISCORD_SECRET=${GOTRUE_EXTERNAL_DISCORD_SECRET}
- GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI=${API_EXTERNAL_URL}/gotrue/callback
appflowy_cloud:
restart: on-failure
environment:
- RUST_LOG=${RUST_LOG:-info}
- APPFLOWY_ENVIRONMENT=production
- APPFLOWY_DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB
- APPFLOWY_REDIS_URI=redis://$REDIS_HOST:$REDIS_PORT
- APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET:-hello456}
- APPFLOWY_GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP:-720ß}
- APPFLOWY_GOTRUE_BASE_URL=${APPFLOWY_GOTRUE_BASE_URL:-http://gotrue:9999}
- APPFLOWY_GOTRUE_EXT_URL=${API_EXTERNAL_URL}
- APPFLOWY_GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL:[email protected]}
- APPFLOWY_GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD:-password}
- APPFLOWY_S3_CREATE_BUCKET=${APPFLOWY_S3_CREATE_BUCKET:-true}
- APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO:-true}
- APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL:-http://minio:9000}
- APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY:-minioadmin}
- APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY:-minioadmin}
- APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET:-appflowy}
- APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION}
- APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST:-smtp.gmail.com}
- APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT:-465}
- APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME:-email_sender@some_company.com}
- APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD:-email_sender_password}
- APPFLOWY_ACCESS_CONTROL=${APPFLOWY_ACCESS_CONTROL:-true}
- APPFLOWY_DATABASE_MAX_CONNECTIONS=${APPFLOWY_DATABASE_MAX_CONNECTIONS:-40}
- APPFLOWY_AI_SERVER_HOST=${APPFLOWY_AI_SERVER_HOST:-ai}
- APPFLOWY_AI_SERVER_PORT=${APPFLOWY_AI_SERVER_PORT:-5001}
# build:
# context: .
# dockerfile: Dockerfile
# args:
# FEATURES: ""
image: appflowyinc/appflowy_cloud:latest
admin_frontend:
restart: on-failure
# build:
# context: .
# dockerfile: ./admin_frontend/Dockerfile
image: appflowyinc/admin_frontend:latest
environment:
- RUST_LOG=${RUST_LOG:-info}
- ADMIN_FRONTEND_REDIS_URL=redis://$REDIS_HOST:$REDIS_PORT
- ADMIN_FRONTEND_GOTRUE_URL=${ADMIN_FRONTEND_GOTRUE_URL:-http://gotrue:9999}
- ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=${ADMIN_FRONTEND_APPFLOWY_CLOUD_URL:-http://appflowy_cloud:8000}
ai:
restart: on-failure
image: appflowyinc/appflowy_ai:latest
environment:
- OPENAI_API_KEY=${APPFLOWY_AI_OPENAI_API_KEY}
- APPFLOWY_AI_SERVER_PORT=${APPFLOWY_AI_SERVER_PORT:-5001}
- APPFLOWY_AI_DATABASE_URL=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB
- APPFLOWY_AI_REDIS_URL=redis://$REDIS_HOST:$REDIS_PORT
appflowy_worker:
restart: on-failure
image: appflowyinc/appflowy_worker:latest
# build:
# context: .
# dockerfile: ./services/appflowy-worker/Dockerfile
environment:
- RUST_LOG=${RUST_LOG:-info}
- APPFLOWY_ENVIRONMENT=production
- APPFLOWY_WORKER_REDIS_URL=redis://$REDIS_HOST:$REDIS_PORT
- APPFLOWY_WORKER_ENVIRONMENT=production
- APPFLOWY_WORKER_DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB
- APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=30
- APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO:-true}
- APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL:-http://minio:9000}
- APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY:-minioadmin}
- APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY:-minioadmin}
- APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET:-appflowy}
- APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION}
- APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT:-465}
- APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME:-email_sender@some_company.com}
- APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD:-email_sender_password}
volumes:
postgres_data:
minio_data: |
Beta Was this translation helpful? Give feedback.
0 replies
-
Need this as a service in Coolify! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
https://appflowy.io/
An open source Notion alternative.
Appflowy refers to the frontend or local app – the desktop app has offline support with a local database.
The cloud version is an optional hosted backend: https://github.com/AppFlowy-IO/AppFlowy-Cloud
Maybe I'll look into it but no promises.
Beta Was this translation helpful? Give feedback.
All reactions