How to deploy with Docker
This page runs alldayrec long-term with Docker Compose on a Linux or macOS machine. If you are new to it, go through Your first transcript first.
Version
docker-compose.yml uses the image ghcr.io/suyiiyii/alldayrec:latest by default, the newest version tag (v0.1.0 when this page was written); the main tag follows the main branch. To choose a version, see Pin an image version below.
Prerequisites
- Docker (with Compose), amd64 or arm64.
- An Alibaba Cloud Bailian API key, Beijing region, or a key for another ASR engine (see Change the ASR engine).
- An OpenAI-compatible LLM endpoint; with Bailian, the same key works.
Steps
Get the code and copy the config template:
bashgit clone https://github.com/suyiiyii/alldayrec && cd alldayrec cp .env.example .envEdit
.envand fill in at leastDASHSCOPE_API_KEYandLLM_API_KEY. With the LLM settings in.env.example(Bailian compatible mode,qwen-plus), put the same key in both. Every setting is in Configuration.Put each comment on a line of its own: Compose reads
VAR= # commentas the value# comment.Generate
data/tenants.json, which holds your token:bashmkdir -p data && echo '[{"id": "main", "token": "'$(openssl rand -hex 16)'", "data": "/data/main", "recordings": "/data/main/recordings"}]' > data/tenants.json && chmod 600 data/tenants.jsonStart it and watch the logs:
bashdocker compose up -d docker compose logs -fOnce the log shows
ready on 0.0.0.0:8770, the server is ready. The first start downloads the model files first (about 70 MB).Open
http://<server IP>:8770/?token=<your token>in a browser:127.0.0.1on this machine, this machine's LAN or Tailscale address from another computer. A cookie keeps you signed in after that.
docker-compose.yml publishes port 8770 on every interface of this machine, so a phone on the same LAN or Tailscale network can connect directly; see Reach the server from a phone. The token in data/tenants.json is the only lock, and the server refuses to start with an empty one. To keep it on this machine only, change the line under ports: to "127.0.0.1:8770:8770"; to reach it over the public internet, put a reverse proxy with TLS in front.
Common adjustments
The key gets 403 on the chat model
If this Bailian key is restricted to specific models in the console, calls to the chat model (qwen-plus) return 403. Use a key without a model restriction, or point LLM_* at another LLM service.
Time zone
The container uses UTC by default. .env.example has TZ=Asia/Shanghai: conversation dates and the daily recap time RECAP_AT follow this time zone. Delete that line to use UTC.
Pin an image version
Replace the tag on the image: line of docker-compose.yml with any of the tags below, then run docker compose up -d:
| Tag | What it is |
|---|---|
latest | The newest version tag (v*) |
0.1.0, 0.1 | One version, or the newest version of a minor series |
main | The latest build of the main branch |
sha-<7-character commit hash> | One commit on main, e.g. sha-1971bca |
.github/workflows/docker.yml publishes these tags.
Build the image locally
Uncomment the # build: . line in docker-compose.yml, then run:
docker compose up -d --buildWhere the data lives
All data is in ./data: tenants.json, the model files (data/models), and each person's database and original audio (data/main in the quickstart). The full layout is in Data layout; for backups, see Back up and restore.