Merge branch 'next' into patch-1

This commit is contained in:
Alexander G.
2024-10-08 12:32:51 +03:00
committed by GitHub
64 changed files with 1261 additions and 853 deletions

View File

@@ -5,9 +5,8 @@
# port: 9000
services:
authentik-server:
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.2.2}
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.8.0}
restart: unless-stopped
command: server
environment:
@@ -36,7 +35,7 @@ services:
redis:
condition: service_healthy
authentik-worker:
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.2.2}
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2024.8.0}
restart: unless-stopped
command: worker
environment:
@@ -73,7 +72,7 @@ services:
redis:
condition: service_healthy
postgresql:
image: docker.io/library/postgres:12-alpine
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
@@ -85,7 +84,7 @@ services:
environment:
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_DB=${POSTGRES_DB:-authentik}
- POSTGRES_DB=authentik
redis:
image: docker.io/library/redis:alpine
command: --save 60 1 --loglevel warning

View File

@@ -15,19 +15,19 @@ services:
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
- FORCE_SSL=false
- ENABLE_ACCOUNT_SIGNUP=false
- FORCE_SSL=${FORCE_SSL:-false}
- ENABLE_ACCOUNT_SIGNUP=${ENABLE_ACCOUNT_SIGNUP:-false}
- REDIS_URL=redis://default@redis:6379
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
- REDIS_OPENSSL_VERIFY_MODE=none
- POSTGRES_DATABASE=chatwoot
- POSTGRES_HOST=postgres
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
- REDIS_OPENSSL_VERIFY_MODE=${REDIS_OPENSSL_VERIFY_MODE:-none}
- POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot}
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- RAILS_MAX_THREADS=5
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
- RAILS_MAX_THREADS=${RAILS_MAX_THREADS:-5}
- NODE_ENV=${NODE_ENV:-production}
- RAILS_ENV=${RAILS_ENV:-production}
- INSTALLATION_ENV=${INSTALLATION_ENV:-docker}
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
@@ -36,7 +36,7 @@ services:
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
- ACTIVE_STORAGE_SERVICE=local
- ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE:-local}
entrypoint: docker/entrypoints/rails.sh
command: sh -c "bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0"
volumes:
@@ -56,19 +56,19 @@ services:
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
- FORCE_SSL=false
- ENABLE_ACCOUNT_SIGNUP=false
- FORCE_SSL=${FORCE_SSL:-false}
- ENABLE_ACCOUNT_SIGNUP=${ENABLE_ACCOUNT_SIGNUP:-false}
- REDIS_URL=redis://default@redis:6379
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
- REDIS_OPENSSL_VERIFY_MODE=none
- POSTGRES_DATABASE=chatwoot
- POSTGRES_HOST=postgres
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
- REDIS_OPENSSL_VERIFY_MODE=${REDIS_OPENSSL_VERIFY_MODE:-none}
- POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot}
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- RAILS_MAX_THREADS=5
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
- RAILS_MAX_THREADS=${RAILS_MAX_THREADS:-5}
- NODE_ENV=${NODE_ENV:-production}
- RAILS_ENV=${RAILS_ENV:-production}
- INSTALLATION_ENV=${INSTALLATION_ENV:-docker}
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
@@ -77,7 +77,7 @@ services:
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
- ACTIVE_STORAGE_SERVICE=local
- ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE:-local}
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
volumes:
- sidekiq-data:/app/storage
@@ -93,11 +93,11 @@ services:
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=chatwoot
- POSTGRES_USER=$SERVICE_USER_POSTGRES_USER
- POSTGRES_DB=${POSTGRES_DB:-chatwoot}
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $SERVICE_USER_POSTGRES_USER -d chatwoot -h 127.0.0.1"]
test: ["CMD-SHELL", "pg_isready -U $SERVICE_USER_POSTGRES -d chatwoot -h 127.0.0.1"]
interval: 30s
timeout: 10s
retries: 5

View File

@@ -6,10 +6,11 @@
services:
directus:
image: directus/directus:10
image: directus/directus:11
volumes:
- directus-uploads:/directus/uploads
- directus-extensions:/directus/extensions
- directus-templates:/directus/templates
environment:
- SERVICE_FQDN_DIRECTUS_8055
- KEY=$SERVICE_BASE64_64_KEY
@@ -37,6 +38,7 @@ services:
condition: service_healthy
postgresql:
image: postgis/postgis:16-3.4-alpine
platform: linux/amd64
volumes:
- directus-postgresql-data:/var/lib/postgresql/data
environment:

View File

@@ -6,11 +6,12 @@
services:
directus:
image: directus/directus:10
image: directus/directus:11
volumes:
- directus-uploads:/directus/uploads
- directus-database:/directus/database
- directus-uploads:/directus/uploads
- directus-extensions:/directus/extensions
- directus-templates:/directus/templates
environment:
- SERVICE_FQDN_DIRECTUS_8055
- KEY=$SERVICE_BASE64_64_KEY

View File

