- templateVersion: 1.0.0 defaultVersion: 0.56.2 type: trilium name: Trilium Notes services: $$id: image: zadam/trilium:$$core_version environment: [] volumes: - $$id-trilium:/home/node/trilium-data ports: - '8080' variables: [] documentation: https://hub.docker.com/r/zadam/trilium - templateVersion: 1.0.0 defaultVersion: 1.9.2 type: uptimekuma name: UptimeKuma services: $$id: image: louislam/uptime-kuma:$$core_version environment: [] volumes: - $$id-uptimekuma:/app/data ports: - '3001' variables: [] documentation: https://hub.docker.com/r/louislam/uptime-kuma - templateVersion: 1.0.0 defaultVersion: 5.8 type: languagetool name: LanguageTool services: $$id: image: silviof/docker-languagetool:$$core_version environment: [] volumes: - $$id-ngrams:/ngrams ports: - '8010' variables: [] documentation: https://hub.docker.com/r/silviof/docker-languagetool - templateVersion: 1.0.0 defaultVersion: 1.26.0 type: vaultwarden name: VaultWarden services: $$id: image: vaultwarden/server:$$core_version environment: [] volumes: - $$id-data:/data ports: - '80' variables: [] documentation: https://hub.docker.com/r/vaultwarden/server - templateVersion: 1.0.0 defaultVersion: 9.2.3 type: grafana name: Grafana description: >- Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. services: $$id: image: grafana/grafana:$$core_version environment: [] volumes: - $$id-config:/etc/grafana - $$id-grafana:/var/lib/grafana ports: - '3000' variables: [] documentation: https://hub.docker.com/r/grafana/grafana - templateVersion: 1.0.0 defaultVersion: 1.0.3 type: appwrite name: Appwrite documentation: https://appwrite.io/docs description: Secure Backend Server for Web, Mobile & Flutter Developers. services: "$$id": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_WORKER_PER_CORE=$$config__app_worker_per_core - _APP_LOCALE=$$config__app_locale - _APP_CONSOLE_WHITELIST_ROOT=$$config__app_console_whitelist_root - _APP_CONSOLE_WHITELIST_EMAILS=$$config__app_console_whitelist_emails - _APP_CONSOLE_WHITELIST_IPS=$$config__app_console_whitelist_ips - _APP_SYSTEM_EMAIL_NAME=$$config__app_system_email_name - _APP_SYSTEM_EMAIL_ADDRESS=$$config__app_system_email_address - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address - _APP_SYSTEM_RESPONSE_FORMAT=$$config__app_system_response_format - _APP_OPTIONS_ABUSE=$$config__app_options_abuse - _APP_OPTIONS_FORCE_HTTPS=$$config__app_options_force_https - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_DOMAIN=$$config__app_domain - _APP_DOMAIN_TARGET=$$config__app_domain_target - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_SMTP_HOST=$$config__app_smtp_host - _APP_SMTP_PORT=$$config__app_smtp_port - _APP_SMTP_SECURE=$$config__app_smtp_secure - _APP_SMTP_USERNAME=$$config__app_smtp_username - _APP_SMTP_PASSWORD=$$secret__app_smtp_password - _APP_USAGE_STATS=$$config__app_usage_stats - _APP_INFLUXDB_HOST=$$config__app_influxdb_host - _APP_INFLUXDB_PORT=$$config__app_influxdb_port - _APP_STORAGE_LIMIT=$$config__app_storage_limit - _APP_STORAGE_PREVIEW_LIMIT=$$config__app_storage_preview_limit - _APP_STORAGE_ANTIVIRUS=$$config__app_storage_antivirus_enabled - _APP_STORAGE_ANTIVIRUS_HOST=$$config__app_storage_antivirus_host - _APP_STORAGE_ANTIVIRUS_PORT=$$config__app_storage_antivirus_port - _APP_STORAGE_DEVICE=$$config__app_storage_device - _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key - _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret - _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region - _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket - _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key - _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret - _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region - _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket - _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key - _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret - _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region - _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket - _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key - _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret - _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region - _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket - _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key - _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret - _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region - _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket - _APP_FUNCTIONS_SIZE_LIMIT=$$config__app_functions_size_limit - _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout - _APP_FUNCTIONS_BUILD_TIMEOUT=$$config__app_functions_build_timeout - _APP_FUNCTIONS_CONTAINERS=$$config__app_functions_containers - _APP_FUNCTIONS_CPUS=$$config__app_functions_cpus - _APP_FUNCTIONS_MEMORY=$$config__app_functions_memory_allocated - _APP_FUNCTIONS_MEMORY_SWAP=$$config__app_functions_memory_swap - _APP_FUNCTIONS_RUNTIMES=$$config__app_functions_runtimes - _APP_EXECUTOR_SECRET=$$secret__app_executor_secret - _APP_EXECUTOR_HOST=$$config__app_executor_host - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - _APP_STATSD_HOST=$$config__app_statsd_host - _APP_STATSD_PORT=$$config__app_statsd_port - _APP_MAINTENANCE_INTERVAL=$$config__app_maintenance_interval - _APP_MAINTENANCE_RETENTION_EXECUTION=$$config__app_maintenance_retention_execution - _APP_MAINTENANCE_RETENTION_CACHE=$$config__app_maintenance_retention_cache - _APP_MAINTENANCE_RETENTION_ABUSE=$$config__app_maintenance_retention_abuse - _APP_MAINTENANCE_RETENTION_AUDIT=$$config__app_maintenance_retention_audit - _APP_SMS_PROVIDER=$$config__app_sms_provider - _APP_SMS_FROM=$$config__app_sms_from - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-uploads:/storage/uploads" - "$$id-cache:/storage/cache" - "$$id-config:/storage/config" - "$$id-certificates:/storage/certificates" - "$$id-functions:/storage/functions" ports: - '80' proxy: - port: '80' "$$id-executor": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout - _APP_FUNCTIONS_BUILD_TIMEOUT=$$config__app_functions_build_timeout - _APP_FUNCTIONS_CONTAINERS=$$config__app_functions_containers - _APP_FUNCTIONS_RUNTIMES=$$config__app_functions_runtimes - _APP_FUNCTIONS_CPUS=$$config__app_functions_cpus - _APP_FUNCTIONS_MEMORY=$$config__app_functions_memory_allocated - _APP_FUNCTIONS_MEMORY_SWAP=$$config__app_functions_memory_swap - _APP_FUNCTIONS_INACTIVE_THRESHOLD=$$config__app_functions_inactive_threshold - _APP_EXECUTOR_SECRET=$$secret__app_executor_secret - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - _APP_STORAGE_DEVICE=$$config__app_storage_device - _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key - _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret - _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region - _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket - _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key - _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret - _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region - _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket - _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key - _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret - _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region - _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket - _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key - _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret - _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region - _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket - _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key - _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret - _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region - _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket - DOCKERHUB_PULL_USERNAME=$$config_dockerhub_pull_username - DOCKERHUB_PULL_PASSWORD=$$secret_dockerhub_pull_password - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-functions:/storage/functions" - "$$id-builds:/storage/builds" - "/var/run/docker.sock:/var/run/docker.sock" entrypoint: executor "$$id-influxdb": image: appwrite/influxdb:1.5.0 environment: [] volumes: - "$$id-influxdb:/var/lib/influxdb" "$$id-maintenance": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_DOMAIN=$$config__app_domain - _APP_DOMAIN_TARGET=$$config__app_domain_target - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_MAINTENANCE_INTERVAL=$$config__app_maintenance_interval - _APP_MAINTENANCE_RETENTION_EXECUTION=$$config__app_maintenance_retention_execution - _APP_MAINTENANCE_RETENTION_CACHE=$$config__app_maintenance_retention_cache - _APP_MAINTENANCE_RETENTION_ABUSE=$$config__app_maintenance_retention_abuse - _APP_MAINTENANCE_RETENTION_AUDIT=$$config__app_maintenance_retention_audit - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: maintenance "$$id-mariadb": image: mariadb:10.7 command: "--innodb-flush-method fsync" environment: - MARIADB_ROOT_PASSWORD=$$secret__app_db_root_pass - MARIADB_DATABASE=$$config__app_db_schema - MARIADB_USER=$$config__app_db_user - MARIADB_PASSWORD=$$secret__app_db_pass - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-mariadb:/var/lib/mysql" "$$id-realtime": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_WORKER_PER_CORE=$$config__app_worker_per_core - _APP_OPTIONS_ABUSE=$$config__app_options_abuse - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_USAGE_STATS=$$config__app_usage_stats - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: realtime proxy: - port: '80' pathPrefix: "/v1/realtime" "$$id-redis": image: redis:7.0.4-alpine command: "--maxmemory 512mb --maxmemory-policy allkeys-lru --maxmemory-samples 5" environment: [] volumes: - "$$id-redis:/data" "$$id-schedule": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: schedule "$$id-telegraf": image: appwrite/telegraf:1.4.0 environment: - _APP_INFLUXDB_HOST=$$config__app_influxdb_host - _APP_INFLUXDB_PORT=$$config__app_influxdb_port - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-influxdb:/var/lib/influxdb" "$$id-usage-database": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_INFLUXDB_HOST=$$config__app_influxdb_host - _APP_INFLUXDB_PORT=$$config__app_influxdb_port - _APP_USAGE_TIMESERIES_INTERVAL=$$config__app_usage_timeseries_interval - _APP_USAGE_DATABASE_INTERVAL=$$config__app_usage_database_interval - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: usage --type database "$$id-usage": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_INFLUXDB_HOST=$$config__app_influxdb_host - _APP_INFLUXDB_PORT=$$config__app_influxdb_port - _APP_USAGE_TIMESERIES_INTERVAL=$$config__app_usage_timeseries_interval - _APP_USAGE_DATABASE_INTERVAL=$$config__app_usage_database_interval - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: usage --type timeseries "$$id-worker-audits": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-audits "$$id-worker-builds": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_EXECUTOR_SECRET=$$secret__app_executor_secret - _APP_EXECUTOR_HOST=$$config__app_executor_host - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-builds "$$id-worker-certificates": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_DOMAIN=$$config__app_domain - _APP_DOMAIN_TARGET=$$config__app_domain_target - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-config:/storage/config" - "$$id-certificates:/storage/certificates" entrypoint: worker-certificates "$$id-worker-databases": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-databases "$$id-worker-deletes": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_STORAGE_DEVICE=$$config__app_storage_device - _APP_STORAGE_S3_ACCESS_KEY=$$secret__app_storage_s3_access_key - _APP_STORAGE_S3_SECRET=$$secret__app_storage_s3_secret - _APP_STORAGE_S3_REGION=$$config__app_storage_s3_region - _APP_STORAGE_S3_BUCKET=$$config__app_storage_s3_bucket - _APP_STORAGE_DO_SPACES_ACCESS_KEY=$$secret__app_storage_do_spaces_access_key - _APP_STORAGE_DO_SPACES_SECRET=$$secret__app_storage_do_spaces_secret - _APP_STORAGE_DO_SPACES_REGION=$$config__app_storage_do_spaces_region - _APP_STORAGE_DO_SPACES_BUCKET=$$config__app_storage_do_spaces_bucket - _APP_STORAGE_BACKBLAZE_ACCESS_KEY=$$secret__app_storage_backblaze_access_key - _APP_STORAGE_BACKBLAZE_SECRET=$$secret__app_storage_backblaze_secret - _APP_STORAGE_BACKBLAZE_REGION=$$config__app_storage_backblaze_region - _APP_STORAGE_BACKBLAZE_BUCKET=$$config__app_storage_backblaze_bucket - _APP_STORAGE_LINODE_ACCESS_KEY=$$secret__app_storage_linode_access_key - _APP_STORAGE_LINODE_SECRET=$$secret__app_storage_linode_secret - _APP_STORAGE_LINODE_REGION=$$config__app_storage_linode_region - _APP_STORAGE_LINODE_BUCKET=$$config__app_storage_linode_bucket - _APP_STORAGE_WASABI_ACCESS_KEY=$$secret__app_storage_wasabi_access_key - _APP_STORAGE_WASABI_SECRET=$$secret__app_storage_wasabi_secret - _APP_STORAGE_WASABI_REGION=$$config__app_storage_wasabi_region - _APP_STORAGE_WASABI_BUCKET=$$config__app_storage_wasabi_bucket - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - _APP_EXECUTOR_SECRET=$$secret__app_executor_secret - _APP_EXECUTOR_HOST=$$config__app_executor_host - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: - "$$id-uploads:/storage/uploads" - "$$id-cache:/storage/cache" - "$$id-functions:/storage/functions" - "$$id-builds:/storage/builds" - "$$id-certificates:/storage/certificates" entrypoint: worker-deletes "$$id-worker-functions": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_DB_HOST=$$config__app_db_host - _APP_DB_PORT=$$config__app_db_port - _APP_DB_SCHEMA=$$config__app_db_schema - _APP_DB_USER=$$config__app_db_user - _APP_DB_PASS=$$secret__app_db_pass - _APP_FUNCTIONS_TIMEOUT=$$config__app_functions_timeout - _APP_EXECUTOR_SECRET=$$secret__app_executor_secret - _APP_EXECUTOR_HOST=$$config__app_executor_host - _APP_USAGE_STATS=$$config__app_usage_stats - DOCKERHUB_PULL_USERNAME=$$config_dockerhub_pull_username - DOCKERHUB_PULL_PASSWORD=$$secret_dockerhub_pull_password - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-functions "$$id-worker-mails": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_SYSTEM_EMAIL_NAME=$$config__app_system_email_name - _APP_SYSTEM_EMAIL_ADDRESS=$$config__app_system_email_address - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_SMTP_HOST=$$config__app_smtp_host - _APP_SMTP_PORT=$$config__app_smtp_port - _APP_SMTP_SECURE=$$config__app_smtp_secure - _APP_SMTP_USERNAME=$$config__app_smtp_username - _APP_SMTP_PASSWORD=$$secret__app_smtp_password - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-mails "$$id-worker-messaging": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_SMS_PROVIDER=$$config__app_sms_provider - _APP_SMS_FROM=$$config__app_sms_from - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-messaging "$$id-worker-webhooks": image: appwrite/appwrite:$$core_version environment: - _APP_ENV=$$config__app_env - _APP_OPENSSL_KEY_V1=$$secret__app_openssl_key_v1 - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=$$config__app_system_security_email_address - _APP_REDIS_HOST=$$config__app_redis_host - _APP_REDIS_PORT=$$config__app_redis_port - _APP_REDIS_USER=$$config__app_redis_user - _APP_REDIS_PASS=$$secret__app_redis_pass - _APP_LOGGING_PROVIDER=$$config__app_logging_provider - _APP_LOGGING_CONFIG=$$config__app_logging_config - OPEN_RUNTIMES_NETWORK=$$config_open_runtimes_network volumes: [] entrypoint: worker-webhooks variables: - id: "$$config__app_influxdb_host" name: _APP_INFLUXDB_HOST label: InfluxDB | _APP_INFLUXDB_HOST defaultValue: "$$id-influxdb" description: '' - id: "$$config__app_influxdb_port" name: _APP_INFLUXDB_PORT label: InfluxDB | _APP_INFLUXDB_PORT defaultValue: '8086' description: InfluxDB server TCP port. - id: "$$config__app_env" name: _APP_ENV label: General | _APP_ENV defaultValue: production description: Set your server running environment. - id: "$$config__app_worker_per_core" name: _APP_WORKER_PER_CORE label: General | _APP_WORKER_PER_CORE defaultValue: '6' description: Internal Worker per core for the API, Realtime and Executor containers. Can be configured to optimize performance. - id: "$$config__app_locale" name: _APP_LOCALE label: General | _APP_LOCALE defaultValue: en description: Set your Appwrite's locale. By default, the locale is set to 'en'. - id: "$$config__app_console_whitelist_root" name: _APP_CONSOLE_WHITELIST_ROOT label: General | _APP_CONSOLE_WHITELIST_ROOT defaultValue: enabled description: This option allows you to disable the creation of new users on the Appwrite console. When enabled only 1 user will be able to use the registration form. New users can be added by inviting them to your project. By default this option is enabled. - id: "$$config__app_console_whitelist_emails" name: _APP_CONSOLE_WHITELIST_EMAILS label: General | _APP_CONSOLE_WHITELIST_EMAILS defaultValue: '' description: This option allows you to limit creation of new users on the Appwrite console. This option is very useful for small teams or sole developers. To enable it, pass a list of allowed email addresses separated by a comma. - id: "$$config__app_console_whitelist_ips" name: _APP_CONSOLE_WHITELIST_IPS label: General | _APP_CONSOLE_WHITELIST_IPS defaultValue: '' description: This last option allows you to limit creation of users in Appwrite console for users sharing the same set of IP addresses. This option is very useful for team working with a VPN service or a company IP.\n\nTo enable/activate this option, pass a list of allowed IP addresses separated by a comma. - id: "$$config__app_system_email_name" name: _APP_SYSTEM_EMAIL_NAME label: General | _APP_SYSTEM_EMAIL_NAME defaultValue: Appwrite description: This is the sender name value that will appear on email messages sent to developers from the Appwrite console. You can use url encoded strings for spaces and special chars. - id: "$$config__app_system_email_address" name: _APP_SYSTEM_EMAIL_ADDRESS label: General | _APP_SYSTEM_EMAIL_ADDRESS defaultValue: team@appwrite.io description: This is the sender email address that will appear on email messages sent to developers from the Appwrite console. You should choose an email address that is allowed to be used from your SMTP server to avoid the server email ending in the users' SPAM folders. - id: "$$config__app_system_security_email_address" name: _APP_SYSTEM_SECURITY_EMAIL_ADDRESS label: General | _APP_SYSTEM_SECURITY_EMAIL_ADDRESS defaultValue: certs@appwrite.io description: This is the email address used to issue SSL certificates for custom domains or the user agent in your webhooks payload. - id: "$$config__app_system_response_format" name: _APP_SYSTEM_RESPONSE_FORMAT label: General | _APP_SYSTEM_RESPONSE_FORMAT defaultValue: '' description: Use this environment variable to set the default Appwrite HTTP response format to support an older version of Appwrite. This option is useful to overcome breaking changes between versions. You can also use the X-Appwrite-Response-Format HTTP request header to overwrite the response for a specific request. This variable accepts any valid Appwrite version. To use the current version format, leave the value of the variable empty. - id: "$$config__app_options_abuse" name: _APP_OPTIONS_ABUSE label: General | _APP_OPTIONS_ABUSE defaultValue: enabled description: Allows you to disable abuse checks and API rate limiting. By default, set to 'enabled'. To cancel the abuse checking, set to 'disabled'. It is not recommended to disable this check-in a production environment. - id: "$$config__app_options_force_https" name: _APP_OPTIONS_FORCE_HTTPS label: General | _APP_OPTIONS_FORCE_HTTPS defaultValue: disabled description: Allows you to force HTTPS connection to your API. This feature redirects any HTTP call to HTTPS and adds the 'Strict-Transport-Security' header to all HTTP responses. - id: "$$secret__app_openssl_key_v1" name: _APP_OPENSSL_KEY_V1 label: General | _APP_OPENSSL_KEY_V1 defaultValue: "$$generate_hex(256)" description: This is your server private secret key that is used to encrypt all sensitive data on your server. Appwrite server encrypts all secret data on your server like webhooks, HTTP passwords, user sessions, and storage files. Keep it a secret and have a backup for it. - id: "$$config__app_domain" name: _APP_DOMAIN label: General | _APP_DOMAIN defaultValue: $$generate_domain description: Your Appwrite domain address. When setting a public suffix domain, Appwrite will attempt to issue a valid SSL certificate automatically. When used with a dev domain, Appwrite will assign a self-signed SSL certificate. The default value is 'localhost'. - id: "$$config__app_domain_target" name: _APP_DOMAIN_TARGET label: General | _APP_DOMAIN_TARGET defaultValue: $$generate_fqdn description: A DNS A record hostname to serve as a CNAME target for your Appwrite custom domains. You can use the same value as used for the Appwrite '_APP_DOMAIN' variable. The default value is 'localhost'. - id: "$$config__app_redis_host" name: _APP_REDIS_HOST label: Redis | _APP_REDIS_HOST defaultValue: "$$id-redis" description: '' - id: "$$config__app_redis_port" name: _APP_REDIS_PORT label: Redis | _APP_REDIS_PORT defaultValue: '6379' description: Redis server TCP port. - id: "$$config__app_redis_user" name: _APP_REDIS_USER label: Redis | _APP_REDIS_USER defaultValue: '' description: Redis server user. This is an optional variable. Default value is an empty string. - id: "$$secret__app_redis_pass" name: _APP_REDIS_PASS label: Redis | _APP_REDIS_PASS defaultValue: '' description: Redis server password. This is an optional variable. Default value is an empty string. - id: "$$config__app_db_host" name: _APP_DB_HOST label: MariaDB | _APP_DB_HOST defaultValue: "$$id-mariadb" description: '' - id: "$$config__app_db_port" name: _APP_DB_PORT label: MariaDB | _APP_DB_PORT defaultValue: '3306' description: MariaDB server TCP port. - id: "$$config__app_db_schema" name: _APP_DB_SCHEMA label: MariaDB | _APP_DB_SCHEMA defaultValue: appwrite description: MariaDB server database schema. - id: "$$config__app_db_user" name: _APP_DB_USER label: MariaDB | _APP_DB_USER defaultValue: user description: MariaDB server user name. - id: "$$secret__app_db_pass" name: _APP_DB_PASS label: MariaDB | _APP_DB_PASS defaultValue: "$$generate_hex(16)" description: MariaDB server user password. - id: "$$config__app_smtp_host" name: _APP_SMTP_HOST label: SMTP | _APP_SMTP_HOST defaultValue: '' description: SMTP server host name address. Use an empty string to disable all mail sending from the server. The default value for this variable is an empty string. - id: "$$config__app_smtp_port" name: _APP_SMTP_PORT label: SMTP | _APP_SMTP_PORT defaultValue: '' description: SMTP server TCP port. Empty by default. - id: "$$config__app_smtp_secure" name: _APP_SMTP_SECURE label: SMTP | _APP_SMTP_SECURE defaultValue: '' description: SMTP secure connection protocol. Empty by default, change to 'tls' if running on a secure connection. - id: "$$config__app_smtp_username" name: _APP_SMTP_USERNAME label: SMTP | _APP_SMTP_USERNAME defaultValue: '' description: SMTP server user name. Empty by default. - id: "$$secret__app_smtp_password" name: _APP_SMTP_PASSWORD label: SMTP | _APP_SMTP_PASSWORD defaultValue: '' description: SMTP server user password. Empty by default. - id: "$$config__app_usage_stats" name: _APP_USAGE_STATS label: General | _APP_USAGE_STATS defaultValue: enabled description: This variable allows you to disable the collection and displaying of usage stats. This value is set to 'enabled' by default, to disable the usage stats set the value to 'disabled'. When disabled, it's recommended to turn off the Worker Usage, Influxdb and Telegraf containers for better resource usage. - id: "$$config__app_storage_limit" name: _APP_STORAGE_LIMIT label: Storage | _APP_STORAGE_LIMIT defaultValue: '30000000' description: Maximum file size allowed for file upload. The default value is 30MB. You should pass your size limit value in bytes. - id: "$$config__app_storage_preview_limit" name: _APP_STORAGE_PREVIEW_LIMIT label: Storage | _APP_STORAGE_PREVIEW_LIMIT defaultValue: '20000000' description: Maximum file size allowed for file image preview. The default value is 20MB. You should pass your size limit value in bytes. - id: "$$config__app_storage_antivirus_enabled" name: _APP_STORAGE_ANTIVIRUS label: Storage | _APP_STORAGE_ANTIVIRUS defaultValue: disabled description: This variable allows you to disable the internal anti-virus scans. This value is set to 'disabled' by default, to enable the scans set the value to 'enabled'. Before enabling, you must add the ClamAV service and depend on it on main Appwrite service. - id: "$$config__app_storage_antivirus_host" name: _APP_STORAGE_ANTIVIRUS_HOST label: Storage | _APP_STORAGE_ANTIVIRUS_HOST defaultValue: clamav description: ClamAV server host name address. - id: "$$config__app_storage_antivirus_port" name: _APP_STORAGE_ANTIVIRUS_PORT label: Storage | _APP_STORAGE_ANTIVIRUS_PORT defaultValue: '3310' description: ClamAV server TCP port. - id: "$$config__app_storage_device" name: _APP_STORAGE_DEVICE label: Storage | _APP_STORAGE_DEVICE defaultValue: Local description: Select default storage device. The default value is 'Local'. List of supported adapters are 'Local', 'S3', 'DOSpaces', 'Backblaze', 'Linode' and 'Wasabi'. - id: "$$secret__app_storage_s3_access_key" name: _APP_STORAGE_S3_ACCESS_KEY label: Storage | _APP_STORAGE_S3_ACCESS_KEY defaultValue: '' description: AWS S3 storage access key. Required when the storage adapter is set to S3. You can get your access key from your AWS console. - id: "$$secret__app_storage_s3_secret" name: _APP_STORAGE_S3_SECRET label: Storage | _APP_STORAGE_S3_SECRET defaultValue: '' description: AWS S3 storage secret key. Required when the storage adapter is set to S3. You can get your secret key from your AWS console. - id: "$$config__app_storage_s3_region" name: _APP_STORAGE_S3_REGION label: Storage | _APP_STORAGE_S3_REGION defaultValue: us-east-1 description: AWS S3 storage region. Required when storage adapter is set to S3. You can find your region info for your bucket from AWS console. - id: "$$config__app_storage_s3_bucket" name: _APP_STORAGE_S3_BUCKET label: Storage | _APP_STORAGE_S3_BUCKET defaultValue: '' description: AWS S3 storage bucket. Required when storage adapter is set to S3. You can create buckets in your AWS console. - id: "$$secret__app_storage_do_spaces_access_key" name: _APP_STORAGE_DO_SPACES_ACCESS_KEY label: Storage | _APP_STORAGE_DO_SPACES_ACCESS_KEY defaultValue: '' description: DigitalOcean spaces access key. Required when the storage adapter is set to DOSpaces. You can get your access key from your DigitalOcean console. - id: "$$secret__app_storage_do_spaces_secret" name: _APP_STORAGE_DO_SPACES_SECRET label: Storage | _APP_STORAGE_DO_SPACES_SECRET defaultValue: '' description: DigitalOcean spaces secret key. Required when the storage adapter is set to DOSpaces. You can get your secret key from your DigitalOcean console. - id: "$$config__app_storage_do_spaces_region" name: _APP_STORAGE_DO_SPACES_REGION label: Storage | _APP_STORAGE_DO_SPACES_REGION defaultValue: us-east-1 description: DigitalOcean spaces region. Required when storage adapter is set to DOSpaces. You can find your region info for your space from DigitalOcean console. - id: "$$config__app_storage_do_spaces_bucket" name: _APP_STORAGE_DO_SPACES_BUCKET label: Storage | _APP_STORAGE_DO_SPACES_BUCKET defaultValue: '' description: DigitalOcean spaces bucket. Required when storage adapter is set to DOSpaces. You can create spaces in your DigitalOcean console. - id: "$$secret__app_storage_backblaze_access_key" name: _APP_STORAGE_BACKBLAZE_ACCESS_KEY label: Storage | _APP_STORAGE_BACKBLAZE_ACCESS_KEY defaultValue: '' description: Backblaze access key. Required when the storage adapter is set to Backblaze. Your Backblaze keyID will be your access key. You can get your keyID from your Backblaze console. - id: "$$secret__app_storage_backblaze_secret" name: _APP_STORAGE_BACKBLAZE_SECRET label: Storage | _APP_STORAGE_BACKBLAZE_SECRET defaultValue: '' description: Backblaze secret key. Required when the storage adapter is set to Backblaze. Your Backblaze applicationKey will be your secret key. You can get your applicationKey from your Backblaze console. - id: "$$config__app_storage_backblaze_region" name: _APP_STORAGE_BACKBLAZE_REGION label: Storage | _APP_STORAGE_BACKBLAZE_REGION defaultValue: us-west-004 description: Backblaze region. Required when storage adapter is set to Backblaze. You can find your region info from your Backblaze console. - id: "$$config__app_storage_backblaze_bucket" name: _APP_STORAGE_BACKBLAZE_BUCKET label: Storage | _APP_STORAGE_BACKBLAZE_BUCKET defaultValue: '' description: Backblaze bucket. Required when storage adapter is set to Backblaze. You can create your bucket from your Backblaze console. - id: "$$secret__app_storage_linode_access_key" name: _APP_STORAGE_LINODE_ACCESS_KEY label: Storage | _APP_STORAGE_LINODE_ACCESS_KEY defaultValue: '' description: Linode object storage access key. Required when the storage adapter is set to Linode. You can get your access key from your Linode console. - id: "$$secret__app_storage_linode_secret" name: _APP_STORAGE_LINODE_SECRET label: Storage | _APP_STORAGE_LINODE_SECRET defaultValue: '' description: Linode object storage secret key. Required when the storage adapter is set to Linode. You can get your secret key from your Linode console. - id: "$$config__app_storage_linode_region" name: _APP_STORAGE_LINODE_REGION label: Storage | _APP_STORAGE_LINODE_REGION defaultValue: eu-central-1 description: Linode object storage region. Required when storage adapter is set to Linode. You can find your region info from your Linode console. - id: "$$config__app_storage_linode_bucket" name: _APP_STORAGE_LINODE_BUCKET label: Storage | _APP_STORAGE_LINODE_BUCKET defaultValue: '' description: Linode object storage bucket. Required when storage adapter is set to Linode. You can create buckets in your Linode console. - id: "$$secret__app_storage_wasabi_access_key" name: _APP_STORAGE_WASABI_ACCESS_KEY label: Storage | _APP_STORAGE_WASABI_ACCESS_KEY defaultValue: '' description: Wasabi access key. Required when the storage adapter is set to Wasabi. You can get your access key from your Wasabi console. - id: "$$secret__app_storage_wasabi_secret" name: _APP_STORAGE_WASABI_SECRET label: Storage | _APP_STORAGE_WASABI_SECRET defaultValue: '' description: Wasabi secret key. Required when the storage adapter is set to Wasabi. You can get your secret key from your Wasabi console. - id: "$$config__app_storage_wasabi_region" name: _APP_STORAGE_WASABI_REGION label: Storage | _APP_STORAGE_WASABI_REGION defaultValue: eu-central-1 description: Wasabi region. Required when storage adapter is set to Wasabi. You can find your region info from your Wasabi console. - id: "$$config__app_storage_wasabi_bucket" name: _APP_STORAGE_WASABI_BUCKET label: Storage | _APP_STORAGE_WASABI_BUCKET defaultValue: '' description: Wasabi bucket. Required when storage adapter is set to Wasabi. You can create buckets in your Wasabi console. - id: "$$config__app_functions_size_limit" name: _APP_FUNCTIONS_SIZE_LIMIT label: Functions | _APP_FUNCTIONS_SIZE_LIMIT defaultValue: '30000000' description: The maximum size deployment in bytes. The default value is 30MB. - id: "$$config__app_functions_timeout" name: _APP_FUNCTIONS_TIMEOUT label: Functions | _APP_FUNCTIONS_TIMEOUT defaultValue: '900' description: The maximum number of seconds allowed as a timeout value when creating a new function. The default value is 900 seconds. - id: "$$config__app_functions_build_timeout" name: _APP_FUNCTIONS_BUILD_TIMEOUT label: Functions | _APP_FUNCTIONS_BUILD_TIMEOUT defaultValue: '900' description: The maximum number of seconds allowed as a timeout value when building a new function. The default value is 900 seconds. - id: "$$config__app_functions_containers" name: _APP_FUNCTIONS_CONTAINERS label: Functions | _APP_FUNCTIONS_CONTAINERS defaultValue: '10' description: The maximum number of containers Appwrite is allowed to keep alive in the background for function environments. Running containers allow faster execution time as there is no need to recreate each container every time a function gets executed. The default value is 10. - id: "$$config__app_functions_cpus" name: _APP_FUNCTIONS_CPUS label: Functions | _APP_FUNCTIONS_CPUS defaultValue: '' description: The maximum number of CPU core a single cloud function is allowed to use. Please note that setting a value higher than available cores will result in a function error, which might result in an error. The default value is empty. When it's empty, CPU limit will be disabled. - id: "$$config__app_functions_memory_allocated" name: _APP_FUNCTIONS_MEMORY label: Functions | _APP_FUNCTIONS_MEMORY defaultValue: '' description: The maximum amount of memory a single cloud function is allowed to use in megabytes. The default value is empty. When it's empty, memory limit will be disabled. - id: "$$config__app_functions_memory_swap" name: _APP_FUNCTIONS_MEMORY_SWAP label: Functions | _APP_FUNCTIONS_MEMORY_SWAP defaultValue: '' description: The maximum amount of swap memory a single cloud function is allowed to use in megabytes. The default value is empty. When it's empty, swap memory limit will be disabled. - id: "$$config__app_functions_runtimes" name: _APP_FUNCTIONS_RUNTIMES label: Functions | _APP_FUNCTIONS_RUNTIMES defaultValue: node-18.0 description: |- This option allows you to limit the available environments for cloud functions. This option is very useful for low-cost servers to safe disk space. To enable/activate this option, pass a list of allowed environments separated by a comma. Currently, supported environments are: node-14.5, node-16.0, node-18.0, php-8.0, php-8.1, ruby-3.0, ruby-3.1, python-3.8, python-3.9, python-3.10, deno-1.21, deno-1.24, dart-2.15, dart-2.16, dart-2.17, dotnet-3.1, dotnet-6.0, java-8.0, java-11.0, java-17.0, java-18.0, swift-5.5, kotlin-1.6, cpp-17.0 - id: "$$secret__app_executor_secret" name: _APP_EXECUTOR_SECRET label: Functions | _APP_EXECUTOR_SECRET defaultValue: "$$generate_hex(16)" description: The secret key used by Appwrite to communicate with the function executor. - id: "$$config__app_executor_host" name: _APP_EXECUTOR_HOST label: '' defaultValue: http://$$id-executor/v1 description: '' - id: "$$config__app_logging_provider" name: _APP_LOGGING_PROVIDER label: General | _APP_LOGGING_PROVIDER defaultValue: '' description: This variable allows you to enable logging errors to 3rd party providers. This value is empty by default, to enable the logger set the value to one of 'sentry', 'raygun', 'appsignal', 'logowl' - id: "$$config__app_logging_config" name: _APP_LOGGING_CONFIG label: General | _APP_LOGGING_CONFIG defaultValue: '' description: This variable configures authentication to 3rd party error logging providers. If using Sentry, this should be 'SENTRY_API_KEY;SENTRY_APP_ID'. If using Raygun, this should be Raygun API key. If using AppSignal, this should be AppSignal API key. If using LogOwl, this should be LogOwl Service Ticket. - id: "$$config__app_statsd_host" name: _APP_STATSD_HOST label: '' defaultValue: "$$id-telegraf" description: '' - id: "$$config__app_statsd_port" name: _APP_STATSD_PORT label: StatsD | _APP_STATSD_PORT defaultValue: '8125' description: StatsD server TCP port. - id: "$$config__app_maintenance_interval" name: _APP_MAINTENANCE_INTERVAL label: Functions | _APP_MAINTENANCE_INTERVAL defaultValue: '86400' description: Interval value containing the number of seconds that the Appwrite maintenance process should wait before executing system cleanups and optimizations. The default value is 86400 seconds (1 day). - id: "$$config__app_maintenance_retention_execution" name: _APP_MAINTENANCE_RETENTION_EXECUTION label: Functions | _APP_MAINTENANCE_RETENTION_EXECUTION defaultValue: '1209600' description: The maximum duration (in seconds) upto which to retain execution logs. The default value is 1209600 seconds (14 days). - id: "$$config__app_maintenance_retention_cache" name: _APP_MAINTENANCE_RETENTION_CACHE label: Functions | _APP_MAINTENANCE_RETENTION_CACHE defaultValue: '2592000' description: The maximum duration (in seconds) upto which to retain cached files. The default value is 2592000 seconds (30 days). - id: "$$config__app_maintenance_retention_abuse" name: _APP_MAINTENANCE_RETENTION_ABUSE label: Functions | _APP_MAINTENANCE_RETENTION_ABUSE defaultValue: '86400' description: The maximum duration (in seconds) upto which to retain abuse logs. The default value is 86400 seconds (1 day). - id: "$$config__app_maintenance_retention_audit" name: _APP_MAINTENANCE_RETENTION_AUDIT label: Functions | _APP_MAINTENANCE_RETENTION_AUDIT defaultValue: '1209600' description: The maximum duration (in seconds) upto which to retain audit logs. The default value is 1209600 seconds (14 days). - id: "$$config__app_sms_provider" name: _APP_SMS_PROVIDER label: Phone | _APP_SMS_PROVIDER defaultValue: '' description: 'Provider used for delivering SMS for Phone authentication. Use the following format: ''sms://[USER]:[SECRET]@[PROVIDER]''. Available providers are twilio, text-magic, telesign, msg91, and vonage.' - id: "$$config__app_sms_from" name: _APP_SMS_FROM label: Phone | _APP_SMS_FROM defaultValue: '' description: Phone number used for sending out messages. Must start with a leading '+' and maximum of 15 digits without spaces (+123456789). - id: "$$config__app_functions_inactive_threshold" name: _APP_FUNCTIONS_INACTIVE_THRESHOLD label: Functions | _APP_FUNCTIONS_INACTIVE_THRESHOLD defaultValue: '60' description: The minimum time a function can be inactive before it's container is shutdown and put to sleep. The default value is 60 seconds - id: "$$config_open_runtimes_network" name: OPEN_RUNTIMES_NETWORK label: '' defaultValue: "$$generate_network" description: '' - id: "$$config_dockerhub_pull_username" name: DOCKERHUB_PULL_USERNAME label: Functions | DOCKERHUB_PULL_USERNAME defaultValue: '' description: The username for hub.docker.com. This variable is used to pull images from hub.docker.com. - id: "$$secret_dockerhub_pull_password" name: DOCKERHUB_PULL_PASSWORD label: Functions | DOCKERHUB_PULL_PASSWORD defaultValue: '' description: The password for hub.docker.com. This variable is used to pull images from hub.docker.com. - id: "$$config__app_usage_timeseries_interval" name: _APP_USAGE_TIMESERIES_INTERVAL label: General | _APP_USAGE_TIMESERIES_INTERVAL defaultValue: '30' description: Interval value containing the number of seconds that the Appwrite usage process should wait before aggregating stats and syncing it to mariadb from InfluxDB. The default value is 30 seconds. - id: "$$config__app_usage_database_interval" name: _APP_USAGE_DATABASE_INTERVAL label: General | _APP_USAGE_DATABASE_INTERVAL defaultValue: '900' description: Interval value containing the number of seconds that the Appwrite usage process should wait before aggregating stats from data in Appwrite Database. The default value is 15 minutes. - templateVersion: 1.0.0 defaultVersion: latest type: weblate name: Weblate description: '' services: $$id: name: Weblate depends_on: - $$id-postgresql - $$id-redis image: 'weblate/weblate:$$core_version' volumes: - '$$id-data:/app/data' environment: - WEBLATE_SITE_DOMAIN=$$config_weblate_site_domain - WEBLATE_ADMIN_PASSWORD=$$secret_weblate_admin_password - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_USER=$$config_postgres_user - POSTGRES_DATABASE=$$config_postgres_db - POSTGRES_HOST=$$id-postgresql - POSTGRES_PORT=5432 - REDIS_HOST=$$id-redis ports: - '8080' $$id-postgresql: name: PostgreSQL depends_on: [] image: 'postgres:14-alpine' volumes: - '$$id-postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=$$config_postgres_user - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_DB=$$config_postgres_db ports: [] $$id-redis: name: Redis depends_on: [] image: 'redis:7-alpine' volumes: - '$$id-redis-data:/data' environment: [] ports: [] variables: - id: $$config_weblate_site_domain name: WEBLATE_SITE_DOMAIN label: Weblate Domain defaultValue: $$generate_domain description: '' - id: $$secret_weblate_admin_password name: WEBLATE_ADMIN_PASSWORD label: Weblate Admin Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_postgres_user main: $$id-postgresql name: POSTGRES_USER label: PostgreSQL User defaultValue: $$generate_username description: '' - id: $$secret_postgres_password main: $$id-postgresql name: POSTGRES_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_postgres_db main: $$id-postgresql name: POSTGRES_DB label: PostgreSQL Database defaultValue: weblate description: '' - templateVersion: 1.0.0 defaultVersion: 2022.10.14-1a5b0965 type: searxng name: SearXNG description: '' services: $$id: name: SearXNG depends_on: - $$id-redis image: 'searxng/searxng:$$core_version' volumes: - '$$id-searxng:/etc/searxng' environment: - SEARXNG_BASE_URL=$$config_searxng_base_url ports: - '8080' cap_drop: - ALL cap_add: - CHOWN - SETGID - SETUID - DAC_OVERRIDE files: - source: $$workdir/settings.yml destination: /etc/searxng/settings.yml content: |2- # see https://docs.searxng.org/admin/engines/settings.html#use-default-settings use_default_settings: true server: secret_key: $$secret_secret_key limiter: true image_proxy: true ui: static_use_hash: true redis: url: redis://:$$secret_redis_password@$$id-redis:6379/0 $$id-redis: name: Redis command: >- redis-server --requirepass $$secret_redis_password --save "" --appendonly "no" depends_on: [] image: 'redis:7-alpine' volumes: - '$$id-redis-data:/data' environment: - REDIS_PASSWORD=$$secret_redis_password ports: [] cap_drop: - ALL cap_add: - SETGID - SETUID - DAC_OVERRIDE variables: - id: $$config_searxng_base_url name: SEARXNG_BASE_URL label: SearXNG Base URL defaultValue: $$generate_fqdn description: '' - id: $$secret_secret_key name: SECRET_KEY label: Secret Key defaultValue: $$generate_hex(64) description: '' - id: $$secret_redis_password name: REDIS_PASSWORD label: Redis Password defaultValue: $$generate_password description: '' - templateVersion: 1.0.0 defaultVersion: v2.0.6 type: glitchtip name: GlitchTip description: '' services: $$id: name: GlitchTip depends_on: - $$id-postgresql - $$id-redis image: 'glitchtip/glitchtip:$$core_version' volumes: [] environment: - PORT=$$config_port - GLITCHTIP_DOMAIN=$$config_glitchtip_domain - SECRET_KEY=$$secret_secret_key - DATABASE_URL=$$secret_database_url - REDIS_URL=$$secret_redis_url - DEFAULT_FROM_EMAIL=$$config_default_from_email - EMAIL_URL=$$secret_email_url - EMAIL_HOST=$$config_email_host - EMAIL_PORT=$$config_email_port - EMAIL_HOST_USER=$$config_email_host_user - EMAIL_HOST_PASSWORD=$$secret_email_host_password - EMAIL_USE_TLS=$$config_email_use_tls - EMAIL_USE_SSL=$$config_email_use_ssl - EMAIL_BACKEND=$$config_email_backend - MAILGUN_API_KEY=$$secret_mailgun_api_key - SENDGRID_API_KEY=$$secret_sendgrid_api_key - ENABLE_OPEN_USER_REGISTRATION=$$config_enable_open_user_registration - DJANGO_SUPERUSER_EMAIL=$$config_django_superuser_email - DJANGO_SUPERUSER_PASSWORD=$$secret_django_superuser_password - DJANGO_SUPERUSER_USERNAME=$$config_django_superuser_username - CELERY_WORKER_CONCURRENCY=$$config_celery_worker_concurrency ports: - '8000' $$id-worker: name: Celery Worker command: ./bin/run-celery-with-beat.sh depends_on: - $$id-postgresql - $$id-redis image: 'glitchtip/glitchtip:$$core_version' environment: - GLITCHTIP_DOMAIN=$$config_glitchtip_domain - SECRET_KEY=$$secret_secret_key - DATABASE_URL=$$secret_database_url - REDIS_URL=$$secret_redis_url - DEFAULT_FROM_EMAIL=$$config_default_from_email - EMAIL_URL=$$secret_email_url - CELERY_WORKER_CONCURRENCY=$$config_celery_worker_concurrency ports: [] $$id-migrate: exclude: true name: Migrate command: ./manage.py migrate depends_on: - $$id-postgresql - $$id-redis image: 'glitchtip/glitchtip:$$core_version' environment: - GLITCHTIP_DOMAIN=$$config_glitchtip_domain - SECRET_KEY=$$secret_secret_key - DATABASE_URL=$$secret_database_url - REDIS_URL=$$secret_redis_url - DEFAULT_FROM_EMAIL=$$config_default_from_email - EMAIL_URL=$$secret_email_url ports: [] $$id-postgresql: name: PostgreSQL depends_on: [] image: 'postgres:14-alpine' volumes: - '$$id-postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=$$config_postgres_user - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_DB=$$config_postgres_db ports: [] $$id-redis: name: Redis depends_on: [] image: 'redis:7-alpine' volumes: - '$$id-postgresql-redis-data:/data' environment: [] ports: [] variables: - id: $$config_django_superuser_username name: DJANGO_SUPERUSER_USERNAME label: Django Superuser Username defaultValue: $$generate_username description: '' - id: $$secret_django_superuser_password name: DJANGO_SUPERUSER_PASSWORD label: Django Superuser Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_port name: PORT label: GlitchTip Port defaultValue: '8000' description: '' - id: $$config_celery_worker_concurrency main: $$id-worker name: CELERY_WORKER_CONCURRENCY label: Celery Worker Concurrency defaultValue: '2' description: '' - id: $$config_glitchtip_domain name: GLITCHTIP_DOMAIN label: GlitchTip Domain defaultValue: $$generate_fqdn description: '' - id: $$secret_email_url name: EMAIL_URL label: SMTP Email URL defaultValue: >- smtp://$$config_email_host_user:$$secret_email_host_password@$$config_email_host:$$config_email_port description: '' - id: $$secret_database_url name: DATABASE_URL label: Database URL for PostgreSQL defaultValue: >- postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db description: '' - id: $$secret_redis_url name: REDIS_URL label: Redis URL defaultValue: 'redis://$$id-redis:6379/0' description: '' - id: $$config_default_from_email name: DEFAULT_FROM_EMAIL label: Default Email Address defaultValue: noreply@example.com description: '' - id: $$config_email_host name: EMAIL_HOST label: Email SMTP Host defaultValue: '' description: '' - id: $$config_email_port name: EMAIL_PORT label: Email SMTP Port defaultValue: '25' description: '' - id: $$config_email_host_user name: EMAIL_HOST_USER label: Email SMTP User defaultValue: '' description: '' - id: $$secret_email_host_password name: EMAIL_HOST_PASSWORD label: Email SMTP Password defaultValue: '' description: '' - id: $$config_email_use_tls name: EMAIL_USE_TLS label: Email Use TLS defaultValue: 'false' description: '' - id: $$config_email_use_ssl name: EMAIL_USE_SSL label: Email Use SSL defaultValue: 'false' description: '' - id: $$secret_email_smtp_password name: EMAIL_SMTP_PASSWORD label: SMTP Password defaultValue: '' description: '' - id: $$config_email_backend name: EMAIL_BACKEND label: Email Backend defaultValue: '' description: '' - id: $$secret_mailgun_api_key name: MAILGUN_API_KEY label: Mailgun API Key defaultValue: '' description: '' showOnConfiguration: true - id: $$secret_sendgrid_api_key name: SENDGRID_API_KEY label: Sendgrid API Key defaultValue: '' description: '' showOnConfiguration: true - id: $$config_enable_open_user_registration name: ENABLE_OPEN_USER_REGISTRATION label: Enable Open User Registration defaultValue: 'true' description: '' - id: $$config_django_superuser_email name: DJANGO_SUPERUSER_EMAIL label: Django Superuser Email defaultValue: noreply@example.com description: '' - id: $$config_postgres_user main: $$id-postgresql name: POSTGRES_USER label: PostgreSQL User defaultValue: $$generate_username description: '' - id: $$secret_postgres_password main: $$id-postgresql name: POSTGRES_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' - id: $$config_postgres_db main: $$id-postgresql name: POSTGRES_DB label: PostgreSQL Database defaultValue: glitchtip description: '' - templateVersion: 1.0.0 defaultVersion: v2.13.0 type: hasura name: Hasura description: 'Instant realtime GraphQL APIs on any Postgres application, existing or new.' services: $$id: name: Hasura depends_on: - $$id-postgresql image: 'hasura/graphql-engine:$$core_version' volumes: [] environment: - HASURA_GRAPHQL_ENABLE_CONSOLE=$$config_hasura_graphql_enable_console - >- HASURA_GRAPHQL_METADATA_DATABASE_URL=$$secret_hasura_graphql_metadata_database_url - HASURA_GRAPHQL_ADMIN_PASSWORD=$$secret_hasura_graphql_admin_password ports: - '8080' $$id-postgresql: name: PostgreSQL depends_on: [] image: 'postgres:12-alpine' volumes: - '$$id-postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=$$config_postgres_user - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_DB=$$config_postgres_db ports: [] variables: - id: $$config_hasura_graphql_enable_console name: HASURA_GRAPHQL_ENABLE_CONSOLE label: Enable Hasura Console defaultValue: 'true' description: '' - id: $$secret_hasura_graphql_metadata_database_url name: HASURA_GRAPHQL_METADATA_DATABASE_URL label: Hasura Metadata Database URL defaultValue: >- postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db description: '' - id: $$secret_hasura_graphql_admin_password name: HASURA_GRAPHQL_ADMIN_PASSWORD label: Hasura Admin Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_postgres_user name: POSTGRES_USER label: PostgreSQL User defaultValue: $$generate_username description: '' - id: $$secret_postgres_password name: POSTGRES_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' - id: $$config_postgres_db name: POSTGRES_DB label: PostgreSQL Database defaultValue: hasura description: '' - templateVersion: 1.0.0 defaultVersion: postgresql-v1.38.0 type: umami-postgresql name: Umami (PostgreSQL) description: >- Umami is a simple, easy to use, self-hosted web analytics solution. The goal is to provide you with a friendly privacy-focused alternative to Google Analytics. services: $$id: name: Umami documentation: 'Official docs are [here](https://umami.is/docs/getting-started)' depends_on: - $$id-postgresql image: 'ghcr.io/umami-software/umami:$$core_version' volumes: [] environment: - ADMIN_PASSWORD=$$secret_admin_password - DATABASE_URL=$$secret_database_url - DATABASE_TYPE=$$config_database_type - HASH_SALT=$$secret_hash_salt ports: - '3000' $$id-postgresql: name: PostgreSQL documentation: 'Official docs are [here](https://umami.is/docs/getting-started)' depends_on: [] image: 'postgres:12-alpine' volumes: - '$$id-postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=$$config_postgres_user - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_DB=$$config_postgres_db ports: [] files: - source: $$workdir/schema.postgresql.sql destination: /docker-entrypoint-initdb.d/schema.postgresql.sql content: |2- -- CreateTable CREATE TABLE "account" ( "user_id" SERIAL NOT NULL, "username" VARCHAR(255) NOT NULL, "password" VARCHAR(60) NOT NULL, "is_admin" BOOLEAN NOT NULL DEFAULT false, "created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY ("user_id") ); -- CreateTable CREATE TABLE "event" ( "event_id" SERIAL NOT NULL, "website_id" INTEGER NOT NULL, "session_id" INTEGER NOT NULL, "created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, "url" VARCHAR(500) NOT NULL, "event_type" VARCHAR(50) NOT NULL, "event_value" VARCHAR(50) NOT NULL, PRIMARY KEY ("event_id") ); -- CreateTable CREATE TABLE "pageview" ( "view_id" SERIAL NOT NULL, "website_id" INTEGER NOT NULL, "session_id" INTEGER NOT NULL, "created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, "url" VARCHAR(500) NOT NULL, "referrer" VARCHAR(500), PRIMARY KEY ("view_id") ); -- CreateTable CREATE TABLE "session" ( "session_id" SERIAL NOT NULL, "session_uuid" UUID NOT NULL, "website_id" INTEGER NOT NULL, "created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, "hostname" VARCHAR(100), "browser" VARCHAR(20), "os" VARCHAR(20), "device" VARCHAR(20), "screen" VARCHAR(11), "language" VARCHAR(35), "country" CHAR(2), PRIMARY KEY ("session_id") ); -- CreateTable CREATE TABLE "website" ( "website_id" SERIAL NOT NULL, "website_uuid" UUID NOT NULL, "user_id" INTEGER NOT NULL, "name" VARCHAR(100) NOT NULL, "domain" VARCHAR(500), "share_id" VARCHAR(64), "created_at" TIMESTAMPTZ(6) DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY ("website_id") ); -- CreateIndex CREATE UNIQUE INDEX "account.username_unique" ON "account"("username"); -- CreateIndex CREATE INDEX "event_created_at_idx" ON "event"("created_at"); -- CreateIndex CREATE INDEX "event_session_id_idx" ON "event"("session_id"); -- CreateIndex CREATE INDEX "event_website_id_idx" ON "event"("website_id"); -- CreateIndex CREATE INDEX "pageview_created_at_idx" ON "pageview"("created_at"); -- CreateIndex CREATE INDEX "pageview_session_id_idx" ON "pageview"("session_id"); -- CreateIndex CREATE INDEX "pageview_website_id_created_at_idx" ON "pageview"("website_id", "created_at"); -- CreateIndex CREATE INDEX "pageview_website_id_idx" ON "pageview"("website_id"); -- CreateIndex CREATE INDEX "pageview_website_id_session_id_created_at_idx" ON "pageview"("website_id", "session_id", "created_at"); -- CreateIndex CREATE UNIQUE INDEX "session.session_uuid_unique" ON "session"("session_uuid"); -- CreateIndex CREATE INDEX "session_created_at_idx" ON "session"("created_at"); -- CreateIndex CREATE INDEX "session_website_id_idx" ON "session"("website_id"); -- CreateIndex CREATE UNIQUE INDEX "website.website_uuid_unique" ON "website"("website_uuid"); -- CreateIndex CREATE UNIQUE INDEX "website.share_id_unique" ON "website"("share_id"); -- CreateIndex CREATE INDEX "website_user_id_idx" ON "website"("user_id"); -- AddForeignKey ALTER TABLE "event" ADD FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "event" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pageview" ADD FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pageview" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "session" ADD FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "website" ADD FOREIGN KEY ("user_id") REFERENCES "account"("user_id") ON DELETE CASCADE ON UPDATE CASCADE; insert into account (username, password, is_admin) values ('admin', '$$hashed$$secret_admin_password', true); variables: - id: $$secret_database_url name: DATABASE_URL label: Database URL for PostgreSQL defaultValue: >- postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db description: '' - id: $$secret_hash_salt name: HASH_SALT label: Hash Salt defaultValue: $$generate_hex(64) description: '' - id: $$config_database_type name: DATABASE_TYPE label: Database Type defaultValue: 'postgresql' description: '' - id: $$config_postgres_user name: POSTGRES_USER label: PostgreSQL User defaultValue: $$generate_username description: '' - id: $$secret_postgres_password name: POSTGRES_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' - id: $$config_postgres_db name: POSTGRES_DB label: PostgreSQL Database defaultValue: umami description: '' - id: $$secret_admin_password name: ADMIN_PASSWORD label: Initial Admin Password defaultValue: $$generate_password description: '' showOnConfiguration: true - templateVersion: 1.0.0 defaultVersion: v0.29.1 type: meilisearch name: MeiliSearch description: >- MeiliSearch is a lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine services: $$id: name: MeiliSearch documentation: 'https://docs.meilisearch.com/' depends_on: [] image: 'getmeili/meilisearch:$$core_version' volumes: - '$$id-datams:/meili_data/data.ms' - '$$id-data:/meili_data' - '$$id-snapshot:/snapshot' - '$$id-dump:/dumps' environment: - MEILI_MASTER_KEY=$$secret_meili_master_key ports: - '7700' variables: - id: $$secret_meili_master_key name: MEILI_MASTER_KEY label: Master Key defaultValue: $$generate_hex(64) description: '' showOnConfiguration: true - templateVersion: 1.0.0 defaultVersion: latest type: ghost-mariadb name: Ghost (MariaDB) description: >- Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License services: $$id: name: Ghost documentation: 'Taken from https://docs.ghost.org/' depends_on: - $$id-mariadb image: 'bitnami/ghost:$$core_version' volumes: - '$$id-ghost:/bitnami/ghost' environment: - url=$$config_url - GHOST_HOST=$$config_ghost_host - GHOST_ENABLE_HTTPS=$$config_ghost_enable_https - GHOST_EMAIL=$$config_ghost_email - GHOST_PASSWORD=$$secret_ghost_password - GHOST_DATABASE_HOST=$$config_ghost_database_host - GHOST_DATABASE_USER=$$config_mariadb_user - GHOST_DATABASE_PASSWORD=$$secret_ghost_database_password - GHOST_DATABASE_NAME=$$config_mariadb_database - GHOST_DATABASE_PORT_NUMBER=3306 ports: - '2368' $$id-mariadb: name: MariaDB depends_on: [] image: 'bitnami/mariadb:latest' volumes: - '$$id-mariadb:/bitnami/mariadb' environment: - MARIADB_USER=$$config_mariadb_user - MARIADB_PASSWORD=$$secret_mariadb_password - MARIADB_DATABASE=$$config_mariadb_database - MARIADB_ROOT_USER=$$config_mariadb_root_user - MARIADB_ROOT_PASSWORD=$$secret_mariadb_root_password ports: [] variables: - id: $$config_url name: url label: URL defaultValue: $$generate_fqdn description: '' - id: $$config_ghost_host name: GHOST_HOST label: Ghost Host defaultValue: $$generate_domain description: '' - id: $$config_ghost_enable_https name: GHOST_ENABLE_HTTPS label: Ghost Enable HTTPS defaultValue: 'no' description: '' - id: $$config_ghost_email name: GHOST_EMAIL label: Ghost Default Email defaultValue: admin@example.com description: '' - id: $$secret_ghost_password name: GHOST_PASSWORD label: Ghost Default Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_ghost_database_host name: GHOST_DATABASE_HOST label: Ghost Database Host defaultValue: $$id-mariadb description: '' - id: $$config_ghost_database_user name: GHOST_DATABASE_USER label: MariaDB User defaultValue: $$config_mariadb_user description: '' - id: $$secret_ghost_database_password name: GHOST_DATABASE_PASSWORD label: MariaDB Password defaultValue: $$secret_mariadb_password description: '' - id: $$config_ghost_database_name name: GHOST_DATABASE_NAME label: MariaDB Database defaultValue: $$config_mariadb_database description: '' - id: $$config_mariadb_user name: MARIADB_USER label: MariaDB User defaultValue: $$generate_username description: '' - id: $$secret_mariadb_password name: MARIADB_PASSWORD label: MariaDB Password defaultValue: $$generate_password description: '' - id: $$config_mariadb_database name: MARIADB_DATABASE label: MariaDB Database defaultValue: ghost description: '' - id: $$config_mariadb_root_user name: MARIADB_ROOT_USER label: MariaDB Root User defaultValue: $$generate_username description: '' - id: $$secret_mariadb_root_password name: MARIADB_ROOT_PASSWORD label: MariaDB Root Password defaultValue: $$generate_password description: '' - templateVersion: 1.0.0 defaultVersion: '5.22' type: ghost-only name: Ghost Only (No Database) description: >- Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License services: $$id: name: Ghost documentation: 'Taken from https://docs.ghost.org/' image: 'ghost:$$core_version' volumes: - '$$id-ghost:/var/lib/ghost/content' environment: - url=$$config_url - database__client=$$config_database__client - database__connection__host=$$config_database__connection__host - database__connection__user=$$config_database__connection__user - database__connection__password=$$secret_database__connection__password - database__connection__database=$$config_database__connection__database ports: - '2368' variables: - id: $$config_url name: url label: URL defaultValue: $$generate_fqdn description: '' - id: $$config_database__client name: database__client label: Database Client defaultValue: mysql description: '' required: true - id: $$config_database__connection__host name: database__connection__host label: Database Host defaultValue: '' description: '' required: true placeholder: 'db.coolify.io' - id: $$config_database__connection__user name: database__connection__user label: Database User defaultValue: '' description: '' placeholder: 'ghost' required: true - id: $$secret_database__connection__password name: database__connection__password label: Database Password defaultValue: '' description: '' placeholder: 'superSecretP4ssword' showOnConfiguration: true required: true - id: $$config_database__connection__database name: database__connection__database label: Database Name defaultValue: '' description: '' placeholder: 'ghost_db' required: true - templateVersion: 1.0.0 defaultVersion: '5.22' type: ghost-mysql name: Ghost (MySQL) description: >- Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License services: $$id: name: Ghost documentation: 'Taken from https://docs.ghost.org/' depends_on: - $$id-mysql image: 'ghost:$$core_version' volumes: - '$$id-ghost:/var/lib/ghost/content' environment: - url=$$config_url - database__client=$$config_database__client - database__connection__host=$$config_database__connection__host - database__connection__user=$$config_mysql_user - database__connection__password=$$secret_mysql_password - database__connection__database=$$config_mysql_database ports: - '2368' $$id-mysql: name: MySQL depends_on: [] image: 'mysql:8.0' volumes: - '$$id-mysql:/var/lib/mysql' environment: - MYSQL_USER=$$config_mysql_user - MYSQL_PASSWORD=$$secret_mysql_password - MYSQL_DATABASE=$$config_mysql_database - MYSQL_ROOT_PASSWORD=$$secret_mysql_root_password ports: [] variables: - id: $$config_url name: url label: URL defaultValue: $$generate_fqdn description: '' - id: $$config_database__client name: database__client label: Database Client defaultValue: mysql description: '' readOnly: true - id: $$config_database__connection__host name: database__connection__host label: Database Host defaultValue: $$id-mysql description: '' - id: $$config_mysql_user main: $$id-mysql name: MYSQL_USER label: MySQL User defaultValue: $$generate_username description: '' - id: $$secret_mysql_password main: $$id-mysql name: MYSQL_PASSWORD label: MySQL Password defaultValue: $$generate_password description: '' - id: $$config_mysql_database main: $$id-mysql name: MYSQL_DATABASE label: MySQL Database defaultValue: ghost description: '' - id: $$secret_mysql_root_password name: MYSQL_ROOT_PASSWORD label: MySQL Root Password defaultValue: $$generate_password description: '' - templateVersion: 1.0.0 defaultVersion: php8.1 type: wordpress name: WordPress (with MySQL) description: WordPress is a content management system based on PHP with new MySQL database. services: $$id: name: WordPress documentation: ' Taken from https://docs.docker.com/compose/wordpress/' depends_on: - $$id-mysql image: 'wordpress:$$core_version' volumes: - '$$id-wordpress-data:/var/www/html' environment: - WORDPRESS_DB_HOST=$$config_wordpress_db_host - WORDPRESS_DB_USER=$$config_mysql_user - WORDPRESS_DB_PASSWORD=$$secret_mysql_password - WORDPRESS_DB_NAME=$$config_mysql_database - WORDPRESS_CONFIG_EXTRA=$$config_wordpress_config_extra ports: - '80' $$id-mysql: name: MySQL depends_on: [] image: 'bitnami/mysql:5.7' imageArm : 'mysql:5.7' volumes: - '$$id-mysql-data:/bitnami/mysql/data' volumesArm: - '$$id-mysql-data:/var/lib/mysql' environment: - MYSQL_ROOT_PASSWORD=$$secret_mysql_root_password - MYSQL_ROOT_USER=$$config_mysql_root_user - MYSQL_DATABASE=$$config_mysql_database - MYSQL_USER=$$config_mysql_user - MYSQL_PASSWORD=$$secret_mysql_password variables: - id: $$config_wordpress_db_host name: WORDPRESS_DB_HOST label: Database Host defaultValue: $$id-mysql description: '' readOnly: true - id: $$config_wordpress_config_extra name: WORDPRESS_CONFIG_EXTRA label: WordPress Config Extra defaultValue: '' description: '' type: 'textarea' placeholder: | define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0); - id: $$secret_mysql_root_password name: MYSQL_ROOT_PASSWORD label: MySQL Root Password defaultValue: $$generate_password description: '' readOnly: true - id: $$config_mysql_root_user name: MYSQL_ROOT_USER label: MySQL Root User defaultValue: $$generate_username description: '' readOnly: true - id: $$config_mysql_database name: MYSQL_DATABASE label: MySQL Database defaultValue: wordpress description: '' readOnly: true - id: $$config_mysql_user name: MYSQL_USER label: MySQL User defaultValue: $$generate_username description: '' readOnly: true - id: $$secret_mysql_password name: MYSQL_PASSWORD label: MySQL Password defaultValue: $$generate_password description: '' readOnly: true - templateVersion: 1.0.0 defaultVersion: php8.1 type: wordpress-only name: WordPress Only (No Database) description: WordPress is a content management system based on PHP without MySQL. services: $$id: name: WordPress documentation: 'Taken from https://docs.docker.com/compose/wordpress/' image: 'wordpress:$$core_version' volumes: - '$$id-wordpress-data:/var/www/html' environment: - WORDPRESS_DB_HOST=$$config_wordpress_db_host - WORDPRESS_DB_PORT=$$config_wordpress_db_port - WORDPRESS_DB_USER=$$config_wordpress_db_user - WORDPRESS_DB_PASSWORD=$$secret_wordpress_db_password - WORDPRESS_DB_NAME=$$config_wordpress_db_name - WORDPRESS_CONFIG_EXTRA=$$config_wordpress_config_extra ports: - '80' variables: - id: $$config_wordpress_db_host name: WORDPRESS_DB_HOST label: Database Host defaultValue: '' description: '' placeholder: 'db.coollabs.io' required: true - id: $$config_wordpress_db_port name: WORDPRESS_DB_PORT label: Database Port defaultValue: '' description: '' placeholder: '3306' required: true - id: $$config_wordpress_db_user name: WORDPRESS_DB_USER label: Database User defaultValue: '' description: '' placeholder: 'wordpress' required: true - id: $$secret_wordpress_db_password name: WORDPRESS_DB_PASSWORD label: Database Password defaultValue: '' description: '' placeholder: 'supers3cr3tpassw0rd!' required: true showOnConfiguration: true - id: $$config_wordpress_db_name name: WORDPRESS_DB_NAME label: Database Name defaultValue: '' description: '' placeholder: 'wordpress' required: true - id: $$config_wordpress_config_extra name: WORDPRESS_CONFIG_EXTRA label: Extra Config defaultValue: '' description: '' type: 'textarea' placeholder: | define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0); - templateVersion: 1.0.0 defaultVersion: 4.7.1 type: vscodeserver name: VSCode Server description: >- vscode-server by Coder is VS Code running on a remote server, accessible through the browser. services: $$id: name: VSCode Server documentation: 'Taken from https://github.com/coder/code-server/. ' depends_on: [] image: 'codercom/code-server:$$core_version' volumes: - '$$id-config-data:/home/coder/.local/share/code-server' - '$$id-vscodeserver-data:/home/coder' - '$$id-keys-directory:/root/.ssh' - '$$id-theme-and-plugin-directory:/root/.local/share/code-server' environment: - PASSWORD=$$secret_password ports: - '8080' variables: - id: $$secret_password name: PASSWORD label: Password defaultValue: $$generate_password description: '' showOnConfiguration: true - templateVersion: 1.0.0 defaultVersion: RELEASE.2022-10-15T19-57-03Z type: minio name: MinIO description: ' MinIO is a cloud storage server compatible with Amazon S3' services: $$id: name: MinIO command: 'server /data --console-address :9001' documentation: 'Taken from https://docs.min.io/docs/minio-docker-quickstart-guide.html' depends_on: [] image: 'minio/minio:$$core_version' volumes: - '$$id-data-write:/files' environment: - MINIO_SERVER_URL=$$config_coolify_fqdn_minio_console - MINIO_BROWSER_REDIRECT_URL=$$config_minio_browser_redirect_url - MINIO_DOMAIN=$$config_minio_domain - MINIO_ROOT_USER=$$config_minio_root_user - MINIO_ROOT_PASSWORD=$$secret_minio_root_password ports: - '9000' - '9001' proxy: - port: '9000' domain: $$config_coolify_fqdn_minio_console - port: '9001' variables: - id: $$config_coolify_fqdn_minio_console name: MINIO_SERVER_URL label: MinIO Server URL defaultValue: '' description: 'Specify the URL hostname the MinIO Console should use for connecting to the MinIO Server.' required: true - id: $$config_minio_browser_redirect_url name: MINIO_BROWSER_REDIRECT_URL label: Browser Redirect URL defaultValue: $$generate_fqdn description: '' - id: $$config_minio_domain name: MINIO_DOMAIN label: Domain defaultValue: $$generate_domain description: '' - id: $$config_minio_root_user name: MINIO_ROOT_USER label: Root User defaultValue: $$generate_username description: '' - id: $$secret_minio_root_password name: MINIO_ROOT_PASSWORD label: Root User Password defaultValue: $$generate_password description: '' showOnConfiguration: true - templateVersion: 1.0.0 defaultVersion: 0.21.1 type: fider name: Fider description: Fider is a platform to collect and organize customer feedback. services: $$id: name: Fider image: 'getfider/fider:$$core_version' documentation: 'Taken from https://hub.docker.com/r/getfider/fider/' depends_on: - $$id-postgresql environment: - BASE_URL=$$config_base_url - DATABASE_URL=$$secret_database_url - JWT_SECRET=$$secret_jwt_secret - EMAIL_NOREPLY=$$config_email_noreply - EMAIL_MAILGUN_API=$$secret_email_mailgun_api - EMAIL_MAILGUN_REGION=$$config_email_mailgun_region - EMAIL_MAILGUN_DOMAIN=$$config_email_mailgun_domain - EMAIL_SMTP_HOST=$$config_email_smtp_host - EMAIL_SMTP_PORT=$$config_email_smtp_port - EMAIL_SMTP_USER=$$config_email_smtp_user - EMAIL_SMTP_PASSWORD=$$secret_email_smtp_password - EMAIL_SMTP_ENABLE_STARTTLS=$$config_email_smtp_enable_starttls ports: - '3000' $$id-postgresql: name: PostgreSQL documentation: 'Taken from https://hub.docker.com/r/getfider/fider/' depends_on: [] image: 'postgres:12-alpine' volumes: - '$$id-postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=$$config_postgres_user - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_DB=$$config_postgres_db variables: - id: $$config_base_url name: BASE_URL label: Base URL defaultValue: $$generate_fqdn description: '' - id: $$secret_database_url name: DATABASE_URL label: Database URL for PostgreSQL defaultValue: >- postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db?sslmode=disable description: '' - id: $$secret_jwt_secret name: JWT_SECRET label: JWT Secret defaultValue: $$generate_hex(64) description: '' - id: $$config_email_noreply name: EMAIL_NOREPLY label: No Reply Email Address defaultValue: noreply@example.com description: '' - id: $$secret_email_mailgun_api name: EMAIL_MAILGUN_API label: Mailgun API Key defaultValue: '' description: '' showOnConfiguration: true - id: $$config_email_mailgun_region name: EMAIL_MAILGUN_REGION label: Mailgun Region defaultValue: EU description: '' - id: $$config_email_mailgun_domain name: EMAIL_MAILGUN_DOMAIN label: Mailgun Domain defaultValue: '' description: '' - id: $$config_email_smtp_host name: EMAIL_SMTP_HOST label: SMTP Host defaultValue: '' description: '' - id: $$config_email_smtp_port name: EMAIL_SMTP_PORT label: SMTP Port defaultValue: '587' description: '' - id: $$config_email_smtp_user name: EMAIL_SMTP_USER label: SMTP User defaultValue: '' description: '' - id: $$secret_email_smtp_password name: EMAIL_SMTP_PASSWORD label: SMTP Password defaultValue: '' description: '' showOnConfiguration: true - id: $$config_email_smtp_enable_starttls name: EMAIL_SMTP_ENABLE_STARTTLS label: SMTP Enable StartTLS defaultValue: 'false' description: '' - id: $$config_postgres_user name: POSTGRES_USER label: PostgreSQL User defaultValue: $$generate_username description: '' - id: $$secret_postgres_password name: POSTGRES_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' - id: $$config_postgres_db name: POSTGRES_DB label: PostgreSQL Database defaultValue: $$generate_username description: '' - templateVersion: 1.0.0 defaultVersion: 0.198.1 type: n8n name: n8n.io description: n8n is a free and open node based Workflow Automation Tool. services: $$id: name: N8n documentation: 'Taken from https://hub.docker.com/r/n8nio/n8n' depends_on: [] image: 'n8nio/n8n:$$core_version' volumes: - '$$id-data:/root/.n8n' - '$$id-data-write:/files' - '/var/run/docker.sock:/var/run/docker.sock' environment: - WEBHOOK_URL=$$config_webhook_url ports: - '5678' variables: - id: $$config_webhook_url name: WEBHOOK_URL label: Webhook URL defaultValue: $$generate_fqdn description: '' - templateVersion: 1.0.0 defaultVersion: stable type: plausibleanalytics name: Plausible Analytics description: Plausible is a lightweight and open-source website analytics tool. services: $$id: name: Plausible Analytics documentation: 'Taken from https://plausible.io/' command: >- sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run" depends_on: - $$id-postgresql - $$id-clickhouse image: 'plausible/analytics:$$core_version' environment: - ADMIN_USER_EMAIL=$$config_admin_user_email - ADMIN_USER_NAME=$$config_admin_user_name - ADMIN_USER_PWD=$$secret_admin_user_pwd - BASE_URL=$$config_base_url - SECRET_KEY_BASE=$$secret_secret_key_base - DISABLE_AUTH=$$config_disable_auth - DISABLE_REGISTRATION=$$config_disable_registration - DATABASE_URL=$$secret_database_url - CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url ports: - '8000' $$id-postgresql: name: PostgreSQL documentation: 'Taken from https://plausible.io/' image: 'bitnami/postgresql:13.2.0' volumes: - '$$id-postgresql-data:/bitnami/postgresql' environment: - POSTGRESQL_PASSWORD=$$secret_postgresql_password - POSTGRESQL_USERNAME=$$config_postgresql_username - POSTGRESQL_DATABASE=$$config_postgresql_database $$id-clickhouse: name: Clickhouse documentation: 'Taken from https://plausible.io/' volumes: - '$$id-clickhouse-data:/var/lib/clickhouse' image: 'yandex/clickhouse-server:21.3.2.5' ulimits: nofile: soft: 262144 hard: 262144 files: - source: $$workdir/clickhouse-config.xml destination: /etc/clickhouse-server/users.d/logging.xml content: >- warningtrue - source: $$workdir/clickhouse-user-config.xml destination: /etc/clickhouse-server/config.d/logging.xml content: >- 00 - source: $$workdir/init.query destination: /docker-entrypoint-initdb.d/init.query content: CREATE DATABASE IF NOT EXISTS plausible; - source: $$workdir/init-db.sh destination: /docker-entrypoint-initdb.d/init-db.sh content: >- clickhouse client --queries-file /docker-entrypoint-initdb.d/init.query variables: - id: $$config_base_url name: BASE_URL label: Base URL defaultValue: $$generate_fqdn description: >- You must set this to the FQDN of the Plausible Analytics instance. This is used to generate the links to the Plausible Analytics instance. - id: $$secret_database_url name: DATABASE_URL label: Database URL for PostgreSQL defaultValue: >- postgresql://$$config_postgresql_username:$$secret_postgresql_password@$$id-postgresql:5432/$$config_postgresql_database description: '' - id: $$secret_clickhouse_database_url name: CLICKHOUSE_DATABASE_URL label: Database URL for Clickhouse defaultValue: 'http://$$id-clickhouse:8123/plausible' description: '' - id: $$config_admin_user_email name: ADMIN_USER_EMAIL label: Admin Email Address defaultValue: admin@example.com description: This is the admin email. Please change it. - id: $$config_admin_user_name name: ADMIN_USER_NAME label: Admin User Name defaultValue: $$generate_username description: This is the admin username. Please change it. - id: $$secret_admin_user_pwd name: ADMIN_USER_PWD label: Admin User Password defaultValue: $$generate_password description: This is the admin password. Please change it. showOnConfiguration: true - id: $$secret_secret_key_base name: SECRET_KEY_BASE label: Secret Key Base defaultValue: $$generate_hex(64) description: '' - id: $$config_disable_auth name: DISABLE_AUTH label: Disable Authentication defaultValue: 'false' description: '' - id: $$config_disable_registration name: DISABLE_REGISTRATION label: Disable Registration defaultValue: 'true' description: '' - id: $$config_postgresql_username main: $$id-postgresql name: POSTGRESQL_USERNAME label: PostgreSQL Username defaultValue: postgresql description: '' - id: $$secret_postgresql_password main: $$id-postgresql name: POSTGRESQL_PASSWORD label: PostgreSQL Password defaultValue: $$generate_password description: '' showOnConfiguration: true - id: $$config_postgresql_database main: $$id-postgresql name: POSTGRESQL_DATABASE label: PostgreSQL Database defaultValue: plausible description: '' - id: $$config_scriptName name: SCRIPT_NAME label: Custom Script Name defaultValue: plausible.js description: This is the default script name. - templateVersion: 1.0.0 defaultVersion: 0.98.1 type: nocodb name: NocoDB description: >- The Open Source Airtable Alternative - Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet. services: $$id: name: NocoDB image: nocodb/nocodb:$$core_version environment: - PORT=$$config_port - NC_DB=$$config_nc_db - DATABASE_URL=$$secret_database_url - NC_PUBLIC_URL=$$config_public_url - NC_AUTH_JWT_SECRET=$$secret_auth_jwt_secret - NC_SENTRY_DSN=$$secret_sentry_dsn - >- NC_CONNECT_TO_EXTERNAL_DB_DISABLED=$$config_connect_to_external_db_disabled - NC_DISABLE_TELE=$$config_disable_tele volumes: - $$id-data:/usr/app/data ports: - '8080' variables: - id: $$config_nc_db name: NC_DB label: Database defaultValue: '' description: >- MySQL, PostgreSQL and MSSQL connection urls supported. If absent: A local SQLite will be created in root folder. - id: $$config_port name: PORT label: Port defaultValue: '8080' description: >- For setting app running port. - id: $$secret_database_url name: DATABASE_URL label: Database URL defaultValue: '' description: >- JDBC URL Format. Can be used instead of NC_DB. Used in 1-Click Heroku deployment. - id: $$config_public_url name: NC_PUBLIC_URL label: Public URL defaultValue: '' description: >- Used for sending Email invitations. If absent: Best guess from http request params. - id: $$secret_auth_jwt_secret name: NC_AUTH_JWT_SECRET label: Auth JWT Secret defaultValue: $$generate_hex(64) description: >- JWT secret used for auth and storing other secrets. If absent: A Random secret will be generated. - id: $$secret_sentry_dsn name: NC_SENTRY_DSN label: Sentry DSN defaultValue: '' description: For Sentry monitoring. - id: $$config_connect_to_external_db_disabled name: NC_CONNECT_TO_EXTERNAL_DB_DISABLED label: Disable External Database defaultValue: '0' description: Disable Project creation with external database. (Enter "1" to disable). - id: $$config_disable_tele name: NC_DISABLE_TELE label: NocoDB Disable Telemetry defaultValue: '1' description: Disable telemetry (Enter "1" to disable). documentation: See https://github.com/nocodb/nocodb