Operations

Updating

Back up data, record the running image, then pull or rebuild without losing projects.

TraDoc stores projects, outputs and SQLite state under data/ (/app/data in the container). Back that directory up before every update. Never run docker compose down -v or delete ./data as part of a normal update.

Before every update

  • Export important work.
  • Back up data/.
  • Record the current commit or image digest.
  • Make sure no project is running.

Record a GHCR image

docker compose images
docker image inspect --format '{{.RepoDigests}}' ghcr.io/lucas-lepajollec/tradoc:latest

Keep that digest or the sha-<full-commit> tag. That is the rollback target.

Published image (docker-compose.yml)

docker compose pull
docker compose up -d
docker compose logs --tail 100 tradoc

Confirm /health, the provider connection, the project list and a small export.

To roll back:

Change the Compose image: line, then recreate:

image: ghcr.io/lucas-lepajollec/tradoc:sha-<full-commit>
docker compose up -d

Do not recreate a v1.0.0 tag to recover an old instance.

Local build

git pull --ff-only
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

The default Compose file pulls the published image. The explicit build override replaces it with tradoc:local for a source checkout.

Git checkout

git status --short
git pull --ff-only
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
npm --prefix web ci
npm --prefix web run build
.\.venv\Scripts\python.exe -m unittest discover -s tests -p "test_*.py"

Do not run git reset --hard to resolve local changes you do not understand. Back them up or inspect them before updating.

Afterward

Keep the previous backup until validation is complete.