updated templates for Portainer
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user