docs: record TubeSync storage and migration state
All checks were successful
Build TubeSync image / container (push) Successful in 53s
All checks were successful
Build TubeSync image / container (push) Successful in 53s
This commit is contained in:
20
TODO.md
20
TODO.md
@@ -4,37 +4,37 @@ These tasks track the operational fixes identified while processing the large Tu
|
||||
|
||||
## Database and queue storage
|
||||
|
||||
- [ ] Migrate the TubeSync Django database from SQLite to the existing MariaDB service.
|
||||
- [x] Migrate the TubeSync Django database from SQLite to the existing MariaDB service.
|
||||
- MariaDB endpoint: `192.168.1.3:3306` from `nc-node1`.
|
||||
- Current server: MariaDB 11.4.5, `utf8mb4`.
|
||||
- Create a dedicated `tubesync` database and least-privilege user.
|
||||
- Production database is `tubesync` with dedicated `tubesync@192.168.1.21` credentials.
|
||||
- Store the connection string outside Git and set `DATABASE_CONNECTION=mysql://...` in deployment configuration.
|
||||
- Take a verified SQLite backup before migration.
|
||||
- Test export/import and Django migrations before switching production.
|
||||
- Verify row counts and application health after cutover.
|
||||
|
||||
- [ ] Move Huey SQLite queue files off NFS onto local ext4 storage on `nc-node1`.
|
||||
- Keep `/downloads` on NFS.
|
||||
- Bind-mount a local directory onto `/config/tasks`.
|
||||
- Stop TubeSync before copying the queue DB/WAL/SHM files.
|
||||
- Verify all four Huey consumers restart and queue counts are preserved.
|
||||
- [x] Keep all persistent TubeSync runtime state off `nc-node1` local ext4.
|
||||
- `/config`, `/config/tasks`, `/config/cache`, backups and secrets stay on `/data` (NFS).
|
||||
- `/downloads` stays on NFS.
|
||||
- Deno's transient compiler/module cache uses RAM via `DENO_DIR=/dev/shm/deno`.
|
||||
- No TubeSync queue/cache/migration data is bind-mounted from local ext4.
|
||||
|
||||
## Backlog cleanup
|
||||
|
||||
- [ ] Collapse duplicate `download_media_metadata` jobs conservatively.
|
||||
- [x] Collapse duplicate `download_media_metadata` jobs conservatively.
|
||||
- Current snapshot: ~19.9k metadata jobs represent only ~2.2k unique media IDs.
|
||||
- Keep at most one metadata job per media ID, preferring the highest-priority/latest viable task.
|
||||
- Back up the Huey limited-queue DB before modifying it.
|
||||
- Validate queue counts and sample task payloads before and after cleanup.
|
||||
|
||||
- [ ] Prevent the metadata queue from accumulating duplicate work again.
|
||||
- [x] Prevent the metadata queue from accumulating duplicate work again.
|
||||
- Review `remove_duplicates` behavior for metadata scheduling.
|
||||
- Add a regression test covering repeated scheduling for the same media ID.
|
||||
- Prefer deduplication at enqueue time rather than waiting until execution.
|
||||
|
||||
## YouTube challenge handling
|
||||
|
||||
- [ ] Start `bgutil-ytdlp-pot-provider` and `yt-cipher` automatically with TubeSync.
|
||||
- [x] Start `bgutil-ytdlp-pot-provider` and `yt-cipher` automatically with TubeSync.
|
||||
- Both services currently exist in s6 but are not part of the active `user` bundle.
|
||||
- Add the services to the appropriate s6 bundle/dependency graph in the fork.
|
||||
- Add a container-level health/smoke check for their local endpoints.
|
||||
|
||||
Reference in New Issue
Block a user