Server
amdl serve
The backend you deploy: one Go process with a SQLite database, a REST and Server-Sent Events API under /api/v1, and the web console on the same port. Images for amd64 and arm64 are on GHCR.
- Jobs survive a restart and pick up where they stopped.
- Downloads, decryption and wrapper calls share process-wide pools.
- No accounts or auth, on purpose: put a reverse proxy in front.
curl -X POST http://localhost:18080/api/v1/downloads \
-H 'Content-Type: application/json' \
-d '{"urls":["https://music.apple.com/us/album/1519740112"]}'
{"accepted":1,"rejected":0,"results":[{"status":"accepted","job":{"id":"job_4467…","status":"queued",…}}]}
curl -N http://localhost:18080/api/v1/downloads/{job_id}/events