@@ -0,0 +1,32 @@
# ignore: true
# documentation: https://dozzle.dev/
# slogan: Dozzle is a simple and lightweight web UI for Docker logs.
# tags: dozzle,docker,logs,web-ui
# logo: svgs/dozzle.svg
# port: 8080
services:
dozzle:
image: amir20/dozzle:latest
environment:
- SERVICE_FQDN_DOZZLE_8080
- DOZZLE_AUTH_PROVIDER=simple
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- type: bind
source: /data/users.yml
target: /data/users.yml
content: |
users:
# "admin" here is username
admin:
name: "Admin"
# Just sha-256 which can be computed with "echo -n password | shasum -a 256"
password: "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"
email: me@email.net
healthcheck:
test: ["CMD", "/dozzle", "healthcheck"]
interval: 3s
timeout: 30s
retries: 5
start_period: 30s

View File

@@ -0,0 +1,19 @@
# documentation: https://dozzle.dev/guide/getting-started#running-with-docker
# slogan: Dozzle is a simple and lightweight web UI for Docker logs.
# tags: dozzle,docker,logs,web-ui
# logo: svgs/dozzle.svg
# port: 8080
services:
dozzle:
image: amir20/dozzle:latest
environment:
- SERVICE_FQDN_DOZZLE_8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
healthcheck:
test: ["CMD", "/dozzle", "healthcheck"]
interval: 3s
timeout: 30s
retries: 5
start_period: 30s

View File

@@ -0,0 +1,35 @@
# documentation: https://easyappointments.org/
# slogan: Schedule Anything. Let's start with easy! Get the best free online appointment scheduler on your server, today.
# tags: calendar, scheduling, database
# logo: svgs/easyappointments.png
# port: 80
services:
easyappointments:
image: alextselegidis/easyappointments:latest
environment:
- SERVICE_FQDN_EASYAPPOINTMENTS_80
- BASE_URL=${SERVICE_FQDN_EASYAPPOINTMENTS}
- DB_HOST=mysql
- DB_NAME=easyappointments
- DB_USERNAME=root
- DB_PASSWORD=${SERVICE_PASSWORD_EASYAPPOINTMENTS}
depends_on:
- mysql
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1"]
interval: 2s
timeout: 10s
retries: 30
mysql:
image: mysql:8
volumes:
- easyappointments-mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_EASYAPPOINTMENTS}
- MYSQL_DATABASE=easyappointments
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,87 @@
# documentation: https://docs.getoutline.com/s/hosting/doc/hosting-outline-nipGaCRBDu
# slogan: Your teams knowledge base
# tags: knowledge base, documentation
# logo: svgs/getoutline.jpeg
# port: 3000
services:
outline:
image: docker.getoutline.com/outlinewiki/outline:latest
volumes:
- storage-data:/var/lib/outline/data
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
- SERVICE_FQDN_OUTLINE_3000
- NODE_ENV=production
- SECRET_KEY=${SERVICE_BASE64_OUTLINE}
- UTILS_SECRET=${SERVICE_PASSWORD_64_OUTLINE}
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_64_POSTGRES}@postgres:5432/${POSTGRES_DATABASE:-outline}
- REDIS_URL=redis://:${SERVICE_PASSWORD_64_REDIS}@redis:6379
- URL=${SERVICE_FQDN_OUTLINE_3000}
- PORT=${OUTLINE_PORT:-3000}
- FILE_STORAGE=${FILE_STORAGE:-local}
- FILE_STORAGE_LOCAL_ROOT_DIR=${FILE_STORAGE_LOCAL_ROOT_DIR:-/var/lib/outline/data}
- FILE_STORAGE_UPLOAD_MAX_SIZE=${FILE_STORAGE_UPLOAD_MAX_SIZE:-2000}
- FILE_STORAGE_IMPORT_MAX_SIZE=${FILE_STORAGE_IMPORT_MAX_SIZE:-100}
- FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=${FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- AWS_REGION=${AWS_REGION}
- AWS_S3_ACCELERATE_URL=${AWS_S3_ACCELERATE_URL}
- AWS_S3_UPLOAD_BUCKET_URL=${AWS_S3_UPLOAD_BUCKET_URL}
- AWS_S3_UPLOAD_BUCKET_NAME=${AWS_S3_UPLOAD_BUCKET_NAME}
- AWS_S3_FORCE_PATH_STYLE=${AWS_S3_FORCE_PATH_STYLE:-true}
- AWS_S3_ACL=${AWS_S3_ACL:-private}
- SLACK_CLIENT_ID=${SLACK_CLIENT_ID}
- SLACK_CLIENT_SECRET=${SLACK_CLIENT_SECRET}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
- AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}
- AZURE_RESOURCE_APP_ID=${AZURE_RESOURCE_APP_ID}
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID}
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}
- OIDC_AUTH_URI=${OIDC_AUTH_URI}
- OIDC_TOKEN_URI=${OIDC_TOKEN_URI}
- OIDC_USERINFO_URI=${OIDC_USERINFO_URI}
- OIDC_LOGOUT_URI=${OIDC_LOGOUT_URI}
- OIDC_USERNAME_CLAIM=${OIDC_USERNAME_CLAIM}
- OIDC_DISPLAY_NAME=${OIDC_DISPLAY_NAME}
- OIDC_SCOPES=${OIDC_SCOPES}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
- GITHUB_APP_NAME=${GITHUB_APP_NAME}
- GITHUB_APP_ID=${GITHUB_APP_ID}
- GITHUB_APP_PRIVATE_KEY=${GITHUB_APP_PRIVATE_KEY}
- PGSSLMODE=${PGSSLMODE:-disable}
healthcheck:
disable: true
redis:
image: redis:alpine
environment:
- REDIS_PASSWORD=${SERVICE_PASSWORD_64_REDIS}
command: ["redis-server", "--requirepass", "${SERVICE_PASSWORD_64_REDIS}"]
healthcheck:
test: ["CMD", "redis-cli", "-a", "${SERVICE_PASSWORD_64_REDIS}", "PING"]
interval: 10s
timeout: 30s
retries: 3
postgres:
image: postgres:12-alpine
volumes:
- database-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_64_POSTGRES}
- POSTGRES_DB=${POSTGRES_DATABASE:-outline}
healthcheck:
test: ["CMD", "pg_isready", "-U", "${SERVICE_USER_POSTGRES}", "-d", "${POSTGRES_DATABASE:-outline}"]
interval: 30s
timeout: 20s
retries: 3

