mirror of
https://github.com/tiennm99/coolify.git
synced 2026-04-17 17:21:04 +00:00
Merge branch 'next' into add-opnform-template
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
services:
|
||||
activepieces:
|
||||
image: "ghcr.io/activepieces/activepieces:latest"
|
||||
image: "ghcr.io/activepieces/activepieces:0.21.0" # Released on March 13 2024
|
||||
environment:
|
||||
- SERVICE_URL_ACTIVEPIECES
|
||||
- AP_API_KEY=$SERVICE_PASSWORD_64_APIKEY
|
||||
@@ -40,7 +40,7 @@ services:
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
postgres:
|
||||
image: "postgres:latest"
|
||||
image: 'postgres:14.4'
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-activepieces}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
@@ -54,7 +54,7 @@ services:
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
redis:
|
||||
image: "redis:latest"
|
||||
image: 'redis:7.0.7'
|
||||
volumes:
|
||||
- "redis_data:/data"
|
||||
healthcheck:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# documentation: https://appwrite.io
|
||||
# documentation: https://appwrite.io/docs
|
||||
# slogan: A backend-as-a-service platform that simplifies the web & mobile app development.
|
||||
# category: backend
|
||||
# tags: backend, backend-as-a-service, platform
|
||||
@@ -139,12 +139,22 @@ services:
|
||||
- _APP_DATABASE_SHARED_NAMESPACE=${_APP_DATABASE_SHARED_NAMESPACE}
|
||||
- _APP_FUNCTIONS_CREATION_ABUSE_LIMIT=${_APP_FUNCTIONS_CREATION_ABUSE_LIMIT}
|
||||
- _APP_CUSTOM_DOMAIN_DENY_LIST=${_APP_CUSTOM_DOMAIN_DENY_LIST}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsI http://localhost:80 | head -n 1 | grep -E '^HTTP/.* 3[0-9]{2} ' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-console:
|
||||
image: appwrite/console:6.1.28
|
||||
container_name: appwrite-console
|
||||
environment:
|
||||
- SERVICE_URL_APPWRITE=/console
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsI http://localhost:80 | head -n 1 | grep -E '^HTTP/.* 3[0-9]{2} ' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-realtime:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -172,6 +182,11 @@ services:
|
||||
- _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled}
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -s localhost > /dev/null || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-audits:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -195,6 +210,12 @@ services:
|
||||
- _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-audits' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
appwrite-worker-webhooks:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -221,6 +242,11 @@ services:
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_WEBHOOK_MAX_FAILED_ATTEMPTS=${_APP_WEBHOOK_MAX_FAILED_ATTEMPTS}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-webhooks' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-deletes:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -279,6 +305,11 @@ services:
|
||||
- _APP_EMAIL_CERTIFICATES=${_APP_EMAIL_CERTIFICATES}
|
||||
- _APP_MAINTENANCE_RETENTION_AUDIT=${_APP_MAINTENANCE_RETENTION_AUDIT:-1209600}
|
||||
- _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE=${_APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-deletes' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-databases:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -304,6 +335,12 @@ services:
|
||||
- _APP_WORKERS_NUM=${_APP_WORKERS_NUM}
|
||||
- _APP_QUEUE_NAME=${_APP_QUEUE_NAME}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-databases' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
appwrite-worker-builds:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -371,6 +408,11 @@ services:
|
||||
- _APP_DOMAIN_SITES=${_APP_DOMAIN_SITES:-sites.$SERVICE_FQDN_APPWRITE}
|
||||
- _APP_BROWSER_HOST=${_APP_BROWSER_HOST}
|
||||
- _APP_CONSOLE_DOMAIN=${_APP_CONSOLE_DOMAIN}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-builds' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-certificates:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -405,6 +447,11 @@ services:
|
||||
- _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-certificates' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-functions:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -442,6 +489,11 @@ services:
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_LOGGING_PROVIDER=${_APP_LOGGING_PROVIDER}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-functions' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-mails:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -474,6 +526,12 @@ services:
|
||||
- _APP_DOMAIN=${_APP_DOMAIN:-$SERVICE_FQDN_APPWRITE}
|
||||
- _APP_OPTIONS_FORCE_HTTPS=${_APP_OPTIONS_FORCE_HTTPS:-disabled}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-mails' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
appwrite-worker-messaging:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -523,7 +581,12 @@ services:
|
||||
- _APP_STORAGE_WASABI_REGION=${_APP_STORAGE_WASABI_REGION:-eu-central-1}
|
||||
- _APP_STORAGE_WASABI_BUCKET=${_APP_STORAGE_WASABI_BUCKET}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-messaging' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-migrations:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
entrypoint: worker-migrations
|
||||
@@ -556,6 +619,7 @@ services:
|
||||
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID=${_APP_MIGRATIONS_FIREBASE_CLIENT_ID}
|
||||
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=${_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
exclude_from_hc: true
|
||||
|
||||
appwrite-task-maintenance:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -593,6 +657,12 @@ services:
|
||||
- _APP_MAINTENANCE_RETENTION_SCHEDULES=${_APP_MAINTENANCE_RETENTION_SCHEDULES:-86400}
|
||||
- _APP_MAINTENANCE_START_TIME=${_APP_MAINTENANCE_START_TIME}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[m]aintenance' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
appwrite-task-stats-resources:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -618,6 +688,11 @@ services:
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
- _APP_STATS_RESOURCES_INTERVAL=${_APP_STATS_RESOURCES_INTERVAL}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[s]tats-resources' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-stats-resources:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -642,6 +717,11 @@ services:
|
||||
- _APP_USAGE_STATS=${_APP_USAGE_STATS:-enabled}
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_STATS_RESOURCES_INTERVAL=${_APP_STATS_RESOURCES_INTERVAL}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-stats-resources' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-worker-stats-usage:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -667,6 +747,12 @@ services:
|
||||
- _APP_LOGGING_CONFIG=${_APP_LOGGING_CONFIG}
|
||||
- _APP_USAGE_AGGREGATION_INTERVAL=${_APP_USAGE_AGGREGATION_INTERVAL:-30}
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[w]orker-stats-usage' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
appwrite-task-scheduler-functions:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -689,6 +775,11 @@ services:
|
||||
- _APP_DB_USER=$SERVICE_USER_MARIADB
|
||||
- _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[s]chedule-functi' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-task-scheduler-executions:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -711,6 +802,11 @@ services:
|
||||
- _APP_DB_USER=$SERVICE_USER_MARIADB
|
||||
- _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[s]chedule-execut' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-task-scheduler-messages:
|
||||
image: appwrite/appwrite:1.7.4
|
||||
@@ -733,17 +829,33 @@ services:
|
||||
- _APP_DB_USER=$SERVICE_USER_MARIADB
|
||||
- _APP_DB_PASS=$SERVICE_PASSWORD_MARIADB
|
||||
- _APP_DATABASE_SHARED_TABLES=${_APP_DATABASE_SHARED_TABLES}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "ps aux | grep -q '[s]chedule-messag' || exit 1"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-assistant:
|
||||
image: appwrite/assistant:0.8.3
|
||||
container_name: appwrite-assistant
|
||||
environment:
|
||||
- _APP_ASSISTANT_OPENAI_API_KEY=${_APP_ASSISTANT_OPENAI_API_KEY}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:3003 || exit 0"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
appwrite-browser:
|
||||
image: appwrite/browser:0.2.4
|
||||
container_name: appwrite-browser
|
||||
hostname: appwrite-browser
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "import('http').then(http => http.get('http://localhost:3000', res => process.exit(0)).on('error', () => process.exit(1)))"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
|
||||
openruntimes-executor:
|
||||
container_name: openruntimes-executor
|
||||
@@ -805,6 +917,11 @@ services:
|
||||
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MARIADB
|
||||
- MARIADB_AUTO_UPGRADE=1
|
||||
command: 'mysqld --innodb-flush-method=fsync'
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 20s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
appwrite-redis:
|
||||
image: redis:7.2.4-alpine
|
||||
@@ -816,19 +933,12 @@ services:
|
||||
--maxmemory-samples 5
|
||||
volumes:
|
||||
- appwrite-redis:/data:rw
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 20s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
networks:
|
||||
runtimes:
|
||||
name: runtimes
|
||||
|
||||
volumes:
|
||||
appwrite-mariadb:
|
||||
appwrite-redis:
|
||||
appwrite-cache:
|
||||
appwrite-uploads:
|
||||
appwrite-imports:
|
||||
appwrite-certificates:
|
||||
appwrite-functions:
|
||||
appwrite-sites:
|
||||
appwrite-builds:
|
||||
appwrite-config:
|
||||
name: runtimes
|
||||
@@ -22,7 +22,7 @@ services:
|
||||
retries: 10
|
||||
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
command: server /data --console-address ":9001"
|
||||
environment:
|
||||
- MINIO_SERVER_URL=$MINIO_SERVER_URL
|
||||
@@ -32,7 +32,7 @@ services:
|
||||
volumes:
|
||||
- azimutt-minio-data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
# Add the public Key in "Key" env variable and token in the "Token" variable below (These are obtained from Beszel UI)
|
||||
services:
|
||||
beszel:
|
||||
image: 'henrygd/beszel:0.12.10'
|
||||
image: 'henrygd/beszel:0.15.2' # Released on October 30 2025
|
||||
environment:
|
||||
- SERVICE_URL_BESZEL_8090
|
||||
volumes:
|
||||
- 'beszel_data:/beszel_data'
|
||||
- 'beszel_socket:/beszel_socket'
|
||||
beszel-agent:
|
||||
image: 'henrygd/beszel-agent:0.12.10'
|
||||
image: 'henrygd/beszel-agent:0.15.2' # Released on October 30 2025
|
||||
volumes:
|
||||
- beszel_agent_data:/var/lib/beszel-agent
|
||||
- beszel_socket:/beszel_socket
|
||||
|
||||
@@ -66,7 +66,7 @@ services:
|
||||
start_period: 10s
|
||||
|
||||
minio-service:
|
||||
image: minio/minio
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
environment:
|
||||
@@ -75,10 +75,10 @@ services:
|
||||
- MINIO_BROWSER=off
|
||||
command: server /data --console-address ":9001"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
||||
interval: 30s
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
retries: 10
|
||||
|
||||
proxy-service:
|
||||
image: budibase/proxy
|
||||
|
||||
@@ -86,7 +86,7 @@ services:
|
||||
retries: 5
|
||||
|
||||
minio:
|
||||
image: 'quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z' # Released at 2025-09-07T16-13-09Z
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
command: 'server /data --console-address ":9001"'
|
||||
environment:
|
||||
- MINIO_SERVER_URL=$MINIO_SERVER_URL
|
||||
@@ -96,11 +96,7 @@ services:
|
||||
volumes:
|
||||
- 'minio-data:/data'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- mc
|
||||
- ready
|
||||
- local
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# documentation: https://doc.evolution-api.com/v1/pt/get-started/introduction
|
||||
# slogan: Evolution API Installation with Postgres and Redis
|
||||
# documentation: https://doc.evolution-api.com/v2/en/get-started/introduction
|
||||
# slogan: Multi-platform messaging (whatsapp and more) integration API
|
||||
# category: backend
|
||||
# tags: evolution-api,evo-api,evolution,whatsapp,api,postgres,redis
|
||||
# logo: svgs/evolution-api.svg
|
||||
|
||||
40
templates/compose/home-assistant.yaml
Normal file
40
templates/compose/home-assistant.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# documentation: https://www.home-assistant.io/installation/linux#docker-compose
|
||||
# slogan: Open source home automation that puts local control and privacy first.
|
||||
# category: automation
|
||||
# tags: home-automation,iot,smart-home,automation,domotics,mqtt,zigbee,zwave
|
||||
# logo: svgs/home-assistant.svg
|
||||
# port: 8123
|
||||
|
||||
services:
|
||||
homeassistant:
|
||||
image: ghcr.io/home-assistant/home-assistant:2025.10.2
|
||||
environment:
|
||||
- SERVICE_URL_HOMEASSISTANT_8123
|
||||
- TZ=${TZ:-UTC}
|
||||
- DISABLE_JEMALLOC=${DISABLE_JEMALLOC:-false}
|
||||
volumes:
|
||||
- homeassistant-config:/config
|
||||
- /run/dbus:/run/dbus:ro
|
||||
- type: bind
|
||||
source: ./configuration.yaml
|
||||
target: /config/configuration.yaml
|
||||
content: |
|
||||
# Loads default set of integrations. Do not remove.
|
||||
default_config:
|
||||
|
||||
# Configuration for reverse proxy support (required for Coolify)
|
||||
http:
|
||||
use_x_forwarded_for: true
|
||||
trusted_proxies:
|
||||
- 10.0.0.0/8
|
||||
- 172.16.0.0/12
|
||||
- 192.168.0.0/16
|
||||
ip_ban_enabled: true
|
||||
login_attempts_threshold: 5
|
||||
privileged: true
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8123"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
@@ -15,10 +15,15 @@ services:
|
||||
volumes:
|
||||
- huly-db:/data/db
|
||||
minio:
|
||||
image: "minio/minio"
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
command: server /data --address ":9000" --console-address ":9001"
|
||||
volumes:
|
||||
- huly-files:/data
|
||||
- huly-files:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
elastic:
|
||||
image: "elasticsearch:7.14.2"
|
||||
command: |
|
||||
|
||||
50
templates/compose/metamcp.yaml
Normal file
50
templates/compose/metamcp.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
# documentation: https://github.com/metatool-ai/metamcp
|
||||
# slogan: MCP Aggregator, Orchestrator, Middleware, Gateway in one app
|
||||
# tags: mcp, ai, sse, aggregator, orchestrator, middleware
|
||||
# category: mcp
|
||||
# logo: svgs/metamcp.png
|
||||
# port: 12008
|
||||
|
||||
services:
|
||||
app:
|
||||
image: ghcr.io/metatool-ai/metamcp:2.4
|
||||
environment:
|
||||
- SERVICE_URL_METAMCP_12008
|
||||
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
|
||||
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-metamcp_db}
|
||||
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@${POSTGRES_HOST:-postgres}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-metamcp_db}
|
||||
- APP_URL=${SERVICE_URL_METAMCP}
|
||||
- NEXT_PUBLIC_APP_URL=${SERVICE_URL_METAMCP}
|
||||
- BETTER_AUTH_SECRET=${SERVICE_PASSWORD_AUTH}
|
||||
- TRANSFORM_LOCALHOST_TO_DOCKER_INTERNAL=${TRANSFORM_LOCALHOST_TO_DOCKER_INTERNAL:-true}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://localhost:12008/health'
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-metamcp_db}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- 'pg_isready -U ${SERVICE_USER_POSTGRES} -d ${POSTGRES_DB:-metamcp_db}'
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
22
templates/compose/minio-community-edition.yaml
Normal file
22
templates/compose/minio-community-edition.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
# documentation: https://github.com/coollabsio/minio?tab=readme-ov-file#minio-docker-images
|
||||
# slogan: MinIO is a high performance object storage server compatible with Amazon S3 APIs.
|
||||
# category: storage
|
||||
# tags: object, storage, server, s3, api
|
||||
# logo: svgs/minio.svg
|
||||
|
||||
services:
|
||||
minio:
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
command: server /data --console-address ":9001"
|
||||
environment:
|
||||
- MINIO_SERVER_URL=$MINIO_SERVER_URL
|
||||
- MINIO_BROWSER_REDIRECT_URL=$MINIO_BROWSER_REDIRECT_URL
|
||||
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
|
||||
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
|
||||
volumes:
|
||||
- minio-data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -1,3 +1,4 @@
|
||||
# ignore: true
|
||||
# documentation: https://min.io/docs/minio/container/index.html
|
||||
# slogan: MinIO is a high performance object storage server compatible with Amazon S3 APIs.
|
||||
# category: storage
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# ignore: true
|
||||
# documentation: https://github.com/stonith404/pingvin-share
|
||||
# slogan: A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing.
|
||||
# category: storage
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# ignore: true
|
||||
# documentation: https://github.com/stonith404/pingvin-share
|
||||
# slogan: A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing.
|
||||
# category: storage
|
||||
|
||||
@@ -4,72 +4,77 @@
|
||||
# tags: plane,project-management,tool,open,source,api,nextjs,redis,postgresql,django,pm
|
||||
# logo: svgs/plane.svg
|
||||
|
||||
x-app-env: &app-env
|
||||
environment:
|
||||
- APP_RELEASE=${APP_RELEASE:-v0.25.2}
|
||||
- WEB_URL=${SERVICE_URL_PLANE}
|
||||
- DEBUG=${DEBUG:-0}
|
||||
- CORS_ALLOWED_ORIGINS=${CORS_ALLOWED_ORIGIN:-http://localhost}
|
||||
# Gunicorn Workers
|
||||
- GUNICORN_WORKERS=${GUNICORN_WORKERS:-1}
|
||||
#DB SETTINGS
|
||||
- PGHOST=plane-db
|
||||
- PGDATABASE=plane
|
||||
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||
- POSTGRES_DB=plane
|
||||
- POSTGRES_PORT=5432
|
||||
- PGDATA=/var/lib/postgresql/data
|
||||
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@plane-db/plane
|
||||
# REDIS SETTINGS
|
||||
- REDIS_HOST=plane-redis
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_URL=${REDIS_URL:-redis://plane-redis:6379/}
|
||||
x-db-env: &db-env
|
||||
PGHOST: plane-db
|
||||
PGDATABASE: plane
|
||||
POSTGRES_USER: $SERVICE_USER_POSTGRES
|
||||
POSTGRES_PASSWORD: $SERVICE_PASSWORD_POSTGRES
|
||||
POSTGRES_DB: plane
|
||||
POSTGRES_PORT: 5432
|
||||
PGDATA: /var/lib/postgresql/data
|
||||
|
||||
# RabbitMQ Settings
|
||||
- RABBITMQ_HOST=plane-mq
|
||||
- RABBITMQ_PORT=${RABBITMQ_PORT:-5672}
|
||||
- RABBITMQ_DEFAULT_USER=${SERVICE_USER_RABBITMQ:-plane}
|
||||
- RABBITMQ_DEFAULT_PASS=${SERVICE_PASSWORD_RABBITMQ:-plane}
|
||||
- RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST:-plane}
|
||||
- RABBITMQ_VHOST=${RABBITMQ_VHOST:-plane}
|
||||
- 'AMQP_URL=amqp://${SERVICE_USER_RABBITMQ}:${SERVICE_PASSWORD_RABBITMQ}@plane-mq:${RABBITMQ_PORT}/plane'
|
||||
# Application secret
|
||||
- SECRET_KEY=$SERVICE_PASSWORD_64_SECRETKEY
|
||||
# DATA STORE SETTINGS
|
||||
- USE_MINIO=${USE_MINIO:-1}
|
||||
- AWS_REGION=${AWS_REGION}
|
||||
- AWS_ACCESS_KEY_ID=$SERVICE_USER_MINIO
|
||||
- AWS_SECRET_ACCESS_KEY=$SERVICE_PASSWORD_MINIO
|
||||
- AWS_S3_ENDPOINT_URL=${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000}
|
||||
- AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads}
|
||||
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
|
||||
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
|
||||
- BUCKET_NAME=${BUCKET_NAME:-uploads}
|
||||
- FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880}
|
||||
# Live server env
|
||||
- API_BASE_URL=${API_BASE_URL:-http://api:8000}
|
||||
x-redis-env: &redis-env
|
||||
REDIS_HOST: ${REDIS_HOST:-plane-redis}
|
||||
REDIS_PORT: ${REDIS_PORT:-6379}
|
||||
REDIS_URL: ${REDIS_URL:-redis://plane-redis:6379/}
|
||||
|
||||
x-minio-env: &minio-env
|
||||
MINIO_ROOT_USER: $SERVICE_USER_MINIO
|
||||
MINIO_ROOT_PASSWORD: $SERVICE_PASSWORD_MINIO
|
||||
|
||||
x-aws-s3-env: &aws-s3-env
|
||||
AWS_REGION: ${AWS_REGION:-}
|
||||
AWS_ACCESS_KEY_ID: $SERVICE_USER_MINIO
|
||||
AWS_SECRET_ACCESS_KEY: $SERVICE_PASSWORD_MINIO
|
||||
AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000}
|
||||
AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-uploads}
|
||||
|
||||
x-mq-env: &mq-env # RabbitMQ Settings
|
||||
RABBITMQ_HOST: plane-mq
|
||||
RABBITMQ_PORT: ${RABBITMQ_PORT:-5672}
|
||||
RABBITMQ_DEFAULT_USER: ${SERVICE_USER_RABBITMQ:-plane}
|
||||
RABBITMQ_DEFAULT_PASS: ${SERVICE_PASSWORD_RABBITMQ:-plane}
|
||||
RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_VHOST:-plane}
|
||||
RABBITMQ_VHOST: ${RABBITMQ_VHOST:-plane}
|
||||
|
||||
x-live-env: &live-env
|
||||
API_BASE_URL: ${API_BASE_URL:-http://api:8000}
|
||||
|
||||
x-app-env: &app-env
|
||||
APP_RELEASE: ${APP_RELEASE:-v1.0.0}
|
||||
WEB_URL: ${SERVICE_URL_PLANE}
|
||||
DEBUG: ${DEBUG:-0}
|
||||
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS:-http://localhost}
|
||||
GUNICORN_WORKERS: ${GUNICORN_WORKERS:-1}
|
||||
USE_MINIO: ${USE_MINIO:-1}
|
||||
DATABASE_URL: postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@plane-db/plane
|
||||
SECRET_KEY: $SERVICE_PASSWORD_64_SECRETKEY
|
||||
AMQP_URL: amqp://${SERVICE_USER_RABBITMQ}:${SERVICE_PASSWORD_RABBITMQ}@plane-mq:${RABBITMQ_PORT:-5672}/plane
|
||||
API_KEY_RATE_LIMIT: ${API_KEY_RATE_LIMIT:-60/minute}
|
||||
MINIO_ENDPOINT_SSL: ${MINIO_ENDPOINT_SSL:-0}
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: artifacts.plane.so/makeplane/plane-proxy:${APP_RELEASE:-v1.0.0}
|
||||
environment:
|
||||
- SERVICE_URL_PLANE
|
||||
- APP_DOMAIN=${SERVICE_URL_PLANE}
|
||||
- SITE_ADDRESS=:80
|
||||
- FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880}
|
||||
- BUCKET_NAME=${BUCKET_NAME:-uploads}
|
||||
image: makeplane/plane-proxy:${APP_RELEASE:-v0.25.1}
|
||||
- BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads}
|
||||
depends_on:
|
||||
- web
|
||||
- api
|
||||
- space
|
||||
- admin
|
||||
- live
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
web:
|
||||
image: makeplane/plane-frontend:${APP_RELEASE:-v0.25.1}
|
||||
command: node web/server.js web
|
||||
image: artifacts.plane.so/makeplane/plane-frontend:${APP_RELEASE:-v1.0.0}
|
||||
depends_on:
|
||||
- api
|
||||
- worker
|
||||
@@ -78,9 +83,9 @@ services:
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
space:
|
||||
image: makeplane/plane-space:${APP_RELEASE:-v0.25.1}
|
||||
command: node space/server.js space
|
||||
image: artifacts.plane.so/makeplane/plane-space:${APP_RELEASE:-v1.0.0}
|
||||
depends_on:
|
||||
- api
|
||||
- worker
|
||||
@@ -92,8 +97,7 @@ services:
|
||||
retries: 15
|
||||
|
||||
admin:
|
||||
image: makeplane/plane-admin:${APP_RELEASE:-v0.25.1}
|
||||
command: node admin/server.js admin
|
||||
image: artifacts.plane.so/makeplane/plane-admin:${APP_RELEASE:-v1.0.0}
|
||||
depends_on:
|
||||
- api
|
||||
- web
|
||||
@@ -104,12 +108,13 @@ services:
|
||||
retries: 15
|
||||
|
||||
live:
|
||||
<<: *app-env
|
||||
image: makeplane/plane-live:${APP_RELEASE:-v0.25.1}
|
||||
command: node live/dist/server.js live
|
||||
image: artifacts.plane.so/makeplane/plane-live:${APP_RELEASE:-v1.0.0}
|
||||
environment:
|
||||
<<: [*live-env, *redis-env]
|
||||
depends_on:
|
||||
- api
|
||||
- web
|
||||
- plane-redis
|
||||
healthcheck:
|
||||
test: ["CMD", "echo", "hey whats up"]
|
||||
interval: 2s
|
||||
@@ -117,14 +122,16 @@ services:
|
||||
retries: 15
|
||||
|
||||
api:
|
||||
<<: *app-env
|
||||
image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1}
|
||||
image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.0.0}
|
||||
command: ./bin/docker-entrypoint-api.sh
|
||||
volumes:
|
||||
- logs_api:/code/plane/logs
|
||||
environment:
|
||||
<<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env, *mq-env]
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
healthcheck:
|
||||
test: ["CMD", "echo", "hey whats up"]
|
||||
interval: 2s
|
||||
@@ -132,15 +139,17 @@ services:
|
||||
retries: 15
|
||||
|
||||
worker:
|
||||
<<: *app-env
|
||||
image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1}
|
||||
image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.0.0}
|
||||
command: ./bin/docker-entrypoint-worker.sh
|
||||
volumes:
|
||||
- logs_worker:/code/plane/logs
|
||||
environment:
|
||||
<<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env, *mq-env]
|
||||
depends_on:
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
healthcheck:
|
||||
test: ["CMD", "echo", "hey whats up"]
|
||||
interval: 2s
|
||||
@@ -148,15 +157,17 @@ services:
|
||||
retries: 15
|
||||
|
||||
beat-worker:
|
||||
<<: *app-env
|
||||
image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1}
|
||||
image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.0.0}
|
||||
command: ./bin/docker-entrypoint-beat.sh
|
||||
volumes:
|
||||
- logs_beat-worker:/code/plane/logs
|
||||
environment:
|
||||
<<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env, *mq-env]
|
||||
depends_on:
|
||||
- api
|
||||
- plane-db
|
||||
- plane-redis
|
||||
- plane-mq
|
||||
healthcheck:
|
||||
test: ["CMD", "echo", "hey whats up"]
|
||||
interval: 2s
|
||||
@@ -164,20 +175,23 @@ services:
|
||||
retries: 15
|
||||
|
||||
migrator:
|
||||
<<: *app-env
|
||||
image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1}
|
||||
image: artifacts.plane.so/makeplane/plane-backend:${APP_RELEASE:-v1.0.0}
|
||||
restart: "no"
|
||||
command: ./bin/docker-entrypoint-migrator.sh
|
||||
volumes:
|
||||
- logs_migrator:/code/plane/logs
|
||||
environment:
|
||||
<<: [*app-env, *db-env, *redis-env, *minio-env, *aws-s3-env, *mq-env]
|
||||
depends_on:
|
||||
- plane-db
|
||||
- plane-redis
|
||||
|
||||
# Comment this if you already have a database running
|
||||
plane-db:
|
||||
<<: *app-env
|
||||
image: postgres:15.7-alpine
|
||||
command: postgres -c 'max_connections=1000'
|
||||
environment:
|
||||
<<: *db-env
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
@@ -187,7 +201,6 @@ services:
|
||||
retries: 10
|
||||
|
||||
plane-redis:
|
||||
<<: *app-env
|
||||
image: valkey/valkey:7.2.5-alpine
|
||||
volumes:
|
||||
- redisdata:/data
|
||||
@@ -198,9 +211,10 @@ services:
|
||||
retries: 10
|
||||
|
||||
plane-mq:
|
||||
<<: *app-env
|
||||
image: rabbitmq:3.13.6-management-alpine
|
||||
restart: always
|
||||
environment:
|
||||
<<: *mq-env
|
||||
volumes:
|
||||
- rabbitmq_data:/var/lib/rabbitmq
|
||||
healthcheck:
|
||||
@@ -209,10 +223,12 @@ services:
|
||||
timeout: 30s
|
||||
retries: 3
|
||||
|
||||
# Comment this if you using any external s3 compatible storage
|
||||
plane-minio:
|
||||
<<: *app-env
|
||||
image: minio/minio:latest
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z
|
||||
command: server /export --console-address ":9090"
|
||||
environment:
|
||||
<<: *minio-env
|
||||
volumes:
|
||||
- uploads:/export
|
||||
healthcheck:
|
||||
|
||||
55
templates/compose/pocket-id-with-postgresql.yaml
Normal file
55
templates/compose/pocket-id-with-postgresql.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# documentation: https://pocket-id.org/docs/setup/installation
|
||||
# slogan: A simple and secure OIDC provider with passkey authentication
|
||||
# category: auth
|
||||
# tags: identity,oidc,oauth,passkey,webauthn,authentication,sso,openid,postgresql
|
||||
# logo: svgs/pocketid-logo.png
|
||||
# port: 1411
|
||||
|
||||
services:
|
||||
pocket-id:
|
||||
image: ghcr.io/pocket-id/pocket-id:v1.13
|
||||
environment:
|
||||
- SERVICE_URL_POCKETID_1411
|
||||
- APP_URL=${SERVICE_URL_POCKETID}
|
||||
- TRUST_PROXY=${TRUST_PROXY:-true}
|
||||
- DB_PROVIDER=postgres
|
||||
- DB_CONNECTION_STRING=postgresql://${SERVICE_USER_POSTGRESQL}:${SERVICE_PASSWORD_POSTGRESQL}@postgresql:5432/${POSTGRES_DB:-pocketid}
|
||||
- ENCRYPTION_KEY=${SERVICE_PASSWORD_64_POCKETID}
|
||||
- KEYS_STORAGE=${KEYS_STORAGE:-database}
|
||||
- MAXMIND_LICENSE_KEY=${MAXMIND_LICENSE_KEY}
|
||||
- SMTP_HOST=${SMTP_HOST}
|
||||
- SMTP_PORT=${SMTP_PORT:-587}
|
||||
- SMTP_FROM=${SMTP_FROM}
|
||||
- SMTP_USER=${SMTP_USER}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_TLS=${SMTP_TLS:-starttls}
|
||||
- SMTP_SKIP_CERT_VERIFY=${SMTP_SKIP_CERT_VERIFY:-false}
|
||||
- EMAIL_LOGIN_NOTIFICATION_ENABLED=${EMAIL_LOGIN_NOTIFICATION_ENABLED:-false}
|
||||
- EMAIL_ONE_TIME_ACCESS_AS_ADMIN_ENABLED=${EMAIL_ONE_TIME_ACCESS_AS_ADMIN_ENABLED:-false}
|
||||
- EMAIL_API_KEY_EXPIRATION_ENABLED=${EMAIL_API_KEY_EXPIRATION_ENABLED:-false}
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
volumes:
|
||||
- pocket-id-data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD", "/app/pocket-id", "healthcheck"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
depends_on:
|
||||
postgresql:
|
||||
condition: service_healthy
|
||||
postgresql:
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- pocket-id-postgresql-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-pocketid}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
35
templates/compose/pocket-id.yaml
Normal file
35
templates/compose/pocket-id.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
# documentation: https://pocket-id.org/docs/setup/installation
|
||||
# slogan: A simple and secure OIDC provider with passkey authentication
|
||||
# category: auth
|
||||
# tags: identity,oidc,oauth,passkey,webauthn,authentication,sso,openid
|
||||
# logo: svgs/pocketid-logo.png
|
||||
# port: 1411
|
||||
|
||||
services:
|
||||
pocket-id:
|
||||
image: ghcr.io/pocket-id/pocket-id:v1.13
|
||||
environment:
|
||||
- SERVICE_URL_POCKETID_1411
|
||||
- APP_URL=${SERVICE_URL_POCKETID}
|
||||
- TRUST_PROXY=${TRUST_PROXY:-true}
|
||||
- MAXMIND_LICENSE_KEY=${MAXMIND_LICENSE_KEY}
|
||||
- SMTP_HOST=${SMTP_HOST}
|
||||
- SMTP_PORT=${SMTP_PORT:-587}
|
||||
- SMTP_FROM=${SMTP_FROM}
|
||||
- SMTP_USER=${SMTP_USER}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_TLS=${SMTP_TLS:-starttls}
|
||||
- SMTP_SKIP_CERT_VERIFY=${SMTP_SKIP_CERT_VERIFY:-false}
|
||||
- EMAIL_LOGIN_NOTIFICATION_ENABLED=${EMAIL_LOGIN_NOTIFICATION_ENABLED:-false}
|
||||
- EMAIL_ONE_TIME_ACCESS_AS_ADMIN_ENABLED=${EMAIL_ONE_TIME_ACCESS_AS_ADMIN_ENABLED:-false}
|
||||
- EMAIL_API_KEY_EXPIRATION_ENABLED=${EMAIL_API_KEY_EXPIRATION_ENABLED:-false}
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
volumes:
|
||||
- pocket-id-data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD", "/app/pocket-id", "healthcheck"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
@@ -1870,14 +1870,19 @@ services:
|
||||
- ALLOW_PLAINTEXT_LISTENER=yes
|
||||
|
||||
object_storage:
|
||||
image: minio/minio:RELEASE.2022-06-25T15-50-16Z
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
environment:
|
||||
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
|
||||
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
|
||||
entrypoint: sh
|
||||
command: -c 'mkdir -p /data/posthog && minio server --address ":19000" --console-address ":19001" /data'
|
||||
command: -c 'mkdir -p /data/posthog && minio server --address ":9000" --console-address ":9001" /data'
|
||||
volumes:
|
||||
- object_storage:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
maildev:
|
||||
image: maildev/maildev:2.0.5
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:10.5
|
||||
image: mariadb:11.8
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized || exit 1"]
|
||||
@@ -72,6 +72,8 @@ services:
|
||||
timeout: 1s
|
||||
retries: 3
|
||||
environment:
|
||||
- HASHIDS_SALT=$SERVICE_PASSWORD_HASHIDS
|
||||
- HASHIDS_LENGTH=8
|
||||
- SERVICE_URL_PTERODACTYL_80
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}
|
||||
- ADMIN_USERNAME=${SERVICE_USER_ADMIN}
|
||||
@@ -101,42 +103,3 @@ services:
|
||||
- MAIL_USERNAME=$MAIL_USERNAME
|
||||
- MAIL_PASSWORD=$MAIL_PASSWORD
|
||||
- MAIL_ENCRYPTION=$MAIL_ENCRYPTION
|
||||
|
||||
wings:
|
||||
image: ghcr.io/pterodactyl/wings:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- SERVICE_URL_WINGS_8080
|
||||
- TZ=${TIMEZONE:-UTC}
|
||||
- WINGS_USERNAME=pterodactyl
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
|
||||
- "/var/lib/pterodactyl/:/var/lib/pterodactyl/" # See https://discord.com/channels/122900397965705216/493443725012500490/1272195151309045902
|
||||
- "/tmp/pterodactyl/:/tmp/pterodactyl/" # See https://discord.com/channels/122900397965705216/493443725012500490/1272195151309045902
|
||||
- "wings-logs:/var/log/pterodactyl/"
|
||||
|
||||
- type: bind
|
||||
source: ./etc/config.yml
|
||||
target: /etc/pterodactyl/config.yml
|
||||
content: |
|
||||
docker:
|
||||
network:
|
||||
interface: 172.28.0.1
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
- 1.0.0.1
|
||||
name: pterodactyl_nw
|
||||
ispn: false
|
||||
driver: ""
|
||||
network_mode: pterodactyl_nw
|
||||
is_internal: false
|
||||
enable_icc: true
|
||||
network_mtu: 1500
|
||||
interfaces:
|
||||
v4:
|
||||
subnet: 172.28.0.0/16
|
||||
gateway: 172.28.0.1
|
||||
v6:
|
||||
subnet: fdba:17c8:6c94::/64
|
||||
gateway: fdba:17c8:6c94::1011
|
||||
@@ -7,10 +7,11 @@
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:10.5
|
||||
image: 'mariadb:11.8'
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized || exit 1"]
|
||||
- CMD-SHELL
|
||||
- 'healthcheck.sh --connect --innodb_initialized || exit 1'
|
||||
start_period: 10s
|
||||
interval: 10s
|
||||
timeout: 1s
|
||||
@@ -21,26 +22,27 @@ services:
|
||||
- MYSQL_USER=$SERVICE_USER_MYSQL
|
||||
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||
volumes:
|
||||
- pterodactyl-db:/var/lib/mysql
|
||||
|
||||
- 'pterodactyl-db:/var/lib/mysql'
|
||||
redis:
|
||||
image: redis:alpine
|
||||
image: 'redis:alpine'
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- 'redis-cli ping || exit 1'
|
||||
interval: 10s
|
||||
timeout: 1s
|
||||
retries: 3
|
||||
|
||||
pterodactyl:
|
||||
image: ghcr.io/pterodactyl/panel:latest
|
||||
image: 'ghcr.io/pterodactyl/panel:v1.11.11'
|
||||
volumes:
|
||||
- "panel-var:/app/var/"
|
||||
- "panel-nginx:/etc/nginx/http.d/"
|
||||
- "panel-certs:/etc/letsencrypt/"
|
||||
- type: bind
|
||||
- 'panel-var:/app/var/'
|
||||
- 'panel-nginx:/etc/nginx/http.d/'
|
||||
- 'panel-certs:/etc/letsencrypt/'
|
||||
-
|
||||
type: bind
|
||||
source: ./etc/entrypoint.sh
|
||||
target: /entrypoint.sh
|
||||
mode: "0755"
|
||||
mode: '0755'
|
||||
content: |
|
||||
#!/bin/sh
|
||||
set -e
|
||||
@@ -65,26 +67,31 @@ services:
|
||||
fi
|
||||
|
||||
exec supervisord --nodaemon
|
||||
command: ["/entrypoint.sh"]
|
||||
command:
|
||||
- /entrypoint.sh
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"]
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- 'curl -sf http://localhost:80 || exit 1'
|
||||
interval: 10s
|
||||
timeout: 1s
|
||||
retries: 3
|
||||
environment:
|
||||
- HASHIDS_SALT=$SERVICE_PASSWORD_HASHIDS
|
||||
- HASHIDS_LENGTH=8
|
||||
- SERVICE_URL_PTERODACTYL_80
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}
|
||||
- ADMIN_USERNAME=${SERVICE_USER_ADMIN}
|
||||
- ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin}
|
||||
- ADMIN_LASTNAME=${ADMIN_LASTNAME:-User}
|
||||
- ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
|
||||
- PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false}
|
||||
- 'ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}'
|
||||
- 'ADMIN_USERNAME=${SERVICE_USER_ADMIN}'
|
||||
- 'ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin}'
|
||||
- 'ADMIN_LASTNAME=${ADMIN_LASTNAME:-User}'
|
||||
- 'ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}'
|
||||
- 'PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false}'
|
||||
- APP_ENV=production
|
||||
- APP_ENVIRONMENT_ONLY=false
|
||||
- APP_URL=$SERVICE_URL_PTERODACTYL
|
||||
- APP_TIMEZONE=${TIMEZONE:-UTC}
|
||||
- APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com}
|
||||
- LOG_LEVEL=${LOG_LEVEL:-debug}
|
||||
- 'APP_TIMEZONE=${TIMEZONE:-UTC}'
|
||||
- 'APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com}'
|
||||
- 'LOG_LEVEL=${LOG_LEVEL:-debug}'
|
||||
- CACHE_DRIVER=redis
|
||||
- SESSION_DRIVER=redis
|
||||
- QUEUE_DRIVER=redis
|
||||
@@ -101,41 +108,125 @@ services:
|
||||
- MAIL_USERNAME=$MAIL_USERNAME
|
||||
- MAIL_PASSWORD=$MAIL_PASSWORD
|
||||
- MAIL_ENCRYPTION=$MAIL_ENCRYPTION
|
||||
|
||||
wings:
|
||||
image: "ghcr.io/pterodactyl/wings:latest"
|
||||
image: 'ghcr.io/pterodactyl/wings:v1.11.13'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- SERVICE_URL_WINGS_8443
|
||||
- "TZ=${TIMEZONE:-UTC}"
|
||||
- WINGS_USERNAME=$SERVICE_USER_WINGS
|
||||
- 'TZ=${TIMEZONE:-UTC}'
|
||||
- WINGS_USERNAME=pterodactyl
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
|
||||
- "/var/lib/pterodactyl/volumes:/var/lib/pterodactyl/volumes"
|
||||
- "/tmp/pterodactyl:/tmp/pterodactyl"
|
||||
- wings_lib:/var/lib/pterodactyl/
|
||||
- wings_logs:/var/log/pterodactyl/
|
||||
- type: bind
|
||||
- '/var/run/docker.sock:/var/run/docker.sock'
|
||||
- '/var/lib/docker/containers/:/var/lib/docker/containers/'
|
||||
- '/var/lib/pterodactyl/:/var/lib/pterodactyl/'
|
||||
- '/tmp/pterodactyl/:/tmp/pterodactyl/'
|
||||
- 'wings-logs:/var/log/pterodactyl/'
|
||||
-
|
||||
type: bind
|
||||
source: ./etc/config.yml
|
||||
target: /etc/pterodactyl/config.yml
|
||||
content: |
|
||||
content: |-
|
||||
debug: false
|
||||
uuid: ReplaceConfig
|
||||
token_id: ReplaceConfig
|
||||
token: ReplaceConfig
|
||||
uuid: REPLACE FROM CONFIG #example: abc9abc8-abc7-abc6-abc5-abc4abc3abc2
|
||||
token_id: REPLACE FROM CONFIG #example: abc1abc2abc3abc4
|
||||
token: REPLACE FROM CONFIG #example: abc1abc2abc3abc4abc5abc6abc7abc8abc9abc10abc11abc12abc13abc14abc15abc16
|
||||
api:
|
||||
host: 0.0.0.0
|
||||
port: 8443 # Warning, panel must have 443 as daemon port, while here it should should be 8443, FQDN in Coolify for this service should be https://*:8443
|
||||
port: 8443 # use port 443 IN THE PANEL during node setup
|
||||
ssl:
|
||||
enabled: false
|
||||
cert: ReplaceConfig
|
||||
key: ReplaceConfig
|
||||
cert: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/fullchain.pem
|
||||
key: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/privkey.pem
|
||||
disable_remote_download: false
|
||||
upload_limit: 100
|
||||
trusted_proxies: []
|
||||
system:
|
||||
root_directory: /var/lib/pterodactyl
|
||||
log_directory: /var/log/pterodactyl
|
||||
data: /var/lib/pterodactyl/volumes
|
||||
archive_directory: /var/lib/pterodactyl/archives
|
||||
backup_directory: /var/lib/pterodactyl/backups
|
||||
tmp_directory: /tmp/pterodactyl
|
||||
username: pterodactyl
|
||||
timezone: UTC
|
||||
user:
|
||||
rootless:
|
||||
enabled: false
|
||||
container_uid: 0
|
||||
container_gid: 0
|
||||
uid: 988
|
||||
gid: 988
|
||||
disk_check_interval: 150
|
||||
activity_send_interval: 60
|
||||
activity_send_count: 100
|
||||
check_permissions_on_boot: true
|
||||
enable_log_rotate: true
|
||||
websocket_log_count: 150
|
||||
sftp:
|
||||
bind_address: 0.0.0.0
|
||||
bind_port: 2022
|
||||
read_only: false
|
||||
crash_detection:
|
||||
enabled: true
|
||||
detect_clean_exit_as_crash: true
|
||||
timeout: 60
|
||||
backups:
|
||||
write_limit: 0
|
||||
compression_level: best_speed
|
||||
transfers:
|
||||
download_limit: 0
|
||||
openat_mode: auto
|
||||
docker:
|
||||
network:
|
||||
interface: 172.28.0.1
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
- 1.0.0.1
|
||||
name: pterodactyl_nw
|
||||
ispn: false
|
||||
driver: bridge
|
||||
network_mode: pterodactyl_nw
|
||||
is_internal: false
|
||||
enable_icc: true
|
||||
network_mtu: 1500
|
||||
interfaces:
|
||||
v4:
|
||||
subnet: 172.28.0.0/16
|
||||
gateway: 172.28.0.1
|
||||
v6:
|
||||
subnet: fdba:17c8:6c94::/64
|
||||
gateway: fdba:17c8:6c94::1011
|
||||
domainname: ""
|
||||
registries: {}
|
||||
tmpfs_size: 100
|
||||
container_pid_limit: 512
|
||||
installer_limits:
|
||||
memory: 1024
|
||||
cpu: 100
|
||||
overhead:
|
||||
override: false
|
||||
default_multiplier: 1.05
|
||||
multipliers: {}
|
||||
use_performant_inspect: true
|
||||
userns_mode: ""
|
||||
log_config:
|
||||
type: local
|
||||
config:
|
||||
compress: "false"
|
||||
max-file: "1"
|
||||
max-size: 5m
|
||||
mode: non-blocking
|
||||
throttles:
|
||||
enabled: true
|
||||
lines: 2000
|
||||
line_reset_interval: 100
|
||||
remote: http://pterodactyl:80
|
||||
remote_query:
|
||||
timeout: 30
|
||||
boot_servers_per_page: 50
|
||||
allowed_mounts: []
|
||||
remote: ''
|
||||
ports:
|
||||
- '2022:2022'
|
||||
allowed_origins:
|
||||
- http://pterodactyl:80
|
||||
- PANEL DOMAIN # example: https://pterodactyl-abcabcabcabcavc.example.com
|
||||
allow_cors_private_network: false
|
||||
ignore_panel_config_updates: false
|
||||
|
||||
@@ -46,7 +46,7 @@ services:
|
||||
retries: 10
|
||||
|
||||
minio:
|
||||
image: quay.io/minio/minio:latest
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
command: server /data --console-address ":9001"
|
||||
environment:
|
||||
- MINIO_SERVER_URL=$MINIO_SERVER_URL
|
||||
|
||||
31
templates/compose/redis-insight.yaml
Normal file
31
templates/compose/redis-insight.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# documentation: https://redis.io/docs/latest/operate/redisinsight/
|
||||
# slogan: Redis Insight lets you do both GUI- and CLI-based interactions in a fully-featured desktop GUI client.
|
||||
# category: database,observability,developer-tools
|
||||
# tags: redis,gui,database,monitoring,analytics
|
||||
# logo: svgs/redisinsight.png
|
||||
# port: 5540
|
||||
|
||||
services:
|
||||
redisinsight:
|
||||
image: 'redis/redisinsight:2.70' # Released on Jul 11, 2025
|
||||
environment:
|
||||
- SERVICE_URL_REDISINSIGHT_5540
|
||||
- RI_APP_HOST=0.0.0.0
|
||||
- RI_APP_PORT=5540
|
||||
- 'RI_ENCRYPTION_KEY=${SERVICE_PASSWORD_RI_ENCRYPTION_KEY}'
|
||||
- 'RI_LOG_LEVEL=${RI_LOG_LEVEL:-info}'
|
||||
- 'RI_FILES_LOGGER=${RI_FILES_LOGGER:-true}'
|
||||
- 'RI_STDOUT_LOGGER=${RI_STDOUT_LOGGER:-true}'
|
||||
volumes:
|
||||
- 'redis_insight_data:/data'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- '--spider'
|
||||
- 'http://localhost:5540'
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 10s
|
||||
|
||||
42
templates/compose/rivet-engine.yaml
Normal file
42
templates/compose/rivet-engine.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
# documentation: https://www.rivet.dev/docs
|
||||
# slogan: Build and scale stateful workloads with long-lived processes
|
||||
# category: development
|
||||
# tags: stateful, actors, realtime, backend, serverless, postgresql
|
||||
# logo: svgs/rivet.svg
|
||||
# port: 6420
|
||||
|
||||
services:
|
||||
rivet-engine:
|
||||
image: rivetkit/engine:25.8.0
|
||||
environment:
|
||||
- SERVICE_URL_RIVET_6420
|
||||
- 'RIVET__AUTH__ADMIN_TOKEN=${SERVICE_PASSWORD_RIVET}'
|
||||
- RIVET__POSTGRES__URL=postgresql://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgresql:5432/${POSTGRESQL_DATABASE-rivet}
|
||||
depends_on:
|
||||
postgresql:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- http://127.0.0.1:6420/health
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 30s
|
||||
|
||||
postgresql:
|
||||
image: postgres:17-alpine
|
||||
volumes:
|
||||
- rivet-postgresql-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE-rivet}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
- seafile-data:/shared
|
||||
environment:
|
||||
- SERVICE_URL_SEAFILE_80
|
||||
- SEAFILE_SERVER_HOSTNAME=${SERVICE_URL_SEAFILE_80}
|
||||
- SEAFILE_SERVER_HOSTNAME=${SERVICE_FQDN_SEAFILE}
|
||||
- DB_HOST=mariadb
|
||||
- DB_PORT=3306
|
||||
- DB_ROOT_PASSWD=${SERVICE_PASSWORD_MYSQLROOT}
|
||||
@@ -24,11 +24,12 @@ services:
|
||||
- TIME_ZONE=${TIME_ZONE:-UTC}
|
||||
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-test@example.com}
|
||||
- INIT_SEAFILE_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
|
||||
- SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http}
|
||||
- SEAFILE_SERVER_PROTOCOL=https
|
||||
- SITE_ROOT=${SITE_ROOT:-/}
|
||||
- NON_ROOT=${NON_ROOT:-false}
|
||||
- JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT}
|
||||
- SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-true}
|
||||
- 'FILE_SERVER_ROOT=${SERVICE_URL_SEAFILE}/seafhttp'
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
@@ -36,9 +37,9 @@ services:
|
||||
condition: service_started
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80/api2/ping"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
interval: 10s
|
||||
timeout: 20s
|
||||
retries: 5
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
@@ -51,9 +52,9 @@ services:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-seafile-db}
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
interval: 10s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
retries: 5
|
||||
|
||||
memcached:
|
||||
image: memcached:latest
|
||||
@@ -64,6 +65,6 @@ services:
|
||||
"CMD-SHELL",
|
||||
'bash -c "echo version | (exec 3<>/dev/tcp/localhost/11211; cat >&3; timeout 0.5 cat <&3; exec 3<&-)"',
|
||||
]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
interval: 10s
|
||||
timeout: 20s
|
||||
retries: 5
|
||||
|
||||
29
templates/compose/siyuan.yaml
Normal file
29
templates/compose/siyuan.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
# documentation: https://github.com/siyuan-note/siyuan
|
||||
# slogan: A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.
|
||||
# tags: note-taking,markdown,pkm
|
||||
# category: documentation
|
||||
# logo: svgs/siyuan.svg
|
||||
# port: 6806
|
||||
|
||||
services:
|
||||
siyuan:
|
||||
image: b3log/siyuan:v3.3.5
|
||||
volumes:
|
||||
- 'siyuan_workspace:/siyuan/workspace'
|
||||
environment:
|
||||
- SERVICE_URL_SIYUAN_6806
|
||||
- TZ=${TZ:-UTC}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- 'SIYUAN_ACCESS_AUTH_CODE=${SERVICE_PASSWORD_SIYUAN}'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- '--spider'
|
||||
- '--quiet'
|
||||
- 'http://127.0.0.1:6806/api/system/version'
|
||||
interval: 15s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 20s
|
||||
56
templates/compose/sparkyfitness.yaml
Normal file
56
templates/compose/sparkyfitness.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# documentation: https://codewithcj.github.io/SparkyFitness/
|
||||
# slogan: SparkyFitness is a comprehensive fitness tracking and management application designed to help users monitor their nutrition, exercise, and body measurements. It provides tools for daily progress tracking, goal setting, and insightful reports to support a healthy lifestyle.
|
||||
# category: health
|
||||
# tags: sparkyfitness, fitness, health, nutrition, exercise, body measurements
|
||||
# logo: svgs/sparkyfitness.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
sparkyfitness-frontend:
|
||||
image: 'codewithcj/sparkyfitness:v0.15.7.3' # Released on Oct 18, 2025
|
||||
environment:
|
||||
- SERVICE_URL_SPARKYFITNESS_80
|
||||
depends_on:
|
||||
- sparkyfitness-server
|
||||
|
||||
sparkyfitness-server:
|
||||
image: 'codewithcj/sparkyfitness_server:v0.15.7.3' # Released on Oct 18, 2025
|
||||
environment:
|
||||
- 'SPARKY_FITNESS_LOG_LEVEL=${SPARKY_FITNESS_LOG_LEVEL:-info}'
|
||||
- 'SPARKY_FITNESS_DB_USER=${SERVICE_USER_POSTGRES}'
|
||||
- SPARKY_FITNESS_DB_HOST=sparkyfitness-db
|
||||
- 'SPARKY_FITNESS_DB_NAME=${SPARKY_FITNESS_DB_NAME:-sparkyfitness}'
|
||||
- 'SPARKY_FITNESS_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
|
||||
- 'SPARKY_FITNESS_DB_PORT=${SPARKY_FITNESS_DB_PORT:-5432}'
|
||||
- 'SPARKY_FITNESS_API_ENCRYPTION_KEY=${SERVICE_PASSWORD_64_SERVERAPIENCRYPTIONKEY}'
|
||||
- 'JWT_SECRET=${SERVICE_PASSWORD_64_SERVERJWTSECRET}'
|
||||
- 'SPARKY_FITNESS_FRONTEND_URL=${SERVICE_URL_SPARKYFITNESS_80}'
|
||||
- 'SPARKY_FITNESS_DISABLE_SIGNUP=${SPARKY_FITNESS_DISABLE_SIGNUP:-false}'
|
||||
- 'SPARKY_FITNESS_ADMIN_EMAIL=${SPARKY_FITNESS_ADMIN_EMAIL:-admin@example.com}'
|
||||
- 'SPARKY_FITNESS_EMAIL_HOST=${SPARKY_FITNESS_EMAIL_HOST:-smtp.gmail.com}'
|
||||
- 'SPARKY_FITNESS_EMAIL_PORT=${SPARKY_FITNESS_EMAIL_PORT:-587}'
|
||||
- 'SPARKY_FITNESS_EMAIL_SECURE=${SPARKY_FITNESS_EMAIL_SECURE:-false}'
|
||||
- 'SPARKY_FITNESS_EMAIL_USER=${SPARKY_FITNESS_EMAIL_USER}'
|
||||
- 'SPARKY_FITNESS_EMAIL_PASS=${SPARKY_FITNESS_EMAIL_PASS}'
|
||||
- 'SPARKY_FITNESS_EMAIL_FROM=${SPARKY_FITNESS_EMAIL_FROM:-"Sparky Fitness <noreply@sparkyfitness.com>"}'
|
||||
depends_on:
|
||||
- sparkyfitness-db
|
||||
volumes:
|
||||
- 'sparkyfitness-server-backup:/app/SparkyFitnessServer/backup'
|
||||
- 'sparkyfitness-server-uploads:/app/SparkyFitnessServer/uploads'
|
||||
|
||||
sparkyfitness-db:
|
||||
image: 'postgres:15-alpine'
|
||||
environment:
|
||||
- 'POSTGRES_DB=${SPARKY_FITNESS_DB_NAME:-sparkyfitness}'
|
||||
- 'POSTGRES_USER=${SERVICE_USER_POSTGRES}'
|
||||
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
|
||||
- POSTGRES_PORT=${SPARKY_FITNESS_DB_PORT:-5432}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
volumes:
|
||||
- 'sparkyfitness-db-postgresql:/var/lib/postgresql/data'
|
||||
|
||||
@@ -1072,16 +1072,16 @@ services:
|
||||
command: >
|
||||
sh -c "/app/bin/migrate && /app/bin/realtime eval 'Realtime.Release.seeds(Realtime.Repo)' && /app/bin/server"
|
||||
supabase-minio:
|
||||
image: minio/minio
|
||||
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
|
||||
environment:
|
||||
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
|
||||
- MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO}
|
||||
command: server --console-address ":9001" /data
|
||||
healthcheck:
|
||||
test: sleep 5 && exit 0
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
volumes:
|
||||
- ./volumes/storage:/data
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# documentation: https://github.com/wg-easy/wg-easy
|
||||
# slogan: The easiest way to run WireGuard VPN + Web-based Admin UI.
|
||||
# category: vps
|
||||
# category: vpn
|
||||
# tags: wireguard,vpn,web,admin
|
||||
# logo: svgs/wireguard.svg
|
||||
# port: 8000
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user