From 0d3470a987757c413a7520e7b99e598ecbbaaa45 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 20:33:35 +0000 Subject: [PATCH 1/3] docs(contributor): contrib-readme-action has updated readme --- README.md | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5ecd61e..416c75a 100644 --- a/README.md +++ b/README.md @@ -252,8 +252,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod - - + + - - - + + + - - + + - - + + + + + - - - - + +
crypt0rr @@ -282,13 +282,6 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod michaelhodges - - LaijieJi -
- LaijieJi -
-
adamsthws @@ -296,8 +289,6 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod adamsthws
theryukverse @@ -305,6 +296,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod theryukverse
KhaaL @@ -320,10 +313,17 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod - - jpmurray + + onlykshitij
- jpmurray + onlykshitij +
+
+ + LaijieJi +
+ LaijieJi
@@ -340,8 +340,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod mikkotor
NI-R0 @@ -384,8 +384,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod pjv
wedge22 @@ -393,6 +393,13 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod wedge22 + + jpmurray +
+ jpmurray +
+
Jacob-JA-Shanks @@ -421,6 +428,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod dfilvtov
cdkooistra @@ -428,8 +437,6 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod cdkooistra
Aurorainic @@ -458,8 +465,8 @@ A huge thank you to all our contributors! ScaleTail wouldn’t be what it is tod orchard0
From 3124b114719cbfc6bc357375b7b09fa29c2855fe Mon Sep 17 00:00:00 2001 From: michaelhodges Date: Tue, 21 Apr 2026 19:35:19 +0100 Subject: [PATCH 2/3] Refactor evironment variables. Edit compose files to match template. (volumes, enviroment, restart ect..) --- services/actual-budget/.env | 9 ++++ services/actual-budget/compose.yaml | 15 +++--- services/adguardhome-sync/.env | 24 ++++++++++ services/adguardhome-sync/compose.yaml | 37 ++++++--------- services/affine/.env | 6 +-- services/affine/compose.yml | 24 +++++----- services/arcane/.env | 8 ++++ services/arcane/compose.yaml | 12 ++--- services/beszel-agent/.env | 4 ++ services/beszel-agent/compose.yaml | 4 +- services/booklore/.env | 7 +-- services/booklore/compose.yaml | 12 ++--- services/caddy/compose.yaml | 10 ++-- services/clipcascade/.env | 6 +++ services/clipcascade/compose.yaml | 9 ++-- services/coder/.env | 12 ++--- services/coder/compose.yaml | 12 ++--- services/configarr/compose.yaml | 2 +- services/convertx/.env | 3 ++ services/convertx/compose.yaml | 2 +- services/copyparty/.env | 4 ++ services/copyparty/compose.yaml | 7 ++- services/ddns-updater/.env | 20 ++++++++ services/ddns-updater/compose.yaml | 38 +++++++-------- services/dockhand/compose.yaml | 2 +- services/docmost/.env | 7 +++ services/docmost/compose.yaml | 14 +++--- services/eigenfocus/.env | 2 + services/eigenfocus/compose.yaml | 2 +- services/excalidraw/.env | 2 + services/excalidraw/compose.yaml | 2 +- services/flaresolverr/.env | 5 ++ services/flaresolverr/compose.yaml | 10 ++-- services/formbricks/.env | 3 ++ services/formbricks/compose.yaml | 2 +- services/fossflow/.env | 2 + services/fossflow/compose.yaml | 2 +- services/frigate/.env | 2 + services/frigate/compose.yaml | 2 +- services/ghost/.env | 9 ++++ services/ghost/compose.yaml | 17 +++---- services/gitea/compose.yaml | 2 +- services/gotify/.env | 2 + services/gotify/compose.yaml | 2 +- services/hemmelig/.env | 6 +++ services/hemmelig/compose.yaml | 10 ++-- services/homarr/.env | 3 ++ services/homarr/compose.yaml | 2 +- services/homepage/.env | 2 + services/homepage/compose.yaml | 2 +- services/immich/compose.yaml | 8 ++-- services/jellyfin/compose.yaml | 4 +- services/kaneo/compose.yaml | 8 ++-- services/karakeep/.env | 8 ++++ services/karakeep/compose.yaml | 8 ++-- services/mattermost/compose.yaml | 14 +++--- services/mealie/.env | 3 ++ services/mealie/compose.yaml | 11 ++--- services/memos/.env | 4 ++ services/memos/compose.yaml | 6 +-- services/metube/compose.yaml | 2 +- services/nanote/.env | 3 ++ services/nanote/compose.yaml | 4 +- services/navidrome/.env | 2 + services/navidrome/compose.yaml | 2 +- services/netbox/compose.yaml | 14 +++--- services/next-explorer/.env | 15 ++++-- services/next-explorer/compose.yaml | 10 ++-- services/ollama/.env | 5 ++ services/ollama/compose.yaml | 6 +-- services/paperless/compose.yml | 6 +-- services/picard/compose.yaml | 2 +- services/pingvin-share/.env | 3 ++ services/pingvin-share/compose.yaml | 2 +- services/plex/.env | 2 + services/plex/compose.yaml | 2 +- services/portracker/.env | 2 + services/portracker/compose.yaml | 2 +- services/posterizarr/.env | 3 ++ services/posterizarr/compose.yaml | 6 +-- services/qbittorrent/.env | 3 ++ services/qbittorrent/compose.yaml | 4 +- services/recyclarr/.env | 2 + services/recyclarr/compose.yaml | 2 +- services/searxng/compose.yaml | 4 +- services/seerr/.env | 2 + services/seerr/compose.yaml | 2 +- services/slink/.env | 17 +++++++ services/slink/compose.yaml | 23 +++------ services/speedtest-tracker/.env | 10 ++++ services/speedtest-tracker/compose.yaml | 8 ++-- services/stirlingpdf/.env | 4 ++ services/stirlingpdf/compose.yaml | 6 +-- services/subtrackr/.env | 3 ++ services/subtrackr/compose.yaml | 4 +- services/swingmx/.env | 2 + services/swingmx/compose.yaml | 2 +- services/tandoor/compose.yaml | 6 +-- services/technitium/.env | 62 +++++++++++++++++++++++++ services/technitium/compose.yaml | 40 ++++++++-------- services/tracktor/.env | 4 ++ services/tracktor/compose.yaml | 6 +-- services/vikunja/.env | 6 +-- 103 files changed, 513 insertions(+), 279 deletions(-) diff --git a/services/actual-budget/.env b/services/actual-budget/.env index 8707710..230206c 100644 --- a/services/actual-budget/.env +++ b/services/actual-budget/.env @@ -20,3 +20,12 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# Uncomment any of the lines below to set configuration options. +#ACTUAL_HTTPS_KEY=/data/selfhost.key +#ACTUAL_HTTPS_CERT=/data/selfhost.crt +ACTUAL_PORT=5006 +ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20 +ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50 +ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20 +# See all options and more details at https://actualbudget.org/docs/config/ diff --git a/services/actual-budget/compose.yaml b/services/actual-budget/compose.yaml index 72bd66a..f501764 100644 --- a/services/actual-budget/compose.yaml +++ b/services/actual-budget/compose.yaml @@ -56,15 +56,12 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - # Uncomment any of the lines below to set configuration options. - # - ACTUAL_HTTPS_KEY=/data/selfhost.key - # - ACTUAL_HTTPS_CERT=/data/selfhost.crt - # - ACTUAL_PORT=5006 - # - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20 - # - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50 - # - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20 - # See all options and more details at https://actualbudget.org/docs/config/ - # !! If you are not using any of these options, remove the 'environment:' tag entirely. + - ACTUAL_HTTPS_KEY=${ACTUAL_HTTPS_KEY} + - ACTUAL_HTTPS_CERT=${ACTUAL_HTTPS_CERT} + - ACTUAL_PORT=${ACTUAL_PORT} + - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=${ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB} + - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=${ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB} + - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=${ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB} volumes: - ./${SERVICE}-data:/data depends_on: diff --git a/services/adguardhome-sync/.env b/services/adguardhome-sync/.env index c03156f..392843f 100644 --- a/services/adguardhome-sync/.env +++ b/services/adguardhome-sync/.env @@ -20,3 +20,27 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# Origin AdGuardHome +ORIGIN_URL=http://192.168.1.1:3000 #Your origin Adguard Home instance -> change as necessary +ORIGIN_USERNAME=username #change as necessary +ORIGIN_PASSWORD=password #change as necessary + +# First replication target +REPLICA1_URL=http://192.168.1.2 #Your destination Adguard Home instance change as necessary +REPLICA1_USERNAME=dbtech #change as necessary +REPLICA1_PASSWORD=password #change as necessary + +# Second replication target (optional) +#REPLICA2_URL=http://192.168.1.3 #change as necessary +#REPLICA2_USERNAME=username #change as necessary +#REPLICA2_PASSWORD=password #change as necessary + +# Third replication target (optional) +#REPLICA3_URL=http://192.168.1.4 #change as necessary +#REPLICA3_USERNAME=username #change as necessary +#REPLICA3_PASSWORD=password #change as necessary + +# Options +CRON=*/1 * * * * # run every 1 minute +RUN_ON_START=true diff --git a/services/adguardhome-sync/compose.yaml b/services/adguardhome-sync/compose.yaml index 0ef1f9b..58a7f49 100644 --- a/services/adguardhome-sync/compose.yaml +++ b/services/adguardhome-sync/compose.yaml @@ -43,29 +43,20 @@ services: command: run environment: - TZ=${TZ} - # Origin AdGuardHome - - ORIGIN_URL=http://192.168.1.1:3000 #Your origin Adguard Home instance -> change as necessary - - ORIGIN_USERNAME=username #change as necessary - - ORIGIN_PASSWORD=password #change as necessary - - # First replication target - - REPLICA1_URL=http://192.168.1.2 #Your destination Adguard Home instance change as necessary - - REPLICA1_USERNAME=dbtech #change as necessary - - REPLICA1_PASSWORD=password #change as necessary - - # Second replication target (optional) - #- REPLICA2_URL=http://192.168.1.3 #change as necessary - #- REPLICA2_USERNAME=username #change as necessary - #- REPLICA2_PASSWORD=password #change as necessary - - # Third replication target (optional) - #- REPLICA3_URL=http://192.168.1.4 #change as necessary - #- REPLICA3_USERNAME=username #change as necessary - #- REPLICA3_PASSWORD=password #change as necessary - - # Options - - CRON=*/1 * * * * # run every 1 minute - - RUN_ON_START=true + - ORIGIN_URL=${ORIGIN_URL} + - ORIGIN_USERNAME=${ORIGIN_USERNAME} + - ORIGIN_PASSWORD=${ORIGIN_PASSWORD} + - REPLICA1_URL=${REPLICA1_URL} + - REPLICA1_USERNAME=${REPLICA1_USERNAME} + - REPLICA1_PASSWORD=${REPLICA1_PASSWORD} + - REPLICA2_URL=${REPLICA2_URL} + - REPLICA2_USERNAME=${REPLICA2_USERNAME} + - REPLICA2_PASSWORD=${REPLICA2_PASSWORD} + - REPLICA3_URL=${REPLICA3_URL} + - REPLICA3_USERNAME=${REPLICA3_USERNAME} + - REPLICA3_PASSWORD=${REPLICA3_PASSWORD} + - CRON=${CRON} + - RUN_ON_START=${RUN_ON_START} depends_on: tailscale: condition: service_healthy diff --git a/services/affine/.env b/services/affine/.env index 6e65bb1..0409ff7 100644 --- a/services/affine/.env +++ b/services/affine/.env @@ -28,6 +28,6 @@ AFFINE_REVISION=stable AFFINE_SERVER_EXTERNAL_URL=https://affine..ts.net # database credentials -DB_USERNAME=affine -DB_PASSWORD=affine -DB_DATABASE=affine \ No newline at end of file +POSTGRES_USER=affine +POSTGRES_PASSWORD=affine +DB_DATABASE=affine diff --git a/services/affine/compose.yml b/services/affine/compose.yml index e8f4a4d..1ee917e 100644 --- a/services/affine/compose.yml +++ b/services/affine/compose.yml @@ -61,14 +61,14 @@ services: condition: service_completed_successfully volumes: # custom configurations - - ./${SERVICE}-storage:/root/.affine/storage - - ./${SERVICE}-config:/root/.affine/config + - ./${SERVICE}-data/storage:/root/.affine/storage + - ./${SERVICE}-data/config:/root/.affine/config env_file: - .env environment: # Varibles are delared in .env file. - REDIS_SERVER_HOST=redis - - DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@postgres:5432/${postgres:-affine} + - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${postgres:-affine} - AFFINE_INDEXER_ENABLED=false #- EXAMPLE_VAR=${EXAMPLE_VAR} restart: always @@ -78,15 +78,15 @@ services: container_name: affine_migration_job # Name for local container management volumes: # custom configurations - - ./${SERVICE}-storage:/root/.affine/storage - - ./${SERVICE}-config:/root/.affine/config + - ./${SERVICE}-data/storage:/root/.affine/storage + - ./${SERVICE}-data/config:/root/.affine/config command: [ 'sh', '-c', 'node ./scripts/self-host-predeploy.js' ] env_file: - .env environment: # Varibles are delared in .env file. - REDIS_SERVER_HOST=redis - - DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@postgres:5432/${postgres:-affine} + - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${postgres:-affine} - AFFINE_INDEXER_ENABLED=false #- EXAMPLE_VAR=${EXAMPLE_VAR} depends_on: @@ -109,16 +109,16 @@ services: image: pgvector/pgvector:pg16 # Image to be used container_name: affine_postgres # Name for local container management volumes: - - ./postgres:/var/lib/postgresql/data + - ./${SERVICE}-data/postgres:/var/lib/postgresql/data environment: # Varibles are delared in .env file. - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_PASSWORD: ${DB_PASSWORD} - POSTGRES_DB: ${postgres:-affine} - POSTGRES_INITDB_ARGS: '--data-checksums' + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${postgres:-affine} + - POSTGRES_INITDB_ARGS='--data-checksums' # you better set a password for you database # or you may add 'POSTGRES_HOST_AUTH_METHOD=trust' to ignore postgres security policy - POSTGRES_HOST_AUTH_METHOD: trust + - POSTGRES_HOST_AUTH_METHOD=trust #- EXAMPLE_VAR=${EXAMPLE_VAR} healthcheck: test: [ 'CMD', 'pg_isready', '-U', "${DB_USERNAME}", '-d', "${postgres:-affine}" ] # Check if postgres process is running diff --git a/services/arcane/.env b/services/arcane/.env index 89794c0..7b3dcae 100644 --- a/services/arcane/.env +++ b/services/arcane/.env @@ -20,3 +20,11 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim TAILNET_NAME= # for example: tail-scale #EXAMPLE_VAR="Environment varibale" + +#ENCRYPTION_KEY must be 32 bytes (raw/base64/hex). Use 'openssl rand -base64 32' in your CLI to generate a secure random key. +ENCRYPTION_KEY=verysecretkeythatshouldbereplaced +#JWT_SECRET should be a secure random string. Use 'openssl rand -base64 32' in your CLI to generate another secure random key. +JWT_SECRET=verysecretkeythatshouldbereplaced +LOG_LEVEL=info # Optional +LOG_JSON=false # Optional +OIDC_ENABLED=false # Optional diff --git a/services/arcane/compose.yaml b/services/arcane/compose.yaml index 70808e8..c587233 100644 --- a/services/arcane/compose.yaml +++ b/services/arcane/compose.yaml @@ -56,15 +56,15 @@ services: - APP_URL=https://arcane.${TAILNET_NAME}.ts.net - PUID=1000 - PGID=1000 - - ENCRYPTION_KEY=verysecretkeythatshouldbereplaced # ENCRYPTION_KEY must be 32 bytes (raw/base64/hex). Use 'openssl rand -base64 32' in your CLI to generate a secure random key. - - JWT_SECRET=verysecretkeythatshouldbereplaced # JWT_SECRET should be a secure random string. Use 'openssl rand -base64 32' in your CLI to generate another secure random key. - - LOG_LEVEL=info # Optional - - LOG_JSON=false # Optional - - OIDC_ENABLED=false # Optional + - ENCRYPTION_KEY=${ENCRYPTION_KEY} + - JWT_SECRET=${JWT_SECRET} + - LOG_LEVEL=${LOG_LEVEL} + - LOG_JSON=${LOG_JSON} + - OIDC_ENABLED=${OIDC_ENABLED} volumes: - /var/run/docker.sock:/var/run/docker.sock - ./${SERVICE}-data:/app/data - - ./opt/dockerdata:/app/data/projects # Optional volume for an existing Docker Compose directory. + - ./${SERVICE}-data/opt/dockerdata:/app/data/projects # Optional volume for an existing Docker Compose directory. depends_on: tailscale: condition: service_healthy diff --git a/services/beszel-agent/.env b/services/beszel-agent/.env index 4d2a035..ac574db 100644 --- a/services/beszel-agent/.env +++ b/services/beszel-agent/.env @@ -20,3 +20,7 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +PORT=45876 +KEY: "ssh-ed25519 " + diff --git a/services/beszel-agent/compose.yaml b/services/beszel-agent/compose.yaml index d6292f5..356e2b0 100644 --- a/services/beszel-agent/compose.yaml +++ b/services/beszel-agent/compose.yaml @@ -39,8 +39,8 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - PORT: 45876 - KEY: "ssh-ed25519 " + - PORT=${PORT} + - KEY=${KEY} volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # Read-only access to the docker.sock depends_on: diff --git a/services/booklore/.env b/services/booklore/.env index eba934a..b7cb2bb 100644 --- a/services/booklore/.env +++ b/services/booklore/.env @@ -16,6 +16,8 @@ TS_AUTHKEY= # Add your TS authkey # Time Zone setting for containers TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +#EXAMPLE_VAR="Environment varibale" + # Optional Service variables # MariaDB Credentials @@ -23,8 +25,3 @@ MYSQL_ROOT_PASSWORD= # Use a strong password for the databases root user, should MYSQL_DATABASE=booklore MYSQL_USER=booklore MYSQL_PASSWORD= # Use a strong password; must match DATABASE_PASSWORD defined in the booklore container - -# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -TZ=Europe/Paris - -#EXAMPLE_VAR="Environment varibale" diff --git a/services/booklore/compose.yaml b/services/booklore/compose.yaml index 96fc5c6..45aed56 100644 --- a/services/booklore/compose.yaml +++ b/services/booklore/compose.yaml @@ -69,20 +69,20 @@ services: condition: service_healthy tailscale: condition: service_healthy - restart: unless-stopped + restart: always mariadb: image: lscr.io/linuxserver/mariadb:11.4.5 container_name: mariadb environment: - PUID=1000 - PGID=1000 - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # Use a strong password for the database's root user, should be different from MYSQL_PASSWORD + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - - MYSQL_USER=${MYSQL_USER} # Must match DATABASE_USERNAME defined in the booklore container - - MYSQL_PASSWORD=${MYSQL_PASSWORD} # Use a strong password; must match DATABASE_PASSWORD defined in the booklore container + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} volumes: - - ./mariadb_config:/config - restart: unless-stopped + - ./${SERVICE}-data/mariadb_config:/config + restart: always healthcheck: test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"] interval: 5s diff --git a/services/caddy/compose.yaml b/services/caddy/compose.yaml index 4cc9025..b137e8b 100644 --- a/services/caddy/compose.yaml +++ b/services/caddy/compose.yaml @@ -46,11 +46,11 @@ services: - PGID=1000 - TZ=${TZ} volumes: - - $PWD/Caddyfile:/etc/caddy/Caddyfile - - $PWD/site:/srv - - $PWD/caddy_data:/data - - $PWD/caddy_config:/config - - $PWD/tailscale/tmp/tailscaled.sock:/var/run/tailscale/tailscaled.sock # mount the socket at the right place. Comment out if not required. + - ./${SERVICE}-data/Caddyfile:/etc/caddy/Caddyfile + - ./${SERVICE}-data/site:/srv + - ./${SERVICE}-data/caddy_data:/data + - ./${SERVICE}-data/caddy_config:/config + - ./${SERVICE}-data/tailscale/tmp/tailscaled.sock:/var/run/tailscale/tailscaled.sock # mount the socket at the right place. Comment out if not required. depends_on: tailscale: condition: service_healthy diff --git a/services/clipcascade/.env b/services/clipcascade/.env index 939bec9..5614e3f 100644 --- a/services/clipcascade/.env +++ b/services/clipcascade/.env @@ -20,3 +20,9 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# To learn more about environment variables, check the Advanced Details section in the GitHub README. +CC_MAX_MESSAGE_SIZE_IN_MiB=1 +CC_ALLOWED_ORIGINS=https://clipcascade.example.com +CC_SERVER_DB_PASSWORD=QjuGlhE3uwylBBANMkX1 o2MdEoFgbU5XkFvTftky +CC_SERVER_LOGGING_LEVEL=DEBUG diff --git a/services/clipcascade/compose.yaml b/services/clipcascade/compose.yaml index eb1c884..2438b8a 100644 --- a/services/clipcascade/compose.yaml +++ b/services/clipcascade/compose.yaml @@ -53,11 +53,10 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - # To learn more about environment variables, check the Advanced Details section in the GitHub README. - - CC_MAX_MESSAGE_SIZE_IN_MiB=1 - # - CC_ALLOWED_ORIGINS=https://clipcascade.example.com - # - CC_SERVER_DB_PASSWORD=QjuGlhE3uwylBBANMkX1 o2MdEoFgbU5XkFvTftky - # - CC_SERVER_LOGGING_LEVEL=DEBUG + - CC_MAX_MESSAGE_SIZE_IN_MiB=${CC_MAX_MESSAGE_SIZE_IN_MiB} + - CC_ALLOWED_ORIGINS=${CC_ALLOWED_ORIGINS} + - CC_SERVER_DB_PASSWORD=${CC_SERVER_DB_PASSWORD} + - CC_SERVER_LOGGING_LEVEL=${CC_SERVER_LOGGING_LEVEL} - TZ=${TZ} volumes: - ./${SERVICE}-data/cc_users:/database diff --git a/services/coder/.env b/services/coder/.env index 7584c56..a48030c 100644 --- a/services/coder/.env +++ b/services/coder/.env @@ -18,11 +18,11 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # Optional Service variables # PUID=1000 - +YOUR-TAILSCALE-DOMAIN= CODER_VERSION=latest -POSTGRES_USER=username -POSTGRES_PASSWORD=strongpassword -POSTGRES_DB=coder -CODER_ACCESS_URL=https://coder..ts.net - +POSTGRES_USER=username # The PostgreSQL user (useful to connect to the database) +POSTGRES_PASSWORD=strongpassword # The PostgreSQL password (useful to connect to the database) +POSTGRES_DB=coder # The PostgreSQL default database (automatically created at first launch) +CODER_ACCESS_URL=https://${SERVICE}.${YOUR-TAILSCALE-DOMAIN}.ts.net +CODER_HTTP_ADDRESS="0.0.0.0:7080" #EXAMPLE_VAR="Environment varibale" diff --git a/services/coder/compose.yaml b/services/coder/compose.yaml index 06b2998..30e5920 100644 --- a/services/coder/compose.yaml +++ b/services/coder/compose.yaml @@ -53,9 +53,9 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@localhost/${POSTGRES_DB:-coder}?sslmode=disable" - CODER_HTTP_ADDRESS: "0.0.0.0:7080" - CODER_ACCESS_URL: "${CODER_ACCESS_URL}" + - CODER_PG_CONNECTION_URL="postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@localhost/${POSTGRES_DB:-coder}?sslmode=disable" + - CODER_HTTP_ADDRESS=${CODER_HTTP_ADDRESS} + - CODER_ACCESS_URL=${CODER_ACCESS_URL} volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./${SERVICE}-data/coder-home:/home/coder @@ -79,9 +79,9 @@ services: # More versions here: https://hub.docker.com/_/postgres image: "postgres:17" environment: - POSTGRES_USER: ${POSTGRES_USER:-username} # The PostgreSQL user (useful to connect to the database) - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} # The PostgreSQL password (useful to connect to the database) - POSTGRES_DB: ${POSTGRES_DB:-coder} # The PostgreSQL default database (automatically created at first launch) + - POSTGRES_USER=${POSTGRES_USER:-username} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password} + - POSTGRES_DB=${POSTGRES_DB:-coder} volumes: - ./${SERVICE}-data/coder-data:/var/lib/postgresql/data # Use "docker volume rm coder_coder_data" to reset Coder healthcheck: diff --git a/services/configarr/compose.yaml b/services/configarr/compose.yaml index a599c81..f5ba31b 100644 --- a/services/configarr/compose.yaml +++ b/services/configarr/compose.yaml @@ -42,7 +42,7 @@ services: - TZ=${TZ} volumes: - ./${SERVICE}-data/config:/app/config - - ${PWD}/${SERVICE}-data/dockerrepos:/app/repos + - ./${SERVICE}-data/dockerrepos:/app/repos depends_on: tailscale: condition: service_healthy diff --git a/services/convertx/.env b/services/convertx/.env index fd865a2..aa93ce7 100644 --- a/services/convertx/.env +++ b/services/convertx/.env @@ -20,3 +20,6 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# will use randomUUID() if unset +JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 diff --git a/services/convertx/compose.yaml b/services/convertx/compose.yaml index c77c330..13b1729 100644 --- a/services/convertx/compose.yaml +++ b/services/convertx/compose.yaml @@ -53,7 +53,7 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset + - JWT_SECRET=${JWT_SECRET} volumes: - ./${SERVICE}-data:/app/data depends_on: diff --git a/services/copyparty/.env b/services/copyparty/.env index 62c2472..2fd5f6d 100644 --- a/services/copyparty/.env +++ b/services/copyparty/.env @@ -20,3 +20,7 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +LD_PRELOAD=/usr/lib/libmimalloc-secure.so.NOPE +# Make sure to adjust to the location you want +FILE_SHARE=/path/to/your/fileshare/top/folder:/w:z diff --git a/services/copyparty/compose.yaml b/services/copyparty/compose.yaml index 14dc310..9aac5e1 100644 --- a/services/copyparty/compose.yaml +++ b/services/copyparty/compose.yaml @@ -71,15 +71,14 @@ services: - source: copyparty-config target: /cfg/copyparty.conf volumes: - - ./config:/cfg:z - - /path/to/your/fileshare/top/folder:/w:z # Make sure to adjust to the location you want + - ./${SERVICE}-data/config:/cfg:z + - ${FILE_SHARE} depends_on: tailscale: condition: service_healthy - # enabling mimalloc by replacing "NOPE" with "2" will make some stuff twice as fast, but everything will use twice as much ram: environment: - LD_PRELOAD: /usr/lib/libmimalloc-secure.so.NOPE + - LD_PRELOAD=${LD_PRELOAD} stop_grace_period: 15s # thumbnailer is allowed to continue finishing up for 10s after the shutdown signal healthcheck: # hide it from logs with "/._" so it matches the default --lf-url filter diff --git a/services/ddns-updater/.env b/services/ddns-updater/.env index 938195e..ed3f40b 100644 --- a/services/ddns-updater/.env +++ b/services/ddns-updater/.env @@ -20,3 +20,23 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +CONFIG= +PERIOD=5m +UPDATE_COOLDOWN_PERIOD=5m +PUBLICIP_FETCHERS=all +PUBLICIP_HTTP_PROVIDERS=all +PUBLICIPV4_HTTP_PROVIDERS=all +PUBLICIPV6_HTTP_PROVIDERS=all +PUBLICIP_DNS_PROVIDERS=all +PUBLICIP_DNS_TIMEOUT=3s +HTTP_TIMEOUT=10s +# Web UI +LISTENING_ADDRESS=:8000 +ROOT_URL=/ +# Backup +BACKUP_PERIOD=0 # 0 to disable +BACKUP_DIRECTORY=/updater/data +LOG_LEVEL=info +LOG_CALLER=hidden +#SHOUTRRR_ADDRESSES= diff --git a/services/ddns-updater/compose.yaml b/services/ddns-updater/compose.yaml index 62c88d8..ae57ca9 100644 --- a/services/ddns-updater/compose.yaml +++ b/services/ddns-updater/compose.yaml @@ -54,28 +54,22 @@ services: container_name: app-${SERVICE} # Name for local container management environment: - TZ=${TZ} - - CONFIG= - - PERIOD=5m - - UPDATE_COOLDOWN_PERIOD=5m - - PUBLICIP_FETCHERS=all - - PUBLICIP_HTTP_PROVIDERS=all - - PUBLICIPV4_HTTP_PROVIDERS=all - - PUBLICIPV6_HTTP_PROVIDERS=all - - PUBLICIP_DNS_PROVIDERS=all - - PUBLICIP_DNS_TIMEOUT=3s - - HTTP_TIMEOUT=10s - - # Web UI - - LISTENING_ADDRESS=:8000 - - ROOT_URL=/ - - # Backup - - BACKUP_PERIOD=0 # 0 to disable - - BACKUP_DIRECTORY=/updater/data - - # Other - - LOG_LEVEL=info - - LOG_CALLER=hidden + - CONFIG=${CONFIG} + - PERIOD=${PERIOD} + - UPDATE_COOLDOWN_PERIOD=${UPDATE_COOLDOWN_PERIOD} + - PUBLICIP_FETCHERS=${PUBLICIP_FETCHERS} + - PUBLICIP_HTTP_PROVIDERS=${PUBLICIP_HTTP_PROVIDERS} + - PUBLICIPV4_HTTP_PROVIDERS=${PUBLICIPV4_HTTP_PROVIDERS} + - PUBLICIPV6_HTTP_PROVIDERS=${PUBLICIPV6_HTTP_PROVIDERS} + - PUBLICIP_DNS_PROVIDERS=${PUBLICIP_DNS_PROVIDERS} + - PUBLICIP_DNS_TIMEOUT=${PUBLICIP_DNS_TIMEOUT} + - HTTP_TIMEOUT=${HTTP_TIMEOUT} + - LISTENING_ADDRESS=${LISTENING_ADDRESS} + - ROOT_URL=${ROOT_URL} + - BACKUP_PERIOD=${BACKUP_PERIOD} + - BACKUP_DIRECTORY=${BACKUP_DIRECTORY} + - LOG_LEVEL=${LOG_LEVEL} + - LOG_CALLER=${LOG_CALLER} #- SHOUTRRR_ADDRESSES= volumes: - ./${SERVICE}-data/data:/updater/data diff --git a/services/dockhand/compose.yaml b/services/dockhand/compose.yaml index 2b4e978..b701b6f 100644 --- a/services/dockhand/compose.yaml +++ b/services/dockhand/compose.yaml @@ -56,7 +56,7 @@ services: - HOST_DATA_DIR=/app/data volumes: - /var/run/docker.sock:/var/run/docker.sock - - ./dockhand-data:/app/data # Data directory for Dockhand - you may need to change the path + - ./${SERVICE}-data/dockhand-data:/app/data # Data directory for Dockhand - you may need to change the path depends_on: tailscale: condition: service_healthy diff --git a/services/docmost/.env b/services/docmost/.env index 10dfbdf..77ad451 100644 --- a/services/docmost/.env +++ b/services/docmost/.env @@ -20,3 +20,10 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +APP_URL='http://localhost:3000' +APP_SECRET='REPLACE_WITH_LONG_SECRET' # Please replace with a long secret +REDIS_URL='redis://localhost:6379' +POSTGRES_DB=docmost +POSTGRES_USER=docmost +POSTGRES_PASSWORD=STRONG_PASSWORD diff --git a/services/docmost/compose.yaml b/services/docmost/compose.yaml index 36359f3..2baff00 100644 --- a/services/docmost/compose.yaml +++ b/services/docmost/compose.yaml @@ -53,10 +53,10 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - APP_URL: 'http://localhost:3000' - APP_SECRET: 'REPLACE_WITH_LONG_SECRET' # Please replace with a long secret - DATABASE_URL: 'postgresql://docmost:STRONG_DB_PASSWORD@localhost:5432/docmost?schema=public' - REDIS_URL: 'redis://localhost:6379' + - APP_URL=${APP_URL} + - APP_SECRET=${APP_SECRET} + - DATABASE_URL='postgresql://docmost:${POSTGRES_PASSWORD}@localhost:5432/docmost?schema=public' + - REDIS_URL=${REDIS_URL} volumes: - ./${SERVICE}-data/docmost:/app/data/storage depends_on: @@ -79,9 +79,9 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE}-database # Name for local container management environment: - POSTGRES_DB: docmost - POSTGRES_USER: docmost - POSTGRES_PASSWORD: STRONG_DB_PASSWORD + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER) + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} restart: always volumes: - ./${SERVICE}-data/db-data:/var/lib/postgresql/data diff --git a/services/eigenfocus/.env b/services/eigenfocus/.env index 64a5045..63678d3 100644 --- a/services/eigenfocus/.env +++ b/services/eigenfocus/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + + DEFAULT_HOST_URL=http://127.0.0.1:3000 diff --git a/services/eigenfocus/compose.yaml b/services/eigenfocus/compose.yaml index bb0886d..7450747 100644 --- a/services/eigenfocus/compose.yaml +++ b/services/eigenfocus/compose.yaml @@ -56,7 +56,7 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - - DEFAULT_HOST_URL=http://127.0.0.1:3000 + - DEFAULT_HOST_URL=${DEFAULT_HOST_URL} volumes: - ./${SERVICE}-data:/eigenfocus-app/app-data depends_on: diff --git a/services/excalidraw/.env b/services/excalidraw/.env index 8ee7ade..655a203 100644 --- a/services/excalidraw/.env +++ b/services/excalidraw/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +NODE_ENV=production diff --git a/services/excalidraw/compose.yaml b/services/excalidraw/compose.yaml index e8a3fb3..ae56f8b 100644 --- a/services/excalidraw/compose.yaml +++ b/services/excalidraw/compose.yaml @@ -53,7 +53,7 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - - NODE_ENV=production + - NODE_ENV=${NODE_ENV} - TZ=${TZ} stdin_open: true volumes: diff --git a/services/flaresolverr/.env b/services/flaresolverr/.env index 3ec266d..a77d1d2 100644 --- a/services/flaresolverr/.env +++ b/services/flaresolverr/.env @@ -20,3 +20,8 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +LOG_LEVEL=info +LOG_FILE=none +LOG_HTML=false +CAPTCHA_SOLVER=none diff --git a/services/flaresolverr/compose.yaml b/services/flaresolverr/compose.yaml index 2ee7d57..c7c3290 100644 --- a/services/flaresolverr/compose.yaml +++ b/services/flaresolverr/compose.yaml @@ -53,9 +53,9 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE}-server # Name for local container management environment: - - LOG_LEVEL=${LOG_LEVEL:-info} - - LOG_FILE=${LOG_FILE:-none} - - LOG_HTML=${LOG_HTML:-false} - - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none} + - LOG_LEVEL=${LOG_LEVEL} + - LOG_FILE=${LOG_FILE} + - LOG_HTML=${LOG_HTML} + - CAPTCHA_SOLVER=${CAPTCHA_SOLVER} - TZ=${TZ} - restart: unless-stopped + restart: always diff --git a/services/formbricks/.env b/services/formbricks/.env index 0167f95..cebc5cd 100644 --- a/services/formbricks/.env +++ b/services/formbricks/.env @@ -36,6 +36,9 @@ NEXTAUTH_URL=${WEBAPP_URL} # Set the below to your public domain (default is WEBAPP_URL) PUBLIC_URL=${WEBAPP_URL} +# Postgress password +POSTGRES_PASSWORD=password + # PostgreSQL DB for Formbricks to connect to DATABASE_URL="postgresql://postgres:postgres@postgres:5432/formbricks?schema=public" diff --git a/services/formbricks/compose.yaml b/services/formbricks/compose.yaml index 9e9b19e..0410777 100644 --- a/services/formbricks/compose.yaml +++ b/services/formbricks/compose.yaml @@ -53,7 +53,7 @@ services: volumes: - ./${SERVICE}-data/postgres:/var/lib/postgresql/data environment: - - POSTGRES_PASSWORD=postgres + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} redis: restart: always image: valkey/valkey@sha256:12ba4f45a7c3e1d0f076acd616cb230834e75a77e8516dde382720af32832d6d diff --git a/services/fossflow/.env b/services/fossflow/.env index dac5e6b..d56c9c3 100644 --- a/services/fossflow/.env +++ b/services/fossflow/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" +YOUR-TS-DOMAIN= +PUBLIC_URL="https://${SERVICE}.${YOUR-TS-DOMAIN}.ts.net" diff --git a/services/fossflow/compose.yaml b/services/fossflow/compose.yaml index 55e1eb1..a4e9866 100644 --- a/services/fossflow/compose.yaml +++ b/services/fossflow/compose.yaml @@ -56,7 +56,7 @@ services: context: https://github.com/stan-smith/FossFLOW.git dockerfile: Dockerfile environment: - - PUBLIC_URL="https://fossflow..ts.net" + - PUBLIC_URL=${PUBLIC_URL} depends_on: tailscale: condition: service_healthy diff --git a/services/frigate/.env b/services/frigate/.env index c758070..30d0920 100644 --- a/services/frigate/.env +++ b/services/frigate/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +FRIGATE_RTSP_PASSWORD=password diff --git a/services/frigate/compose.yaml b/services/frigate/compose.yaml index edd403d..c9d4ac4 100644 --- a/services/frigate/compose.yaml +++ b/services/frigate/compose.yaml @@ -68,7 +68,7 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - - FRIGATE_RTSP_PASSWORD=password + - FRIGATE_RTSP_PASSWORD=${FRIGATE_RTSP_PASSWORD} volumes: - /etc/localtime:/etc/localtime:ro - ./${SERVICE}-data/config:/config diff --git a/services/ghost/.env b/services/ghost/.env index 9c30995..ee5acdf 100644 --- a/services/ghost/.env +++ b/services/ghost/.env @@ -20,3 +20,12 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# see https://ghost.org/docs/config/#configuration-options +DB_CLIENT=mysql +DB_CONNECTION=db +DB_USER=root +DB_PASSWORD=example +DB_CONNECTION_DB=ghost +URL=http://localhost:8080 +MYSQL_ROOT_PASSWORD=example diff --git a/services/ghost/compose.yaml b/services/ghost/compose.yaml index 0e1bbd5..e01b2c0 100644 --- a/services/ghost/compose.yaml +++ b/services/ghost/compose.yaml @@ -54,15 +54,12 @@ services: container_name: app-${SERVICE} # Name for local container management environment: # see https://ghost.org/docs/config/#configuration-options - database__client: mysql - database__connection__host: db - database__connection__user: root - database__connection__password: example - database__connection__database: ghost - - # this url value is just an example, and is likely wrong for your environment! - url: http://localhost:8080 - + - DB_CLIENT=${DB_CLIENT} + - DB_CONNECTION=${DB_CONNECTION} + - DB_USER=${DB_USER} + - DB_PASSWORD=${DB_PASSWORD} + - DB_CONNECTION_DB=${DB_CONNECTION_DB} + - URL=${URL} # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired) #NODE_ENV: development volumes: @@ -83,7 +80,7 @@ services: image: mysql:8.0 container_name: db-${SERVICE} # Name for local container management environment: - MYSQL_ROOT_PASSWORD: example + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - ./${SERVICE}-data/db:/var/lib/mysql restart: always diff --git a/services/gitea/compose.yaml b/services/gitea/compose.yaml index 034b02c..037e34a 100644 --- a/services/gitea/compose.yaml +++ b/services/gitea/compose.yaml @@ -57,7 +57,7 @@ services: - USER_GID=1000 - TZ=${TZ} volumes: - - ./gitea-data/data:/data + - ./${SERVICE}-data/data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro depends_on: diff --git a/services/gotify/.env b/services/gotify/.env index 4aad555..a9e1ad8 100644 --- a/services/gotify/.env +++ b/services/gotify/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +GOTIFY_DEFAULTUSER_PASS=admin diff --git a/services/gotify/compose.yaml b/services/gotify/compose.yaml index 43b5b4a..eaea73c 100644 --- a/services/gotify/compose.yaml +++ b/services/gotify/compose.yaml @@ -53,7 +53,7 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - - GOTIFY_DEFAULTUSER_PASS=admin + - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} volumes: - ./${SERVICE}-data/app/data:/app/data depends_on: diff --git a/services/hemmelig/.env b/services/hemmelig/.env index 45fdf99..99d6c2f 100644 --- a/services/hemmelig/.env +++ b/services/hemmelig/.env @@ -20,3 +20,9 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +DATABASE_URL=file:/app/database/hemmelig.db +BETTER_AUTH_SECRET=change-this-to-a-secure-secret-min-32-chars +BETTER_AUTH_URL=https://secrets.example.com +NODE_ENV=production +HEMMELIG_BASE_URL=https://secrets.example.com diff --git a/services/hemmelig/compose.yaml b/services/hemmelig/compose.yaml index 566d73c..ea112d5 100644 --- a/services/hemmelig/compose.yaml +++ b/services/hemmelig/compose.yaml @@ -56,11 +56,11 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - - DATABASE_URL=file:/app/database/hemmelig.db - - BETTER_AUTH_SECRET=change-this-to-a-secure-secret-min-32-chars - - BETTER_AUTH_URL=https://secrets.example.com - - NODE_ENV=production - - HEMMELIG_BASE_URL=https://secrets.example.com + - DATABASE_URL=${DATABASE_URL} + - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} + - BETTER_AUTH_URL=${BETTER_AUTH_URL} + - NODE_ENV=${NODE_ENV} + - HEMMELIG_BASE_URL=${HEMMELIG_BASE_URL} volumes: - ./${SERVICE}-data/database:/app/database - ./${SERVICE}-data/uploads:/app/uploads diff --git a/services/homarr/.env b/services/homarr/.env index 59e7e88..289e89f 100644 --- a/services/homarr/.env +++ b/services/homarr/.env @@ -20,3 +20,6 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +# Please generate a key with: openssl rand -hex 32 +SECRET_ENCRYPTION_KEY= diff --git a/services/homarr/compose.yaml b/services/homarr/compose.yaml index 120101f..3188e77 100644 --- a/services/homarr/compose.yaml +++ b/services/homarr/compose.yaml @@ -56,7 +56,7 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - - SECRET_ENCRYPTION_KEY= # Please generate a key with: openssl rand -hex 32 + - SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY} volumes: # - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration - ./${SERVICE}-data/appdata:/appdata diff --git a/services/homepage/.env b/services/homepage/.env index 367438e..ddf09f8 100644 --- a/services/homepage/.env +++ b/services/homepage/.env @@ -22,3 +22,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim TAILNET_NAME= #EXAMPLE_VAR="Environment varibale" + +HOMEPAGE_ALLOWED_HOSTS=${SERVICE}.${TAILNET_NAME}.ts.net diff --git a/services/homepage/compose.yaml b/services/homepage/compose.yaml index de0519c..bb8797f 100644 --- a/services/homepage/compose.yaml +++ b/services/homepage/compose.yaml @@ -53,7 +53,7 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - - HOMEPAGE_ALLOWED_HOSTS=homepage.${TAILNET_NAME}.ts.net + - HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS} volumes: - ./${SERVICE}-data/config:/app/config - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations diff --git a/services/immich/compose.yaml b/services/immich/compose.yaml index fc2ca9f..a72cd7a 100644 --- a/services/immich/compose.yaml +++ b/services/immich/compose.yaml @@ -101,10 +101,10 @@ services: container_name: app-${SERVICE}-postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 environment: - POSTGRES_PASSWORD: ${DB_PASSWORD} - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_DB: ${DB_DATABASE_NAME} - POSTGRES_INITDB_ARGS: "--data-checksums" + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_USER=${DB_USERNAME} + - POSTGRES_DB=${DB_DATABASE_NAME} + - POSTGRES_INITDB_ARGS="--data-checksums" # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # DB_STORAGE_TYPE: 'HDD' volumes: diff --git a/services/jellyfin/compose.yaml b/services/jellyfin/compose.yaml index 7a0bfbc..618a3f9 100644 --- a/services/jellyfin/compose.yaml +++ b/services/jellyfin/compose.yaml @@ -59,8 +59,8 @@ services: # - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - ./${SERVICE}-data/config:/config - - ./media/tvseries:/data/tvshows - - ./media/movies:/data/movies + - ./${SERVICE}-data/media/tvseries:/data/tvshows + - ./${SERVICE}-data/media/movies:/data/movies depends_on: tailscale: condition: service_healthy diff --git a/services/kaneo/compose.yaml b/services/kaneo/compose.yaml index 23294d1..74d7d23 100644 --- a/services/kaneo/compose.yaml +++ b/services/kaneo/compose.yaml @@ -68,7 +68,7 @@ services: timeout: 5s # Time to wait for the check to succeed retries: 5 # Number of retries before marking as unhealthy start_period: 30s # Time to wait before starting health checks - restart: unless-stopped + restart: always # ${SERVICE} - Backend (API) backend: @@ -78,13 +78,13 @@ services: env_file: - .env environment: - DATABASE_URL: "postgresql://${DB_USERNAME}:${DB_PASSWORD}@localhost:${SERVICEPORT_DATABASE}/${DB_DATABASE_NAME}" + - DATABASE_URL="postgresql://${DB_USERNAME}:${DB_PASSWORD}@localhost:${SERVICEPORT_DATABASE}/${DB_DATABASE_NAME}" depends_on: tailscale: condition: service_healthy postgres: condition: service_healthy - restart: unless-stopped + restart: always # ${SERVICE} - Frontend (Web) frontend: @@ -98,7 +98,7 @@ services: condition: service_healthy backend: condition: service_started - restart: unless-stopped + restart: always volumes: postgres_data: diff --git a/services/karakeep/.env b/services/karakeep/.env index 4778fd2..93d3991 100644 --- a/services/karakeep/.env +++ b/services/karakeep/.env @@ -28,4 +28,12 @@ MAX_ASSET_SIZE_MB=50 DISABLE_SIGNUPS=false DISABLE_PASSWORD_AUTH=false +MEILI_ADDR=http://meilisearch:7700 +BROWSER_WEB_URL=http://chrome:9222 +# OPENAI_API_KEY: ... +# You almost never want to change the value of the DATA_DIR variable. +# If you want to mount a custom directory, change the volume mapping above instead. +DATA_DIR=/data # DON'T CHANGE THIS +MEILI_NO_ANALYTICS="true" + #EXAMPLE_VAR="Environment varibale" diff --git a/services/karakeep/compose.yaml b/services/karakeep/compose.yaml index 43c845e..231e88a 100644 --- a/services/karakeep/compose.yaml +++ b/services/karakeep/compose.yaml @@ -55,13 +55,13 @@ services: env_file: - .env environment: - MEILI_ADDR: http://meilisearch:7700 - BROWSER_WEB_URL: http://chrome:9222 + - MEILI_ADDR=${MEILI_ADDR} + - BROWSER_WEB_URL=${BROWSER_WEB_URL} # OPENAI_API_KEY: ... # You almost never want to change the value of the DATA_DIR variable. # If you want to mount a custom directory, change the volume mapping above instead. - DATA_DIR: /data # DON'T CHANGE THIS + - DATA_DIR=${DATA_DIR} volumes: # By default, the data is stored in a docker volume called "data". # If you want to mount a custom directory, change the volume mapping to: @@ -97,6 +97,6 @@ services: env_file: - .env environment: - MEILI_NO_ANALYTICS: "true" + - MEILI_NO_ANALYTICS=${MEILI_NO_ANALYTICS} volumes: - ./${SERVICE}-data/meilisearch:/meili_data diff --git a/services/mattermost/compose.yaml b/services/mattermost/compose.yaml index 8f570f9..9ff3791 100644 --- a/services/mattermost/compose.yaml +++ b/services/mattermost/compose.yaml @@ -73,12 +73,12 @@ services: # timezone inside container - TZ=${TZ} # necessary Mattermost options/variables (see .env file) - - MM_SQLSETTINGS_DRIVERNAME - - MM_SQLSETTINGS_DATASOURCE + - MM_SQLSETTINGS_DRIVERNAME=${MM_SQLSETTINGS_DRIVERNAME} + - MM_SQLSETTINGS_DATASOURCE=${MM_SQLSETTINGS_DATASOURCE} # necessary for bleve - - MM_BLEVESETTINGS_INDEXDIR + - MM_BLEVESETTINGS_INDEXDIR=${MM_BLEVESETTINGS_INDEXDIR} # additional settings - - MM_SERVICESETTINGS_SITEURL + - MM_SERVICESETTINGS_SITEURL=${MM_SERVICESETTINGS_SITEURL} restart: always depends_on: - database @@ -101,6 +101,6 @@ services: # timezone inside container - TZ=${TZ} # necessary Postgres options/variables defined in the .env file - - POSTGRES_USER - - POSTGRES_PASSWORD - - POSTGRES_DB + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} diff --git a/services/mealie/.env b/services/mealie/.env index 1b98930..80094f2 100644 --- a/services/mealie/.env +++ b/services/mealie/.env @@ -20,3 +20,6 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +ALLOW_SIGNUP="false" +BASE_URL=https://mealie.yourdomain.ts.net # Alter to your domain diff --git a/services/mealie/compose.yaml b/services/mealie/compose.yaml index 4e08e6c..f954e49 100644 --- a/services/mealie/compose.yaml +++ b/services/mealie/compose.yaml @@ -57,12 +57,11 @@ services: limits: memory: 1000M # (2) environment: - # Set Backend ENV Variables Here - https://docs.mealie.io/documentation/getting-started/installation/backend-config/ - ALLOW_SIGNUP: "false" - PUID: 1000 - PGID: 1000 - TZ: Europe/Amsterdam - BASE_URL: https://mealie.yourdomain.ts.net # Alter to your domain + - ALLOW_SIGNUP=${ALLOW_SIGNUP} + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - BASE_URL=${BASE_URL} volumes: - ./${SERVICE}-data:/app/data/ depends_on: diff --git a/services/memos/.env b/services/memos/.env index 1f1ff89..f6b65d0 100644 --- a/services/memos/.env +++ b/services/memos/.env @@ -20,3 +20,7 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" +YOUR_TS_DOMAIN= +MEMOS_PORT=5230 +MEMOS_DRIVER=sqlite +MEMOS_INSTANCE_URL=https://${SERVCIE}.${YOUR_TS_DOMAIN}.ts.net diff --git a/services/memos/compose.yaml b/services/memos/compose.yaml index e6111e8..47c7da8 100644 --- a/services/memos/compose.yaml +++ b/services/memos/compose.yaml @@ -53,9 +53,9 @@ services: network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} # Name for local container management environment: - MEMOS_PORT: 5230 - MEMOS_DRIVER: sqlite - MEMOS_INSTANCE_URL: https://memos..ts.net # Update with your Tailscale domain + - MEMOS_PORT=${MEMOS_PORT} + - MEMOS_DRIVER=${MEMOS_DRIVER} + - MEMOS_INSTANCE_URL=${MEMOS_INSTANCE_URL} volumes: - ./${SERVICE}-data:/var/opt/memos depends_on: diff --git a/services/metube/compose.yaml b/services/metube/compose.yaml index fd3f1c5..035d502 100644 --- a/services/metube/compose.yaml +++ b/services/metube/compose.yaml @@ -56,7 +56,7 @@ services: - PGID=1000 - TZ=${TZ} volumes: - - ./downloads:/downloads + - ./${SERVICE}-data/downloads:/downloads depends_on: tailscale: condition: service_healthy diff --git a/services/nanote/.env b/services/nanote/.env index 92aa9ee..e4f7057 100644 --- a/services/nanote/.env +++ b/services/nanote/.env @@ -20,3 +20,6 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +NOTES_PATH=/notes +SECRET_KEY= diff --git a/services/nanote/compose.yaml b/services/nanote/compose.yaml index cf7c648..84f3229 100644 --- a/services/nanote/compose.yaml +++ b/services/nanote/compose.yaml @@ -56,8 +56,8 @@ services: - PUID=1000 - PGID=1000 - TZ=${TZ} - - NOTES_PATH=/notes - - SECRET_KEY= + - NOTES_PATH=${NOTES_PATH} + - SECRET_KEY=${SECRET_KEY} volumes: - ./${SERVICE}-data:/notes depends_on: diff --git a/services/navidrome/.env b/services/navidrome/.env index b0e74ea..f6b2944 100644 --- a/services/navidrome/.env +++ b/services/navidrome/.env @@ -20,3 +20,5 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # PUID=1000 #EXAMPLE_VAR="Environment varibale" + +PATH_TO_MEDIA=/path/to/your/music/folder:/music:ro diff --git a/services/navidrome/compose.yaml b/services/navidrome/compose.yaml index a532863..4d035b7 100644 --- a/services/navidrome/compose.yaml +++ b/services/navidrome/compose.yaml @@ -60,7 +60,7 @@ services: - TZ=${TZ} volumes: - ./${SERVICE}-data/data:/data - - /path/to/your/music/folder:/music:ro # Adjust to your liking + - ${PATH_TO_MEDIA} depends_on: tailscale: condition: service_healthy diff --git a/services/netbox/compose.yaml b/services/netbox/compose.yaml index 76f49e3..6ae8c0d 100644 --- a/services/netbox/compose.yaml +++ b/services/netbox/compose.yaml @@ -51,10 +51,10 @@ services: environment: - TZ=${TZ} volumes: - - ./config:/etc/netbox/config:z,ro - - ./${SERVICE}/media:/opt/netbox/netbox/media - - ./${SERVICE}/reports:/opt/netbox/netbox/reports - - ./${SERVICE}/scripts:/opt/netbox/netbox/scripts + - ./${SERVICE}-data/config:/etc/netbox/config:z,ro + - ./${SERVICE}-data/media:/opt/netbox/netbox/media + - ./${SERVICE}-data/reports:/opt/netbox/netbox/reports + - ./${SERVICE}-data/scripts:/opt/netbox/netbox/scripts depends_on: postgres: condition: service_healthy @@ -96,7 +96,7 @@ services: interval: 10s retries: 5 volumes: - - ./${SERVICE}/postgres/data:/var/lib/postgresql/data + - ./${SERVICE}-data/postgres/data:/var/lib/postgresql/data # redis redis: @@ -114,7 +114,7 @@ services: interval: 1s retries: 5 volumes: - - ./${SERVICE}/redis/data:/data + - ./${SERVICE}-data/redis/data:/data redis-cache: container_name: ${SERVICE}-rediscache image: docker.io/valkey/valkey:8.1-alpine @@ -125,4 +125,4 @@ services: - valkey-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose healthcheck: *redis-healthcheck volumes: - - ./${SERVICE}/redis/cache:/data + - ./${SERVICE}-data/redis/cache:/data diff --git a/services/next-explorer/.env b/services/next-explorer/.env index 691d23e..12308bb 100644 --- a/services/next-explorer/.env +++ b/services/next-explorer/.env @@ -22,9 +22,16 @@ TZ=Europe/Amsterdam # See: https://en.wikipedia.org/wiki/List_of_tz_database_tim # Any Container environment variables are declared below. See https://docs.docker.com/compose/how-tos/environment-variables/ -ACCESS_PATH=/home/root/data # Change this to the path you want to share with Tailscale. This should be an absolute path on the host machine. For example, if you want to share the /home/user/files directory, set ACCESS_PATH=/home/user/files. -TAILNET_NAME=your-tailnet-name # Change this to your Tailnet name, which is the domain you use for Tailscale. For example, if your Tailnet is "example.com", set TAILNET_NAME=example.com. -SESSION_SECRET=your-super-secret # Use 'openssl rand -base64 32' in your CLI to generate a secure random key. -PUBLIC_URL=https://file-explorer..ts.net # Optional: Set this to the public URL of your service if needed for correct URL generation in the app. For example, if you are exposing the service at https://example.com, set PUBLIC_URL=https://example.com. +# Change this to the path you want to share with Tailscale. This should be an absolute path on the host machine. For example, if you want to share the /home/user/files directory, set ACCESS_PATH=/home/user/files. +ACCESS_PATH=/home/root/data + +# Change this to your Tailnet name, which is the domain you use for Tailscale. +TAILNET_NAME=your-tailnet-name + +# Use 'openssl rand -base64 32' in your CLI to generate a secure random key. +SESSION_SECRET=your-super-secret + +# Optional: Set this to the public URL of your service if needed for correct URL generation in the app. For example, if you are exposing the service at https://example.com, set PUBLIC_URL=https://example.com. +PUBLIC_URL=https://${SERVICE}.${TAILNET_NAME}.ts.net #EXAMPLE_VAR="Environment varibale" diff --git a/services/next-explorer/compose.yaml b/services/next-explorer/compose.yaml index c4b2c5a..418fb96 100644 --- a/services/next-explorer/compose.yaml +++ b/services/next-explorer/compose.yaml @@ -52,7 +52,7 @@ services: image: ${IMAGE_URL} network_mode: service:tailscale # Sidecar configuration to route ${SERVICE} through Tailscale container_name: app-${SERVICE} - restart: unless-stopped + restart: always #ports: # - 0.0.0.0:${SERVICEPORT}:${SERVICEPORT} # Binding port ${SERVICE}PORT to the local network - may be removed if only exposure to your Tailnet is required # If any DNS issues arise, use your preferred DNS provider by uncommenting the config below @@ -60,16 +60,14 @@ services: # - ${DNS_SERVER} environment: - NODE_ENV=production - - PUBLIC_URL=${PUBLIC_URL} # Optional: Set this to the public URL of your service if needed for correct URL generation in the app. For example, if you are exposing the service at https://example.com, set PUBLIC_URL=https://example.com. - - # Optional: lock sessions to a known secret + - PUBLIC_URL=${PUBLIC_URL} - SESSION_SECRET=${SESSION_SECRET} # Optional host UID/GID mapping - PUID=${PUID} # Change according to your customization if needed - PGID=${PGID} # Change according to your customization if needed volumes: - - ./config:/config - - ./cache:/cache + - ./${SERVICE}-data/config:/config + - ./${SERVICE}-data/cache:/cache # Each /mnt/