services: archivum: image: archivum:latest build: context: .. dockerfile: docker/Dockerfile container_name: archivum restart: unless-stopped ports: - "8080:4000" environment: # Points to the config directory inside the container. DOCKER_PATH: /config UI_DIR: /srv/archivum/ui # Set to match the owner of the host directories (run `id` to check). PUID: ${PUID:-1000} PGID: ${PGID:-1000} TZ: ${TZ:-Europe/Stockholm} volumes: # Configuration (config.json written here by Setup Wizard). - archivum-config:/config # All data: wiki files live in /data/wiki, SQLite db in /data/db. # Using named volumes for local dev avoids Windows/WSL2 permission issues. - archivum-data:/data # Named volumes let Docker manage ownership automatically. # Replace with bind mounts if you need direct host access: # - ./local/config:/config # - ./local/data:/data # (and make sure the host directories are owned by PUID:PGID) volumes: archivum-config: archivum-data: