Files
app-catalog-felhom.eu/templates/metube/docker-compose.yml
T
admin 96829d0d0f
gates / gates (push) Successful in 3s
Grimmory and MeTube published behind the family gate (controller >= 0.287.0, decisions 63/64), with complete records
- family_gate / family_gate_except / min_controller format (README, REUSE); gate family-gate + decoys
- templates/grimmory (v3.5.0, exceptions OPDS/Kobo/KOReader/Komga) + onboarding/grimmory.md
- templates/metube (2026.09.29, no exceptions; ladder .28 -> .29) + onboarding/metube.md; fixture MeTube
- volume-persistence gate: routed port read from the label NAME (R-801, red-proofed); APP_EXERCISE (R-788)
- box_walk: family_cookie; no cached "not gated" while an app has no router

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-02 09:36:49 +02:00

60 lines
2.1 KiB
YAML

# MeTube - Videoletöltő (yt-dlp webes felülete): videók és hanganyagok letöltése a meghajtódra
# Domain: ${SUBDOMAIN}.${DOMAIN}
# Database: none (its queue and history are files in the state volume)
# RAM: ~150M idle, more while downloading (mem_limit: 768M) | Pi-compatible: Yes (amd64, arm64)
#
# MeTube has NO login of its own, by design. On Felhom it is published ONLY behind the family gate (`family_gate: true`,
# controller >= 0.287.0, `09` §3 decisions 63/64): a stranger reaches nothing, a family member signs in with their own
# name and password. No exceptions — every path, the websocket included, passes the gate.
#
# Environment variables:
# DOMAIN - Your domain (e.g., demo-felhom.eu)
# HDD_PATH - The drive the downloads go to
#
# Folders: the downloads in ${USERDATA_PATH}/media/metube (the household sees them in the file browser); the queue and
# history in the named volume metube_state (NVMe). ALLOW_PRIVATE_ADDRESSES stays false (upstream default): MeTube will
# not fetch from the household's own network.
services:
metube:
image: ghcr.io/alexta69/metube:2026.09.29
container_name: metube
restart: unless-stopped
environment:
- TZ=Europe/Budapest
- PUID=1000
- PGID=1000
- DOWNLOAD_DIR=/downloads
- STATE_DIR=/state
- MAX_CONCURRENT_DOWNLOADS=2
- ALLOW_PRIVATE_ADDRESSES=false
volumes:
- ${USERDATA_PATH}/media/metube:/downloads
- metube_state:/state
networks:
- traefik-public
deploy:
resources:
limits:
memory: 768M
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8081/"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
labels:
- "traefik.enable=true"
- "traefik.http.routers.metube.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.metube.entrypoints=websecure"
- "traefik.http.routers.metube.tls=true"
- "traefik.http.routers.metube.tls.certresolver=letsencrypt"
- "traefik.http.services.metube.loadbalancer.server.port=8081"
volumes:
metube_state:
networks:
traefik-public:
external: true