nia-todoDocs
Menu

nia-todo documentation

Install with Docker

Run nia-todo as one container with a persistent volume using Docker Compose or docker run.

Docker is the recommended installation method for most self-hosters. The published image contains the FastAPI server, web app and matching native-client downloads.

Docker Compose

Create compose.yml:

services:
  nia-todo:
    image: docker.io/weedpump/nia-todo:latest
    container_name: nia-todo
    restart: unless-stopped
    ports:
      - "8753:8753"
    environment:
      NIA_TODO_HOST: auto
      NIA_TODO_PORT: 8753
      NIA_TODO_DATA_DIR: /data
      NIA_TODO_DB: nia-todo.db
    volumes:
      - nia-todo-data:/data

volumes:
  nia-todo-data:

Start the stack:

docker compose up -d
docker compose logs -f nia-todo

Then open http://YOUR-SERVER:8753/setup.

Docker run

docker run -d \
  --name nia-todo \
  --restart unless-stopped \
  -p 8753:8753 \
  -e NIA_TODO_HOST=auto \
  -e NIA_TODO_PORT=8753 \
  -e NIA_TODO_DATA_DIR=/data \
  -e NIA_TODO_DB=nia-todo.db \
  -v nia-todo-data:/data \
  docker.io/weedpump/nia-todo:latest

The same image is mirrored at ghcr.io/weedpump/nia-todo:latest.

Persistent data

Everything that must survive a container replacement lives below /data:

  • SQLite database
  • generated application and VAPID keys
  • avatars and todo attachments
  • backups and other local runtime files

Use a named volume as shown above or bind-mount a host directory:

volumes:
  - /srv/nia-todo:/data

Ensure that UID 10001 inside the container can write to a bind-mounted directory.

Environment variables

Variable Default Purpose
NIA_TODO_HOST auto Bind IPv4 and IPv6 where available
NIA_TODO_PORT 8753 HTTP port inside the container
NIA_TODO_DATA_DIR /data Persistent runtime directory
NIA_TODO_DB nia-todo.db Database filename or path
NIA_TODO_VAPID_SUBJECT derived Optional VAPID contact, usually a mailto: URI

Most application settings are stored through /admin, not as environment variables.

Health and logs

docker compose ps
docker compose logs --tail=200 nia-todo
curl --fail http://127.0.0.1:8753/api/instance

Continue with HTTPS and reverse proxy configuration.