Merge branch 'next' into add-opnform-template

This commit is contained in:
Julien Nahum
2025-10-31 17:52:13 +01:00
committed by GitHub
150 changed files with 12981 additions and 10092 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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: |

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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'

View File

@@ -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

View File

@@ -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