View File

@@ -1,4 +1,3 @@
# ignore: true
# documentation: https://invoiceninja.github.io/selfhost.html
# slogan: The leading open-source invoicing platform
# tags: invoicing, billing, accounting, finance, self-hosted
@@ -11,18 +10,20 @@ services:
- SERVICE_FQDN_INVOICENINJA
- APP_ENV=${APP_ENV:-production}
- APP_URL=${SERVICE_FQDN_INVOICENINJA}
- APP_KEY=${SERVICE_REALBASE64_INVOICENINJA}
- APP_KEY=base64:${SERVICE_REALBASE64_INVOICENINJA}
- APP_DEBUG=${APP_DEBUG:-false}
- REQUIRE_HTTPS=${REQUIRE_HTTPS:-false}
- PHANTOMJS_PDF_GENERATION=${PHANTOMJS_PDF_GENERATION:-false}
- PDF_GENERATOR=${PDF_GENERATOR:-snappdf}
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-*}
- QUEUE_CONNECTION=${QUEUE_CONNECTION:-database}
- IN_USER_EMAIL=${IN_USER_EMAIL:-admin@example.com}
- IN_PASSWORD=${SERVICE_PASSWORD_INVOICENINJAUSER}
- DB_HOST=${DB_HOST:-mariadb}
- DB_PORT=${DB_PORT:-3306}
- DB_DATABASE=${DB_DATABASE:-invoiceninja}
- DB_USERNAME=$SERVICE_USER_INVOICENINJA
- DB_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA
- DB_USERNAME=$SERVICE_USER_MARIADB
- DB_PASSWORD=$SERVICE_PASSWORD_MARIADB
healthcheck:
test: ['CMD', 'echo', 'ok']
interval: 5s
@@ -31,6 +32,52 @@ services:
volumes:
- invoice-ninja-public:/var/www/app/public
- invoice-ninja-storage:/var/www/app/storage
- type: bind
source: ./supervisord.conf
target: /etc/supervisord.conf
content: |
[supervisord]
nodaemon=true
pidfile=/tmp/supervisord.pid
logfile=/dev/null ; nodaemon will cause logs to go to stdout
logfile_maxbytes=0
loglevel=info
[program:php-fpm]
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=php artisan serve --host 0.0.0.0 --port 9000
[program:scheduler]
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=php artisan schedule:work
[program:queue-worker]
process_name=%(program_name)s_%(process_num)02d
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
numprocs=2
command=php artisan queue:work --sleep=3 --tries=1 --memory=256 --timeout=3600
[eventlistener:shutdown]
command=shutdown.sh
events=PROCESS_STATE_STOPPED, PROCESS_STATE_EXITED, PROCESS_STATE_FATAL
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
- type: bind
source: ./php.ini
target: /usr/local/etc/php/php.ini
@@ -52,7 +99,6 @@ services:
; opcache.jit=1205
; opcache.memory_consumption=1024M
post_max_size = 60M
upload_max_filesize = 50M
memory_limit=512M
@@ -86,10 +132,10 @@ services:
volumes:
- mariadb-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MARIADBROOT
- MYSQL_DATABASE=${DB_DATABASE:-invoiceninja}
- MYSQL_USER=$SERVICE_USER_INVOICENINJA
- MYSQL_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA
- MYSQL_USER=$SERVICE_USER_MARIADB
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MARIADB
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s

View File

