chore(release): v0.22.0 — Download Center worker/sidecar in all composes + docs
Prep the Download Center epic (Phase 1 + editor + share) for prod/self-host:
- Dockerfile: create /downloads owned by appuser so a named-volume mount is writable (prod Linux).
- docker-compose.{home,selfhost,yml}: add the 'worker' (yt-dlp/ffmpeg job loop) + 'bgutil-pot'
(PO-token) services + a downloads mount (DOWNLOAD_ROOT, WORKER_ENABLED). Media defaults to a
named volume; DOWNLOAD_HOST_PATH points it at a host dir (e.g. a Plex-readable folder).
- README / docs/self-hosting.md / .env.example / install.{sh,ps1}: document the Download Center,
the two extra containers, and DOWNLOAD_HOST_PATH.
- VERSION 0.22.0 + releaseNotes entry.
This commit is contained in:
parent
7ab76ccafb
commit
abedca5b8c
10 changed files with 154 additions and 4 deletions
|
|
@ -8,7 +8,9 @@ configured in a web wizard on first start. There's no editing of config files by
|
|||
|
||||
- A machine with **Docker** and the **Docker Compose plugin** (Docker Desktop on Windows/macOS,
|
||||
or Docker Engine on Linux).
|
||||
- A few hundred MB of disk and ~1 GB RAM free.
|
||||
- A few hundred MB of disk and ~1 GB RAM free for the app itself. The optional Download Center
|
||||
stores media too — budget disk for whatever you download (it's bounded by per-user quotas you
|
||||
set as admin).
|
||||
- Optional: a domain name + reverse proxy if you want HTTPS / public access (see below).
|
||||
|
||||
## 1. Get the files
|
||||
|
|
@ -77,6 +79,24 @@ public access, put a reverse proxy (Caddy, Nginx, Traefik…) in front to termin
|
|||
secure). If you've already run the installer, edit `OAUTH_REDIRECT_URL` in `.env` to the https
|
||||
callback URL and `docker compose -f docker-compose.selfhost.yml up -d`.
|
||||
|
||||
## Download Center (media storage)
|
||||
|
||||
The stack includes a **Download Center**: an admin-enabled feature that saves videos to the server
|
||||
with yt-dlp (Plex-friendly folders + `.nfo`/poster), lets users trim/crop/join clips, and shares
|
||||
them. It runs two extra containers that come up automatically — a `worker` (the download/edit job
|
||||
loop) and a small `bgutil-pot` sidecar (mints YouTube tokens so downloads aren't bot-blocked). No
|
||||
configuration is required; per-user storage quotas are set on the admin **Downloads → System** page.
|
||||
|
||||
By default the media lives in a Docker-managed volume (`siftlode_downloads`). To keep it somewhere
|
||||
you can reach from other apps — e.g. a folder your **Plex** server indexes — point it at a host
|
||||
directory by adding this to `.env` and re-running `up -d`:
|
||||
|
||||
```bash
|
||||
DOWNLOAD_HOST_PATH=/mnt/media/youtube
|
||||
```
|
||||
|
||||
The directory must be writable by the container user (uid `1000`): `sudo chown -R 1000:1000 <dir>`.
|
||||
|
||||
## Day-to-day
|
||||
|
||||
```bash
|
||||
|
|
@ -84,8 +104,9 @@ callback URL and `docker compose -f docker-compose.selfhost.yml up -d`.
|
|||
docker compose -f docker-compose.selfhost.yml pull
|
||||
docker compose -f docker-compose.selfhost.yml up -d
|
||||
|
||||
# Logs / status
|
||||
# Logs / status (api = web, worker = downloads/edits)
|
||||
docker compose -f docker-compose.selfhost.yml logs -f api
|
||||
docker compose -f docker-compose.selfhost.yml logs -f worker
|
||||
docker compose -f docker-compose.selfhost.yml ps
|
||||
|
||||
# Stop
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue