Current Work¶
DaCollector is past the initial server MVP conversion and is currently focused on first-install readiness. This page tracks the current engineering priorities for contributors.
Current Branch State¶
- The server defaults to container port
38111. - Docker Desktop local verification passed on default host port
38111. - The combined Docker build embeds the React WebUI and starts successfully with local build metadata.
- First-run setup completed in the local Docker container and
/api/v3/Init/StatusreachedState=Started. - Managed collections, Plex target APIs, generic media APIs, unmatched file review, provider match candidates, database backups, and exact/media duplicate review surfaces exist.
- Domain model names have been converted to
MediaSeries,MediaGroup, andMediaEpisodefor local DaCollector concepts.
Immediate Priorities¶
- Repeat Docker verification on the TrueNAS/Linux Docker host using default host port
38111. - Verify Plex connectivity from inside the Docker container with a host-reachable Plex URL and token.
- Run a collection preview/safe sync and Plex media duplicate review from Docker once Plex is reachable.
- Keep release/first-run docs aligned with the exact Docker command, port, and verification status.
- Continue Relay work after server first-install readiness is stable; current Relay image and per-item metadata work is still scaffold-level.
Docker WebUI Release Status¶
Status recorded 2026-05-14:
- Server packaging commit pushed:
8b6f11b8c87fd28caf9efb81e36134e0769a330c(Bundle updated WebUI into latest container image). - Server startup fix pushed:
b8bf0e496a4fbbb260974f3d7cd257ad84eb2d32(Allow startup without AniDB UDP jobs). - Current Server
mainobserved after a follow-up push:af2f2436b7b0dee65b13a594e4b6cbf2b001f792. - WebUI commit pushed:
d8629ec1f423e332495fecce7a9e431ba5a7d7bc(Trigger server image rebuild after WebUI build). - WebUI CI run: https://github.com/Iranman/DaCollector-WebUI/actions/runs/25884566213. Checkout, install, and build passed;
Dispatch server Docker image buildfailed becauseDACOLLECTOR_SERVER_DISPATCH_TOKENwas missing or inaccessible. - Server unit-test runs passed for
8b6f11b,b8bf0e4, andaf2f243. - Server GHCR runs passed:
- https://github.com/Iranman/DaCollector/actions/runs/25884513329 (
8b6f11b) - https://github.com/Iranman/DaCollector/actions/runs/25885872189 (
b8bf0e4) - https://github.com/Iranman/DaCollector/actions/runs/25885888318 (
af2f243) - Latest image verified locally:
ghcr.io/iranman/dacollector@sha256:49e27538144dc8e89d5a1999170dbbbe3d73647e48151346e4003f2fda84273d, created2026-05-14T21:11:43Z. - Compose pull/up verification passed locally with
docker-compose.yml; container reachedhealthy,/webuireturned HTTP 200,/api/v3/Init/Statusreturned HTTP 200 in setup mode, and/app/webuiwas copied into/home/dacollector/.dacollector/DaCollector/webui. - Existing-install WebUI replacement was verified locally by changing installed
webui/version.jsonto an older metadata revision with the same semantic version and recreating the container; startup restored the bundled metadata. DACOLLECTOR_SERVER_DISPATCH_TOKENwas added toIranman/DaCollector-WebUIand verified by a successful WebUI dispatch after a permission correction. The PAT expiration is not visible from Actions or this checkout; track the renewal date in the GitHub token owner account or the repo maintenance notes.- WebUI dispatch verification commit pushed:
93d3f0a995996a19b9ba1b2dde30a9a02ff76a48(Retry WebUI dispatch after permission update). - WebUI CI dispatch run passed: https://github.com/Iranman/DaCollector-WebUI/actions/runs/25898228039.
- Server
repository_dispatchGHCR run passed: https://github.com/Iranman/DaCollector/actions/runs/25898239460. - Server metadata packaging fix pushed:
d715ff8c094190c61d7875206d37129a6208e683(Preserve WebUI build metadata in container image). - Server GHCR run for the metadata fix passed: https://github.com/Iranman/DaCollector/actions/runs/25898966060.
- Final latest image verified locally:
ghcr.io/iranman/dacollector@sha256:1eb3de57dd111cb857806fb84dce71d241418632120c2d1f88cb8e14e2c78c45, created2026-05-15T03:43:19Z. - Final image
/app/webui/version.jsonand installed/home/dacollector/.dacollector/DaCollector/webui/version.jsonboth reported WebUI git93d3f0a995996a19b9ba1b2dde30a9a02ff76a48, package1.0.0, minimum server0.0.1, and channelStable. - Final compose pull/up verification passed locally with
docker-compose.yml; container reachedhealthy,/webuireturned HTTP 200, and/api/v3/Init/Statusreturned HTTP 200.
Migration Rules¶
- Do not edit historical database migration commands to use new names.
- Add new migration steps at the end of each backend's command list.
- Keep provider names such as
AniDB_Anime,AniDB_Episode,TMDB_Show, andTVDB_Showwhen referring to external provider cache rows. - Use
MediaSeries,MediaGroup, andMediaEpisodefor DaCollector's local domain in new code and docs. - Keep legacy v1 DTO names such as
CL_AnimeSeries_Userunless intentionally versioning the API.
Validation¶
The repo currently expects .NET SDK 10.0.203 from global.json.
After the SDK is available, run:
dotnet build DaCollector.sln --no-restore
dotnet test DaCollector.Tests/DaCollector.Tests.csproj --no-restore
dotnet test DaCollector.IntegrationTests/DaCollector.IntegrationTests.csproj --no-restore
git diff --check daccollector/main..HEAD
For Docker startup verification on the default local port:
docker compose -f compose.yaml up -d --build --force-recreate
.\scripts\verify-install.ps1 -Port 38111 -Docker
If local port 38111 is already in use by a debug server, stop that process or set DACOLLECTOR_PORT to an alternate host port before running Compose.
If restore is required:
dotnet restore DaCollector.sln
dotnet build DaCollector.sln
dotnet test DaCollector.Tests/DaCollector.Tests.csproj