@@ -0,0 +1,47 @@
# documentation: https://labelstud.io/guide/
# slogan: Label Studio is a multi-type data labeling and annotation tool with standardized output format
# tags: workflow, orchestration, data-pipeline, python, labelstudio, ai, elasticsearch, datasets, data, machine-learning, data-science, nlp, images, vision
# logo: svgs/labelstudio.png
# port: 8080
services:
labelstudio:
image: heartexlabs/label-studio:latest
depends_on:
postgres:
condition: service_healthy
environment:
- SERVICE_FQDN_LABELSTUDIO_8080
- DJANGO_DB=${DJANGO_DB:-default}
- POSTGRE_NAME=${POSTGRES_DB:-labelstudio}
- POSTGRE_USER=${SERVICE_USER_POSTGRES}
- POSTGRE_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRE_PORT=5432
- POSTGRE_HOST=postgres
- LABEL_STUDIO_HOST=${SERVICE_FQDN_LABELSTUDIO}
- SSRF_PROTECTION_ENABLED=${SSRF_PROTECTION_ENABLED:-true}
- LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK=${LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK:-true}
- DATA_UPLOAD_MAX_NUMBER_FILES=${DATA_UPLOAD_MAX_NUMBER_FILES:-10000}
- LABEL_STUDIO_USERNAME=${LABEL_STUDIO_USERNAME:-admin@example.com}
- LABEL_STUDIO_PASSWORD=${SERVICE_PASSWORD_LABELSTUDIO}
- LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK=${LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINK:-true}
volumes:
- labelstudio-data:/label-studio/data
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"]
interval: 5s
timeout: 20s
retries: 3
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-labelstudio}
volumes:
- pg-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 3

View File

@@ -4,15 +4,9 @@
# logo: svgs/langfuse.png
# port: 3000
version: "3"
volumes:
pg_data: null
services:
langfuse:
image: langfuse/langfuse:2
restart: always
environment:
- SERVICE_FQDN_LANGFUSE_3000
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-langfuse}
@@ -23,7 +17,14 @@ services:
- NEXTAUTH_SECRET=${SERVICE_BASE64_64_NEXTAUTHSECRET}
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-false}
- LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false}
- HOSTNAME=0.0.0.0
- HOSTNAME=${HOSTNAME:-0.0.0.0}
- LANGFUSE_INIT_USER_NAME=${LANGFUSE_INIT_USER_NAME:-Admin}
- LANGFUSE_INIT_USER_EMAIL=${LANGFUSE_INIT_USER_EMAIL:-admin@example.com}
- LANGFUSE_INIT_USER_PASSWORD=${SERVICE_PASSWORD_LANGFUSE}
- LANGFUSE_INIT_ORG_ID=${LANGFUSE_INIT_ORG_ID:-my-org}
- LANGFUSE_INIT_ORG_NAME=${LANGFUSE_INIT_ORG_NAME:-My Org}
- LANGFUSE_INIT_PROJECT_ID=${LANGFUSE_INIT_PROJECT_ID:-my-project}
- LANGFUSE_INIT_PROJECT_NAME=${LANGFUSE_INIT_PROJECT_NAME:-My Project}
healthcheck:
test:
- CMD
@@ -44,7 +45,7 @@ services:
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_USER=$SERVICE_USER_POSTGRES
volumes:
- "pg_data:/var/lib/postgresql/data"
- "pg-data:/var/lib/postgresql/data"
healthcheck:
test:
- CMD-SHELL

View File

@@ -0,0 +1,21 @@
# documentation: https://docs.linuxserver.io/images/docker-libreoffice/
# slogan: LibreOffice is a free and powerful office suite.
# tags: office,document,spreadsheet,presentation,open-source
# logo: svgs/libreoffice.svg
# port: 3000
services:
libreoffice:
image: lscr.io/linuxserver/libreoffice:latest
environment:
- SERVICE_FQDN_LIBREOFFICE_3000
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Etc/UTC}
volumes:
- libreoffice-config:/config
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -4,16 +4,9 @@
# logo: svgs/litellm.svg
# port: 4000
version: "3"
volumes:
pg_data: null
redis_data: null
services:
litellm:
image: "ghcr.io/berriai/litellm-database:main-stable"
restart: always
depends_on:
postgres:
condition: service_healthy
@@ -21,23 +14,23 @@ services:
condition: service_healthy
environment:
- SERVICE_FQDN_LITELLM_4000
- LITELLM_LOG=ERROR
- LITELLM_MODE=PRODUCTION
- "LITELLM_MASTER_KEY=${SERVICE_PASSWORD_MASTERKEY}"
- "UI_USERNAME=${SERVICE_USER_UI}"
- "UI_PASSWORD=${SERVICE_PASSWORD_UI}"
- "DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-litellm}"
- REDIS_HOST=redis
- REDIS_PORT=6379
- "POSTGRES_USER=${SERVICE_USER_POSTGRES}"
- "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
- "POSTGRES_DB=${POSTGRES_DB:-litellm}"
- "OPENAI_API_KEY=${OPENAI_API_KEY}"
- "OPENAI_API_BASE=${OPENAI_API_BASE}"
- "ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}"
- "ANTHROPIC_API_BASE=${ANTHROPIC_API_BASE}"
- "VOYAGE_API_KEY=${VOYAGE_API_KEY}"
- "VOYAGE_API_BASE=${VOYAGE_API_BASE}"
- LITELLM_LOG=${LITELLM_LOG:-ERROR}
- LITELLM_MODE=${LITELLM_MODE:-PRODUCTION}
- LITELLM_MASTER_KEY=${SERVICE_PASSWORD_MASTERKEY}
- UI_USERNAME=${SERVICE_USER_UI}
- UI_PASSWORD=${SERVICE_PASSWORD_UI}
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-litellm}
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-litellm}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_API_BASE=${OPENAI_API_BASE}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- ANTHROPIC_API_BASE=${ANTHROPIC_API_BASE}
- VOYAGE_API_KEY=${VOYAGE_API_KEY}
- VOYAGE_API_BASE=${VOYAGE_API_BASE}
volumes:
- type: bind
source: ./litellm-config.yaml
@@ -154,7 +147,7 @@ services:
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_USER=$SERVICE_USER_POSTGRES
volumes:
- "pg_data:/var/lib/postgresql/data"
- "pg-data:/var/lib/postgresql/data"
healthcheck:
test:
- CMD-SHELL
@@ -166,7 +159,7 @@ services:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redis_data:/data
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s

