Merge pull request #3763 from coollabsio/new-services
Feat: Service fixes and new services
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
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -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/
|
||||
|
||||
23
templates/compose/soketi.yaml
Normal file
23
templates/compose/soketi.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
# documentation: https://docs.soketi.app
|
||||
# slogan: Soketi is your simple, fast, and resilient open-source WebSockets server.
|
||||
# tags: websockets,open,source,messaging
|
||||
# logo: svgs/soketi.jpeg
|
||||
# port: 6001
|
||||
|
||||
services:
|
||||
soketi:
|
||||
image: "quay.io/soketi/soketi:1.4-16-debian"
|
||||
environment:
|
||||
- SERVICE_FQDN_SOKETI_6001
|
||||
- SOKETI_DEBUG=${DEBUG:-0}
|
||||
- SOKETI_DEFAULT_APP_ID=${SOKETI_APP_ID}
|
||||
- SOKETI_DEFAULT_APP_KEY=${SOKETI_APP_KEY}
|
||||
- SOKETI_DEFAULT_APP_SECRET=${SOKETI_APP_SECRET}
|
||||
- SOKETI_PUSHER_SCHEME=${SOKETI_PUSHER_SCHEME:-https}
|
||||
- SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES=${DEFAULT_APP_ENABLE_CLIENT_MESSAGES}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:6001/ || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
40
templates/compose/supertokens-with-mysql.yaml
Normal file
40
templates/compose/supertokens-with-mysql.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# documentation: https://supertokens.com/docs/guides
|
||||
# slogan: An open-source authentication solution that simplifies the implementation of secure user authentication and session management for web and mobile applications.
|
||||
# tags: supertokens,login,authentication,authorization,oauth,user-management,session-management,access-control,otp,magic-link,passwordless
|
||||
# logo: svgs/supertokens.svg
|
||||
# port: 3567
|
||||
|
||||
services:
|
||||
supertokens:
|
||||
image: 'registry.supertokens.io/supertokens/supertokens-mysql:latest'
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_SUPERTOKENS_3567
|
||||
- API_KEYS=${API_KEYS:-}
|
||||
- MYSQL_CONNECTION_URI=mysql://$SERVICE_USER_MYSQL:$SERVICE_PASSWORD_MYSQL@mysql:3306/${MYSQL_DATABASE:-supertokens}
|
||||
healthcheck:
|
||||
test: "bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e \"GET /hello HTTP/1.1\\r\\nhost: 127.0.0.1:3567\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && cat <&3 | grep \"Hello\"'\n"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
mysql:
|
||||
image: 'mysql:latest'
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||
- MYSQL_USER=$SERVICE_USER_MYSQL
|
||||
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-supertokens}
|
||||
volumes:
|
||||
- 'supertokens-mysql-data:/var/lib/mysql'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- mysqladmin
|
||||
- ping
|
||||
- '-h'
|
||||
- localhost
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
34
templates/compose/supertokens-with-postgresql.yaml
Normal file
34
templates/compose/supertokens-with-postgresql.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
# documentation: https://supertokens.com/docs/guides
|
||||
# slogan: An open-source authentication solution that simplifies the implementation of secure user authentication and session management for web and mobile applications.
|
||||
# tags: supertokens,login,authentication,authorization,oauth,user-management,session-management,access-control,otp,magic-link,passwordless
|
||||
# logo: svgs/supertokens.svg
|
||||
# port: 3567
|
||||
|
||||
services:
|
||||
supertokens:
|
||||
image: registry.supertokens.io/supertokens/supertokens-postgresql:latest
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_SUPERTOKENS_3567
|
||||
- API_KEYS=${API_KEYS:-}
|
||||
- POSTGRESQL_CONNECTION_URI="postgresql://$SERVICE_USER_POSTGRESQL:$SERVICE_PASSWORD_POSTGRESQL@postgres:5432/${POSTGRES_DB:-supertokens}"
|
||||
healthcheck:
|
||||
test: "bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e \"GET /hello HTTP/1.1\\r\\nhost: 127.0.0.1:3567\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && cat <&3 | grep \"Hello\"'\n"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
postgres:
|
||||
image: postgres:16
|
||||
environment:
|
||||
- POSTGRES_USER=$SERVICE_USER_POSTGRESQL
|
||||
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRESQL
|
||||
- POSTGRES_DB=${POSTGRES_DB:-supertokens}
|
||||
volumes:
|
||||
- supertokens-postgres-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD", "pg_isready", "-U", "$SERVICE_USER_POSTGRESQL", "-d", "${POSTGRES_DB:-supertokens}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -1,22 +1,18 @@
|
||||
# documentation: https://www.windmill.dev/docs/
|
||||
# slogan: Windmill is a developer platform to build production-grade multi-steps automations and internal apps.\
|
||||
# info: Login as admin@windmill.dev / changeme to setup the instance & accounts and give yourself super-admin privileges.
|
||||
# slogan: Windmill is a developer platform to build production-grade multi-steps automations and internal apps.
|
||||
# tags: windmill,workflow,automation,developer,platform
|
||||
# logo: svgs/windmill.svg
|
||||
# port: 8000
|
||||
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
db:
|
||||
image: postgres:16
|
||||
shm_size: 1g
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_PASSWORD: $SERVICE_PASSWORD_WINDMILL_POSTGRES
|
||||
POSTGRES_DB: windmill
|
||||
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||
- POSTGRES_DB=${POSTGRES_DB:-windmill}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 10s
|
||||
@@ -26,22 +22,27 @@ services:
|
||||
windmill_server:
|
||||
image: ghcr.io/windmill-labs/windmill:main
|
||||
environment:
|
||||
- SERVICE_FQDN_WINDMILL
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
|
||||
- MODE=server
|
||||
- SERVICE_FQDN_WINDMILL_8000
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
|
||||
- MODE=${MODE:-server}
|
||||
- BASE_URL=$SERVICE_FQDN_WINDMILL
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_1:
|
||||
image: ghcr.io/windmill-labs/windmill:main
|
||||
environment:
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
|
||||
- MODE=worker
|
||||
- WORKER_GROUP=default
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
|
||||
- MODE=${MODE:-worker}
|
||||
- WORKER_GROUP=${WORKER_GROUP:-default}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
@@ -49,13 +50,18 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_2:
|
||||
image: ghcr.io/windmill-labs/windmill:main
|
||||
environment:
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
|
||||
- MODE=worker
|
||||
- WORKER_GROUP=default
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
|
||||
- MODE=${MODE:-worker}
|
||||
- WORKER_GROUP=${WORKER_GROUP:-default}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
@@ -63,13 +69,18 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_3:
|
||||
image: ghcr.io/windmill-labs/windmill:main
|
||||
environment:
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
|
||||
- MODE=worker
|
||||
- WORKER_GROUP=default
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
|
||||
- MODE=${MODE:-worker}
|
||||
- WORKER_GROUP=${WORKER_GROUP:-default}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
@@ -77,22 +88,37 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- worker_dependency_cache:/tmp/windmill/cache
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
windmill_worker_native:
|
||||
image: ghcr.io/windmill-labs/windmill:main
|
||||
environment:
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_WINDMILL_POSTGRES@db/windmill
|
||||
- MODE=worker
|
||||
- WORKER_GROUP=native
|
||||
- NUM_WORKERS=8
|
||||
- SLEEP_QUEUE=200
|
||||
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
|
||||
- MODE=${MODE:-worker}
|
||||
- WORKER_GROUP=${WORKER_GROUP:-native}
|
||||
- NUM_WORKERS=${NUM_WORKERS:-8}
|
||||
- SLEEP_QUEUE=${SLEEP_QUEUE:-200}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- worker_logs:/tmp/windmill/logs
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
lsp:
|
||||
image: ghcr.io/windmill-labs/windmill-lsp:latest
|
||||
volumes:
|
||||
- lsp_cache:/root/.cache
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "exit 0"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
Reference in New Issue
Block a user