- templateVersion: 1.0.0 defaultVersion: "9.22" documentation: https://docs.directus.io/getting-started/introduction.html type: directus-postgresql name: Directus subname: (PostgreSQL) description: >- Directus is a free and open-source headless CMS framework for managing custom SQL-based databases. labels: - CMS - headless services: $$id: name: Directus depends_on: - $$id-postgresql - $$id-redis image: directus/directus:$$core_version volumes: - $$id-uploads:/directus/uploads - $$id-database:/directus/database - $$id-extensions:/directus/extensions environment: - KEY=$$secret_key - SECRET=$$secret_secret - DB_CLIENT=pg - DB_CONNECTION_STRING=$$secret_db_connection_string - CACHE_ENABLED=true - CACHE_STORE=redis - CACHE_REDIS=$$secret_cache_redis - ADMIN_EMAIL=$$config_admin_email - ADMIN_PASSWORD=$$secret_admin_password - CACHE_AUTO_PURGE=true - PUBLIC_URL=$$config_public_url ports: - "8055" $$id-postgresql: name: Directus 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: Directus Redis depends_on: [] image: redis:7.0.4-alpine command: "--maxmemory 512mb --maxmemory-policy allkeys-lru --maxmemory-samples 5" volumes: - "$$id-redis:/data" environment: [] variables: - id: $$config_public_url name: PUBLIC_URL label: Public URL defaultValue: $$generate_fqdn description: "" - id: $$secret_db_connection_string name: DB_CONNECTION_STRING label: Directus Database Url defaultValue: postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db description: "" - id: $$config_postgres_db main: $$id-postgresql name: POSTGRES_DB label: Database defaultValue: directus description: "" - id: $$config_postgres_user main: $$id-postgresql name: POSTGRES_USER label: User defaultValue: $$generate_username description: "" - id: $$secret_postgres_password main: $$id-postgresql name: POSTGRES_PASSWORD label: Password defaultValue: $$generate_password description: "" showOnConfiguration: true - id: $$secret_cache_redis name: CACHE_REDIS label: Redis Url defaultValue: redis://$$id-redis:6379 description: "" - id: $$config_admin_email name: ADMIN_EMAIL label: Initial Admin Email defaultValue: "admin@example.com" description: "The email address of the first user that is automatically created. You can change it later in Directus." - id: $$secret_admin_password name: ADMIN_PASSWORD label: Initial Admin Password defaultValue: $$generate_password description: "The password of the first user that is automatically created." showOnConfiguration: true - id: $$secret_key name: KEY label: Key defaultValue: $$generate_password description: "Unique identifier for the project." showOnConfiguration: true - id: $$secret_secret name: SECRET label: Secret defaultValue: $$generate_password description: "Secret string for the project." showOnConfiguration: true - templateVersion: 1.0.0 defaultVersion: v1.3.8 documentation: https://github.com/LibreTranslate/LibreTranslate description: Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup. type: libretranslate name: Libretranslate labels: - translator - argos - python - libretranslate services: $$id: name: Libretranslate image: libretranslate/libretranslate:$$core_version environment: - LT_HOST=0.0.0.0 - LT_SUGGESTIONS=true - LT_CHAR_LIMIT=$$config_lt_char_limit - LT_REQ_LIMIT=$$config_lt_req_limit - LT_BATCH_LIMIT=$$config_lt_batch_limit - LT_GA_ID=$$config_lt_ga_id - LT_DISABLE_WEB_UI=$$config_lt_web_ui volumes: - $$id-libretranslate:/libretranslate ports: - "5000" variables: - id: $$config_lt_char_limit name: LT_CHAR_LIMIT label: Char limit defaultValue: "5000" description: "Set character limit." - id: $$config_lt_req_limit name: LT_REQ_LIMIT label: Request limit defaultValue: "5000" description: "Set maximum number of requests per minute per client." - id: $$config_lt_batch_limit name: LT_BATCH_LIMIT label: Batch Limit defaultValue: "5000" description: "Set maximum number of texts to translate in a batch request." - id: $$config_lt_ga_id name: LT_GA_ID label: Google Analytics ID defaultValue: "" description: "Enable Google Analytics on the API client page by providing an ID" - id: $$config_lt_web_ui name: LT_DISABLE_WEB_UI label: Web UI defaultValue: "false" description: "Disable or enable web ui. True or false." - templateVersion: 1.0.0 defaultVersion: 0.8.1 documentation: https://github.com/benbusby/whoogle-search type: whoogle name: Whoogle Search description: A self-hosted, ad-free, privacy-respecting metasearch engine labels: - search - google services: $$id: name: Whoogle Search documentation: https://github.com/benbusby/whoogle-search depends_on: [] image: benbusby/whoogle-search:$$core_version cap_drop: - ALL environment: - WHOOGLE_USER=$$config_whoogle_username - WHOOGLE_PASS=$$secret_whoogle_password - WHOOGLE_CONFIG_PREFERENCES_KEY=$$secret_whoogle_preferences_key ulimits: nofile: soft: 262144 hard: 262144 ports: - "5000" variables: - id: $$config_whoogle_username name: WHOOGLE_USER label: Whoogle User defaultValue: $$generate_username description: "Username to log into Whoogle" - id: $$secret_whoogle_password name: WHOOGLE_PASSWORD label: Whoogle Password defaultValue: $$generate_password description: "Password to log into Whoogle" showOnConfiguration: true - id: $$secret_whoogle_preferences_key name: WHOOGLE_CONFIG_PREFERENCES_KEY label: Whoogle preferences key defaultValue: $$generate_password description: "password to encrypt preferences" - templateVersion: 1.0.0 defaultVersion: 1.1.3 documentation: https://docs.openblocks.dev/ type: openblocks name: Openblocks description: The Open Source Retool Alternative services: $$id: image: openblocksdev/openblocks-ce:$$core_version volumes: - $$id-stacks-data:/openblocks-stacks ports: - "3000" - templateVersion: 1.0.0 defaultVersion: "0.10.2" documentation: https://pocketbase.io/docs/ type: pocketbase name: Pocketbase description: "Open Source realtime backend in 1 file" services: $$id: image: coollabsio/pocketbase:$$core_version volumes: - $$id-data:/app/pb_data ports: - "8080" - templateVersion: 1.0.0 defaultVersion: v1.5.1 documentation: https://plausible.io/doc/ type: plausibleanalytics-arm name: Plausible Analytics (ARM) description: A lightweight and open-source website analytics tool. labels: - analytics - statistics - plausible - gdpr - no-cookie - google analytics services: $$id: name: Plausible Analytics 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 image: postgres:14-alpine volumes: - $$id-postgresql-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=$$secret_postgres_password - POSTGRES_USER=$$config_postgres_user - POSTGRES_DB=$$config_postgres_db $$id-clickhouse: name: Clickhouse volumes: - $$id-clickhouse-data:/var/lib/clickhouse image: clickhouse/clickhouse-server:22.6-alpine ulimits: nofile: soft: 262144 hard: 262144 files: - location: /etc/clickhouse-server/users.d/logging.xml content: >- warningtrue - location: /etc/clickhouse-server/config.d/logging.xml content: >- 00 - location: /docker-entrypoint-initdb.d/init.query content: CREATE DATABASE IF NOT EXISTS plausible; - location: /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_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db 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: Authentication defaultValue: "false" description: "" - id: $$config_disable_registration name: DISABLE_REGISTRATION label: Registration defaultValue: "true" description: "" - id: $$config_postgres_user main: $$id-postgresql name: POSTGRES_USER label: PostgreSQL Username defaultValue: postgresql 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: 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: "1.17" documentation: https://docs.gitea.io type: gitea name: Gitea description: Gitea is a community managed lightweight code hosting solution written in Go. labels: - storage - git services: $$id: name: Gitea documentation: https://docs.gitea.io image: gitea/gitea:$$core_version volumes: - $$id-data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - USER_UID=1000 - USER_GID=1000 - DOMAIN=$$config_domain - SSH_DOMAIN=$$config_ssh_domain - ROOT_URL=$$config_root_url - SECRET_KEY=$$secret_secret_key - INTERNAL_TOKEN=$$secret_internal_token - SSH_PORT=22 - START_SSH_SERVER=$$config_start_ssh_server ports: - "3000" - "22" proxy: - port: "22" hostPort: $$config_hostport_ssh variables: - id: $$config_hostport_ssh name: SSH_PORT label: SSH Port defaultValue: "8022" description: "" required: true - id: $$config_domain name: DOMAIN label: Domain defaultValue: $$generate_domain description: "" - id: $$config_ssh_domain name: SSH_DOMAIN label: SSH Domain defaultValue: $$generate_domain description: "" - id: $$config_start_ssh_server name: START_SSH_SERVER label: Start SSH Server defaultValue: "true" description: "" - id: $$config_root_url name: ROOT_URL label: Root URL of Gitea defaultValue: $$generate_fqdn_slash description: "" - id: $$secret_secret_key name: SECRET_KEY label: Secret Key defaultValue: $$generate_hex(32) description: "" - id: $$secret_internal_token name: INTERNAL_TOKEN label: Internal JWT Token defaultValue: $$generate_token description: "" - templateVersion: 1.0.0 defaultVersion: "20.0" documentation: https://www.keycloak.org/documentation type: keycloak name: Keycloak description: "Keycloak provides user federation, strong authentication, user management, fine-grained authorization, and more." labels: - authentication - authorization - oidconnect - saml2 services: $$id: name: Keycloak command: start --db=postgres --features=token-exchange --import-realm depends_on: - $$id-postgresql image: "quay.io/keycloak/keycloak:$$core_version" volumes: - $$id-import:/opt/keycloak/data/import environment: - KC_HEALTH_ENABLED=true - KC_PROXY=edge - KC_DB=postgres - KC_HOSTNAME=$$config_keycloak_domain - KEYCLOAK_ADMIN=$$config_admin_user - KEYCLOAK_ADMIN_PASSWORD=$$secret_keycloak_admin_password - KC_DB_PASSWORD=$$secret_postgres_password - KC_DB_USERNAME=$$config_postgres_user - KC_DB_URL=$$secret_keycloak_database_url 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: [] variables: - id: $$config_keycloak_domain name: KEYCLOAK_DOMAIN label: Keycloak Domain defaultValue: $$generate_domain description: "" - id: $$secret_keycloak_database_url name: KEYCLOAK_DATABASE_URL label: Keycloak Database Url defaultValue: >- jdbc:postgresql://$$id-postgresql:5432/$$config_postgres_db description: "" - id: $$config_admin_user name: KEYCLOAK_ADMIN label: Keycloak Admin User defaultValue: $$generate_username description: "" - id: $$secret_keycloak_admin_password name: KEYCLOAK_ADMIN_PASSWORD label: Keycloak 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: keycloak description: "" - templateVersion: 1.0.0 defaultVersion: v3.7 documentation: https://github.com/freyacodes/Lavalink description: Standalone audio sending node based on Lavaplayer. type: lavalink name: Lavalink labels: - discord - discord bot - audio - lavalink - jda services: $$id: name: Lavalink image: fredboat/lavalink:$$core_version environment: [] volumes: - $$id-lavalink:/lavalink ports: - $$config_port files: - location: /opt/Lavalink/application.yml content: >- server: port: 2333 address: 0.0.0.0 lavalink: server: password: "$$secret_password" sources: youtube: true bandcamp: true soundcloud: true twitch: true vimeo: true http: true local: false logging: file: path: ./logs/ level: root: INFO lavalink: INFO logback: rollingpolicy: max-file-size: 1GB max-history: 30 variables: - id: $$secret_password name: PASSWORD label: Password defaultValue: $$generate_password required: true - templateVersion: 1.0.0 defaultVersion: v1.8.9 documentation: https://docs.appsmith.com/getting-started/setup/instance-configuration/ type: appsmith name: Appsmith description: "Fastest way to build internal apps over any database or API." services: $$id: image: appsmith/appsmith-ce:$$core_version environment: - APPSMITH_MAIL_ENABLED=$$config_appsmith_mail_enabled - APPSMITH_DISABLE_TELEMETRY=$$config_appsmith_disable_telemetry - APPSMITH_DISABLE_INTERCOM=$$config_appsmith_disable_intercom volumes: - $$id-stacks-data:/appsmith-stacks ports: - "80" variables: - id: $$config_appsmith_mail_enabled name: APPSMITH_MAIL_ENABLED label: Enable Mail defaultValue: "false" description: "" - id: $$config_appsmith_disable_telemetry name: APPSMITH_DISABLE_TELEMETRY label: Disable Telemetry defaultValue: "true" description: "" - id: $$config_appsmith_disable_intercom name: APPSMITH_DISABLE_INTERCOM label: Disable Intercom defaultValue: "true" description: "" - templateVersion: 1.0.0 defaultVersion: 0.57.4 documentation: https://hub.docker.com/r/zadam/trilium description: "A hierarchical note taking application with focus on building large personal knowledge bases." labels: - personal - knowledge - notes - wiki type: trilium name: Trilium Notes services: $$id: image: zadam/trilium:$$core_version environment: [] volumes: - $$id-trilium:/home/node/trilium-data ports: - "8080" variables: [] - templateVersion: 1.0.0 defaultVersion: 1.18.5 documentation: https://hub.docker.com/r/louislam/uptime-kuma description: A free & fancy self-hosted monitoring tool. labels: - uptime type: uptimekuma name: UptimeKuma services: $$id: image: louislam/uptime-kuma:$$core_version environment: [] volumes: - $$id-uptimekuma:/app/data ports: - "3001" variables: [] - templateVersion: 1.0.0 defaultVersion: "5.8" documentation: https://hub.docker.com/r/silviof/docker-languagetool description: "A multilingual grammar, style and spell checker." type: languagetool name: LanguageTool services: $$id: image: silviof/docker-languagetool:$$core_version environment: [] volumes: - $$id-ngrams:/ngrams ports: - "8010" variables: [] - templateVersion: 1.0.0 defaultVersion: 1.26.0 documentation: https://hub.docker.com/r/vaultwarden/server description: "Bitwarden compatible server written in Rust." type: vaultwarden name: VaultWarden labels: - bitwarden - password manager services: $$id: image: vaultwarden/server:$$core_version environment: [] volumes: - $$id-data:/data ports: - "80" variables: [] - templateVersion: 1.0.0 defaultVersion: 9.3.1 documentation: https://hub.docker.com/r/grafana/grafana type: grafana name: Grafana description: >- Grafana allows you to query, visualize, alert on and understand your metrics. labels: - monitoring - metrics - dashboard services: $$id: image: grafana/grafana:$$core_version environment: [] volumes: - $$id-config:/etc/grafana - $$id-grafana:/var/lib/grafana ports: - "3000" variables: [] - templateVersion: 1.0.0 defaultVersion: 1.1.2 documentation: https://appwrite.io/docs type: appwrite name: Appwrite description: Secure Backend Server for Web, Mobile & Flutter Developers. labels: - serverless - backend - storage - api 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" - "/tmp:/tmp:rw" 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_root_pass" name: MARIADB_ROOT_PASSWORD label: MariaDB | MARIADB_ROOT_PASSWORD defaultValue: "$$generate_hex(16)" description: MariaDB server root user password. - 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 documentation: https://docs.weblate.org/en/latest/admin/install/docker.html description: "A copylefted libre software web-based continuous localization system." type: weblate name: Weblate labels: - translate - localization 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.12.12-966e9c3c documentation: https://docs.searxng.org/ type: searxng name: SearXNG description: "Free internet metasearch engine which aggregates results from more than 70 search services." 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: - location: /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: v3.0.0 documentation: https://glitchtip.com/documentation type: glitchtip name: GlitchTip description: "Simple, open source error tracking." labels: - sentry - bugsnag 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.16.0 documentation: https://hasura.io/docs/latest/index/ type: hasura name: Hasura description: "Instant realtime GraphQL APIs on any Postgres application, existing or new." labels: - graphql - database 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_SECRET=$$secret_hasura_graphql_admin_secret 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_secret name: HASURA_GRAPHQL_ADMIN_SECRET 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.39.5 documentation: https://umami.is/docs/getting-started type: umami-postgresql name: Umami subname: (PostgreSQL) description: >- A simple, easy to use, self-hosted web analytics solution. services: $$id: name: Umami 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 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: - location: /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 ignore: true defaultVersion: postgresql-v1.39.5 documentation: https://umami.is/docs/getting-started type: umami name: Umami subname: (PostgreSQL) description: >- A simple, easy to use, self-hosted web analytics solution. services: $$id: name: Umami 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 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: - location: /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.30.1 documentation: https://docs.meilisearch.com/learn/getting_started/quick_start.html type: meilisearch name: MeiliSearch description: >- 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 ignore: true defaultVersion: latest documentation: https://docs.ghost.org arch: amd64 type: ghost-mariadb name: Ghost subname: (MariaDB) description: >- Free and open source blogging platform. labels: - cms - blog services: $$id: name: Ghost 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.25.3" documentation: https://docs.ghost.org type: ghost-only name: Ghost subname: (without Database) description: >- Free and open source blogging platform. services: $$id: name: Ghost 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.25.3" documentation: https://docs.ghost.org type: ghost-mysql name: Ghost subname: (MySQL) description: >- Ghost is a free and open source blogging platform. services: $$id: name: Ghost 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 documentation: https://wordpress.org/ type: wordpress name: WordPress subname: (MySQL) description: A content management system based on PHP. labels: - "wordpress" - "php" - "cms" services: $$id: name: 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:8.0" 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 documentation: https://wordpress.org/ type: wordpress-only name: WordPress subname: (without DB) description: A content management system based on PHP. labels: - "wordpress" - "php" - "cms" services: $$id: name: 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.9.0 documentation: https://coder.com/docs/coder-oss/latest type: vscodeserver name: VSCode Server description: >- Visual Studio Code on a remote server, accessible through the browser. labels: - vscode - ide services: $$id: name: VSCode 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-12-12T19-27-27Z documentation: https://min.io/docs/minio type: minio name: MinIO description: "A cloud storage server compatible with Amazon S3." labels: - storage - s3 services: $$id: name: MinIO command: "server /data --console-address :9001" depends_on: [] image: "minio/minio:$$core_version" volumes: - "$$id-minio-data:/data" - "$$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 documentation: https://fider.io/docs type: fider name: Fider description: A platform to collect and organize customer feedback. labels: - suggestion - feedback services: $$id: name: Fider image: "getfider/fider:$$core_version" 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 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.207.0 documentation: https://docs.n8n.io type: n8n name: n8n.io description: A free and open node based Workflow Automation Tool. labels: - workflow - automation - ifttt - zapier - nodered services: $$id: name: 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 documentation: https://plausible.io/doc/ arch: amd64 type: plausibleanalytics name: Plausible Analytics description: A lightweight and open-source website analytics tool. labels: - analytics - statistics - plausible - gdpr - no-cookie - google analytics services: $$id: name: Plausible Analytics 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 image: "bitnami/postgresql:13" 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 volumes: - "$$id-clickhouse-data:/var/lib/clickhouse" image: "clickhouse/clickhouse-server:22.6-alpine" ulimits: nofile: soft: 262144 hard: 262144 files: - location: /etc/clickhouse-server/users.d/logging.xml content: >- warningtrue - location: /etc/clickhouse-server/config.d/logging.xml content: >- 00 - location: /docker-entrypoint-initdb.d/init.query content: CREATE DATABASE IF NOT EXISTS plausible; - location: /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: Authentication defaultValue: "false" description: "" - id: $$config_disable_registration name: DISABLE_REGISTRATION label: 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.99.1 documentation: https://docs.nocodb.com type: nocodb name: NocoDB description: >- Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet. labels: - database - airtable - 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: >- - 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).