View File

@@ -0,0 +1,37 @@
# documentation: https://nitropage.com
# slogan: Nitropage is an extensible visual website builder, offering a growing collection of versatile building blocks, focal-point image cropping and sovereign font management.
# tags: nitropage, builder, editor, wysiwyg, cms, content, management
# logo: svgs/nitropage.svg
# port: 3000
services:
nitropage:
image: codeberg.org/nitropage/nitropage
environment:
- SERVICE_FQDN_NITROPAGE_3000
- NP_AUTH_SALT=${SERVICE_BASE64_SALT}
- NP_AUTH_PASSWORD=${SERVICE_PASSWORD_64_SESSION}
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRESQL}:${SERVICE_PASSWORD_POSTGRESQL}@postgresql:5432/${POSTGRESQL_DATABASE:-nitropage}
volumes:
- nitropage-data:/app/.data
depends_on:
postgresql:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/admin"]
interval: 2s
timeout: 10s
retries: 15
postgresql:
image: postgres:16-alpine
volumes:
- nitropage-postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRESQL_DATABASE:-nitropage}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,21 @@
# documentation: https://nitropage.com
# slogan: Nitropage is an extensible visual website builder, offering a growing collection of versatile building blocks, focal-point image cropping and sovereign font management.
# tags: nitropage, builder, editor, wysiwyg, cms, content, management
# logo: svgs/nitropage.svg
# port: 3000
services:
nitropage:
image: codeberg.org/nitropage/nitropage:sqlite
environment:
- SERVICE_FQDN_NITROPAGE_3000
- NP_AUTH_SALT=${SERVICE_BASE64_SALT}
- NP_AUTH_PASSWORD=${SERVICE_PASSWORD_64_SESSION}
- DATABASE_URL=file:../../.data/dev.db
volumes:
- nitropage-data:/app/.data
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/admin"]
interval: 2s
timeout: 10s
retries: 15

View File

@@ -0,0 +1,34 @@
# documentation: https://docs.openwebui.com
# slogan: Ollama with Open Web UI integrates AI model deployment with a user-friendly interface.
# tags: ollama,ai,models,deployment,open-web-ui,integration
# logo: svgs/ollama.svg
services:
ollama-api:
image: "ollama/ollama:latest"
volumes:
- "ollama:/root/.ollama"
healthcheck:
test: ["CMD", "ollama", "list"]
interval: 5s
timeout: 30s
retries: 10
open-webui:
image: "ghcr.io/open-webui/open-webui:main"
volumes:
- "open-webui:/app/backend/data"
depends_on:
- ollama-api
environment:
- SERVICE_FQDN_OLLAMA_8080
- OLLAMA_BASE_URL=http://ollama-api:11434
healthcheck:
test:
- CMD
- curl
- "-f"
- "http://127.0.0.1:8080"
interval: 5s
timeout: 30s
retries: 10

View File

@@ -0,0 +1,19 @@
# documentation: https://docs.organizr.app/
# slogan: Homelab Services Organizer
# tags: tool
# logo: svgs/organizr.png
# port: 80
services:
organizr:
image: organizr/organizr:latest
environment:
- SERVICE_FQDN_ORGANIZR_80
- branch=${branch:-v2-master}
volumes:
- organizr-data:/config
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"]
interval: 10s
timeout: 1s
retries: 3

View File

