3132 lines
122 KiB
YAML
3132 lines
122 KiB
YAML
- 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
|
|
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.6
|
|
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:
|
|
- "2333"
|
|
files:
|
|
- location: /opt/Lavalink/application.yml
|
|
content: >-
|
|
server:
|
|
port: $$config_port
|
|
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: $$config_port
|
|
name: PORT
|
|
label: Port
|
|
defaultValue: '2333'
|
|
required: true
|
|
- id: $$secret_password
|
|
name: PASSWORD
|
|
label: Password
|
|
defaultValue: $$generate_password
|
|
required: true
|
|
- templateVersion: 1.0.0
|
|
defaultVersion: v1.8.6
|
|
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.56.2
|
|
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.9.2
|
|
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.2.3
|
|
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.0.3
|
|
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"
|
|
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.10.14-1a5b0965
|
|
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: v2.0.6
|
|
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.13.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_PASSWORD=$$secret_hasura_graphql_admin_password
|
|
ports:
|
|
- "8080"
|
|
$$id-postgresql:
|
|
name: PostgreSQL
|
|
depends_on: []
|
|
image: "postgres:12-alpine"
|
|
volumes:
|
|
- "$$id-postgresql-data:/var/lib/postgresql/data"
|
|
environment:
|
|
- POSTGRES_USER=$$config_postgres_user
|
|
- POSTGRES_PASSWORD=$$secret_postgres_password
|
|
- POSTGRES_DB=$$config_postgres_db
|
|
ports: []
|
|
variables:
|
|
- id: $$config_hasura_graphql_enable_console
|
|
name: HASURA_GRAPHQL_ENABLE_CONSOLE
|
|
label: Enable Hasura Console
|
|
defaultValue: "true"
|
|
description: ""
|
|
- id: $$secret_hasura_graphql_metadata_database_url
|
|
name: HASURA_GRAPHQL_METADATA_DATABASE_URL
|
|
label: Hasura Metadata Database URL
|
|
defaultValue: >-
|
|
postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db
|
|
description: ""
|
|
- id: $$secret_hasura_graphql_admin_password
|
|
name: HASURA_GRAPHQL_ADMIN_PASSWORD
|
|
label: Hasura Admin Password
|
|
defaultValue: $$generate_password
|
|
description: ""
|
|
showOnConfiguration: true
|
|
- id: $$config_postgres_user
|
|
name: POSTGRES_USER
|
|
label: PostgreSQL User
|
|
defaultValue: $$generate_username
|
|
description: ""
|
|
- id: $$secret_postgres_password
|
|
name: POSTGRES_PASSWORD
|
|
label: PostgreSQL Password
|
|
defaultValue: $$generate_password
|
|
description: ""
|
|
- id: $$config_postgres_db
|
|
name: POSTGRES_DB
|
|
label: PostgreSQL Database
|
|
defaultValue: hasura
|
|
description: ""
|
|
- templateVersion: 1.0.0
|
|
defaultVersion: postgresql-v1.38.0
|
|
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.38.0
|
|
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.29.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
|
|
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.22"
|
|
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.22"
|
|
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.7.1
|
|
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-10-15T19-57-03Z
|
|
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.198.1
|
|
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/
|
|
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.2.0"
|
|
volumes:
|
|
- "$$id-postgresql-data:/bitnami/postgresql"
|
|
environment:
|
|
- POSTGRESQL_PASSWORD=$$secret_postgresql_password
|
|
- POSTGRESQL_USERNAME=$$config_postgresql_username
|
|
- POSTGRESQL_DATABASE=$$config_postgresql_database
|
|
$$id-clickhouse:
|
|
name: Clickhouse
|
|
volumes:
|
|
- "$$id-clickhouse-data:/var/lib/clickhouse"
|
|
image: "yandex/clickhouse-server:21.3.2.5"
|
|
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: Disable Authentication
|
|
defaultValue: "false"
|
|
description: ""
|
|
- id: $$config_disable_registration
|
|
name: DISABLE_REGISTRATION
|
|
label: Disable Registration
|
|
defaultValue: "true"
|
|
description: ""
|
|
- id: $$config_postgresql_username
|
|
main: $$id-postgresql
|
|
name: POSTGRESQL_USERNAME
|
|
label: PostgreSQL Username
|
|
defaultValue: postgresql
|
|
description: ""
|
|
- id: $$secret_postgresql_password
|
|
main: $$id-postgresql
|
|
name: POSTGRESQL_PASSWORD
|
|
label: PostgreSQL Password
|
|
defaultValue: $$generate_password
|
|
description: ""
|
|
showOnConfiguration: true
|
|
- id: $$config_postgresql_database
|
|
main: $$id-postgresql
|
|
name: POSTGRESQL_DATABASE
|
|
label: PostgreSQL Database
|
|
defaultValue: plausible
|
|
description: ""
|
|
- id: $$config_scriptName
|
|
name: SCRIPT_NAME
|
|
label: Custom Script Name
|
|
defaultValue: plausible.js
|
|
description: This is the default script name.
|
|
- templateVersion: 1.0.0
|
|
defaultVersion: 0.98.1
|
|
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).
|