Merge branch 'next' into feature/signoz

This commit is contained in:
🏔️ Peak authored and GitHub committed 2025-06-18 13:41:32 +02:00
commit cb84e48c77
275 files changed
+13127 -2777

No files matched your search

+18 -5
View File
@@ -7,10 +7,6 @@
services:
affine:
image: ghcr.io/toeverything/affine-graphql:stable
command:
- sh
- '-c'
- 'node ./scripts/self-host-predeploy && node ./dist/index.js'
depends_on:
redis:
condition: service_healthy
@@ -25,7 +21,6 @@ services:
max-size: 1000m
environment:
- SERVICE_FQDN_AFFINE_3010
- NODE_OPTIONS=--import=./scripts/register.js
- AFFINE_CONFIG_PATH=/root/.affine/config
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}
@@ -46,6 +41,24 @@ services:
timeout: 20s
retries: 3
affine_migration:
exclude_from_hc: true
image: ghcr.io/toeverything/affine-graphql:${AFFINE_REVISION:-stable}
restart: on-failure
volumes:
- affine-storage:/root/.affine/storage
- affine-config:/root/.affine/config
command: ['sh', '-c', 'node ./scripts/self-host-predeploy.js']
environment:
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}
- AFFINE_INDEXER_ENABLED=false
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
redis:
image: redis
volumes:
+1 -1
View File
@@ -16,7 +16,7 @@ services:
- audiobookshelf-config:/config
- audiobookshelf-metadata:/metadata
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:80/ping || exit 1"]
test: ["CMD-SHELL", "wget --quiet --tries=1 --timeout=5 http://localhost:80/ping -O /dev/null || exit 1"]
interval: 30s
timeout: 10s
retries: 3
+2 -2
View File
@@ -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:
+26 -21
View File
@@ -11,31 +11,36 @@ services:
- changedetection-data:/datastore
environment:
- SERVICE_FQDN_CHANGEDETECTION_5000
- PUID=1000
- PGID=1000
- BASE_URL=$SERVICE_FQDN_CHANGEDETECTION
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000/?stealth=1&--disable-web-security=true
# Hides the `Referer` header so that monitored websites can't see the changedetection.io hostname.
- HIDE_REFERER=true
- BASE_URL=${SERVICE_FQDN_CHANGEDETECTION}
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- PLAYWRIGHT_DRIVER_URL=${PLAYWRIGHT_DRIVER_URL:-ws://browser-sockpuppet-chrome:3000}
- HIDE_REFERER=${HIDE_REFERER:-true}
- FETCH_WORKERS=${FETCH_WORKERS:-10}
- MINIMUM_SECONDS_RECHECK_TIME=${MINIMUM_SECONDS_RECHECK_TIME:-3}
- DISABLE_VERSION_CHECK=${DISABLE_VERSION_CHECK:-true}
- SCREENSHOT_MAX_HEIGHT=${SCREENSHOT_MAX_HEIGHT:-16000}
- TZ=${TZ:-UTC}
- LOGGER_LEVEL=${LOGGER_LEVEL:-DEBUG}
healthcheck:
test: ["CMD", "echo", "ok"]
interval: 5s
timeout: 20s
retries: 10
depends_on:
playwright-chrome:
browser-sockpuppet-chrome:
condition: service_started
healthcheck:
test: ["CMD", "echo", "ok"]
interval: 5s
timeout: 20s
retries: 10
playwright-chrome:
browser-sockpuppet-chrome:
hostname: browser-sockpuppet-chrome
image: dgtlmoon/sockpuppetbrowser:latest
# cap_add:
# - SYS_ADMIN
# SYS_ADMIN might be too much, but it can be needed on your platform https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-gitlabci
restart: unless-stopped
cap_add:
- SYS_ADMIN
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1024
- SCREEN_DEPTH=16
- MAX_CONCURRENT_CHROME_PROCESSES=10
- SCREEN_WIDTH=${SCREEN_WIDTH:-1920}
- SCREEN_HEIGHT=${SCREEN_HEIGHT:-1024}
- SCREEN_DEPTH=${SCREEN_DEPTH:-16}
- MAX_CONCURRENT_CHROME_PROCESSES=${MAX_CONCURRENT_CHROME_PROCESSES:-10}
healthcheck:
test: ["CMD", "echo", "ok"]
interval: 5s
+1 -1
View File
@@ -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
+46
View File
@@ -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
+4 -4
View File
@@ -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_FQDN_CONVEX_3210}
- CONVEX_SITE_ORIGIN=${SERVICE_FQDN_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
+27
View File
@@ -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
+1 -1
View File
@@ -105,7 +105,7 @@ services:
- WEBHOOK_EVENTS_ERRORS_WEBHOOK=${WEBHOOK_EVENTS_ERRORS_WEBHOOK:-}
- 'CONFIG_SESSION_PHONE_CLIENT=${CONFIG_SESSION_PHONE_CLIENT:-Evolution API V2}'
- CONFIG_SESSION_PHONE_NAME=${CONFIG_SESSION_PHONE_NAME:-Chrome}
- CONFIG_SESSION_PHONE_VERSION=${CONFIG_SESSION_PHONE_VERSION:-2.3000.1015901307}
- CONFIG_SESSION_PHONE_VERSION=${CONFIG_SESSION_PHONE_VERSION:-2.3000.1020885143}
- QRCODE_LIMIT=${QRCODE_LIMIT:-30}
- OPENAI_ENABLED=${OPENAI_ENABLED:-true}
- DIFY_ENABLED=${DIFY_ENABLED:-true}
+8 -6
View File
@@ -12,13 +12,15 @@ services:
# NOTE: requires the --api-enable-basic-auth option in "command"
- GOTENBERG_API_BASIC_AUTH_USERNAME=${SERVICE_USER_GOTENBERG}
- GOTENBERG_API_BASIC_AUTH_PASSWORD=${SERVICE_PASSWORD_GOTENBERG}
command: [
"gotenberg",
command:
- gotenberg
# See the full list of options at https://gotenberg.dev/docs/configuration
"--api-enable-basic-auth"
#"--api-timeout=60s",
#"--chromium-auto-start"
]
# Examples:
# - --api-timeout=60s
# - --chromium-auto-start
- --api-enable-basic-auth
- --api-disable-health-check-logging
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/health"]
interval: 5s
+92
View File
@@ -0,0 +1,92 @@
# documentation: https://support.getgrist.com/
# slogan: Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database.
# tags: lowcode, nocode, spreadsheet, database, relational
# logo: svgs/grist.svg
# port: 443
services:
grist:
image: gristlabs/grist:latest
environment:
- SERVICE_FQDN_GRIST_443
- APP_HOME_URL=${SERVICE_FQDN_GRIST}
- APP_DOC_URL=${SERVICE_FQDN_GRIST}
- GRIST_DOMAIN=${SERVICE_URL_GRIST}
- TZ=${TZ:-UTC}
- GRIST_SUPPORT_ANON=${SUPPORT_ANON:-false}
- GRIST_FORCE_LOGIN=${FORCE_LOGIN:-true}
- COOKIE_MAX_AGE=${COOKIE_MAX_AGE:-86400000}
- GRIST_PAGE_TITLE_SUFFIX=${PAGE_TITLE_SUFFIX:- - Suffix}
- GRIST_HIDE_UI_ELEMENTS=${HIDE_UI_ELEMENTS:-billing,sendToDrive,supportGrist,multiAccounts,tutorials}
- GRIST_UI_FEATURES=${UI_FEATURES:-helpCenter,billing,templates,createSite,multiSite,sendToDrive,tutorials,supportGrist}
- GRIST_DEFAULT_EMAIL=${DEFAULT_EMAIL:-test@example.com}
- GRIST_ORG_IN_PATH=${ORG_IN_PATH:-true}
- GRIST_OIDC_SP_HOST=${SERVICE_FQDN_GRIST}
- GRIST_OIDC_IDP_SCOPES=${OIDC_IDP_SCOPES:-openid profile email}
- GRIST_OIDC_IDP_SKIP_END_SESSION_ENDPOINT=${OIDC_IDP_SKIP_END_SESSION_ENDPOINT:-false}
- GRIST_OIDC_IDP_ISSUER=${OIDC_IDP_ISSUER:?}
- GRIST_OIDC_IDP_CLIENT_ID=${OIDC_IDP_CLIENT_ID:?}
- GRIST_OIDC_IDP_CLIENT_SECRET=${OIDC_IDP_CLIENT_SECRET:?}
- GRIST_SESSION_SECRET=${SERVICE_REALBASE64_128}
- GRIST_HOME_INCLUDE_STATIC=${HOME_INCLUDE_STATIC:-true}
- GRIST_SANDBOX_FLAVOR=${SANDBOX_FLAVOR:-gvisor}
- ALLOWED_WEBHOOK_DOMAINS=${ALLOWED_WEBHOOK_DOMAINS}
- COMMENTS=${COMMENTS:-true}
- TYPEORM_TYPE=${TYPEORM_TYPE:-postgres}
- TYPEORM_DATABASE=${POSTGRES_DATABASE:-grist-db}
- TYPEORM_USERNAME=${SERVICE_USER_POSTGRES}
- TYPEORM_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- TYPEORM_HOST=${TYPEORM_HOST}
- TYPEORM_PORT=${TYPEORM_PORT:-5432}
- TYPEORM_LOGGING=${TYPEORM_LOGGING:-false}
- REDIS_URL=${REDIS_URL:-redis://redis:6379}
- GRIST_HELP_CENTER=${SERVICE_FQDN_GRIST}/help
- GRIST_TERMS_OF_SERVICE_URL=${SERVICE_FQDN_GRIST}/terms
- FREE_COACHING_CALL_URL=${FREE_COACHING_CALL_URL}
- GRIST_CONTACT_SUPPORT_URL=${CONTACT_SUPPORT_URL}
volumes:
- grist-data:/persist
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD
- node
- "-e"
- "require('http').get('http://localhost:8484/status', res => process.exit(res.statusCode === 200 ? 0 : 1))"
- "> /dev/null 2>&1"
interval: 5s
timeout: 20s
retries: 10
postgres:
image: postgres:16
environment:
- POSTGRES_DB=${POSTGRES_DATABASE:-grist-db}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
volumes:
- grist_postgres_data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
interval: 5s
timeout: 10s
retries: 20
redis:
image: redis:7
volumes:
- grist_redis_data:/data
healthcheck:
test:
- CMD
- redis-cli
- PING
interval: 5s
timeout: 10s
retries: 20
+6 -4
View File
@@ -6,7 +6,7 @@
services:
immich:
image: ghcr.io/immich-app/immich-server:release
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
@@ -33,7 +33,7 @@ services:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:release
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
@@ -61,12 +61,14 @@ services:
retries: 20
database:
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${SERVICE_PASSWORD_POSTGRES}
POSTGRES_USER: ${SERVICE_USER_POSTGRES}
POSTGRES_DB: ${DB_DATABASE_NAME:-immich}
POSTGRES_INITDB_ARGS: '--data-checksums'
POSTGRES_INITDB_ARGS: "--data-checksums"
# Use 'HDD' if your database isn't stored on SSDs
DB_STORAGE_TYPE: ${DB_STORAGE_TYPE:-SSD}
volumes:
- immich-postgres-data:/var/lib/postgresql/data
healthcheck:
+1 -1
View File
@@ -8,7 +8,7 @@ services:
postgres:
image: 'postgres:16'
volumes:
- joplin-postgresql-data:/var/lib/postgresql/data'
- joplin-postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_64_POSTGRES}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
@@ -1,19 +1,19 @@
# documentation: https://docs.hoarder.app/
# slogan: an open source "Bookmark Everything" app that uses AI for automatically tagging the content you throw at it.
# documentation: https://docs.karakeep.app/
# slogan: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search
# tags: media,read-it-later,pocket-alternative,omnivore-alternative,instapaper-alternative
# logo: svgs/hoarder.svg
# port: 3000
services:
web:
image: ghcr.io/hoarder-app/hoarder:release
image: ghcr.io/karakeep-app/karakeep:release
volumes:
- hoarder-data:/data
- karakeep-data:/data
environment:
- SERVICE_FQDN_HOARDER
- NEXTAUTH_SECRET=${SERVICE_PASSWORD_HOARDERNEXTAUTH}
- SERVICE_FQDN_KARAKEEP
- NEXTAUTH_SECRET=${SERVICE_PASSWORD_KARAKEEPNEXTAUTH}
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILI}
- NEXTAUTH_URL=${SERVICE_FQDN_HOARDER}
- NEXTAUTH_URL=${SERVICE_FQDN_KARAKEEP}
- MEILI_ADDR=http://meilisearch:7700
- BROWSER_WEB_URL=http://chrome:9222
- OPENAI_API_KEY=${SERVICE_OPENAI_API_KEY}
@@ -31,14 +31,14 @@ services:
- '--hide-scrollbars'
meilisearch:
image: getmeili/meilisearch:v1.6
image: getmeili/meilisearch:v1.13.3
environment:
- MEILI_NO_ANALYTICS=${MEILI_NO_ANALYTICS:-true}
- NEXTAUTH_SECRET=${SERVICE_PASSWORD_HOARDERNEXTAUTH}
- NEXTAUTH_SECRET=${SERVICE_PASSWORD_KARAKEEPNEXTAUTH}
- MEILI_MASTER_KEY=${SERVICE_PASSWORD_MEILI}
- NEXTAUTH_URL=${SERVICE_FQDN_HOARDER}
- NEXTAUTH_URL=${SERVICE_FQDN_KARAKEEP}
volumes:
- hoarder-meilisearch:/meili_data
- karakeep-meilisearch:/meili_data
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:7700/health"]
interval: 2s
+63
View File
@@ -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
+76
View File
@@ -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
+34
View File
@@ -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
+50 -4
View File
@@ -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
+1 -1
View File
@@ -5,7 +5,7 @@
# port: 5230
services:
wg-easy:
memos:
image: neosmemo/memos:stable
volumes:
- memos/:/var/opt/memos
-1
View File
@@ -27,7 +27,6 @@ services:
postgres:
image: 'postgres:17-alpine'
platform: linux/amd64
volumes:
- 'postgresql-data:/var/lib/postgresql/data'
environment:
+26
View File
@@ -0,0 +1,26 @@
# documentation: https://docs.netbird.io/how-to/examples#net-bird-client-in-docker
# slogan: Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.
# tags: wireguard, mesh-networks, vpn, zero-trust-network-access, open source
# logo: svgs/netbird.png
services:
netbird-client:
image: 'netbirdio/netbird:latest'
environment:
- 'NB_SETUP_KEY=${NB_SETUP_KEY}'
- 'NB_ENABLE_ROSENPASS=${NB_ENABLE_ROSENPASS:-false}'
- 'NB_ENABLE_EXPERIMENTAL_LAZY_CONN=${NB_ENABLE_EXPERIMENTAL_LAZY_CONN:-false}'
volumes:
- 'netbird-client:/etc/netbird'
cap_add:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE
healthcheck:
test:
- CMD
- netbird
- 'version'
interval: 5s
timeout: 20s
retries: 10
+54
View File
@@ -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
+44
View File
@@ -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
+49
View File
@@ -0,0 +1,49 @@
# documentation: https://starterhelp.orangehrm.com/hc/en-us
# slogan: OrangeHRM open source HR management software.
# tags: HR, HRIS, HRMS, human resource management, OrangeHRM, HR management
# logo: svgs/orangehrm.svg
# port: 80
services:
orangehrm:
image: orangehrm/orangehrm:latest
platform: linux/amd64
environment:
- SERVICE_FQDN_ORANGEHRM_80
- ORANGEHRM_DATABASE_HOST=mariadb
- ORANGEHRM_DATABASE_USER=${SERVICE_USER_MYSQL}
- ORANGEHRM_DATABASE_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- ORANGEHRM_DATABASE_NAME=${MYSQL_DATABASE:-orangehrm-db}
volumes:
- orangehrm-data:/orangehrm
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:
- orangehrm_mariadb_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
- MYSQL_DATABASE=${MYSQL_DATABASE:-orangehrm-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
+61
View File
@@ -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
+34
View File
@@ -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
+37
View File
@@ -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
+68
View File
@@ -0,0 +1,68 @@
# 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:
image: seafileltd/seafile-mc:12.0-latest
volumes:
- seafile-data:/shared
environment:
- SERVICE_FQDN_SEAFILE_80
- SEAFILE_SERVER_HOSTNAME=${SERVICE_URL_SEAFILE_80}
- DB_HOST=mariadb
- DB_PORT=3306
- DB_ROOT_PASSWD=${SERVICE_PASSWORD_MYSQLROOT}
- DB_USER=${SERVICE_USER_MYSQL}
- DB_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- 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:-UTC}
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-test@example.com}
- INIT_SEAFILE_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http}
- 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:
mariadb:
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
mariadb:
image: mariadb:11
volumes:
- seafile_mariadb_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
- MYSQL_USER=${SERVICE_USER_MYSQL}
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- MYSQL_DATABASE=${MYSQL_DATABASE:-seafile-db}
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
timeout: 20s
retries: 10
memcached:
image: memcached:latest
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
+1 -1
View File
@@ -4,7 +4,7 @@
services:
snapdrop:
image: lscr.io/linuxserver/snapdrop:latest
image: 'linuxserver/snapdrop:version-b8b78cc2'
environment:
- SERVICE_FQDN_SNAPDROP
- PUID=1000
+8 -8
View File
@@ -279,14 +279,14 @@ services:
config:
hide_credentials: true
supabase-studio:
image: supabase/studio:20241202-71e5240
image: supabase/studio:2025.06.02-sha-8f2993d
healthcheck:
test:
[
"CMD",
"node",
"-e",
"require('http').get('http://127.0.0.1:3000/api/profile', (r) => {if (r.statusCode !== 200) process.exit(1); else process.exit(0); }).on('error', () => process.exit(1))",
"fetch('http://127.0.0.1:3000/api/platform/profile').then((r) => {if (r.status !== 200) throw new Error(r.status)})"
]
timeout: 5s
interval: 5s
@@ -913,7 +913,7 @@ services:
command: ["--config", "etc/vector/vector.yml"]
supabase-rest:
image: postgrest/postgrest:v12.2.0
image: postgrest/postgrest:v12.2.12
depends_on:
supabase-db:
# Disable this if you are using an external Postgres database
@@ -931,7 +931,7 @@ services:
command: "postgrest"
exclude_from_hc: true
supabase-auth:
image: supabase/gotrue:v2.164.0
image: supabase/gotrue:v2.174.0
depends_on:
supabase-db:
# Disable this if you are using an external Postgres database
@@ -1022,7 +1022,7 @@ services:
realtime-dev:
# This container name looks inconsistent but is correct because realtime constructs tenant id by parsing the subdomain
image: supabase/realtime:v2.33.70
image: supabase/realtime:v2.34.47
container_name: realtime-dev.supabase-realtime
depends_on:
supabase-db:
@@ -1191,7 +1191,7 @@ services:
- ./volumes/storage:/var/lib/storage
supabase-meta:
image: supabase/postgres-meta:v0.84.2
image: supabase/postgres-meta:v0.89.3
depends_on:
supabase-db:
# Disable this if you are using an external Postgres database
@@ -1207,7 +1207,7 @@ services:
- PG_META_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
supabase-edge-functions:
image: supabase/edge-runtime:v1.65.3
image: supabase/edge-runtime:v1.67.4
depends_on:
supabase-analytics:
condition: service_healthy
@@ -1351,7 +1351,7 @@ services:
- /home/deno/functions/main
supabase-supavisor:
image: 'supabase/supavisor:1.1.56'
image: 'supabase/supavisor:2.5.1'
healthcheck:
test:
- CMD
@@ -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
+26
View File
@@ -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
@@ -1,5 +1,5 @@
# documentation: https://wordpress.org
# slogan: Wordpress is open source software you can use to create a beautiful website, blog, or app.
# slogan: WordPress is open source software you can use to create a beautiful website, blog, or app.
# tags: cms, blog, content, management, mariadb
# logo: svgs/wordpress.svg
+1 -1
View File
@@ -1,5 +1,5 @@
# documentation: https://wordpress.org
# slogan: Wordpress is open source software you can use to create a beautiful website, blog, or app.
# slogan: WordPress is open source software you can use to create a beautiful website, blog, or app.
# tags: cms, blog, content, management, mysql
# logo: svgs/wordpress.svg
@@ -1,5 +1,5 @@
# documentation: https://wordpress.org
# slogan: Wordpress is open source software you can use to create a beautiful website, blog, or app.
# slogan: WordPress is open source software you can use to create a beautiful website, blog, or app.
# tags: cms, blog, content, management
# logo: svgs/wordpress.svg
@@ -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
+43
View File
@@ -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
+1 -1
View File
@@ -1,4 +1,4 @@
# documentation: https://github.com/diced/zipline
# documentation: https://zipline.diced.sh/docs/config
# slogan: A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!
# tags: zipline,file-sharing,upload,sharing
# logo: svgs/zipline.png