Merge pull request #3763 from coollabsio/new-services

Feat: Service fixes and new services
This commit is contained in:
Andras Bacsai
2024-10-08 11:29:19 +02:00
committed by GitHub
19 changed files with 309 additions and 30 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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