Merge branch 'next' into patch-1
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
32
templates/compose/dozzle-with-auth.yaml
Normal file
32
templates/compose/dozzle-with-auth.yaml
Normal 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
|
||||
19
templates/compose/dozzle.yaml
Normal file
19
templates/compose/dozzle.yaml
Normal 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
|
||||
35
templates/compose/easyappointments.yaml
Normal file
35
templates/compose/easyappointments.yaml
Normal 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
|
||||
87
templates/compose/getoutline.yaml
Normal file
87
templates/compose/getoutline.yaml
Normal file
@@ -0,0 +1,87 @@
|
||||
# documentation: https://docs.getoutline.com/s/hosting/doc/hosting-outline-nipGaCRBDu
|
||||
# slogan: Your team’s 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
|
||||
@@ -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
|
||||
|
||||
47
templates/compose/labelstudio.yaml
Normal file
47
templates/compose/labelstudio.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
21
templates/compose/libreoffice.yaml
Normal file
21
templates/compose/libreoffice.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
37
templates/compose/nitropage-with-postgresql.yaml
Normal file
37
templates/compose/nitropage-with-postgresql.yaml
Normal 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
|
||||
21
templates/compose/nitropage.yaml
Normal file
21
templates/compose/nitropage.yaml
Normal 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
|
||||
34
templates/compose/ollama-with-open-webui.yaml
Normal file
34
templates/compose/ollama-with-open-webui.yaml
Normal 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
|
||||
19
templates/compose/organizr.yaml
Normal file
19
templates/compose/organizr.yaml
Normal 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
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
23
templates/compose/soketi.yaml
Normal file
23
templates/compose/soketi.yaml
Normal 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
|
||||
40
templates/compose/supertokens-with-mysql.yaml
Normal file
40
templates/compose/supertokens-with-mysql.yaml
Normal 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
|
||||
34
templates/compose/supertokens-with-postgresql.yaml
Normal file
34
templates/compose/supertokens-with-postgresql.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user