@@ -4,15 +4,9 @@
# logo: svgs/prefect.png
# port: 4200
version: "3"
volumes:
pg_data:
services:
prefect:
image: "prefecthq/prefect:3-latest"
restart: always
depends_on:
postgresql:
condition: service_healthy
@@ -20,9 +14,9 @@ services:
- SERVICE_FQDN_PREFECT_4200
- PREFECT_API_DATABASE_CONNECTION_URL=postgresql+asyncpg://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB:-prefect}
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}
- PREFECT_EXPERIMENTAL_WARN=true
- PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY=true
- PREFECT_RUNNER_SERVER_ENABLE=true
- PREFECT_EXPERIMENTAL_WARN=${PREFECT_EXPERIMENTAL_WARN:-false}
- PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY=${PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY:-false}
- PREFECT_RUNNER_SERVER_ENABLE=${PREFECT_RUNNER_SERVER_ENABLE:-false}
- PREFECT_DEFAULT_WORK_POOL_NAME=${DEFAULT_POOL_NAME:-default}
command:
- prefect
@@ -43,9 +37,8 @@ services:
retries: 3
postgresql:
image: "postgres:16-alpine"
restart: always
volumes:
- "pg_data:/var/lib/postgresql/data"
- "pg-data:/var/lib/postgresql/data"
environment:
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
@@ -59,7 +52,6 @@ services:
retries: 3
agent:
image: "prefecthq/prefect:3-python3.12"
restart: always
depends_on:
prefect:
condition: service_healthy
@@ -68,10 +60,10 @@ services:
- prefect
- worker
- start
- "--pool=$${DEFAULT_POOL_NAME}"
- "--with-healthcheck"
- "--name=$${DEFAULT_WORKER_NAME}"
- "--limit=$${DEFAULT_POOL_LIMIT}"
- --pool=${DEFAULT_POOL_NAME}
- --with-healthcheck
- --name=${DEFAULT_WORKER_NAME}
- --limit=${DEFAULT_POOL_LIMIT}
environment:
- PREFECT_API_URL=http://prefect:4200/api
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}

View File

@@ -4,20 +4,14 @@
# logo: svgs/qdrant.png
# port: 6333
version: "3"
volumes:
qdrant_storage: null
services:
qdrant:
image: "qdrant/qdrant:latest"
restart: always
environment:
- SERVICE_FQDN_QDRANT_6333
- QDRANT__SERVICE__API_KEY=${SERVICE_PASSWORD_QDRANTAPIKEY}
volumes:
- "qdrant_storage:/qdrant/storage"
- "qdrant-storage:/qdrant/storage"
healthcheck:
test:
- CMD-SHELL

View File

@@ -7,6 +7,7 @@
services:
rabbitmq:
image: rabbitmq:3-management
hostname: "rabbitmq"
environment:
- SERVICE_FQDN_RABBITMQ_15672
- RABBITMQ_DEFAULT_USER=$SERVICE_USER_RABBITMQ
@@ -16,6 +17,8 @@ services:
- ${PORT}:5672
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 30s
interval: 5s
timeout: 30s
retries: 3
retries: 10
volumes:
- rabbitmq-data:/var/lib/rabbitmq/

View File

@@ -10,12 +10,12 @@ services:
environment:
- SERVICE_FQDN_REACTIVERESUME_3000
- PUBLIC_URL=$SERVICE_FQDN_REACTIVERESUME
- STORAGE_URL=http://minio
- 'STORAGE_URL=${SERVICE_FQDN_MINIO}/default'
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgres:5432/${POSTGRES_DB:-postgres}
- ACCESS_TOKEN_SECRET=$SERVICE_PASSWORD_ACCESSTOKEN
- REFRESH_TOKEN_SECRET=$SERVICE_PASSWORD_REFRESHTOKEN
- CHROME_TOKEN=$SERVICE_PASSWORD_CHROMETOKEN
- CHROME_URL=ws://chrome:3000
- CHROME_URL=ws://chrome:3000/chrome
- REDIS_URL=redis://redis:6379
- STORAGE_ENDPOINT=minio
- STORAGE_PORT=9000
@@ -24,8 +24,8 @@ services:
- STORAGE_ACCESS_KEY=$SERVICE_USER_MINIO
- STORAGE_SECRET_KEY=$SERVICE_PASSWORD_MINIO
- STORAGE_USE_SSL=false
- DISABLE_SIGNUPS=$SERVICE_DISABLE_SIGNUPS
- DISABLE_EMAIL_AUTH=$SERVICE_DISABLE_EMAIL_AUTH
- 'DISABLE_SIGNUPS=${SERVICE_DISABLE_SIGNUPS:-false}'
- 'DISABLE_EMAIL_AUTH=${SERVICE_DISABLE_EMAIL_AUTH:-false}'
depends_on:
- postgres
- minio
@@ -45,9 +45,10 @@ services:
retries: 10
minio:
image: quay.io/minio/minio:latest
image: minio/minio
command: server /data --console-address ":9001"
environment:
- SERVICE_FQDN_MINIO_9000
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
volumes:

View File

@@ -4,24 +4,18 @@
# logo: svgs/searxng.svg
# port: 8080
version: "3"
volumes:
redis_data: null
services:
searxng:
image: searxng/searxng
restart: always
depends_on:
redis:
condition: service_healthy
environment:
- SERVICE_FQDN_SEARXNG_8080
- INSTANCE_NAME=coolify
- INSTANCE_NAME=${INSTANCE_NAME:-coolify}
- BASE_URL=${SERVICE_FQDN_SEARXNG_8080}
- SEARXNG_URL=${SERVICE_FQDN_SEARXNG_8080}
- SEARXNG_BIND_ADDRESS=0.0.0.0
- SEARXNG_BIND_ADDRESS=${SEARXNG_BIND_ADDRESS:-0.0.0.0}
- SEARXNG_SECRET=${SERVICE_PASSWORD_SEARXNGSECRET}
- SEARXNG_REDIS_URL=redis://redis:6379/0
healthcheck:
@@ -67,7 +61,7 @@ services:
image: "redis:7"
restart: always
volumes:
- "redis_data:/data"
- "redis-data:/data"
healthcheck:
test:
- CMD

