diff --git a/README.md b/README.md index d395c6f..294c896 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,57 @@ app-catalog-felhom.eu/ <- This repo (source of truth) │ ├── actualbudget/ │ │ ├── docker-compose.yml │ │ └── .felhom.yml # App metadata for felhom-controller +│ ├── adventurelog/ +│ ├── audiobookshelf/ +│ ├── bentopdf/ +│ ├── bookstack/ +│ ├── calcom/ +│ ├── calibre-web/ +│ ├── claper/ +│ ├── code-server/ +│ ├── crafty-controller/ │ ├── docmost/ +│ ├── emby/ │ ├── filebrowser/ +│ ├── ghost/ +│ ├── gitea/ +│ ├── glance/ +│ ├── gokapi/ +│ ├── grafana/ +│ ├── gramps-web/ +│ ├── home-assistant/ │ ├── homebox/ +│ ├── homepage/ │ ├── immich/ +│ ├── jellyfin/ +│ ├── kimai/ +│ ├── komga/ │ ├── mealie/ +│ ├── n8n/ +│ ├── navidrome/ +│ ├── nextcloud/ +│ ├── onlyoffice/ +│ ├── opengist/ +│ ├── outline/ │ ├── paperless-ngx/ +│ ├── papra/ +│ ├── plant-it/ +│ ├── plex/ +│ ├── privatebin/ +│ ├── radarr/ +│ ├── rallly/ │ ├── romm/ -│ ├── stirling-pdf/ -│ └── vaultwarden/ +│ ├── seerr/ +│ ├── sonarr/ +│ ├── tandoor/ +│ ├── termix/ +│ ├── uptime-kuma/ +│ ├── vaultwarden/ +│ ├── vikunja/ +│ ├── wanderer/ +│ ├── wger/ +│ ├── wishlist/ +│ └── zipline/ └── scripts/ └── generate-customer.sh # LEGACY — generates customer-specific templates for Portainer ``` @@ -109,30 +151,114 @@ deploy_fields: | App | DB Type | RAM (request / limit) | Pi | HDD Data | Subdomain | |-----|---------|----------------------|-----|----------|-----------| | ActualBudget | None (file) | 50M / 256M | yes | -- | budget.* | +| AdventureLog | PostgreSQL | 100M / 384M | yes | -- | travel.* | +| Audiobookshelf | None (file) | 100M / 512M | yes | `${HDD_PATH}/media/audiobooks/` | audiobooks.* | +| BentoPDF | None (file) | 100M / 384M | yes | -- | pdf.* | +| BookStack | MariaDB | 150M / 512M | yes | -- | wiki.* | +| Cal.com | PostgreSQL | 200M / 768M | no | -- | cal.* | +| Calibre-Web Automated | None (file) | 200M / 768M | no | `${HDD_PATH}/media/books/` | books.* | +| Claper | PostgreSQL | 100M / 384M | yes | -- | present.* | +| Code-Server | None (file) | 200M / 1024M | no | -- | code.* | +| Crafty Controller | None (file) | 256M / 2048M | no | -- | minecraft.* | | Docmost | PostgreSQL + Redis | 200M / 768M | no | -- | docs.* | -| FileBrowser | None (file) | 30M / 128M | yes | `${HDD_PATH}/storage/filebrowser/` | files.* | +| Emby | None (file) | 512M / 2048M | no | `${HDD_PATH}/media/` | emby.* | +| FileBrowser Quantum | None (file) | 50M / 256M | yes | `${HDD_PATH}/storage/filebrowser/` | files.* | +| Ghost | SQLite | 150M / 512M | no | -- | blog.* | +| Gitea | SQLite | 100M / 512M | yes | -- | git.* | +| Glance | None (file) | 20M / 128M | yes | -- | dashboard.* | +| Gokapi | None (file) | 30M / 128M | yes | -- | share.* | +| Grafana | None (file) | 100M / 512M | yes | -- | grafana.* | +| Gramps Web | None (file) | 100M / 384M | yes | -- | family.* | +| Home Assistant | None (file) | 256M / 1024M | yes | -- | ha.* | | Homebox | None (SQLite) | 50M / 256M | yes | -- | inventory.* | +| Homepage | None (file) | 50M / 256M | yes | -- | home.* | | Immich | PostgreSQL + Redis | 2048M / 4096M | no | `${HDD_PATH}/storage/immich/` | photos.* | +| Jellyfin | None (file) | 512M / 2048M | no | `${HDD_PATH}/media/` | media.* | +| Kimai | MariaDB | 100M / 384M | yes | -- | time.* | +| Komga | None (file) | 200M / 512M | yes | `${HDD_PATH}/media/comics/` | comics.* | | Mealie | None (SQLite) | 200M / 1000M | yes | -- | recipes.* | +| n8n | None (file) | 150M / 512M | no | -- | auto.* | +| Navidrome | None (file) | 50M / 256M | yes | `${HDD_PATH}/media/music/` | music.* | +| Nextcloud | MariaDB + Redis | 256M / 1024M | no | `${HDD_PATH}/storage/nextcloud/` | cloud.* | +| OnlyOffice | None (file) | 512M / 2048M | no | -- | office.* | +| OpenGist | None (file) | 30M / 128M | yes | -- | gist.* | +| Outline | PostgreSQL + Redis | 200M / 768M | no | -- | kb.* | | Paperless-ngx | PostgreSQL + Redis | 500M / 1152M | yes | `${HDD_PATH}/storage/paperless/` | paperless.* | -| ROMM | MariaDB + Redis | 300M / 1024M | no | `${HDD_PATH}/storage/romm/` | arcade.* | -| Stirling-PDF | None | 200M / 512M | yes | -- | pdf.* | +| Papra | None (file) | 50M / 256M | yes | -- | papra.* | +| Plant-it | None (file) | 50M / 256M | yes | -- | plants.* | +| Plex | None (file) | 512M / 2048M | no | `${HDD_PATH}/media/` | plex.* | +| PrivateBin | None (file) | 30M / 128M | yes | -- | paste.* | +| Radarr | None (file) | 150M / 512M | yes | `${HDD_PATH}/media/` | radarr.* | +| Rallly | PostgreSQL | 50M / 256M | yes | -- | poll.* | +| RomM | MariaDB + Redis | 300M / 1024M | no | `${HDD_PATH}/storage/romm/` | arcade.* | +| Jellyseerr | None (file) | 100M / 384M | yes | -- | requests.* | +| Sonarr | None (file) | 150M / 512M | yes | `${HDD_PATH}/media/` | sonarr.* | +| Tandoor Recipes | PostgreSQL | 150M / 512M | yes | -- | recipes.* | +| Termix | None (file) | 30M / 128M | yes | -- | terminal.* | +| Uptime Kuma | None (file) | 50M / 256M | yes | -- | status.* | | Vaultwarden | None (SQLite) | 50M / 256M | yes | -- | vault.* | +| Vikunja | None (file) | 50M / 256M | yes | -- | tasks.* | +| Wanderer | None (file) | 100M / 384M | yes | -- | hike.* | +| wger | SQLite | 100M / 384M | yes | -- | fitness.* | +| Wishlist | None (file) | 30M / 128M | yes | -- | wishes.* | +| Zipline | PostgreSQL | 100M / 512M | no | -- | img.* | ### Variable types per app | App | DOMAIN | HDD_PATH | Secrets | |-----|:------:|:--------:|---------| | ActualBudget | yes | -- | -- | +| AdventureLog | yes | -- | SECRET_KEY, DB_PASSWORD | +| Audiobookshelf | yes | yes | -- | +| BentoPDF | yes | -- | -- | +| BookStack | yes | -- | DB_PASSWORD | +| Cal.com | yes | -- | NEXTAUTH_SECRET, CALENDSO_ENCRYPTION_KEY, DB_PASSWORD | +| Calibre-Web Automated | yes | yes | -- | +| Claper | yes | -- | SECRET_KEY_BASE, DB_PASSWORD | +| Code-Server | yes | -- | PASSWORD | +| Crafty Controller | yes | -- | -- | | Docmost | yes | -- | APP_SECRET, DB_PASSWORD | -| FileBrowser | yes | yes | -- | +| Emby | yes | yes | -- | +| FileBrowser Quantum | yes | yes | -- | +| Ghost | yes | -- | -- | +| Gitea | yes | -- | -- | +| Glance | yes | -- | -- | +| Gokapi | yes | -- | -- | +| Grafana | yes | -- | GF_SECURITY_ADMIN_PASSWORD | +| Gramps Web | yes | -- | GRAMPSWEB_SECRET_KEY | +| Home Assistant | yes | -- | -- | | Homebox | yes | -- | -- | +| Homepage | yes | -- | -- | | Immich | yes | yes | DB_PASSWORD | +| Jellyfin | yes | yes | -- | +| Kimai | yes | -- | DB_PASSWORD, ADMIN_EMAIL, ADMIN_PASSWORD | +| Komga | yes | yes | -- | | Mealie | yes | -- | -- | +| n8n | yes | -- | N8N_ENCRYPTION_KEY | +| Navidrome | yes | yes | -- | +| Nextcloud | yes | yes | DB_PASSWORD, MYSQL_ROOT_PASSWORD, NEXTCLOUD_ADMIN_USER, NEXTCLOUD_ADMIN_PASSWORD | +| OnlyOffice | yes | -- | JWT_SECRET | +| OpenGist | yes | -- | -- | +| Outline | yes | -- | SECRET_KEY, UTILS_SECRET, DB_PASSWORD | | Paperless-ngx | yes | yes | PAPERLESS_SECRET_KEY, DB_PASSWORD, PAPERLESS_ADMIN_USER, PAPERLESS_ADMIN_PASSWORD | -| ROMM | yes | yes | DB_PASSWORD, MYSQL_ROOT_PASSWORD, ROMM_AUTH_SECRET_KEY | -| Stirling-PDF | yes | -- | -- | +| Papra | yes | -- | -- | +| Plant-it | yes | -- | JWT_SECRET | +| Plex | yes | yes | PLEX_CLAIM | +| PrivateBin | yes | -- | -- | +| Radarr | yes | yes | -- | +| Rallly | yes | -- | SECRET_PASSWORD, DB_PASSWORD | +| RomM | yes | yes | DB_PASSWORD, MYSQL_ROOT_PASSWORD, ROMM_AUTH_SECRET_KEY | +| Jellyseerr | yes | -- | -- | +| Sonarr | yes | yes | -- | +| Tandoor Recipes | yes | -- | SECRET_KEY, DB_PASSWORD | +| Termix | yes | -- | -- | +| Uptime Kuma | yes | -- | -- | | Vaultwarden | yes | -- | ADMIN_TOKEN | +| Vikunja | yes | -- | VIKUNJA_SERVICE_JWTSECRET | +| Wanderer | yes | -- | MEILI_MASTER_KEY | +| wger | yes | -- | SECRET_KEY | +| Wishlist | yes | -- | -- | +| Zipline | yes | -- | CORE_SECRET, DB_PASSWORD | ### Storage strategy diff --git a/templates/bentopdf/.felhom.yml b/templates/bentopdf/.felhom.yml index 06bf523..f173df1 100644 --- a/templates/bentopdf/.felhom.yml +++ b/templates/bentopdf/.felhom.yml @@ -6,7 +6,7 @@ display_name: "BentoPDF" description: "Adatvédelmi fókuszú PDF eszköztár" category: "tools" -subdomain: "bento" +subdomain: "pdf" slug: "bentopdf" # --- Resource hints (displayed on deploy screen) --- diff --git a/templates/bentopdf/docker-compose.yml b/templates/bentopdf/docker-compose.yml index ea17ab0..5e63748 100644 --- a/templates/bentopdf/docker-compose.yml +++ b/templates/bentopdf/docker-compose.yml @@ -1,5 +1,5 @@ # BentoPDF - Adatvédelmi fókuszú PDF eszköztár -# Domain: bento.${DOMAIN} +# Domain: pdf.${DOMAIN} # Database: None (file-based) # RAM: ~100M (mem_limit: 384M) | Pi-compatible: Yes # @@ -27,7 +27,7 @@ services: start_period: 30s labels: - "traefik.enable=true" - - "traefik.http.routers.bentopdf.rule=Host(`bento.${DOMAIN}`)" + - "traefik.http.routers.bentopdf.rule=Host(`pdf.${DOMAIN}`)" - "traefik.http.routers.bentopdf.entrypoints=websecure" - "traefik.http.routers.bentopdf.tls=true" - "traefik.http.routers.bentopdf.tls.certresolver=letsencrypt" diff --git a/templates/calibre-web/.felhom.yml b/templates/calibre-web/.felhom.yml index aa448b0..546df2a 100644 --- a/templates/calibre-web/.felhom.yml +++ b/templates/calibre-web/.felhom.yml @@ -3,17 +3,17 @@ # ============================================================================= # --- Display info (shown on dashboard) --- -display_name: "Calibre-web" -description: "Webes felület a Calibre e-könyv könyvtáradhoz" +display_name: "Calibre-Web Automated" +description: "Automatizált e-könyv könyvtár - konvertálás, metaadat kezelés és webes olvasó" category: "media" subdomain: "books" slug: "calibre-web" # --- Resource hints (displayed on deploy screen) --- resources: - mem_request: "50M" - mem_limit: "256M" - pi_compatible: true + mem_request: "200M" + mem_limit: "768M" + pi_compatible: false needs_hdd: true # --- Deploy fields (first deployment only) --- @@ -34,24 +34,24 @@ deploy_fields: # --- App info (info page content) --- app_info: - tagline: "E-könyv könyvtár webes felülettel és e-olvasó küldéssel" + tagline: 'Automatizált e-könyv könyvtár - könyvfeldolgozás, formátumkonverzió és OPDS feed' default_creds: "admin / admin123" - docs_url: "https://github.com/janeczku/calibre-web/wiki" + docs_url: "https://github.com/crocodilestick/Calibre-Web-Automated/wiki" use_cases: - - 'E-könyvek böngészése és letöltése webes felületen' - - 'Küldés közvetlenül Kindle-re vagy más e-olvasóra' - - 'Több felhasználó külön könyvtárral és jogosultságokkal' - - 'On-the-fly formátum konvertálás (EPUB, MOBI, PDF)' - - 'OPDS feed kompatibilis e-olvasó alkalmazásokhoz' + - 'Automatizált e-könyv feldolgozás - csak dobd be az ingest mappába' + - 'Automatikus formátumkonverzió (EPUB, MOBI, PDF, AZW3)' + - 'OPDS feed e-olvasókhoz (Kindle, KOReader, Moon+ Reader)' + - 'Webes olvasó böngészőben' + - 'KOReader szinkronizáció (olvasási pozíció, könyvjelzők)' first_steps: - 'Nyisd meg a books.DOMAIN címet a böngészőben' - 'Jelentkezz be: admin / admin123' - 'Változtasd meg azonnal a jelszót' - - 'Állítsd be a Calibre könyvtár útvonalat (/books)' - - 'Töltsd fel az e-könyveidet vagy másold a könyvtárba' + - 'Dobj egy könyvet az ingest mappába - automatikusan feldolgozza' prerequisites: - 'Külső HDD szükséges az e-könyvek tárolásához' - - 'Calibre könyvtár (metadata.db) ajánlott a legjobb élményhez' + - 'x86 processzor szükséges (a CWA tartalmazza a Calibre binárist)' + - 'Legalább 768 MB szabad RAM ajánlott' diff --git a/templates/calibre-web/docker-compose.yml b/templates/calibre-web/docker-compose.yml index 55030a8..17ffcfd 100644 --- a/templates/calibre-web/docker-compose.yml +++ b/templates/calibre-web/docker-compose.yml @@ -1,15 +1,23 @@ -# Calibre-web - Webes felület a Calibre e-könyv könyvtáradhoz +# Calibre-Web Automated - Automatizált e-könyv könyvtár # Domain: books.${DOMAIN} # Database: None (file-based) -# RAM: ~50M (mem_limit: 256M) | Pi-compatible: Yes +# RAM: ~200M (mem_limit: 768M) | Pi-compatible: No # # Environment variables: # DOMAIN - Your domain (e.g., demo-felhom.eu) # HDD_PATH - E-könyvtár útvonal +# +# Storage layout: +# App config/DB → calibre_web_config (named volume, NVMe) +# Book ingest → ${HDD_PATH}/media/books/ingest (HDD, drop files here — processed and removed) +# Calibre library → ${HDD_PATH}/media/books/library (HDD, Calibre library storage) +# +# First-time setup: +# Default login: admin / admin123 — change immediately! services: calibre-web: - image: lscr.io/linuxserver/calibre-web:0.6.24 + image: crocodilestick/calibre-web-automated:latest container_name: calibre-web restart: unless-stopped environment: @@ -18,13 +26,14 @@ services: - PGID=1000 volumes: - calibre_web_config:/config - - ${HDD_PATH}/media/books:/books + - ${HDD_PATH}/media/books/ingest:/cwa-book-ingest + - ${HDD_PATH}/media/books/library:/calibre-library networks: - traefik-public deploy: resources: limits: - memory: 256M + memory: 768M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8083"] interval: 30s diff --git a/templates/filebrowser/.felhom.yml b/templates/filebrowser/.felhom.yml index 012bf69..b080cf9 100644 --- a/templates/filebrowser/.felhom.yml +++ b/templates/filebrowser/.felhom.yml @@ -1,14 +1,11 @@ # ============================================================================= # .felhom.yml — App metadata for felhom-controller # ============================================================================= -# Place alongside docker-compose.yml in each stack directory: -# /opt/docker/stacks/filebrowser/.felhom.yml -# ============================================================================= # --- Display info (shown on dashboard) --- -display_name: "FileBrowser" -description: "Egyszerű webes fájlkezelő" -category: "tools" +display_name: "FileBrowser Quantum" +description: "Modern webes fájlkezelő - valós idejű kereséssel és előnézettel" +category: "files" subdomain: "files" # --- Asset slug --- @@ -16,8 +13,8 @@ slug: "filebrowser" # --- Resource hints (displayed on deploy screen) --- resources: - mem_request: "30M" - mem_limit: "128M" + mem_request: "50M" + mem_limit: "256M" pi_compatible: true needs_hdd: true @@ -39,19 +36,19 @@ deploy_fields: # --- App info (info page content) --- app_info: - tagline: 'Egyszerű webes fájlkezelő - böngéssz, tölts fel és ossz meg fájlokat' - default_creds: 'admin / admin' - docs_url: 'https://filebrowser.org/' + tagline: 'Modern webes fájlkezelő - valós idejű keresés, fájlelőnézet és modern felület' + default_creds: "admin / admin" + docs_url: "https://filebrowserquantum.com/en/docs/" use_cases: - - 'Fájlok böngészése és kezelése webes felületen' - - 'Fájlok feltöltése és letöltése bárhonnan' + - 'Fájlok böngészése valós idejű kereséssel' - 'Fájlok és mappák megosztása linkkel' - - 'Beépített szöveg- és kódszerkesztő' - - 'Több felhasználó saját mappákkal és jogosultságokkal' + - 'Több tárolási forrás kezelése' + - 'Videó, kép és PDF előnézet a böngészőben' + - 'Több felhasználó saját jogosultságokkal és hozzáférés-vezérléssel' first_steps: - 'Nyisd meg a files.DOMAIN címet a böngészőben' - 'Jelentkezz be: admin / admin' - 'Változtasd meg azonnal a jelszót a beállításokban' - - 'Böngészd a fájlokat vagy tölts fel újakat' \ No newline at end of file + - 'Böngészd a fájlokat vagy tölts fel újakat' diff --git a/templates/filebrowser/docker-compose.yml b/templates/filebrowser/docker-compose.yml index 7e74487..596ac7e 100644 --- a/templates/filebrowser/docker-compose.yml +++ b/templates/filebrowser/docker-compose.yml @@ -1,7 +1,7 @@ -# FileBrowser - Simple Web File Manager +# FileBrowser Quantum - Modern Web File Manager # Domain: files.${DOMAIN} # Database: None (file-based) -# RAM: ~30MB (mem_limit: 128M) | Pi-compatible: Yes +# RAM: ~50M (mem_limit: 256M) | Pi-compatible: Yes # # Environment variables: # DOMAIN - Your domain (e.g., demo-felhom.eu) @@ -9,31 +9,29 @@ # # Storage layout: # Browsable files → ${HDD_PATH}/storage/filebrowser (HDD, host path — user files only) -# App config/DB → filebrowser_config (named volume, NVMe) +# App data/DB → filebrowser_data (named volume, NVMe) # # First-time setup: # Default login: admin / admin — change immediately! services: filebrowser: - image: filebrowser/filebrowser:v2.32.0 + image: gtstef/filebrowser:latest container_name: filebrowser restart: unless-stopped environment: - TZ=Europe/Budapest - - PUID=1000 - - PGID=1000 volumes: + - filebrowser_data:/home/filebrowser/data - ${HDD_PATH}/storage/filebrowser:/srv - - filebrowser_config:/database networks: - traefik-public deploy: resources: limits: - memory: 128M + memory: 256M healthcheck: - test: ["CMD", "wget", "--spider", "-q", "http://localhost:80/health"] + test: ["CMD", "wget", "--spider", "-q", "http://localhost:80"] interval: 30s timeout: 5s retries: 3 @@ -47,7 +45,7 @@ services: - "traefik.http.services.filebrowser.loadbalancer.server.port=80" volumes: - filebrowser_config: + filebrowser_data: networks: traefik-public: