Merge branch 'new-services-3' into main
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
|
||||
|
||||
18
templates/compose/cloudbeaver.yaml
Normal file
18
templates/compose/cloudbeaver.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# documentation: https://dbeaver.com/docs/cloudbeaver/
|
||||
# slogan: CloudBeaver is a lightweight web application designed for comprehensive data management.
|
||||
# tags: dbeaver, data management, data, database, mysql, postgres, sqlite, sql, mongodb
|
||||
# logo: svgs/cloudbeaver.svg
|
||||
# port: 8978
|
||||
|
||||
services:
|
||||
cloudbeaver:
|
||||
image: dbeaver/cloudbeaver:24
|
||||
volumes:
|
||||
- cloudbeaver-data:/opt/cloudbeaver/workspace
|
||||
environment:
|
||||
- SERVICE_FQDN_CLOUDBEAVER_8978
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8978/"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
41
templates/compose/cryptgeon.yaml
Normal file
41
templates/compose/cryptgeon.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://github.com/cupcakearmy/cryptgeon
|
||||
# slogan: Secure note / file sharing service inspired by PrivNote.
|
||||
# tags: cryptgeon, secure, note, sharing, privnote, file, sharing
|
||||
# logo: svgs/cryptgeon.png
|
||||
# port: 8000
|
||||
|
||||
services:
|
||||
app:
|
||||
image: cupcakearmy/cryptgeon:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_CRYPTGEON_8000
|
||||
- SIZE_LIMIT=${SIZE_LIMIT:-4 MiB}
|
||||
- MAX_VIEWS=${MAX_VIEWS:-100}
|
||||
- MAX_EXPIRATION=${MAX_EXPIRATION:-360}
|
||||
- ALLOW_ADVANCED=${ALLOW_ADVANCED:-true}
|
||||
- ALLOW_FILES=${ALLOW_FILES:-true}
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- "--fail"
|
||||
- "http://127.0.0.1:8000/api/live/"
|
||||
interval: 1m
|
||||
timeout: 3s
|
||||
retries: 2
|
||||
start_period: 5s
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: "redis-server --maxmemory 200mb --maxmemory-policy allkeys-lru"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- PING
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 2
|
||||
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
|
||||
41
templates/compose/freshrss-with-mariadb.yaml
Normal file
41
templates/compose/freshrss-with-mariadb.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://freshrss.org/index.html
|
||||
# slogan: A free, self-hostable feed aggregator.
|
||||
# tags: rss, feed
|
||||
# logo: svgs/freshrss.png
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
freshrss:
|
||||
image: freshrss/freshrss:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_FRESHRSS_80
|
||||
- CRON_MIN=${CRON_MIN:-1,31}
|
||||
- MARIADB_DB=${MARIADB_DATABASE:-freshrss}
|
||||
- MARIADB_USER=${SERVICE_USER_MARIADB}
|
||||
- MARIADB_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
volumes:
|
||||
- freshrss-data:/var/www/FreshRSS/data
|
||||
- freshrss-extensions:/var/www/FreshRSS/extensions
|
||||
depends_on:
|
||||
freshrss-db:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
|
||||
freshrss-db:
|
||||
image: mariadb:11
|
||||
volumes:
|
||||
- mariadb-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT
|
||||
- MYSQL_DATABASE=${MARIADB_DATABASE:-freshrss}
|
||||
- MYSQL_USER=${SERVICE_USER_MARIADB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
41
templates/compose/freshrss-with-mysql.yaml
Normal file
41
templates/compose/freshrss-with-mysql.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://freshrss.org/index.html
|
||||
# slogan: A free, self-hostable feed aggregator.
|
||||
# tags: rss, feed
|
||||
# logo: svgs/freshrss.png
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
freshrss:
|
||||
image: freshrss/freshrss:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_FRESHRSS_80
|
||||
- CRON_MIN=${CRON_MIN:-1,31}
|
||||
- MYSQL_DB=${MYSQL_DATABASE:-freshrss}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
volumes:
|
||||
- freshrss-data:/var/www/FreshRSS/data
|
||||
- freshrss-extensions:/var/www/FreshRSS/extensions
|
||||
depends_on:
|
||||
freshrss-db:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
|
||||
freshrss-db:
|
||||
image: mysql:8
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-freshrss}
|
||||
- MYSQL_USER=$SERVICE_USER_MYSQL
|
||||
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
41
templates/compose/freshrss-with-postgresql.yaml
Normal file
41
templates/compose/freshrss-with-postgresql.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://freshrss.org/index.html
|
||||
# slogan: A free, self-hostable feed aggregator.
|
||||
# tags: rss, feed
|
||||
# logo: svgs/freshrss.png
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
freshrss:
|
||||
image: freshrss/freshrss:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_FRESHRSS_80
|
||||
- CRON_MIN=${CRON_MIN:-1,31}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE:-freshrss}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_HOST=postgresql
|
||||
volumes:
|
||||
- freshrss-data:/var/www/FreshRSS/data
|
||||
- freshrss-extensions:/var/www/FreshRSS/extensions
|
||||
depends_on:
|
||||
freshrss-db:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
|
||||
freshrss-db:
|
||||
image: postgres:16
|
||||
volumes:
|
||||
- freshrss-postgresql-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE:-freshrss}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
20
templates/compose/freshrss.yaml
Normal file
20
templates/compose/freshrss.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
# documentation: https://freshrss.org/index.html
|
||||
# slogan: A free, self-hostable feed aggregator.
|
||||
# tags: rss, feed
|
||||
# logo: svgs/freshrss.png
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
freshrss:
|
||||
image: freshrss/freshrss:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_FRESHRSS_80
|
||||
- CRON_MIN=${CRON_MIN:-1,31}
|
||||
volumes:
|
||||
- freshrss-data:/var/www/FreshRSS/data
|
||||
- freshrss-extensions:/var/www/FreshRSS/extensions
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
@@ -12,12 +12,13 @@ services:
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE:-glitchtip}
|
||||
volumes:
|
||||
- pg-data:/var/lib/postgresql/data
|
||||
- glitchtip-postgres-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
healthcheck:
|
||||
@@ -25,11 +26,14 @@ services:
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
web:
|
||||
image: glitchtip/glitchtip
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_GLITCHTIP_8080
|
||||
- DATABASE_URL=postgres://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgres:5432/${POSTGRESQL_DATABASE:-glitchtip}
|
||||
@@ -46,14 +50,16 @@ services:
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
worker:
|
||||
image: glitchtip/glitchtip
|
||||
command: ./bin/run-celery-with-beat.sh
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_GLITCHTIP
|
||||
- DATABASE_URL=postgres://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgres:5432/${POSTGRESQL_DATABASE:-glitchtip}
|
||||
- SECRET_KEY=$SERVICE_BASE64_64_ENCRYPTION
|
||||
- EMAIL_URL=${EMAIL_URL:-consolemail://}
|
||||
@@ -68,12 +74,15 @@ services:
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
migrate:
|
||||
image: glitchtip/glitchtip
|
||||
restart: "no"
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
command: "./manage.py migrate"
|
||||
environment:
|
||||
- DATABASE_URL=postgres://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgres:5432/${POSTGRESQL_DATABASE:-glitchtip}
|
||||
|
||||
21
templates/compose/homebox.yaml
Normal file
21
templates/compose/homebox.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
# documentation: https://github.com/hay-kot/homebox
|
||||
# slogan: Homebox is a self-hosted file management solution.
|
||||
# tags: homebox,file-management,self-hosted
|
||||
# logo: svgs/homebox.svg
|
||||
# port: 7745
|
||||
|
||||
services:
|
||||
homebox:
|
||||
image: ghcr.io/hay-kot/homebox:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_HOMEBOX_7745
|
||||
- HBOX_LOG_LEVEL=${HBOX_LOG_LEVEL:-info}
|
||||
- HBOX_LOG_FORMAT=${HBOX_LOG_FORMAT:-text}
|
||||
- HBOX_WEB_MAX_UPLOAD_SIZE=${HBOX_WEB_MAX_UPLOAD_SIZE:-10}
|
||||
volumes:
|
||||
- homebox-data:/data/
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:7745"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
44
templates/compose/kimai.yaml
Normal file
44
templates/compose/kimai.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
# documentation: https://www.kimai.org/
|
||||
# slogan: Open source time-tracking app.
|
||||
# tags: time-tracking, open-source
|
||||
# logo: svgs/kimai.svg
|
||||
# port: 8001
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8
|
||||
volumes:
|
||||
- kimai-mysql-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-kimai}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOT}
|
||||
command: --default-storage-engine innodb
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
kimai:
|
||||
image: kimai/kimai2:apache-latest
|
||||
container_name: kimai
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- kimai-data:/opt/kimai/var/data
|
||||
environment:
|
||||
- SERVICE_FQDN_KIMAI_8001
|
||||
- APP_SECRET=${SERVICE_PASSWORD_APPSECRET}
|
||||
- MAILER_FROM=${MAILER_FROM:-kimai@example.com}
|
||||
- MAILER_URL=${MAILER_URL:-null://null}
|
||||
- ADMINMAIL=${ADMINMAIL:-admin@kimai.local}
|
||||
- ADMINPASS=${SERVICE_PASSWORD_ADMINPASS}
|
||||
- DATABASE_URL=mysql://${SERVICE_USER_MYSQL}:${SERVICE_PASSWORD_MYSQL}@mysql/${MYSQL_DATABASE}?charset=utf8mb4&serverVersion=8.3.0
|
||||
- TRUSTED_HOSTS=localhost
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:8001"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
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
|
||||
61
templates/compose/nextcloud-with-mariadb.yaml
Normal file
61
templates/compose/nextcloud-with-mariadb.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
# documentation: https://docs.nextcloud.com
|
||||
# slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication tools for seamless data management.
|
||||
# tags: cloud, collaboration, communication, filestorage, data
|
||||
# logo: svgs/nextcloud.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: lscr.io/linuxserver/nextcloud:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_NEXTCLOUD_80
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-Europe/Paris}
|
||||
- MYSQL_DATABASE=${MARIADB_DATABASE:-nextcloud}
|
||||
- MYSQL_USER=${SERVICE_USER_MARIADB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
- MYSQL_HOST=nextcloud-db
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
volumes:
|
||||
- nextcloud-config:/config
|
||||
- nextcloud-data:/data
|
||||
depends_on:
|
||||
nextcloud-db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
nextcloud-db:
|
||||
image: mariadb:11
|
||||
volumes:
|
||||
- nextcloud-mariadb-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOT}
|
||||
- MYSQL_DATABASE=${MARIADB_DATABASE:-nextcloud}
|
||||
- MYSQL_USER=${SERVICE_USER_MARIADB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: "redis:7.4-alpine"
|
||||
volumes:
|
||||
- "nextcloud-redis-data:/data"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- PING
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 20
|
||||
61
templates/compose/nextcloud-with-mysql.yaml
Normal file
61
templates/compose/nextcloud-with-mysql.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
# documentation: https://docs.nextcloud.com
|
||||
# slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication tools for seamless data management.
|
||||
# tags: cloud, collaboration, communication, filestorage, data
|
||||
# logo: svgs/nextcloud.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: lscr.io/linuxserver/nextcloud:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_NEXTCLOUD_80
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-Europe/Paris}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-nextcloud}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
- MYSQL_HOST=nextcloud-db
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
volumes:
|
||||
- nextcloud-config:/config
|
||||
- nextcloud-data:/data
|
||||
depends_on:
|
||||
nextcloud-db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
nextcloud-db:
|
||||
image: mysql:8.4.2
|
||||
volumes:
|
||||
- nextcloud-mysql-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOT}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-nextcloud}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: "redis:7.4-alpine"
|
||||
volumes:
|
||||
- "nextcloud-redis-data:/data"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- PING
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 20
|
||||
60
templates/compose/nextcloud-with-postgres.yaml
Normal file
60
templates/compose/nextcloud-with-postgres.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# documentation: https://docs.nextcloud.com
|
||||
# slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication tools for seamless data management.
|
||||
# tags: cloud, collaboration, communication, filestorage, data
|
||||
# logo: svgs/nextcloud.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: lscr.io/linuxserver/nextcloud:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_NEXTCLOUD_80
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-Europe/Paris}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-nextcloud}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_HOST=nextcloud-db
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
volumes:
|
||||
- nextcloud-config:/config
|
||||
- nextcloud-data:/data
|
||||
depends_on:
|
||||
nextcloud-db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
nextcloud-db:
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- nextcloud-postgresql-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-nextcloud}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: "redis:7.4-alpine"
|
||||
volumes:
|
||||
- "nextcloud-redis-data:/data"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- PING
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 20
|
||||
@@ -2,15 +2,16 @@
|
||||
# slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication tools for seamless data management.
|
||||
# tags: cloud, collaboration, communication, filestorage, data
|
||||
# logo: svgs/nextcloud.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: lscr.io/linuxserver/nextcloud:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_NEXTCLOUD
|
||||
- SERVICE_FQDN_NEXTCLOUD_80
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Madrid
|
||||
- TZ=${TZ:-Europe/Madrid}
|
||||
volumes:
|
||||
- nextcloud-config:/config
|
||||
- nextcloud-data:/data
|
||||
|
||||
46
templates/compose/ntfy.yaml
Normal file
46
templates/compose/ntfy.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
# documentation: https://docs.ntfy.sh/
|
||||
# slogan: ntfy is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API.
|
||||
# tags: ntfy, notification, push notification, pub-sub, notify
|
||||
# logo: svgs/ntfy.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
ntfy:
|
||||
image: binwiederhier/ntfy
|
||||
command:
|
||||
- serve
|
||||
environment:
|
||||
- SERVICE_FQDN_NTFY_80
|
||||
- NTFY_BASE_URL=${SERVICE_FQDN_NTFY}
|
||||
- TZ=${TZ:-UTC}
|
||||
- NTFY_CACHE_FILE=/var/cache/ntfy/cache.db
|
||||
- NTFY_AUTH_FILE=/var/lib/ntfy/auth.db
|
||||
- NTFY_UPSTREAM_BASE_URL=${UPSTREAM_BASE_URL:-https://ntfy.sh}
|
||||
- NTFY_ENABLE_SIGNUP=${NTFY_ENABLE_SIGNUP:-true}
|
||||
- NTFY_ENABLE_LOGIN=${NTFY_ENABLE_LOGIN:-true}
|
||||
- NTFY_CACHE_DURATION=${NTFY_CACHE_DURATION:-24h}
|
||||
- NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT=${NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT:-1G}
|
||||
- NTFY_ATTACHMENT_FILE_SIZE_LIMIT=${NTFY_ATTACHMENT_FILE_SIZE_LIMIT:-10M}
|
||||
- NTFY_ATTACHMENT_EXPIRY_DURATION=${NTFY_ATTACHMENT_EXPIRY_DURATION:-24h}
|
||||
- NTFY_SMTP_SENDER_ADDR=${NTFY_SMTP_SENDER_ADDR:-smtp.your-domain.de}
|
||||
- NTFY_SMTP_SENDER_USER=${NTFY_SMTP_SENDER_USER:-no-reply@de}
|
||||
- NTFY_SMTP_SENDER_PASS=${NTFY_SMTP_SENDER_PASS:-password}
|
||||
- NTFY_SMTP_SENDER_FROM=${NTFY_SMTP_SENDER_FROM:-no-reply@de}
|
||||
- NTFY_KEEPALIVE_INTERVAL=${NTFY_KEEPALIVE_INTERVAL:-5m}
|
||||
- NTFY_MANAGER_INTERVAL=${NTFY_MANAGER_INTERVAL:-5m}
|
||||
- NTFY_VISITOR_MESSAGE_DAILY_LIMIT=${NTFY_VISITOR_MESSAGE_DAILY_LIMIT:-100}
|
||||
- NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT=${NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT:-1G}
|
||||
- NTFY_UPSTREAM_ACCESS_TOKEN=${UPSTREAM_ACCESS_TOKEN}
|
||||
- NTFY_AUTH_DEFAULT_ACCESS=${NTFY_AUTH_DEFAULT_ACCESS:-read-write}
|
||||
- NTFY_WEB_PUSH_PUBLIC_KEY=${NTFY_WEB_PUSH_PUBLIC_KEY}
|
||||
- NTFY_WEB_PUSH_PRIVATE_KEY=${NTFY_WEB_PUSH_PRIVATE_KEY}
|
||||
- NTFY_WEB_PUSH_EMAIL_ADDRESS=${NTFY_WEB_PUSH_EMAIL_ADDRESS}
|
||||
volumes:
|
||||
- ntfy-cache:/var/cache/ntfy
|
||||
- ntfy-db:/var/lib/ntfy/
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
|
||||
interval: 60s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
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
|
||||
73
templates/compose/owncloud.yaml
Normal file
73
templates/compose/owncloud.yaml
Normal file
@@ -0,0 +1,73 @@
|
||||
# ignore: true
|
||||
# documentation: https://owncloud.com/docs
|
||||
# slogan: OwnCloud with Open Web UI integrates file management with a powerful, user-friendly interface.
|
||||
# tags: owncloud,file-management,open-web-ui,integration,cloud
|
||||
# logo: svgs/owncloud.svg
|
||||
# port: 8080
|
||||
|
||||
services:
|
||||
owncloud:
|
||||
image: owncloud/server:latest
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_OWNCLOUD_8080
|
||||
- OWNCLOUD_DOMAIN=${SERVICE_FQDN_OWNCLOUD}
|
||||
- OWNCLOUD_TRUSTED_DOMAINS=${SERVICE_FQDN_OWNCLOUD} # This is a comma separated list of domains that are trusted by the server (No Protocol)
|
||||
- OWNCLOUD_DB_TYPE=mysql
|
||||
- OWNCLOUD_DB_HOST=mariadb
|
||||
- OWNCLOUD_DB_NAME=${DB_NAME:-owncloud}
|
||||
- OWNCLOUD_DB_USERNAME=${SERVICE_USER_MARIADB}
|
||||
- OWNCLOUD_DB_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
- OWNCLOUD_ADMIN_USERNAME=${SERVICE_USER_OWNCLOUD}
|
||||
- OWNCLOUD_ADMIN_PASSWORD=${SERVICE_PASSWORD_OWNCLOUD}
|
||||
- OWNCLOUD_MYSQL_UTF8MB4=${MYSQL_UTF8MB4:-true}
|
||||
- OWNCLOUD_REDIS_ENABLED=${REDIS_ENABLED:-true}
|
||||
- OWNCLOUD_REDIS_HOST=redis
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- /usr/bin/healthcheck
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
volumes:
|
||||
- owncloud-data:/mnt/data
|
||||
|
||||
mariadb:
|
||||
image: mariadb:latest
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MARIADBROOT}
|
||||
- MYSQL_USER=${SERVICE_USER_MARIADB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
- MYSQL_DATABASE=${DB_NAME:-owncloud}
|
||||
- TZ=auto
|
||||
command:
|
||||
- "--character-set-server=utf8mb4"
|
||||
- "--collation-server=utf8mb4_bin"
|
||||
- "--max-allowed-packet=128M"
|
||||
- "--innodb-log-file-size=64M"
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
volumes:
|
||||
- owncloud-mysql-data:/var/lib/mysql
|
||||
|
||||
redis:
|
||||
image: redis:6
|
||||
command:
|
||||
- "--databases"
|
||||
- "1"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- ping
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
48
templates/compose/qbittorrent.yaml
Normal file
48
templates/compose/qbittorrent.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
# documentation: https://docs.linuxserver.io/images/docker-qbittorrent/
|
||||
# slogan: The qBittorrent project aims to provide an open-source software alternative to μTorrent.
|
||||
# tags: torrent, streaming, webui
|
||||
# logo: svgs/qbittorrent.svg
|
||||
# port: 8080
|
||||
|
||||
services:
|
||||
qbit:
|
||||
image: "lscr.io/linuxserver/qbittorrent:latest"
|
||||
environment:
|
||||
- WEBUI_PORT=${WEBUI_PORT:-8080}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
volumes:
|
||||
- qbittorrent-config:/config
|
||||
- qbittorrent-downloads:/downloads
|
||||
- qbittorrent-torrents:/torrents
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- "-q"
|
||||
- "--spider"
|
||||
- "http://127.0.0.1:8080/"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
vuetorrent-backend:
|
||||
image: "ghcr.io/vuetorrent/vuetorrent-backend:latest"
|
||||
environment:
|
||||
- SERVICE_FQDN_QBITORRENT_8080
|
||||
- PORT=${WEBUI_PORT:-8080}
|
||||
- QBIT_BASE=${SERVICE_FQDN_QBITORRENT}
|
||||
- RELEASE_TYPE=${RELEASE_TYPE:-stable}
|
||||
- UPDATE_VT_CRON=${UPDATE_VT_CRON:-"0 * * * *"}
|
||||
volumes:
|
||||
- vuetorrent-config:/config
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- "-q"
|
||||
- "--spider"
|
||||
- "http://127.0.0.1:8080/"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -7,6 +7,7 @@
|
||||
services:
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
hostname: "rabbitmq"
|
||||
environment:
|
||||
- SERVICE_FQDN_RABBITMQ_15672
|
||||
- RABBITMQ_DEFAULT_USER=$SERVICE_USER_RABBITMQ
|
||||
@@ -19,3 +20,5 @@ services:
|
||||
interval: 5s
|
||||
timeout: 30s
|
||||
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:
|
||||
|
||||
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.6-16-debian"
|
||||
environment:
|
||||
- SERVICE_FQDN_SOKETI_6001
|
||||
- SOKETI_DEBUG=${DEBUG:-0}
|
||||
- SOKETI_DEFAULT_APP_ID=${SERVICE_USER_SOKETI}
|
||||
- SOKETI_DEFAULT_APP_KEY=${SERVICE_REALBASE64_64_SOKETIKEY}
|
||||
- SOKETI_DEFAULT_APP_SECRET=${SERVICE_REALBASE64_64_SOKETISECRET}
|
||||
- SOKETI_PUSHER_SCHEME=${SOKETI_PUSHER_SCHEME:-https}
|
||||
- SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=${DEFAULT_APP_ENABLE_CLIENT_MESSAGES}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/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
|
||||
50
templates/compose/traccar.yaml
Normal file
50
templates/compose/traccar.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
# documentation: https://www.traccar.org/documentation/
|
||||
# slogan: Traccar is a free and open source modern GPS tracking system.
|
||||
# tags: traccar,gps,tracking,open,source
|
||||
# logo: svgs/traccar.png
|
||||
# port: 8082
|
||||
|
||||
services:
|
||||
traccar:
|
||||
image: traccar/traccar:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_TRACCAR_8082
|
||||
- SERVICE_FQDN_TRACCARAPI_5159
|
||||
- CONFIG_USE_ENVIRONMENT_VARIABLES=${CONFIG_USE_ENVIRONMENT_VARIABLES:-true}
|
||||
- DATABASE_USER=${SERVICE_USER_POSTGRES}
|
||||
- DATABASE_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./srv/traccar/conf/traccar.xml
|
||||
target: /opt/traccar/conf/traccar.xml
|
||||
content: |
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
|
||||
<properties>
|
||||
<entry key='config.default'>./conf/default.xml</entry>
|
||||
<entry key='database.driver'>org.postgresql.Driver</entry>
|
||||
<entry key='database.url'>jdbc:postgresql://postgres:5432/traccar</entry>
|
||||
</properties>
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8082/ping"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 15s
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE:-traccar}
|
||||
volumes:
|
||||
- traccar-postgresql-data:/var/lib/postgresql/data/
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
60
templates/compose/unsend.yaml
Normal file
60
templates/compose/unsend.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# documentation: https://docs.unsend.dev/get-started/self-hosting
|
||||
# slogan: Unsend is an open-source alternative to Resend, Sendgrid, Mailgun and Postmark etc.
|
||||
# tags: resend, mailer, marketing emails, transaction emails, self-hosting, postmark
|
||||
# logo: svgs/unsend.svg
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${SERVICE_DB_POSTGRES:-unsend}
|
||||
healthcheck:
|
||||
test: ["CMD", "pg_isready", "-U", "${SERVICE_USER_POSTGRES}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
volumes:
|
||||
- unsend-postgres-data:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:7
|
||||
volumes:
|
||||
- unsend-redis-data:/data
|
||||
command: ["redis-server", "--maxmemory-policy", "noeviction"]
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- PING
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 20
|
||||
|
||||
unsend:
|
||||
image: unsend/unsend:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_UNSEND_3000
|
||||
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${SERVICE_DB_POSTGRES:-unsend}
|
||||
- NEXTAUTH_URL=${SERVICE_FQDN_UNSEND}
|
||||
- NEXTAUTH_SECRET=${SERVICE_BASE64_64_NEXTAUTHSECRET}
|
||||
- AWS_ACCESS_KEY=${SERVICE_AWS_ACCESS_KEY}
|
||||
- AWS_SECRET_KEY=${SERVICE_AWS_SECRET_KEY}
|
||||
- AWS_DEFAULT_REGION=${SERVICE_AWS_DEFAULT_REGION}
|
||||
- GITHUB_ID=${SERVICE_GITHUB_ID:-1234567890}
|
||||
- GITHUB_SECRET=${SERVICE_GITHUB_SECRET:-abcde1234567890}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- NEXT_PUBLIC_IS_CLOUD=${NEXT_PUBLIC_IS_CLOUD:-false}
|
||||
- API_RATE_LIMIT=${SERVICE_API_RATE_LIMIT:-1}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
41
templates/compose/vvveb-with-mariadb.yaml
Normal file
41
templates/compose/vvveb-with-mariadb.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://docs.vvveb.com
|
||||
# slogan: Powerful and easy to use cms to build websites, blogs or ecommerce stores.
|
||||
# tags: cms, blog, content, management, ecommerce, page-builder, nocode, mysql, sqlite, pgsql
|
||||
# logo: svgs/vvveb.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
vvveb:
|
||||
image: vvveb/vvvebcms:latest
|
||||
volumes:
|
||||
- vvveb-data:/var/www/html
|
||||
environment:
|
||||
- SERVICE_FQDN_VVVEB_80
|
||||
- DB_ENGINE=mysqli
|
||||
- DB_HOST=mariadb
|
||||
- DB_USER=${SERVICE_USER_VVVEB}
|
||||
- DB_PASSWORD=${SERVICE_PASSWORD_VVVEB}
|
||||
- DB_NAME=${MARIADB_DATABASE:-vvveb}
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
volumes:
|
||||
- vvveb-mariadb-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOT}
|
||||
- MYSQL_DATABASE=${MARIADB_DATABASE:-vvveb}
|
||||
- MYSQL_USER=${SERVICE_USER_VVVEB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_VVVEB}
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
41
templates/compose/vvveb-with-mysql.yaml
Normal file
41
templates/compose/vvveb-with-mysql.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# documentation: https://docs.vvveb.com
|
||||
# slogan: Powerful and easy to use cms to build websites, blogs or ecommerce stores.
|
||||
# tags: cms, blog, content, management, ecommerce, page-builder, nocode, mysql, sqlite, pgsql
|
||||
# logo: svgs/vvveb.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
vvveb:
|
||||
image: vvveb/vvvebcms:latest
|
||||
volumes:
|
||||
- vvveb-data:/var/www/html
|
||||
environment:
|
||||
- SERVICE_FQDN_VVVEB_80
|
||||
- DB_ENGINE=mysqli
|
||||
- DB_HOST=mysql
|
||||
- DB_USER=${SERVICE_USER_VVVEB}
|
||||
- DB_PASSWORD=${SERVICE_PASSWORD_VVVEB}
|
||||
- DB_NAME=${MYSQL_DATABASE:-vvveb}
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
|
||||
mysql:
|
||||
image: mysql:8.4.2
|
||||
volumes:
|
||||
- vvveb-mysql-data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOT}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-vvveb}
|
||||
- MYSQL_USER=${SERVICE_USER_VVVEB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_VVVEB}
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
18
templates/compose/vvveb.yaml
Normal file
18
templates/compose/vvveb.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# documentation: https://docs.vvveb.com
|
||||
# slogan: Powerful and easy to use cms to build websites, blogs or ecommerce stores.
|
||||
# tags: cms, blog, content, management, ecommerce, page-builder, nocode, mysql, sqlite, pgsql
|
||||
# logo: svgs/vvveb.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
vvveb:
|
||||
image: vvveb/vvvebcms:latest
|
||||
volumes:
|
||||
- vvveb-data:/var/www/html
|
||||
environment:
|
||||
- SERVICE_FQDN_VVVEB_80
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
@@ -1,98 +1,124 @@
|
||||
# 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
|
||||
- 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
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
windmill_server:
|
||||
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
|
||||
- worker-logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_1:
|
||||
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
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
- worker-dependency-cache:/tmp/windmill/cache
|
||||
- worker-logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_2:
|
||||
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
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
- worker-dependency-cache:/tmp/windmill/cache
|
||||
- worker-logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_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
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
- worker-dependency-cache:/tmp/windmill/cache
|
||||
- worker-logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_native:
|
||||
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
|
||||
- worker-logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
lsp:
|
||||
image: ghcr.io/windmill-labs/windmill-lsp:latest
|
||||
volumes:
|
||||
- lsp_cache:/root/.cache
|
||||
- lsp-cache:/root/.cache
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
Reference in New Issue
Block a user