Appflowy Template (#301)

* feat: add appflowy for testing

* fix: removed docker network and fixed template.toml jwt secret

* Working AppFlowy config

* fix: meta.json
This commit is contained in:
Naterfute
2025-08-23 21:27:17 -07:00
committed by GitHub
parent 4b882a2f1f
commit 9af4698ea9
4 changed files with 522 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,251 @@
services:
minio:
restart: on-failure
image: minio/minio
environment:
- MINIO_BROWSER_REDIRECT_URL=${APPFLOWY_BASE_URL}/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}
healthcheck:
test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}", "-d", "${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 12
volumes:
- postgres_data:/var/lib/postgresql/data
- ./files/volumes/postgres/:/docker-entrypoint-initdb.d/
redis:
restart: on-failure
image: redis
gotrue:
restart: on-failure
image: appflowyinc/gotrue:${GOTRUE_VERSION:-latest}
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "--fail", "http://127.0.0.1:9999/health"]
interval: 5s
timeout: 5s
retries: 12
environment:
# Admin Configuration
- GOTRUE_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL}
- GOTRUE_ADMIN_PASSWORD=${GOTRUE_ADMIN_PASSWORD}
- GOTRUE_DISABLE_SIGNUP=${GOTRUE_DISABLE_SIGNUP:-false}
# Site Configuration
- GOTRUE_SITE_URL=appflowy-flutter://
- GOTRUE_URI_ALLOW_LIST=${GOTRUE_URI_ALLOW_LIST:-**}
- API_EXTERNAL_URL=${API_EXTERNAL_URL}
# JWT Configuration
- GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}
- GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP:-7200}
- GOTRUE_JWT_ADMIN_GROUP_NAME=supabase_admin
# Database Configuration
- GOTRUE_DB_DRIVER=postgres
- DATABASE_URL=${GOTRUE_DATABASE_URL}
- PORT=9999
# Email Configuration
- GOTRUE_SMTP_HOST=${GOTRUE_SMTP_HOST}
- GOTRUE_SMTP_PORT=${GOTRUE_SMTP_PORT}
- GOTRUE_SMTP_USER=${GOTRUE_SMTP_USER}
- GOTRUE_SMTP_PASS=${GOTRUE_SMTP_PASS}
- GOTRUE_SMTP_ADMIN_EMAIL=${GOTRUE_SMTP_ADMIN_EMAIL}
- GOTRUE_SMTP_MAX_FREQUENCY=${GOTRUE_SMTP_MAX_FREQUENCY:-1ns}
- GOTRUE_RATE_LIMIT_EMAIL_SENT=${GOTRUE_RATE_LIMIT_EMAIL_SENT:-100}
- GOTRUE_MAILER_AUTOCONFIRM=${GOTRUE_MAILER_AUTOCONFIRM:-true}
# Email Templates
- 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_TEMPLATES_MAGIC_LINK=${GOTRUE_MAILER_TEMPLATES_MAGIC_LINK}
# OAuth Providers
- 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=${GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI}
- 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=${GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI}
- 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=${GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI}
# SAML Configuration
- GOTRUE_SAML_ENABLED=${GOTRUE_SAML_ENABLED:-false}
- GOTRUE_SAML_PRIVATE_KEY=${GOTRUE_SAML_PRIVATE_KEY}
appflowy_cloud:
restart: on-failure
image: appflowyinc/appflowy_cloud:${APPFLOWY_CLOUD_VERSION:-latest}
depends_on:
gotrue:
condition: service_healthy
environment:
# Core Configuration
- RUST_LOG=${RUST_LOG:-info}
- APPFLOWY_ENVIRONMENT=production
- APPFLOWY_DATABASE_URL=${APPFLOWY_DATABASE_URL}
- APPFLOWY_REDIS_URI=${APPFLOWY_REDIS_URI}
- APPFLOWY_WEB_URL=${APPFLOWY_WEB_URL}
# Authentication Configuration
- APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}
- APPFLOWY_GOTRUE_JWT_EXP=${GOTRUE_JWT_EXP:-7200}
- APPFLOWY_GOTRUE_BASE_URL=${APPFLOWY_GOTRUE_BASE_URL}
# File Storage Configuration
- 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}
- APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY}
- APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY}
- APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET:-appflowy}
- APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION:-us-east-1}
- APPFLOWY_S3_PRESIGNED_URL_ENDPOINT=${APPFLOWY_S3_PRESIGNED_URL_ENDPOINT}
# Email Configuration
- APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST}
- APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT}
- APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME}
- APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL}
- APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD}
- APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND:-wrapper}
# Access Control and Performance
- APPFLOWY_ACCESS_CONTROL=${APPFLOWY_ACCESS_CONTROL:-true}
- APPFLOWY_DATABASE_MAX_CONNECTIONS=${APPFLOWY_DATABASE_MAX_CONNECTIONS:-40}
- APPFLOWY_WEBSOCKET_MAILBOX_SIZE=${APPFLOWY_WEBSOCKET_MAILBOX_SIZE:-6000}
# AI Configuration
- AI_SERVER_HOST=${AI_SERVER_HOST:-ai}
- AI_SERVER_PORT=${AI_SERVER_PORT:-5001}
- AI_OPENAI_API_KEY=${AI_OPENAI_API_KEY}
admin_frontend:
restart: on-failure
image: appflowyinc/admin_frontend:${APPFLOWY_ADMIN_FRONTEND_VERSION:-latest}
depends_on:
gotrue:
condition: service_healthy
appflowy_cloud:
condition: service_started
environment:
- RUST_LOG=${RUST_LOG:-info}
- ADMIN_FRONTEND_REDIS_URL=${ADMIN_FRONTEND_REDIS_URL}
- ADMIN_FRONTEND_GOTRUE_URL=${ADMIN_FRONTEND_GOTRUE_URL}
- ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=${ADMIN_FRONTEND_APPFLOWY_CLOUD_URL}
- ADMIN_FRONTEND_PATH_PREFIX=${ADMIN_FRONTEND_PATH_PREFIX:-/console}
ai:
restart: on-failure
image: appflowyinc/appflowy_ai:${APPFLOWY_AI_VERSION:-latest}
depends_on:
postgres:
condition: service_healthy
appflowy_cloud:
condition: service_started
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
environment:
# Core AI Configuration
- AI_SERVER_PORT=${AI_SERVER_PORT:-5001}
- OPENAI_API_KEY=${AI_OPENAI_API_KEY}
- DEFAULT_AI_MODEL=${DEFAULT_AI_MODEL:-gpt-4o-mini}
- DEFAULT_AI_COMPLETION_MODEL=${DEFAULT_AI_COMPLETION_MODEL:-gpt-4o-mini}
# Azure OpenAI (optional)
- AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY}
- AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT}
- AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION}
# Database and Cache
- AI_DATABASE_URL=${APPFLOWY_DATABASE_URL}
- AI_REDIS_URL=${APPFLOWY_REDIS_URI}
# File Storage for AI
- APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY}
- APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY}
- APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET:-appflowy}
- APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION:-us-east-1}
- AI_USE_MINIO=${APPFLOWY_S3_USE_MINIO:-true}
- AI_MINIO_URL=${APPFLOWY_S3_MINIO_URL}
# Integration
- AI_APPFLOWY_HOST=${APPFLOWY_BASE_URL}
- APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}
appflowy_worker:
restart: on-failure
image: appflowyinc/appflowy_worker:${APPFLOWY_WORKER_VERSION:-latest}
depends_on:
postgres:
condition: service_healthy
environment:
# Core Configuration
- RUST_LOG=${RUST_LOG:-info}
- APPFLOWY_ENVIRONMENT=production
- APPFLOWY_WORKER_REDIS_URL=${APPFLOWY_WORKER_REDIS_URL}
- APPFLOWY_WORKER_ENVIRONMENT=production
- APPFLOWY_WORKER_DATABASE_URL=${APPFLOWY_WORKER_DATABASE_URL}
- APPFLOWY_WORKER_DATABASE_NAME=${APPFLOWY_WORKER_DATABASE_NAME}
- APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=${APPFLOWY_WORKER_IMPORT_TICK_INTERVAL:-30}
# File Storage Configuration
- APPFLOWY_S3_USE_MINIO=${APPFLOWY_S3_USE_MINIO:-true}
- APPFLOWY_S3_MINIO_URL=${APPFLOWY_S3_MINIO_URL}
- APPFLOWY_S3_ACCESS_KEY=${APPFLOWY_S3_ACCESS_KEY}
- APPFLOWY_S3_SECRET_KEY=${APPFLOWY_S3_SECRET_KEY}
- APPFLOWY_S3_BUCKET=${APPFLOWY_S3_BUCKET:-appflowy}
- APPFLOWY_S3_REGION=${APPFLOWY_S3_REGION:-us-east-1}
# Email Configuration
- APPFLOWY_MAILER_SMTP_HOST=${APPFLOWY_MAILER_SMTP_HOST}
- APPFLOWY_MAILER_SMTP_PORT=${APPFLOWY_MAILER_SMTP_PORT}
- APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME}
- APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL}
- APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD}
- APPFLOWY_MAILER_SMTP_TLS_KIND=${APPFLOWY_MAILER_SMTP_TLS_KIND:-wrapper}
appflowy_web:
restart: on-failure
image: appflowyinc/appflowy_web:${APPFLOWY_WEB_VERSION:-latest}
depends_on:
- appflowy_cloud
environment:
- AF_BASE_URL=${APPFLOWY_BASE_URL}
- AF_GOTRUE_URL=${APPFLOWY_BASE_URL}/gotrue
- AF_WS_V2_URL=${APPFLOWY_WEBSOCKET_BASE_URL}
volumes:
postgres_data:
minio_data:

