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
	 🏔️ Peak
					🏔️ Peak