View File

@@ -0,0 +1,23 @@
# documentation: https://docs.soketi.app
# slogan: Soketi is your simple, fast, and resilient open-source WebSockets server.
# tags: websockets,open,source,messaging
# logo: svgs/soketi.jpeg
# port: 6001
services:
soketi:
image: "quay.io/soketi/soketi:1.4-16-debian"
environment:
- SERVICE_FQDN_SOKETI_6001
- SOKETI_DEBUG=${DEBUG:-0}
- SOKETI_DEFAULT_APP_ID=${SOKETI_APP_ID}
- SOKETI_DEFAULT_APP_KEY=${SOKETI_APP_KEY}
- SOKETI_DEFAULT_APP_SECRET=${SOKETI_APP_SECRET}
- SOKETI_PUSHER_SCHEME=${SOKETI_PUSHER_SCHEME:-https}
- SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=${DEFAULT_APP_ENABLE_CLIENT_MESSAGES}
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:6001/ || exit 1"]
interval: 5s
timeout: 20s
retries: 3

View File

@@ -0,0 +1,40 @@
# documentation: https://supertokens.com/docs/guides
# slogan: An open-source authentication solution that simplifies the implementation of secure user authentication and session management for web and mobile applications.
# tags: supertokens,login,authentication,authorization,oauth,user-management,session-management,access-control,otp,magic-link,passwordless
# logo: svgs/supertokens.svg
# port: 3567
services:
supertokens:
image: 'registry.supertokens.io/supertokens/supertokens-mysql:latest'
depends_on:
mysql:
condition: service_healthy
environment:
- SERVICE_FQDN_SUPERTOKENS_3567
- API_KEYS=${API_KEYS:-}
- MYSQL_CONNECTION_URI=mysql://$SERVICE_USER_MYSQL:$SERVICE_PASSWORD_MYSQL@mysql:3306/${MYSQL_DATABASE:-supertokens}
healthcheck:
test: "bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e \"GET /hello HTTP/1.1\\r\\nhost: 127.0.0.1:3567\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && cat <&3 | grep \"Hello\"'\n"
interval: 10s
timeout: 5s
retries: 5
mysql:
image: 'mysql:latest'
environment:
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MYSQL
- MYSQL_USER=$SERVICE_USER_MYSQL
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
- MYSQL_DATABASE=${MYSQL_DATABASE:-supertokens}
volumes:
- 'supertokens-mysql-data:/var/lib/mysql'
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-h'
- localhost
timeout: 20s
retries: 10

View File

@@ -0,0 +1,34 @@
# documentation: https://supertokens.com/docs/guides
# slogan: An open-source authentication solution that simplifies the implementation of secure user authentication and session management for web and mobile applications.
# tags: supertokens,login,authentication,authorization,oauth,user-management,session-management,access-control,otp,magic-link,passwordless
# logo: svgs/supertokens.svg
# port: 3567
services:
supertokens:
image: registry.supertokens.io/supertokens/supertokens-postgresql:latest
depends_on:
postgres:
condition: service_healthy
environment:
- SERVICE_FQDN_SUPERTOKENS_3567
- API_KEYS=${API_KEYS:-}
- POSTGRESQL_CONNECTION_URI="postgresql://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgres:5432/${POSTGRES_DB:-supertokens}"
healthcheck:
test: "bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e \"GET /hello HTTP/1.1\\r\\nhost: 127.0.0.1:3567\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && cat <&3 | grep \"Hello\"'\n"
interval: 10s
timeout: 5s
retries: 5
postgres:
image: postgres:16
environment:
- POSTGRES_USER=$SERVICE_USER_POSTGRESQL
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRESQL
- POSTGRES_DB=${POSTGRES_DB:-supertokens}
volumes:
- supertokens-postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "$SERVICE_USER_POSTGRESQL", "-d", "${POSTGRES_DB:-supertokens}"]
interval: 5s
timeout: 5s
retries: 5

View File

@@ -4,8 +4,6 @@
# logo: svgs/unstructured.png
# port: 8000
version: "3"
services:
unstructured:
image: "downloads.unstructured.io/unstructured-io/unstructured-api:latest"
@@ -17,8 +15,7 @@ services:
- CMD
- wget
- "-qO-"
- "--spider"
- "http://0.0.0.0:8000/healthcheck"
interval: 15s
timeout: 15s
retries: 3
interval: 5s
timeout: 30s
retries: 10

View File