View File

@@ -0,0 +1,252 @@
[variables]
main_domain = "${domain}"
[config]
env = [
# =============================================================================
# 🌐 CORE DOMAIN CONFIGURATION
# =============================================================================
"FQDN=${main_domain}",
"SCHEME=https",
"WS_SCHEME=wss",
"APPFLOWY_BASE_URL=https://${main_domain}",
"APPFLOWY_WEBSOCKET_BASE_URL=wss://${main_domain}/ws/v2",
"APPFLOWY_WEB_URL=https://${main_domain}",
"API_EXTERNAL_URL=https://${main_domain}/gotrue",
"TZ=UTC",
# Admin Configuration
"GOTRUE_ADMIN_EMAIL=${email}",
"GOTRUE_ADMIN_PASSWORD=${password:16}",
"GOTRUE_DISABLE_SIGNUP=false",
# =============================================================================
# 🗄️ DATABASE & CACHE CONFIGURATION
# =============================================================================
"POSTGRES_HOST=postgres",
"POSTGRES_USER=appflowy",
"POSTGRES_PASSWORD=${password:64}",
"POSTGRES_PORT=5432",
"POSTGRES_DB=appflowy",
"REDIS_HOST=redis",
"REDIS_PORT=6379",
# =============================================================================
# 🔐 GOTRUE AUTHENTICATION CONFIGURATION
# =============================================================================
# JWT Configuration
"GOTRUE_JWT_SECRET=${password:64}",
"GOTRUE_JWT_EXP=7200",
"GOTRUE_JWT_ADMIN_GROUP_NAME=supabase_admin",
# Database Configuration
"GOTRUE_DB_DRIVER=postgres",
"GOTRUE_DATABASE_URL=postgres://appflowy:${POSTGRES_PASSWORD}@postgres:5432/appflowy?search_path=auth",
"PORT=9999",
# Site Configuration
"GOTRUE_SITE_URL=appflowy-flutter://",
"GOTRUE_URI_ALLOW_LIST=**",
# Email Configuration (SMTP - Configure for production)
"GOTRUE_SMTP_HOST=",
"GOTRUE_SMTP_PORT=465",
"GOTRUE_SMTP_USER=",
"GOTRUE_SMTP_PASS=",
"GOTRUE_SMTP_ADMIN_EMAIL=${GOTRUE_ADMIN_EMAIL}",
"GOTRUE_SMTP_MAX_FREQUENCY=1ns",
"GOTRUE_RATE_LIMIT_EMAIL_SENT=100",
"GOTRUE_MAILER_AUTOCONFIRM=true",
# Email Templates
"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_TEMPLATES_MAGIC_LINK=",
# OAuth Providers (Configure as needed)
"GOTRUE_EXTERNAL_GOOGLE_ENABLED=false",
"GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=",
"GOTRUE_EXTERNAL_GOOGLE_SECRET=",
"GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=https://${main_domain}/gotrue/callback",
"GOTRUE_EXTERNAL_GITHUB_ENABLED=false",
"GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=",
"GOTRUE_EXTERNAL_GITHUB_SECRET=",
"GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=https://${main_domain}/gotrue/callback",
"GOTRUE_EXTERNAL_DISCORD_ENABLED=false",
"GOTRUE_EXTERNAL_DISCORD_CLIENT_ID=",
"GOTRUE_EXTERNAL_DISCORD_SECRET=",
"GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI=https://${main_domain}/gotrue/callback",
# SAML Configuration
"GOTRUE_SAML_ENABLED=false",
"GOTRUE_SAML_PRIVATE_KEY=",
# =============================================================================
# ☁️ APPFLOWY CLOUD SERVICE CONFIGURATION
# =============================================================================
# Core Configuration
"RUST_LOG=info",
"APPFLOWY_ENVIRONMENT=production",
"APPFLOWY_DATABASE_URL=postgres://appflowy:${POSTGRES_PASSWORD}@postgres:5432/appflowy",
"APPFLOWY_REDIS_URI=redis://redis:6379",
# Authentication Integration
"APPFLOWY_GOTRUE_JWT_SECRET=${GOTRUE_JWT_SECRET}",
"APPFLOWY_GOTRUE_JWT_EXP=7200",
"APPFLOWY_GOTRUE_BASE_URL=http://gotrue:9999",
# Access Control and Performance
"APPFLOWY_ACCESS_CONTROL=true",
"APPFLOWY_DATABASE_MAX_CONNECTIONS=40",
"APPFLOWY_WEBSOCKET_MAILBOX_SIZE=6000",
# Email Configuration (SMTP)
"APPFLOWY_MAILER_SMTP_HOST=",
"APPFLOWY_MAILER_SMTP_PORT=465",
"APPFLOWY_MAILER_SMTP_USERNAME=",
"APPFLOWY_MAILER_SMTP_EMAIL=",
"APPFLOWY_MAILER_SMTP_PASSWORD=",
"APPFLOWY_MAILER_SMTP_TLS_KIND=wrapper",
# =============================================================================
# 💾 FILE STORAGE CONFIGURATION (MinIO/S3)
# =============================================================================
# MinIO Configuration
"MINIO_HOST=minio",
"MINIO_PORT=9000",
"APPFLOWY_S3_USE_MINIO=true",
"APPFLOWY_S3_CREATE_BUCKET=true",
"APPFLOWY_S3_MINIO_URL=http://minio:9000",
# Storage Credentials
"APPFLOWY_S3_ACCESS_KEY=${password:16}",
"APPFLOWY_S3_SECRET_KEY=${password:32}",
# Storage Configuration
"APPFLOWY_S3_BUCKET=appflowy",
"APPFLOWY_S3_REGION=us-east-1",
"APPFLOWY_S3_PRESIGNED_URL_ENDPOINT=https://${main_domain}/minio-api",
# AWS S3 Configuration (Alternative to MinIO)
# "APPFLOWY_S3_USE_MINIO=false",
# "APPFLOWY_S3_REGION=us-east-1",
# =============================================================================
# 🎛️ ADMIN FRONTEND CONFIGURATION
# =============================================================================
"ADMIN_FRONTEND_REDIS_URL=redis://redis:6379",
"ADMIN_FRONTEND_GOTRUE_URL=http://gotrue:9999",
"ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=http://appflowy_cloud:8000",
"ADMIN_FRONTEND_PATH_PREFIX=/console",
# =============================================================================
# 🤖 AI FEATURES CONFIGURATION (Optional)
# =============================================================================
# OpenAI Configuration
"AI_OPENAI_API_KEY=",
"DEFAULT_AI_MODEL=gpt-4o-mini",
"DEFAULT_AI_COMPLETION_MODEL=gpt-4o-mini",
# Azure OpenAI (Alternative)
"AZURE_OPENAI_API_KEY=",
"AZURE_OPENAI_ENDPOINT=",
"AZURE_OPENAI_API_VERSION=",
# AI Service Configuration
"AI_SERVER_HOST=ai",
"AI_SERVER_PORT=5001",
"AI_DATABASE_URL=postgresql+psycopg://appflowy:${POSTGRES_PASSWORD}@postgres:5432/appflowy",
"AI_REDIS_URL=redis://redis:6379",
"AI_USE_MINIO=true",
"AI_MINIO_URL=http://minio:9000",
"AI_APPFLOWY_HOST=https://${main_domain}",
# Embedding Configuration
"APPFLOWY_EMBEDDING_CHUNK_SIZE=2000",
"APPFLOWY_EMBEDDING_CHUNK_OVERLAP=200",
# =============================================================================
# ⚙️ WORKER SERVICES CONFIGURATION
# =============================================================================
# AppFlowy Worker
"APPFLOWY_WORKER_REDIS_URL=redis://redis:6379",
"APPFLOWY_WORKER_ENVIRONMENT=production",
"APPFLOWY_WORKER_DATABASE_URL=postgres://appflowy:${POSTGRES_PASSWORD}@postgres:5432/appflowy",
"APPFLOWY_WORKER_DATABASE_NAME=appflowy",
"APPFLOWY_WORKER_IMPORT_TICK_INTERVAL=30",
# Indexer Configuration
"APPFLOWY_INDEXER_ENABLED=true",
"APPFLOWY_INDEXER_DATABASE_URL=postgres://appflowy:${POSTGRES_PASSWORD}@postgres:5432/appflowy",
"APPFLOWY_INDEXER_REDIS_URL=redis://redis:6379",
"APPFLOWY_INDEXER_EMBEDDING_BUFFER_SIZE=5000",
# Collaboration Service
"APPFLOWY_COLLABORATE_MULTI_THREAD=false",
"APPFLOWY_COLLABORATE_REMOVE_BATCH_SIZE=100",
# =============================================================================
# 🌐 NGINX CONFIGURATION
# =============================================================================
"NGINX_PORT=80",
"NGINX_TLS_PORT=443",
# =============================================================================
# 🛠️ VERSION TAGS (Easily Configurable)
# =============================================================================
"GOTRUE_VERSION=latest",
"APPFLOWY_CLOUD_VERSION=latest",
"APPFLOWY_ADMIN_FRONTEND_VERSION=latest",
"APPFLOWY_AI_VERSION=latest",
"APPFLOWY_WORKER_VERSION=latest",
"APPFLOWY_WEB_VERSION=latest",
]
mounts = [
"postgres_data:/var/lib/postgresql/data",
"minio_data:/data",
"letsencrypt:/etc/letsencrypt"
]
# =============================================================================
# 🌐 DOMAIN ROUTING CONFIGURATION
# =============================================================================
[[config.domains]]
serviceName = "appflowy_web"
port = 80
host = "${main_domain}"
[[config.domains]]
serviceName = "appflowy_cloud"
port = 8000
host = "${main_domain}"
path = "/api"
[[config.domains]]
serviceName = "admin_frontend"
port = 3000
host = "${main_domain}"
path = "/console"
[[config.domains]]
serviceName = "gotrue"
port = 9999
host = "${main_domain}"
path = "/gotrue"
[[config.domains]]
serviceName = "minio"
port = 9001
host = "${main_domain}"
path = "/minio"
[[config.domains]]
serviceName = "minio"
port = 9000
host = "${main_domain}"
path = "/minio-api"

View File

@@ -203,6 +203,25 @@
"chatbot"
]
},
{
"id": "appflowy",
"name": "App Flowy",
"version": "0.9.3",
"description": "AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations.",
"links": {
"github": "https://github.com/AppFlowy-IO/AppFlowy",
"website": "https://appflowy.io/",
"docs": "https://docs.appflowy.io/docs"
},
"logo": "appflowy.png",
"tags": [
"productivity",
"self-hosted",
"notes",
"knowledge-base",
"notion-alternative"
]
},
{
"id": "apprise-api",
"name": "Apprise API",