diff --git a/templates.json b/templates.json new file mode 100644 index 0000000..b4a0bbb --- /dev/null +++ b/templates.json @@ -0,0 +1,310 @@ +{ + "version": "2", + "templates": [ + { + "type": 3, + "title": "ActualBudget", + "description": "Personal finance and budgeting tool. Track spending, create budgets, and manage your finances locally.", + "categories": ["finance"], + "platform": "linux", + "logo": "https://avatars.githubusercontent.com/u/119264388", + "note": "First-time setup: Create a password on first visit. No default credentials.
Access: https://budget.<DOMAIN>", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/actualbudget/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + } + ] + }, + { + "type": 3, + "title": "Docmost", + "description": "Modern wiki and documentation platform (Notion-like). Collaborative editing with pages, spaces, and rich content.", + "categories": ["productivity", "wiki"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/docmost/docmost/main/apps/client/public/android-chrome-192x192.png", + "note": "First-time setup: First registered user becomes admin.
Access: https://docs.<DOMAIN>
Includes: PostgreSQL + Redis", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/docmost/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "APP_SECRET", + "label": "App Secret", + "description": "Random secret for session signing. Generate with: openssl rand -hex 32" + }, + { + "name": "DB_PASSWORD", + "label": "Database Password", + "description": "PostgreSQL password. Use a strong random password." + } + ] + }, + { + "type": 3, + "title": "FileBrowser", + "description": "Simple web file manager. Upload, download, and organize files through a clean web interface.", + "categories": ["files"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/filebrowser/logo/master/icon_raw.svg", + "note": "First-time setup: Default login: admin / admin — change immediately!
Access: https://files.<DOMAIN>
Storage: Files stored at HDD_PATH/storage/filebrowser/", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/filebrowser/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "HDD_PATH", + "label": "HDD Path", + "description": "External HDD mount path (e.g., /mnt/hdd_1)", + "default": "/mnt/hdd_1" + } + ] + }, + { + "type": 3, + "title": "Homebox", + "description": "Home inventory management. Track your belongings, warranties, manuals, and receipts.", + "categories": ["productivity"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/sysadminsmedia/homebox/main/frontend/static/lilbox.svg", + "note": "First-time setup: Register on first visit. First user becomes owner.
Access: https://inventory.<DOMAIN>", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/homebox/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + } + ] + }, + { + "type": 3, + "title": "Immich", + "description": "Self-hosted photo and video management. Google Photos alternative with ML-powered search, face recognition, and mobile apps.", + "categories": ["photos", "media"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/immich-app/immich/main/docs/static/img/immich-logo-stacked-dark.svg", + "note": "First-time setup: Create admin account on first visit.
Access: https://photos.<DOMAIN>
Includes: PostgreSQL + Redis + ML engine
Requirements: 4GB+ RAM, NOT recommended for Raspberry Pi
Storage: Photos stored at HDD_PATH/storage/immich/", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/immich/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "HDD_PATH", + "label": "HDD Path", + "description": "External HDD mount path (e.g., /mnt/hdd_1)", + "default": "/mnt/hdd_1" + }, + { + "name": "DB_PASSWORD", + "label": "Database Password", + "description": "PostgreSQL password. Use a strong random password." + } + ] + }, + { + "type": 3, + "title": "Mealie", + "description": "Recipe manager and meal planner. Save recipes from the web, plan meals, and generate shopping lists.", + "categories": ["productivity"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/mealie-recipes/mealie/mealie-next/frontend/static/icons/android-chrome-512x512.png", + "note": "First-time setup: Default login: changeme@example.com / MyPassword — change immediately!
Access: https://recipes.<DOMAIN>", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/mealie/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + } + ] + }, + { + "type": 3, + "title": "Paperless-ngx", + "description": "Document management system with OCR. Scan, index, and archive paper documents digitally. Supports Hungarian + English OCR.", + "categories": ["documents", "productivity"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/dev/resources/logo/web/svg/Color%20logo%20-%20no%20background.svg", + "note": "First-time setup: Admin is auto-created if PAPERLESS_ADMIN_USER/PASSWORD env vars are set.
Access: https://paperless.<DOMAIN>
Includes: PostgreSQL + Redis
Storage: Documents stored at HDD_PATH/storage/paperless/", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/paperless-ngx/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "HDD_PATH", + "label": "HDD Path", + "description": "External HDD mount path (e.g., /mnt/hdd_1)", + "default": "/mnt/hdd_1" + }, + { + "name": "PAPERLESS_SECRET_KEY", + "label": "Secret Key", + "description": "Random secret key. Generate with: openssl rand -hex 32" + }, + { + "name": "DB_PASSWORD", + "label": "Database Password", + "description": "PostgreSQL password. Use a strong random password." + }, + { + "name": "PAPERLESS_ADMIN_USER", + "label": "Admin Username", + "description": "Initial admin username", + "default": "admin" + }, + { + "name": "PAPERLESS_ADMIN_PASSWORD", + "label": "Admin Password", + "description": "Initial admin password. Change after first login." + } + ] + }, + { + "type": 3, + "title": "ROMM", + "description": "ROM manager for game libraries. Organize, browse, and manage retro game collections with metadata from IGDB.", + "categories": ["media", "gaming"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/rommapp/romm/release/frontend/assets/isotipo.svg", + "note": "First-time setup: Default login: admin / admin — change immediately!
Access: https://arcade.<DOMAIN>
Includes: MariaDB + Redis
Storage: ROMs at HDD_PATH/storage/romm/library/", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/romm/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "HDD_PATH", + "label": "HDD Path", + "description": "External HDD mount path (e.g., /mnt/hdd_1)", + "default": "/mnt/hdd_1" + }, + { + "name": "DB_PASSWORD", + "label": "Database Password", + "description": "MariaDB user password. Use a strong random password." + }, + { + "name": "MYSQL_ROOT_PASSWORD", + "label": "MySQL Root Password", + "description": "MariaDB root password. Use a strong random password." + }, + { + "name": "ROMM_AUTH_SECRET_KEY", + "label": "Auth Secret", + "description": "Authentication secret. Generate with: openssl rand -hex 32" + }, + { + "name": "IGDB_CLIENT_ID", + "label": "IGDB Client ID", + "description": "IGDB API client ID for game metadata (optional)" + }, + { + "name": "IGDB_CLIENT_SECRET", + "label": "IGDB Client Secret", + "description": "IGDB API client secret (optional)" + }, + { + "name": "STEAMGRIDDB_API_KEY", + "label": "SteamGridDB API Key", + "description": "SteamGridDB API key for cover art (optional)" + } + ] + }, + { + "type": 3, + "title": "Stirling-PDF", + "description": "PDF manipulation toolkit. Merge, split, convert, compress, and edit PDFs — all locally, no cloud upload.", + "categories": ["tools", "productivity"], + "platform": "linux", + "logo": "https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/main/docs/stirling.png", + "note": "First-time setup: No login required by default. Enable via env vars if exposing externally.
Access: https://pdf.<DOMAIN>", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/stirling-pdf/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + } + ] + }, + { + "type": 3, + "title": "Vaultwarden", + "description": "Password manager (Bitwarden-compatible). Store and sync passwords across all devices with browser extensions and mobile apps.", + "categories": ["security"], + "platform": "linux", + "logo": "https://cdn.simpleicons.org/bitwarden/175DDC", + "note": "First-time setup:
  1. Visit https://vault.<DOMAIN> and create an account
  2. Set SIGNUPS_ALLOWED=false in env vars
  3. Redeploy stack
Access: https://vault.<DOMAIN>
Admin panel: https://vault.<DOMAIN>/admin (if ADMIN_TOKEN set)
Clients: Use any Bitwarden app — set server URL to https://vault.<DOMAIN>", + "repository": { + "url": "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu", + "stackfile": "templates/vaultwarden/docker-compose.yml" + }, + "env": [ + { + "name": "DOMAIN", + "label": "Domain", + "description": "Your server domain (e.g., demo-felhom.eu)" + }, + { + "name": "ADMIN_TOKEN", + "label": "Admin Token", + "description": "Admin panel token (optional). Generate with: openssl rand -hex 32" + }, + { + "name": "SIGNUPS_ALLOWED", + "label": "Allow Signups", + "description": "Allow new account registration. Set to 'false' after creating your account(s).", + "default": "true", + "select": [ + { "text": "Yes — allow new registrations", "value": "true", "default": true }, + { "text": "No — registration closed", "value": "false" } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/templates/actualbudget/docker-compose.yml b/templates/actualbudget/docker-compose.yml index 0b4f6a9..6797dfc 100644 --- a/templates/actualbudget/docker-compose.yml +++ b/templates/actualbudget/docker-compose.yml @@ -1,10 +1,10 @@ # ActualBudget - Personal Finance / Budgeting -# Domain: budget.{{DOMAIN}} +# Domain: budget.${DOMAIN} # Database: None (file-based) # RAM: ~50MB | Pi-compatible: Yes # # Environment variables (set in Portainer): -# (none required — app is self-contained) +# DOMAIN - Your domain (e.g., demo-felhom.eu) # # First-time setup: # Create a password on first visit, no default credentials. @@ -28,7 +28,7 @@ services: start_period: 10s labels: - "traefik.enable=true" - - "traefik.http.routers.actualbudget.rule=Host(`budget.{{DOMAIN}}`)" + - "traefik.http.routers.actualbudget.rule=Host(`budget.${DOMAIN}`)" - "traefik.http.routers.actualbudget.entrypoints=websecure" - "traefik.http.routers.actualbudget.tls=true" - "traefik.http.routers.actualbudget.tls.certresolver=letsencrypt" diff --git a/templates/docmost/docker-compose.yml b/templates/docmost/docker-compose.yml index 3826ab9..80cf922 100644 --- a/templates/docmost/docker-compose.yml +++ b/templates/docmost/docker-compose.yml @@ -1,11 +1,12 @@ # Docmost - Modern Wiki / Documentation (Notion-like) -# Domain: docs.{{DOMAIN}} +# Domain: docs.${DOMAIN} # Database: PostgreSQL + Redis # RAM: ~200MB | Pi-compatible: Heavy but possible # # Environment variables (set in Portainer): -# APP_SECRET - Random secret for session signing (required, generate with: openssl rand -hex 32) -# DB_PASSWORD - PostgreSQL password (required) +# DOMAIN - Your domain (e.g., demo-felhom.eu) +# APP_SECRET - Random secret for session signing (generate with: openssl rand -hex 32) +# DB_PASSWORD - PostgreSQL password # # First-time setup: # First registered user becomes admin. @@ -24,7 +25,7 @@ services: - APP_SECRET=${APP_SECRET} - DATABASE_URL=postgresql://docmost:${DB_PASSWORD}@docmost-postgres:5432/docmost - REDIS_URL=redis://docmost-redis:6379 - - APP_URL=https://docs.{{DOMAIN}} + - APP_URL=https://docs.${DOMAIN} - STORAGE_DRIVER=local - FILE_UPLOAD_SIZE_LIMIT=50mb volumes: @@ -40,7 +41,7 @@ services: start_period: 30s labels: - "traefik.enable=true" - - "traefik.http.routers.docmost.rule=Host(`docs.{{DOMAIN}}`)" + - "traefik.http.routers.docmost.rule=Host(`docs.${DOMAIN}`)" - "traefik.http.routers.docmost.entrypoints=websecure" - "traefik.http.routers.docmost.tls=true" - "traefik.http.routers.docmost.tls.certresolver=letsencrypt" diff --git a/templates/filebrowser/docker-compose.yml b/templates/filebrowser/docker-compose.yml index e81dcc2..a7bdf44 100644 --- a/templates/filebrowser/docker-compose.yml +++ b/templates/filebrowser/docker-compose.yml @@ -1,14 +1,15 @@ # FileBrowser - Simple Web File Manager -# Domain: files.{{DOMAIN}} +# Domain: files.${DOMAIN} # Database: None (file-based) # RAM: ~30MB | Pi-compatible: Yes # # Environment variables (set in Portainer): -# (none required) +# DOMAIN - Your domain (e.g., demo-felhom.eu) +# HDD_PATH - HDD mount path (e.g., /mnt/hdd_1) # # Storage layout: -# Browsable files → {{HDD_PATH}}/storage/filebrowser (HDD, host path — user files only) -# App config/DB → filebrowser_config (named volume, NVMe) +# Browsable files → ${HDD_PATH}/storage/filebrowser (HDD, host path — user files only) +# App config/DB → filebrowser_config (named volume, NVMe) # # First-time setup: # Default login: admin / admin — change immediately! @@ -23,7 +24,7 @@ services: - PUID=1000 - PGID=1000 volumes: - - {{HDD_PATH}}/storage/filebrowser:/srv + - ${HDD_PATH}/storage/filebrowser:/srv - filebrowser_config:/database networks: - traefik-public @@ -35,7 +36,7 @@ services: start_period: 10s labels: - "traefik.enable=true" - - "traefik.http.routers.filebrowser.rule=Host(`files.{{DOMAIN}}`)" + - "traefik.http.routers.filebrowser.rule=Host(`files.${DOMAIN}`)" - "traefik.http.routers.filebrowser.entrypoints=websecure" - "traefik.http.routers.filebrowser.tls=true" - "traefik.http.routers.filebrowser.tls.certresolver=letsencrypt" diff --git a/templates/immich/docker-compose.yml b/templates/immich/docker-compose.yml index 31d704d..bc12135 100644 --- a/templates/immich/docker-compose.yml +++ b/templates/immich/docker-compose.yml @@ -1,16 +1,18 @@ # Immich - Self-hosted Photo & Video Management -# Domain: photos.{{DOMAIN}} +# Domain: photos.${DOMAIN} # Database: PostgreSQL (with VectorChord) + Redis # RAM: ~4GB minimum | Pi-compatible: No (ML too heavy) # # Environment variables (set in Portainer): -# DB_PASSWORD - PostgreSQL password (required) +# DOMAIN - Your domain (e.g., demo-felhom.eu) +# HDD_PATH - HDD mount path (e.g., /mnt/hdd_1) +# DB_PASSWORD - PostgreSQL password # # Storage layout: -# User photos/videos → {{HDD_PATH}}/storage/immich (HDD, host path) -# PostgreSQL data → immich_postgres_data (named volume, NVMe) -# ML model cache → immich_ml_cache (named volume, NVMe) -# Redis data → immich_redis_data (named volume, NVMe) +# User photos/videos → ${HDD_PATH}/storage/immich (HDD, host path) +# PostgreSQL data → immich_postgres_data (named volume, NVMe) +# ML model cache → immich_ml_cache (named volume, NVMe) +# Redis data → immich_redis_data (named volume, NVMe) # # First-time setup: # Create admin account on first visit. @@ -34,7 +36,7 @@ services: - IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 - TZ=Europe/Budapest volumes: - - {{HDD_PATH}}/storage/immich:/usr/src/app/upload + - ${HDD_PATH}/storage/immich:/usr/src/app/upload networks: - traefik-public - immich-internal @@ -46,7 +48,7 @@ services: start_period: 60s labels: - "traefik.enable=true" - - "traefik.http.routers.immich.rule=Host(`photos.{{DOMAIN}}`)" + - "traefik.http.routers.immich.rule=Host(`photos.${DOMAIN}`)" - "traefik.http.routers.immich.entrypoints=websecure" - "traefik.http.routers.immich.tls=true" - "traefik.http.routers.immich.tls.certresolver=letsencrypt" diff --git a/templates/paperless-ngx/docker-compose.yml b/templates/paperless-ngx/docker-compose.yml index fddfe09..c26846f 100644 --- a/templates/paperless-ngx/docker-compose.yml +++ b/templates/paperless-ngx/docker-compose.yml @@ -1,21 +1,23 @@ # Paperless-ngx - Document Management System (DMS) -# Domain: docs.{{DOMAIN}} +# Domain: paperless.${DOMAIN} # Database: PostgreSQL + Redis # RAM: ~500MB (more with OCR/Tika) | Pi-compatible: Yes (arm64, 4GB+ RAM recommended) # # Environment variables (set in Portainer): -# PAPERLESS_SECRET_KEY - Random secret (required, generate with: openssl rand -hex 32) -# DB_PASSWORD - PostgreSQL password (required) -# PAPERLESS_ADMIN_USER - Initial admin username (optional, default: admin) -# PAPERLESS_ADMIN_PASSWORD - Initial admin password (optional) +# DOMAIN - Your domain (e.g., demo-felhom.eu) +# HDD_PATH - HDD mount path (e.g., /mnt/hdd_1) +# PAPERLESS_SECRET_KEY - Random secret (generate with: openssl rand -hex 32) +# DB_PASSWORD - PostgreSQL password +# PAPERLESS_ADMIN_USER - Initial admin username (default: admin) +# PAPERLESS_ADMIN_PASSWORD - Initial admin password # # Storage layout: -# Consume folder → {{HDD_PATH}}/storage/paperless/consume (HDD, drop files here) -# Document media → {{HDD_PATH}}/storage/paperless/media (HDD, originals + archive) -# Export folder → {{HDD_PATH}}/storage/paperless/export (HDD, for backups) -# App data/index → paperless_data (named volume, NVMe) -# PostgreSQL data → paperless_postgres_data (named volume, NVMe) -# Redis data → paperless_redis_data (named volume, NVMe) +# Consume folder → ${HDD_PATH}/storage/paperless/consume (HDD, drop files here) +# Document media → ${HDD_PATH}/storage/paperless/media (HDD, originals + archive) +# Export folder → ${HDD_PATH}/storage/paperless/export (HDD, for backups) +# App data/index → paperless_data (named volume, NVMe) +# PostgreSQL data → paperless_postgres_data (named volume, NVMe) +# Redis data → paperless_redis_data (named volume, NVMe) # # First-time setup: # If PAPERLESS_ADMIN_USER/PASSWORD env vars are set, admin is auto-created. @@ -38,7 +40,7 @@ services: - PAPERLESS_DBPASS=${DB_PASSWORD} - PAPERLESS_DBNAME=paperless - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY} - - PAPERLESS_URL=https://paperless.{{DOMAIN}} + - PAPERLESS_URL=https://paperless.${DOMAIN} - PAPERLESS_TIME_ZONE=Europe/Budapest - PAPERLESS_OCR_LANGUAGE=hun+eng - PAPERLESS_ADMIN_USER=${PAPERLESS_ADMIN_USER:-} @@ -50,9 +52,9 @@ services: - USERMAP_GID=1000 volumes: - paperless_data:/usr/src/paperless/data - - {{HDD_PATH}}/storage/paperless/media:/usr/src/paperless/media - - {{HDD_PATH}}/storage/paperless/consume:/usr/src/paperless/consume - - {{HDD_PATH}}/storage/paperless/export:/usr/src/paperless/export + - ${HDD_PATH}/storage/paperless/media:/usr/src/paperless/media + - ${HDD_PATH}/storage/paperless/consume:/usr/src/paperless/consume + - ${HDD_PATH}/storage/paperless/export:/usr/src/paperless/export networks: - traefik-public - paperless-internal @@ -64,7 +66,7 @@ services: start_period: 60s labels: - "traefik.enable=true" - - "traefik.http.routers.paperless.rule=Host(`paperless.{{DOMAIN}}`)" + - "traefik.http.routers.paperless.rule=Host(`paperless.${DOMAIN}`)" - "traefik.http.routers.paperless.entrypoints=websecure" - "traefik.http.routers.paperless.tls=true" - "traefik.http.routers.paperless.tls.certresolver=letsencrypt" diff --git a/templates/vaultwarden/docker-compose.yml b/templates/vaultwarden/docker-compose.yml index 3c6f358..7ec4d77 100644 --- a/templates/vaultwarden/docker-compose.yml +++ b/templates/vaultwarden/docker-compose.yml @@ -1,21 +1,22 @@ # Vaultwarden - Password Manager (Bitwarden-compatible) -# Domain: vault.{{DOMAIN}} +# Domain: vault.${DOMAIN} # Database: None (SQLite, built-in) # RAM: ~50MB | Pi-compatible: Yes # # Environment variables (set in Portainer): -# ADMIN_TOKEN - Admin panel token (optional but recommended, generate with: openssl rand -hex 32) -# SIGNUPS_ALLOWED - Set to "false" after creating your account(s) +# DOMAIN - Your domain (e.g., demo-felhom.eu) +# ADMIN_TOKEN - Admin panel token (optional, generate with: openssl rand -hex 32) +# SIGNUPS_ALLOWED - Set to "false" after creating your account(s) # # First-time setup: -# 1. Visit https://vault.{{DOMAIN}} and create an account +# 1. Visit https://vault.${DOMAIN} and create an account # 2. Set SIGNUPS_ALLOWED=false in Portainer env vars # 3. Redeploy stack -# 4. Admin panel at https://vault.{{DOMAIN}}/admin (if ADMIN_TOKEN set) +# 4. Admin panel at https://vault.${DOMAIN}/admin (if ADMIN_TOKEN set) # # Clients: # Use any Bitwarden client (desktop, mobile, browser extension) -# Set server URL to: https://vault.{{DOMAIN}} +# Set server URL to: https://vault.${DOMAIN} services: vaultwarden: @@ -23,7 +24,7 @@ services: container_name: vaultwarden restart: unless-stopped environment: - - DOMAIN=https://vault.{{DOMAIN}} + - DOMAIN=https://vault.${DOMAIN} - SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED:-true} - ADMIN_TOKEN=${ADMIN_TOKEN:-} - WEBSOCKET_ENABLED=true @@ -40,7 +41,7 @@ services: start_period: 10s labels: - "traefik.enable=true" - - "traefik.http.routers.vaultwarden.rule=Host(`vault.{{DOMAIN}}`)" + - "traefik.http.routers.vaultwarden.rule=Host(`vault.${DOMAIN}`)" - "traefik.http.routers.vaultwarden.entrypoints=websecure" - "traefik.http.routers.vaultwarden.tls=true" - "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"