lasthourcloud/apps/server/devTemplates.yaml
Andras Bacsai 568ab24fd9 wip: trpc
2023-01-13 14:17:36 +01:00

3583 lines
134 KiB
YAML

- 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: >-
<yandex><logger><level>warning</level><console>true</console></logger><query_thread_log
remove="remove"/><query_log remove="remove"/><text_log
remove="remove"/><trace_log remove="remove"/><metric_log
remove="remove"/><asynchronous_metric_log
remove="remove"/><session_log remove="remove"/><part_log
remove="remove"/></yandex>
- location: /etc/clickhouse-server/config.d/logging.xml
content: >-
<yandex><profiles><default><log_queries>0</log_queries><log_query_threads>0</log_query_threads></default></profiles></yandex>
- 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: >-
<yandex><logger><level>warning</level><console>true</console></logger><query_thread_log
remove="remove"/><query_log remove="remove"/><text_log
remove="remove"/><trace_log remove="remove"/><metric_log
remove="remove"/><asynchronous_metric_log
remove="remove"/><session_log remove="remove"/><part_log
remove="remove"/></yandex>
- location: /etc/clickhouse-server/config.d/logging.xml
content: >-
<yandex><profiles><default><log_queries>0</log_queries><log_query_threads>0</log_query_threads></default></profiles></yandex>
- 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).