Linkwarden Non-Root Docker Setup: 3 Easy Steps and Mistakes
To run Linkwarden non-root with Docker, create the data , pgdata and meili_data folders yourself before the first docker compose up , then add user: "1000:1000" to all three services ( linkwarden , postgres , meilisearch ) in docker-compose.yml . For an existing install, stop the stack and run sudo chown -R 1000:1000 data pgdata meili_data first. That is the method in the official Running as a Non-Root User guide added with Linkwarden v2.16.1 . Below is the whole setup with real output, plus the two mistakes that leave the stack in a restart loop. Tested on 2026-10-27 on a Debian 12 KVM virtual machine (4 vCPU, 4 GB RAM) with Docker Engine 29.9.2 and Docker Compose v5.6.1, using ghcr.io/linkwarden/linkwarden:v2.16.3 (newest release that day), postgres:16-alpine and getmeili/meilisearch:v1.13.3 from the upstream docker-compose.yml . The host user is vagrant with UID and GID 1000. Every output below is copied from that lab; links were added through the Linkwarden API...