@@ -4,14 +4,12 @@
# logo: svgs/weaviate.png
# port: 8080
version: "3"
services:
weaviate:
image: "cr.weaviate.io/semitechnologies/weaviate:1.26.4"
restart: always
volumes:
- "weaviate_data:/var/lib/weaviate"
- "weaviate-data:/var/lib/weaviate"
command:
- "--host"
- 0.0.0.0
@@ -21,20 +19,20 @@ services:
- http
environment:
- SERVICE_FQDN_WEAVIATE_8080
- DISABLE_TELEMETRY=true
- QUERY_DEFAULTS_LIMIT=1000
- LOG_LEVEL=info
- DISABLE_TELEMETRY=${DISABLE_TELEMETRY:-true}
- QUERY_DEFAULTS_LIMIT=${QUERY_DEFAULTS_LIMIT:-1000}
- LOG_LEVEL=${LOG_LEVEL:-info}
- GOMEMLIMIT=${GOMEMLIMIT:-1024MiB}
- GOMAXPROCS=${GOMAXPROCS:-2}
- AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false
- AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=${AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED:-false}
- AUTHORIZATION_ADMINLIST_USERS=${AUTHORIZATION_ADMINLIST_USERS:-admin@example.com}
- AUTHENTICATION_APIKEY_USERS=${AUTHENTICATION_APIKEY_USERS:-admin@example.com}
- AUTHENTICATION_APIKEY_ENABLED=true
- "AUTHENTICATION_APIKEY_ALLOWED_KEYS=${SERVICE_PASSWORD_APIKEYS}"
- AUTHENTICATION_APIKEY_ENABLED=${AUTHENTICATION_APIKEY_ENABLED:-true}
- AUTHENTICATION_APIKEY_ALLOWED_KEYS=${SERVICE_PASSWORD_APIKEYS}
- PERSISTENCE_DATA_PATH=/var/lib/weaviate
- DEFAULT_VECTORIZER_MODULE=none
- DEFAULT_VECTORIZER_MODULE=${DEFAULT_VECTORIZER_MODULE:-none}
- ENABLE_MODULES=${ENABLE_MODULES:-text2vec-openai,generative-openai,qna-openai}
- CLUSTER_HOSTNAME=node1
- CLUSTER_HOSTNAME=${CLUSTER_HOSTNAME:-node1}
healthcheck:
test:
- CMD
@@ -43,8 +41,5 @@ services:
- "--spider"
- "http://localhost:8080/v1/.well-known/ready"
interval: 5s
timeout: 5s
retries: 3
volumes:
weaviate_data: null
timeout: 30s
retries: 10

View File

@@ -1,22 +1,18 @@
# documentation: https://www.windmill.dev/docs/
# slogan: Windmill is a developer platform to build production-grade multi-steps automations and internal apps.\
# info: Login as admin@windmill.dev / changeme to setup the instance & accounts and give yourself super-admin privileges.
# slogan: Windmill is a developer platform to build production-grade multi-steps automations and internal apps.
# tags: windmill,workflow,automation,developer,platform
# logo: svgs/windmill.svg
# port: 8000
version: "3.7"
services:
db:
image: postgres:16
shm_size: 1g
restart: unless-stopped
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: $SERVICE_PASSWORD_WINDMILL_POSTGRES
POSTGRES_DB: windmill
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_DB=${POSTGRES_DB:-windmill}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
@@ -26,22 +22,27 @@ services:
windmill_server:
image: ghcr.io/windmill-labs/windmill:main
environment:
- SERVICE_FQDN_WINDMILL
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
- MODE=server
- SERVICE_FQDN_WINDMILL_8000
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-server}
- BASE_URL=$SERVICE_FQDN_WINDMILL
depends_on:
db:
condition: service_healthy
volumes:
- worker_logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
windmill_worker_1:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
- MODE=worker
- WORKER_GROUP=default
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
depends_on:
db:
condition: service_healthy
@@ -49,13 +50,18 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- worker_dependency_cache:/tmp/windmill/cache
- worker_logs:/tmp/windmill/logs
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
windmill_worker_2:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
- MODE=worker
- WORKER_GROUP=default
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
depends_on:
db:
condition: service_healthy
@@ -63,13 +69,18 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- worker_dependency_cache:/tmp/windmill/cache
- worker_logs:/tmp/windmill/logs
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
windmill_worker_3:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
- MODE=worker
- WORKER_GROUP=default
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
depends_on:
db:
condition: service_healthy
@@ -77,22 +88,37 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- worker_dependency_cache:/tmp/windmill/cache
- worker_logs:/tmp/windmill/logs
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
windmill_worker_native:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
- MODE=worker
- WORKER_GROUP=native
- NUM_WORKERS=8
- SLEEP_QUEUE=200
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-native}
- NUM_WORKERS=${NUM_WORKERS:-8}
- SLEEP_QUEUE=${SLEEP_QUEUE:-200}
depends_on:
db:
condition: service_healthy
volumes:
- worker_logs:/tmp/windmill/logs
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
lsp:
image: ghcr.io/windmill-labs/windmill-lsp:latest
volumes:
- lsp_cache:/root/.cache
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3