mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-19 16:15:37 +00:00
Merge branch 'next' into add-opnform-template
This commit is contained in:
173 files changed
+4118
-2247
No files matched your search
@@ -6,7 +6,7 @@
|
||||
|
||||
services:
|
||||
authentik-server:
|
||||
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2025.2.3}
|
||||
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2025.4.1}
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
environment:
|
||||
@@ -35,7 +35,7 @@ services:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
authentik-worker:
|
||||
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2025.2.3}
|
||||
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2025.4.1}
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
environment:
|
||||
|
||||
@@ -80,7 +80,7 @@ services:
|
||||
- ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE:-local}
|
||||
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
|
||||
volumes:
|
||||
- sidekiq-data:/app/storage
|
||||
- rails-data:/app/storage
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bundle exec rails runner 'puts Sidekiq.redis(&:info)' > /dev/null 2>&1"]
|
||||
interval: 30s
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# documentation: https://hackmd.io/c/codimd-documentation
|
||||
# slogan: Realtime collaborative markdown notes on all platforms
|
||||
# tags: markdown, md, editor, opensource, collaborative, realtime-collaboration, notes
|
||||
# logo: svgs/codimd.png
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
codimd:
|
||||
image: nabo.codimd.dev/hackmdio/hackmd:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_CODIMD_3000
|
||||
- CMD_DOMAIN=${SERVICE_URL_CODIMD}
|
||||
- CMD_PROTOCOL_USESSL=${CMD_PROTOCOL_USESSL:-false}
|
||||
- CMD_SESSION_SECRET=${SERVICE_PASSWORD_SESSIONSECRET}
|
||||
- CMD_USECDN=${CMD_USECDN:-false}
|
||||
- CMD_DB_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-codimd-db}
|
||||
- CMD_EMAIL=${CMD_EMAIL:-true}
|
||||
- CMD_ALLOW_EMAIL_REGISTER=${CMD_ALLOW_EMAIL_REGISTER:-true}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- "curl -f http://localhost:3000/ || exit 1"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 5
|
||||
volumes:
|
||||
- uploads_data:/home/hackmd/app/public/uploads
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- codimd_postgres_data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-codimd-db}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
services:
|
||||
backend:
|
||||
image: ghcr.io/get-convex/convex-backend:4499dd4fd7f2148687a7774599c613d052950f46
|
||||
image: ghcr.io/get-convex/convex-backend:5143fec81f146ca67495c12c6b7a15c5802c37e2
|
||||
volumes:
|
||||
- data:/convex/data
|
||||
environment:
|
||||
@@ -15,8 +15,8 @@ services:
|
||||
- INSTANCE_SECRET=${SERVICE_HEX_32_SECRET}
|
||||
- CONVEX_RELEASE_VERSION_DEV=${CONVEX_RELEASE_VERSION_DEV:-}
|
||||
- ACTIONS_USER_TIMEOUT_SECS=${ACTIONS_USER_TIMEOUT_SECS:-}
|
||||
- CONVEX_CLOUD_ORIGIN=${SERVICE_FQDN_CONVEX_6791}
|
||||
- CONVEX_SITE_ORIGIN=${SERVICE_FQDN_CONVEX_6791}/http
|
||||
- CONVEX_CLOUD_ORIGIN=${SERVICE_URL_CONVEX_3210}
|
||||
- CONVEX_SITE_ORIGIN=${SERVICE_URL_CONVEX_3211}
|
||||
- DATABASE_URL=${DATABASE_URL:-}
|
||||
- DISABLE_BEACON=${DISABLE_BEACON:-}
|
||||
- REDACT_LOGS_TO_CLIENT=${REDACT_LOGS_TO_CLIENT:-}
|
||||
@@ -27,7 +27,7 @@ services:
|
||||
start_period: 5s
|
||||
|
||||
dashboard:
|
||||
image: ghcr.io/get-convex/convex-dashboard:4499dd4fd7f2148687a7774599c613d052950f46
|
||||
image: ghcr.io/get-convex/convex-dashboard:5143fec81f146ca67495c12c6b7a15c5802c37e2
|
||||
environment:
|
||||
- SERVICE_FQDN_CONVEX_6791
|
||||
- NEXT_PUBLIC_DEPLOYMENT_URL=$SERVICE_FQDN_BACKEND_3210
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# documentation: https://crazymax.dev/diun/
|
||||
# slogan: Docker Image Update Notifier is a CLI application to receive notifications when a Docker image is updated on a Docker registry.
|
||||
# tags: docker, notifier, slack
|
||||
# logo: svgs/diun.svg
|
||||
|
||||
services:
|
||||
diun:
|
||||
image: crazymax/diun:latest
|
||||
command: serve
|
||||
volumes:
|
||||
- "diun_data:/data"
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
environment:
|
||||
- TZ=${TIME_ZONE:-Europe/Vienna}
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
- LOG_JSON=${LOG_JSON:-false}
|
||||
- DIUN_WATCH_WORKERS=${DIUN_WATCH_WORKERS:-20}
|
||||
- DIUN_WATCH_SCHEDULE=${DIUN_WATCH_SCHEDULE:- * */6 * * *}
|
||||
- DIUN_WATCH_JITTER=${DIUN_WATCH_JITTER:-30s}
|
||||
- DIUN_PROVIDERS_DOCKER=${DIUN_PROVIDERS_DOCKER:-true}
|
||||
- DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=${DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT:-true}
|
||||
- DIUN_NOTIF_SLACK_WEBHOOKURL=${SERVICE_WEBHOOK_URL_SLACK}
|
||||
healthcheck:
|
||||
test: ["CMD", "diun", "--version"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
@@ -12,11 +12,18 @@ services:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_DOCUMENSO_3000
|
||||
- NEXTAUTH_URL=${SERVICE_FQDN_DOCUMENSO_3000}
|
||||
- NEXTAUTH_URL=${SERVICE_FQDN_DOCUMENSO}
|
||||
- NEXTAUTH_SECRET=${SERVICE_BASE64_AUTHSECRET}
|
||||
- NEXT_PRIVATE_ENCRYPTION_KEY=${SERVICE_BASE64_ENCRYPTIONKEY}
|
||||
- NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${SERVICE_BASE64_SECONDARYENCRYPTIONKEY}
|
||||
- NEXT_PUBLIC_WEBAPP_URL=${SERVICE_FQDN_DOCUMENSO_3000}
|
||||
- NEXT_PUBLIC_WEBAPP_URL=${SERVICE_FQDN_DOCUMENSO}
|
||||
- NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT}
|
||||
- NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST}
|
||||
- NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT}
|
||||
- NEXT_PRIVATE_SMTP_USERNAME=${NEXT_PRIVATE_SMTP_USERNAME}
|
||||
- NEXT_PRIVATE_SMTP_PASSWORD=${NEXT_PRIVATE_SMTP_PASSWORD}
|
||||
- NEXT_PRIVATE_SMTP_FROM_NAME=${NEXT_PRIVATE_SMTP_FROM_NAME}
|
||||
- NEXT_PRIVATE_SMTP_FROM_ADDRESS=${NEXT_PRIVATE_SMTP_FROM_ADDRESS}
|
||||
- NEXT_PRIVATE_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@database/${POSTGRES_DB:-documenso-db}?schema=public
|
||||
- NEXT_PRIVATE_DIRECT_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@database/${POSTGRES_DB:-documenso-db}?schema=public
|
||||
healthcheck:
|
||||
@@ -28,7 +35,7 @@ services:
|
||||
retries: 20
|
||||
|
||||
database:
|
||||
image: postgres:16-alpine
|
||||
image: postgres:17
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# documentation: https://leantime.io
|
||||
# slogan: Leantime is a goals focused project management system for non-project managers.
|
||||
# tags: project management,productivity,php,mysql,laravel,open source
|
||||
# logo: svgs/leantime.svg
|
||||
# port: 8080
|
||||
|
||||
services:
|
||||
leantime:
|
||||
image: leantime/leantime:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_LEANTIME_8080
|
||||
- LEAN_APP_URL=${SERVICE_FQDN_LEANTIME}
|
||||
- LEAN_DB_HOST=mysql
|
||||
- LEAN_DB_USER=${SERVICE_USER_MYSQLDB}
|
||||
- LEAN_DB_PASSWORD=${SERVICE_PASSWORD_MYSQLDB}
|
||||
- LEAN_DB_DATABASE=${DB_NAME:-leantime-db}
|
||||
- LEAN_SESSION_PASSWORD=${SERVICE_PASSWORD_64_SALT}
|
||||
- LEAN_SESSION_EXPIRATION=${SESSION_EXPIRATION:-28800}
|
||||
- LEAN_USE_REDIS=${USE_REDIS:-true}
|
||||
- LEAN_REDIS_HOST=redis
|
||||
- LEAN_REDIS_PORT=${REDIS_PORT:-6379}
|
||||
- LEAN_REDIS_SCHEME=${REDIS_SCHEME:-tcp}
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_started
|
||||
volumes:
|
||||
- public-userfiles:/var/www/html/public/userfiles
|
||||
- userfiles:/var/www/html/userfiles
|
||||
- plugins:/var/www/html/app/Plugins
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:8080"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
mysql:
|
||||
image: mysql:8.4
|
||||
volumes:
|
||||
- leantime_mysql_data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQLDB}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQLDB}
|
||||
- MYSQL_DATABASE=${DB_NAME:-leantime-db}
|
||||
command: --character-set-server=UTF8MB4 --collation-server=UTF8MB4_unicode_ci
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- leantime_redis_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
@@ -0,0 +1,76 @@
|
||||
# documentation: https://www.limesurvey.org/manual/
|
||||
# slogan: Simple, quick and anonymous online survey tool that's bursting with juicy insights.
|
||||
# tags: online survey, forms, no code, open source
|
||||
# logo: svgs/limesurvey.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
limesurvey:
|
||||
image: adamzammit/limesurvey:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_LIMESURVEY_80
|
||||
- LIMESURVEY_DB_HOST=mariadb
|
||||
- LIMESURVEY_DB_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
- LIMESURVEY_DB_USER=${SERVICE_USER_MYSQL}
|
||||
- LIMESURVEY_DB_NAME=${MYSQL_DATABASE:-limesurvey-db}
|
||||
- LIMESURVEY_ADMIN_USER=${LIMESURVEY_ADMIN_USER:-admin}
|
||||
- LIMESURVEY_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
|
||||
- LIMESURVEY_ADMIN_NAME=${LIMESURVEY_ADMIN_NAME:-Admin}
|
||||
- LIMESURVEY_ADMIN_EMAIL=${LIMESURVEY_ADMIN_EMAIL:-admin@example.com}
|
||||
- LIMESURVEY_FROM_EMAIL=${LIMESURVEY_FROM_EMAIL}
|
||||
- LIMESURVEY_SMTP_HOST=${LIMESURVEY_SMTP_HOST}
|
||||
- LIMESURVEY_SMTP_USER=${LIMESURVEY_SMTP_USER}
|
||||
- LIMESURVEY_SMTP_PASSWORD=${LIMESURVEY_SMTP_PASSWORD}
|
||||
- LIMESURVEY_SMTP_SSL=${LIMESURVEY_SMTP_SSL}
|
||||
- LIMESURVEY_PHP_SESSION_SAVE_HANDLER=redis
|
||||
- LIMESURVEY_PHP_SESSION_SAVE_PATH=tcp://redis:6379
|
||||
- TZ=${TZ:-America/Jamaica}
|
||||
volumes:
|
||||
- limesurvey_plugins_data:/var/www/html/plugins
|
||||
- limesurvey_upload_data:/var/www/html/upload
|
||||
- limesurvey_config_data:/var/www/html/application/config
|
||||
- limesurvey_sessions_data:/var/lime/sessions
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- "-f"
|
||||
- "http://127.0.0.1"
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
environment:
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-limesurvey-db}
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
|
||||
volumes:
|
||||
- limesurvey_mariadb_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- healthcheck.sh
|
||||
- "--connect"
|
||||
- "--innodb_initialized"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- ping
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
@@ -0,0 +1,34 @@
|
||||
# documentation: https://marimo.io/
|
||||
# slogan: An open-source reactive notebook for Python — reproducible, git-friendly, SQL built-in, executable as a script, and shareable as an app.
|
||||
# tags: notebook, python, data, analysis
|
||||
# logo: svgs/marimo.svg
|
||||
# port: 8080
|
||||
|
||||
services:
|
||||
marimo:
|
||||
image: ghcr.io/marimo-team/marimo:latest-sql
|
||||
environment:
|
||||
- SERVICE_FQDN_MARIMO_8080
|
||||
- TOKEN_PASSWORD=$SERVICE_PASSWORD_MARIMO
|
||||
volumes:
|
||||
- "marimo:/app"
|
||||
command:
|
||||
- "marimo"
|
||||
- "edit"
|
||||
- "--token-password"
|
||||
- "${SERVICE_PASSWORD_MARIMO}"
|
||||
- "--port"
|
||||
- "8080"
|
||||
- "--host"
|
||||
- "0.0.0.0"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- uvx
|
||||
- --with
|
||||
- httpx[cli]
|
||||
- httpx
|
||||
- http://localhost:8080/health
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
@@ -1,5 +1,5 @@
|
||||
# documentation: https://github.com/maybe-finance/maybe
|
||||
# slogan: Maybe: The OS for your personal finances.
|
||||
# slogan: Maybe, the OS for your personal finances.
|
||||
# tags: finances,wallets,coins,stocks,investments,open,source
|
||||
# logo: svgs/maybe.svg
|
||||
# port: 3000
|
||||
@@ -17,29 +17,75 @@ services:
|
||||
- GOOD_JOB_EXECUTION_MODE=${GOOD_JOB_EXECUTION_MODE:-async}
|
||||
- SECRET_KEY_BASE=${SERVICE_BASE64_64_SECRETKEYBASE}
|
||||
- DB_HOST=postgres
|
||||
- POSTGRES_DB=${POSTGRES_DB:-maybe_db}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-maybe-db}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- DB_PORT=5432
|
||||
- REDIS_URL=redis://default:${SERVICE_PASSWORD_REDIS}@redis:6379/1
|
||||
- OPENAI_ACCESS_TOKEN=${OPENAI_ACCESS_TOKEN}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- "-f"
|
||||
- "http://localhost:3000"
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
worker:
|
||||
image: ghcr.io/maybe-finance/maybe:latest
|
||||
command: bundle exec sidekiq
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-maybe-db}
|
||||
- SECRET_KEY_BASE=${SERVICE_BASE64_64_SECRETKEYBASE}
|
||||
- SELF_HOSTED=true
|
||||
- RAILS_FORCE_SSL=${RAILS_FORCE_SSL:-false}
|
||||
- RAILS_ASSUME_SSL=${RAILS_ASSUME_SSL:-false}
|
||||
- GOOD_JOB_EXECUTION_MODE=${GOOD_JOB_EXECUTION_MODE:-async}
|
||||
- DB_HOST=postgres
|
||||
- DB_PORT=5432
|
||||
- REDIS_URL=redis://default:${SERVICE_PASSWORD_REDIS}@redis:6379/1
|
||||
- OPENAI_ACCESS_TOKEN=${OPENAI_ACCESS_TOKEN}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
exclude_from_hc: true
|
||||
|
||||
postgres:
|
||||
image: postgres:16
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- maybe_postgres_data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-maybe_db}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-maybe-db}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:8-alpine
|
||||
command: redis-server --appendonly yes --requirepass ${SERVICE_PASSWORD_REDIS}
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
environment:
|
||||
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_DB=1
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "--pass", "${SERVICE_PASSWORD_REDIS}", "ping"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
@@ -0,0 +1,13 @@
|
||||
# documentation: https://github.com/usememos/memos
|
||||
# slogan: An open-source, lightweight note-taking solution. The pain-less way to create your meaningful notes. Your Notes, Your Way.
|
||||
# tags: note-taking,microblog,social-network,markdown
|
||||
# logo: svgs/memos.png
|
||||
# port: 5230
|
||||
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:stable
|
||||
volumes:
|
||||
- memos/:/var/opt/memos
|
||||
environment:
|
||||
- SERVICE_FQDN_MEMOS_5230
|
||||
@@ -0,0 +1,25 @@
|
||||
# documentation: https://www.navidrome.org/docs/
|
||||
# slogan: Standalone server, that allows you to browse and listen to your music collection using a web browser or any Subsonic-compatible client.
|
||||
# tags: media, server, music, subsonic
|
||||
# logo: svgs/navidrome.svg
|
||||
# port: 4533
|
||||
|
||||
services:
|
||||
navidrome:
|
||||
image: deluan/navidrome:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- SERVICE_FQDN_NAVIDROME_4533
|
||||
- ND_BASEURL=${SERVICE_FQDN_NAVIDROME}
|
||||
- ND_SCANSCHEDULE=${ND_SCANSCHEDULE:-1h}
|
||||
- ND_LOGLEVEL=${ND_LOGLEVEL:-info}
|
||||
- ND_SESSIONTIMEOUT=${ND_SESSIONTIMEOUT:-24h}
|
||||
- ND_ENABLEINSIGHTSCOLLECTOR=${ND_ENABLEINSIGHTSCOLLECTOR:-false}
|
||||
volumes:
|
||||
- "./data:/data"
|
||||
- "./music:/music:ro"
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "--quiet", "http://127.0.0.1:4533/ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -15,20 +15,22 @@ services:
|
||||
- TZ=${TZ:-UTC}
|
||||
- NTFY_CACHE_FILE=/var/cache/ntfy/cache.db
|
||||
- NTFY_AUTH_FILE=/var/lib/ntfy/auth.db
|
||||
- NTFY_WEB_PUSH_FILE=/var/cache/ntfy/webpush.db
|
||||
- NTFY_BEHIND_PROXY=${NTFY_BEHIND_PROXY:-true}
|
||||
- NTFY_UPSTREAM_BASE_URL=${UPSTREAM_BASE_URL:-https://ntfy.sh}
|
||||
- NTFY_ENABLE_SIGNUP=${NTFY_ENABLE_SIGNUP:-true}
|
||||
- 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_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_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_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}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# documentation: https://docs.observium.org/
|
||||
# slogan: Observium is a comprehensive network monitoring platform designed to deliver powerful monitoring capabilities, combined with an elegant and intuitive user interface.
|
||||
# tags: networking, monitoring
|
||||
# logo: svgs/observium.webp
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
observium:
|
||||
image: mbixtech/observium:latest
|
||||
platform: linux/amd64
|
||||
volumes:
|
||||
- observium_logs:/opt/observium/logs
|
||||
- observium_rrd:/opt/observium/rrd
|
||||
environment:
|
||||
- SERVICE_FQDN_OBSERVIUM=${SERVICE_FQDN_OBSERVIUM}
|
||||
- OBSERVIUM_ADMIN_PASS=${SERVICE_PASSWORD_OBSERVIUMADMIN}
|
||||
- OBSERVIUM_ADMIN_USER=${SERVICE_USER_OBSERVIUMADMIN}
|
||||
- OBSERVIUM_DB_HOST=mariadb
|
||||
- OBSERVIUM_DB_NAME=${OBSERVIUM_DB_NAME:-observium-db}
|
||||
- OBSERVIUM_DB_PASS=${SERVICE_PASSWORD_MARIADB}
|
||||
- OBSERVIUM_DB_USER=${SERVICE_USER_MARIADB}
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- "-f"
|
||||
- "http://localhost/"
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
|
||||
mariadb:
|
||||
image: mariadb:lts
|
||||
volumes:
|
||||
- observium_mariadb_data:/var/lib/mysql
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=${SERVICE_PASSWORD_MARIADBROOT}
|
||||
- MARIADB_USER=${SERVICE_USER_MARIADB}
|
||||
- MARIADB_PASSWORD=${SERVICE_PASSWORD_MARIADB}
|
||||
- MARIADB_DATABASE=${MARIADB_DATABASE:-observium-db}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- healthcheck.sh
|
||||
- "--connect"
|
||||
- "--innodb_initialized"
|
||||
start_period: 10s
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
@@ -0,0 +1,44 @@
|
||||
# documentation: https://docs.onetimesecret.com
|
||||
# slogan: Share sensitive information securely with self-destructing links that are only viewable once.
|
||||
# tags: auth,password,secret,secure
|
||||
# logo: svgs/onetimesecret.svg
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
onetimesecret:
|
||||
image: onetimesecret/onetimesecret:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_ONETIMESECRET_3000
|
||||
- AUTH_AUTOVERIFY=${AUTH_AUTOVERIFY:-true}
|
||||
- AUTH_SIGNUP=${AUTH_SIGNUP:-true}
|
||||
- COLONEL=${COLONEL:-admin@example.com}
|
||||
- HOST=${HOST:-localhost}
|
||||
- REDIS_URL=redis://:${SERVICE_PASSWORD_REDIS}@redis:6379/0
|
||||
- SECRET=${SERVICE_PASSWORD_ONETIMESECRET}
|
||||
- SSL=${SSL:-false}
|
||||
- RACK_ENV=production
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- ruby
|
||||
- "-rnet/http"
|
||||
- "-e"
|
||||
- "exit(Net::HTTP.get_response(URI('http://localhost:3000')).is_a?(Net::HTTPSuccess) ? 0 : 1)"
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
redis:
|
||||
image: redis:8-alpine
|
||||
command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- ping
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -0,0 +1,49 @@
|
||||
# documentation: https://www.passbolt.com/ce/docker
|
||||
# slogan: Passbolt Community Edition (CE) API. The JSON API for the open source password manager for teams!
|
||||
# tags: security, credentials, password-manager, open source
|
||||
# logo: svgs/passbolt.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
passbolt:
|
||||
image: passbolt/passbolt:latest-ce
|
||||
environment:
|
||||
- SERVICE_FQDN_PASSBOLT
|
||||
- APP_FULL_BASE_URL=${SERVICE_FQDN_PASSBOLT}
|
||||
- DATASOURCES_DEFAULT_HOST=mariadb
|
||||
- DATASOURCES_DEFAULT_USERNAME=${SERVICE_USER_PASSBOLT}
|
||||
- DATASOURCES_DEFAULT_PASSWORD=${SERVICE_PASSWORD_PASSBOLT}
|
||||
- DATASOURCES_DEFAULT_DATABASE=${MYSQL_DB:-passbolt-db}
|
||||
volumes:
|
||||
- "gpg_volume:/etc/passbolt/gpg"
|
||||
- "jwt_volume:/etc/passbolt/jwt"
|
||||
command:
|
||||
- /usr/bin/wait-for.sh
|
||||
- "-t"
|
||||
- "0"
|
||||
- "mariadb:3306"
|
||||
- "--"
|
||||
- /docker-entrypoint.sh
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=${SERVICE_PASSWORD_ROOTMARIADB}
|
||||
- MARIADB_DATABASE=${MYSQL_DB:-passbolt-db}
|
||||
- MARIADB_USER=${SERVICE_USER_PASSBOLT}
|
||||
- MARIADB_PASSWORD=${SERVICE_PASSWORD_PASSBOLT}
|
||||
volumes:
|
||||
- "passbolt_mariadb_data:/var/lib/mysql"
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -0,0 +1,61 @@
|
||||
# documentation: https://paymenter.org/docs/guides/docker
|
||||
# slogan: Open-Source Billing, Built for Hosting
|
||||
# tags: automation, billing, open source
|
||||
# logo: svgs/paymenter.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
paymenter:
|
||||
image: ghcr.io/paymenter/paymenter:latest
|
||||
volumes:
|
||||
- app_logs:/app/storage/logs
|
||||
- app_public:/app/storage/public
|
||||
environment:
|
||||
SERVICE_FQDN_PAYMENTER: ${SERVICE_FQDN_PAYMENTER_80}
|
||||
DB_DATABASE: ${MYSQL_DATABASE:-paymenter-db}
|
||||
DB_PASSWORD: ${SERVICE_PASSWORD_MYSQL}
|
||||
DB_USERNAME: ${SERVICE_USER_MYSQL}
|
||||
APP_ENV: production
|
||||
CACHE_STORE: redis
|
||||
SESSION_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
REDIS_HOST: redis
|
||||
REDIS_USERNAME: default
|
||||
REDIS_PASSWORD: ${SERVICE_PASSWORD_64_REDIS}
|
||||
DB_CONNECTION: mariadb
|
||||
DB_HOST: mariadb
|
||||
DB_PORT: 3306
|
||||
APP_KEY: ${SERVICE_BASE64_KEY}
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_started
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 1s
|
||||
retries: 3
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
volumes:
|
||||
- paymenter_mariadb_data:/var/lib/mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-paymenter-db}
|
||||
- MYSQL_USER=${SERVICE_USER_MYSQL}
|
||||
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 1s
|
||||
retries: 3
|
||||
@@ -0,0 +1,34 @@
|
||||
# documentation: https://github.com/eduardolat/pgbackweb
|
||||
# slogan: Effortless PostgreSQL backups with a user-friendly web interface!
|
||||
# tags: backup, postgresql, web-interface
|
||||
# logo: svgs/pgbackweb.svg
|
||||
# port: 8085
|
||||
|
||||
services:
|
||||
pgbackweb:
|
||||
image: eduardolat/pgbackweb:latest
|
||||
volumes:
|
||||
- pgbackweb_backups:/backups
|
||||
environment:
|
||||
- SERVICE_FQDN_PGBACKWEB_8085
|
||||
- PBW_ENCRYPTION_KEY=${SERVICE_PASSWORD_64_PGBACKWEB}
|
||||
- PBW_POSTGRES_CONN_STRING=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-pgbackweb-db}?sslmode=disable
|
||||
- TZ=${TIME_ZONE:-UTC}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
exclude_from_hc: true
|
||||
|
||||
postgres:
|
||||
image: postgres:17
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-pgbackweb-db}
|
||||
volumes:
|
||||
- pgbackweb_postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${SERVICE_USER_POSTGRES} -d pgbackweb"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -0,0 +1,37 @@
|
||||
# documentation: https://github.com/ignisda/ryot
|
||||
# slogan: Roll your own tracker! Ryot is a self-hosted platform for tracking various aspects of life such as media consumption, fitness activities, and more.
|
||||
# tags: rss, reader, self-hosted, automation, tracker, media, fitness
|
||||
# logo: svgs/ryot.svg
|
||||
# port: 8000
|
||||
|
||||
services:
|
||||
ryot:
|
||||
image: ignisda/ryot:v8
|
||||
environment:
|
||||
- SERVICE_FQDN_RYOT_8000
|
||||
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB}
|
||||
- SERVER_ADMIN_ACCESS_TOKEN=${SERVICE_PASSWORD_64_RYOT}
|
||||
- TZ=${TZ:-Europe/Amsterdam}
|
||||
depends_on:
|
||||
postgresql:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
postgresql:
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- ryot_postgresql_data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-ryot-db}
|
||||
- TZ=${TZ:-Europe/Amsterdam}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -0,0 +1,75 @@
|
||||
# documentation: https://manual.seafile.com
|
||||
# slogan: Open source cloud storage system for file sync, share and document collaboration
|
||||
# tags: file-manager,file-sharing,storage
|
||||
# logo: svgs/seafile.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
seafile-db:
|
||||
image: mariadb:10.11
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_64_MYSQLDBROOT}
|
||||
- MYSQL_LOG_CONSOLE=true
|
||||
- MARIADB_AUTO_UPGRADE=1
|
||||
volumes:
|
||||
- seafile-mysql-db:/var/lib/mysql"
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"/usr/local/bin/healthcheck.sh",
|
||||
"--connect",
|
||||
"--mariadbupgrade",
|
||||
"--innodb_initialized",
|
||||
]
|
||||
interval: 20s
|
||||
start_period: 30s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
memcached:
|
||||
image: memcached:1.6.29
|
||||
entrypoint: memcached -m 256
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
'bash -c "echo version | (exec 3<>/dev/tcp/localhost/11211; cat >&3; timeout 0.5 cat <&3; exec 3<&-)"',
|
||||
]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
seafile:
|
||||
image: seafileltd/seafile-mc:12.0-latest
|
||||
volumes:
|
||||
- seafile-data:/shared
|
||||
environment:
|
||||
- SERVICE_FQDN_SEAFILE_80
|
||||
- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-seafile-db}
|
||||
- DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
|
||||
- DB_ROOT_PASSWD=${SERVICE_PASSWORD_64_MYSQLDBROOT}
|
||||
- DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
|
||||
- DB_PASSWORD=${SERVICE_PASSWORD_64_MYSQLDBUSER}
|
||||
- SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
|
||||
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
|
||||
- SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}
|
||||
- TIME_ZONE=${TIME_ZONE:-Etc/UTC}
|
||||
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-me@example.com}
|
||||
- INIT_SEAFILE_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
|
||||
- SEAFILE_SERVER_HOSTNAME=${SERVICE_URL_SEAFILE_80}
|
||||
- SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-https}
|
||||
- SITE_ROOT=${SITE_ROOT:-/}
|
||||
- NON_ROOT=${NON_ROOT:-false}
|
||||
- JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT}
|
||||
- SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-true}
|
||||
depends_on:
|
||||
seafile-db:
|
||||
condition: service_healthy
|
||||
memcached:
|
||||
condition: service_started
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:80/api2/ping"]
|
||||
interval: 20s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
services:
|
||||
snapdrop:
|
||||
image: lscr.io/linuxserver/snapdrop:latest
|
||||
image: 'linuxserver/snapdrop:version-b8b78cc2'
|
||||
environment:
|
||||
- SERVICE_FQDN_SNAPDROP
|
||||
- PUID=1000
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
# documentation: https://github.com/amancevice/docker-superset
|
||||
# slogan: Modern data exploration and visualization platform (unofficial community docker image)
|
||||
# tags: analytics,bi,dashboard,database,sql,unofficial
|
||||
# logo: svgs/superset.svg
|
||||
# port: 8088
|
||||
|
||||
services:
|
||||
superset:
|
||||
image: amancevice/superset:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_SUPERSET_8088
|
||||
- SECRET_KEY=${SERVICE_BASE64_64_SUPERSETSECRETKEY}
|
||||
- MAPBOX_API_KEY=${MAPBOX_API_KEY}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
||||
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./superset/superset_config.py
|
||||
target: /etc/superset/superset_config.py
|
||||
content: |
|
||||
"""
|
||||
For more configuration options, see:
|
||||
- https://superset.apache.org/docs/configuration/configuring-superset
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
SECRET_KEY = os.getenv("SECRET_KEY")
|
||||
MAPBOX_API_KEY = os.getenv("MAPBOX_API_KEY", "")
|
||||
|
||||
CACHE_CONFIG = {
|
||||
"CACHE_TYPE": "RedisCache",
|
||||
"CACHE_DEFAULT_TIMEOUT": 300,
|
||||
"CACHE_KEY_PREFIX": "superset_",
|
||||
"CACHE_REDIS_HOST": "redis",
|
||||
"CACHE_REDIS_PORT": 6379,
|
||||
"CACHE_REDIS_DB": 1,
|
||||
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@redis:6379/1",
|
||||
}
|
||||
|
||||
FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"}
|
||||
EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"}
|
||||
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
||||
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@postgres:5432/{os.getenv('POSTGRES_DB')}"
|
||||
|
||||
# Uncomment if you want to load example data (using "superset load_examples") at the
|
||||
# same location as your metadata postgresql instance. Otherwise, the default sqlite
|
||||
# will be used, which will not persist in volume when restarting superset by default.
|
||||
#SQLALCHEMY_EXAMPLES_URI = SQLALCHEMY_DATABASE_URI
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:8088/health"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
||||
volumes:
|
||||
- superset_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:8-alpine
|
||||
volumes:
|
||||
- superset_redis_data:/data
|
||||
command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS}
|
||||
healthcheck:
|
||||
test: redis-cli ping
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -0,0 +1,26 @@
|
||||
# documentation: https://typesense.org/docs
|
||||
# slogan: Cutting-edge, in-memory search engine for mere mortals. Knowledge of rocket science optional.
|
||||
# tags: search, search-engine, search-api, elasticsearch-alternative
|
||||
# logo: svgs/typesense.png
|
||||
# port: 8108
|
||||
|
||||
services:
|
||||
typesense:
|
||||
image: typesense/typesense:28.0
|
||||
environment:
|
||||
- SERVICE_FQDN_TYPESENSE_8108
|
||||
- TYPESENSE_ENABLE_CORS=${TYPESENSE_ENABLE_CORS:-true}
|
||||
- TYPESENSE_DATA_DIR=/data
|
||||
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY:?}
|
||||
volumes:
|
||||
- typesense_data:/data
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
CMD,
|
||||
bash,
|
||||
-c,
|
||||
"exec 3<>/dev/tcp/localhost/8108 && printf 'GET /health HTTP/1.1\\r\\nConnection: close\\r\\n\\r\\n' >&3 && head -n1 <&3 | grep '200' && exec 3>&-",
|
||||
]
|
||||
retries: 5
|
||||
timeout: 7s
|
||||
@@ -0,0 +1,15 @@
|
||||
# documentation: https://github.com/VERT-sh/VERT
|
||||
# slogan: The next-generation file converter. Open source, fully local and free forever.
|
||||
# tags: converter,file,documents,files,ffmpeg,wasm
|
||||
# logo: svgs/vert.png
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
vert:
|
||||
image: ghcr.io/vert-sh/vert:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_VERT_80
|
||||
- PUB_VERT_URL=${SERVICE_FQDN_VERT_80}
|
||||
- PUB_HOSTNAME=${SERVICE_URL_VERT_80}
|
||||
- PUB_PORT=80
|
||||
- PUB_ENV=production
|
||||
@@ -0,0 +1,66 @@
|
||||
# documentation: https://github.com/FuzzyGrim/Yamtrack/wiki
|
||||
# slogan: Yamtrack is a self hosted media tracker for movies, tv shows, anime, manga, video games and books.
|
||||
# tags: self-hosted, automation, tracker, media, movies, shows, anime, manga, games, books, comics
|
||||
# logo: svgs/yamtrack.svg
|
||||
# port: 8000
|
||||
|
||||
services:
|
||||
yamtrack:
|
||||
image: ghcr.io/fuzzygrim/yamtrack
|
||||
environment:
|
||||
- SERVICE_FQDN_YAMTRACK_8000
|
||||
- URLS=${SERVICE_FQDN_YAMTRACK}
|
||||
- TZ=${TZ:-Europe/Berlin}
|
||||
- SECRET=${SERVICE_PASSWORD_SECRET}
|
||||
- REGISTRATION=${REGISTRATION_ENABLED:-true}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- DB_HOST=postgres
|
||||
- DB_NAME=${POSTGRESQL_DATABASE:-yamtrack-db}
|
||||
- DB_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- DB_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- DB_PORT=5432
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://127.0.0.1:8000/health/",
|
||||
]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
|
||||
- POSTGRES_DB=${POSTGRESQL_DATABASE:-yamtrack-db}
|
||||
volumes:
|
||||
- yamtrack_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:7-alpine
|
||||
volumes:
|
||||
- yamtrack_redis_data:/data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- ping
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -0,0 +1,43 @@
|
||||
# documentation: https://github.com/FuzzyGrim/Yamtrack/wiki
|
||||
# slogan: Yamtrack is a self hosted media tracker for movies, tv shows, anime, manga, video games and books.
|
||||
# tags: self-hosted, automation, tracker, media, movies, shows, anime, manga, games, books, comics
|
||||
# logo: svgs/yamtrack.svg
|
||||
# port: 8000
|
||||
|
||||
services:
|
||||
yamtrack:
|
||||
image: ghcr.io/fuzzygrim/yamtrack
|
||||
environment:
|
||||
- SERVICE_FQDN_YAMTRACK_8000
|
||||
- URLS=${SERVICE_FQDN_YAMTRACK}
|
||||
- TZ=${TZ:-Europe/Berlin}
|
||||
- SECRET=${SERVICE_PASSWORD_SECRET}
|
||||
- REGISTRATION=${REGISTRATION_ENABLED:-true}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
volumes:
|
||||
- yamtrack_data:/yamtrack/db
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"wget --quiet --tries=1 --spider http://127.0.0.1:8000/health/ || exit 1",
|
||||
]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
volumes:
|
||||
- yamtrack_redis_data:/data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- ping
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
Reference in new issue
Block a user