Quadlets for creating a simple and hardened Linkwarden pod intended to be ran as an unprivileged podman user with optional ai tagging component.
This configuration will restart on failure, start at boot, and automatically pull the latest image on restart
This assumes that your host UUID is 1000. If it is different make sure to update references accordingly.
echo '< database url >' | podman secret create linkwarden_pg_db_url -
echo '< database password >' | podman secret create linkwarden_pg_password -
echo '< nextauth url >' | podman secret create linkwarden_pg_nextauth_url -
echo '< nextauth secret >' | podman secret create linkwarden_pg_nextauth_secret -
echo 'postgresql://postgres:<yourpassword>@localhost:5432/linkwarden' | podman secret create linkwarden_pg_db_url -
echo '<yourpassword>' | podman secret create linkwarden_pg_nextauth_secret -
echo 'http://localhost:3000/api/v1/auth' | podman secret create linkwarden_pg_nextauth_url -
echo '<yourpassword>' | podman secret create linkwarden_pg_password -
Make sure these paths exist! Podman will not create these for you
mkdir -p $XDG_CONFIG_HOME/containers/systemd
-
Copy both
.containerfiles and the.podfile to$XDG_CONFIG_HOME/containers/systemdcp *container *pod $XDG_CONFIG_HOME/containers/systemd
-
Make systemd aware of the new files
systemctl --user daemon-reload
systemctl --user start linkwarden
- Start up the pod, configure ollama and the model you want to use
systemctl --user start linkwarden-pod
- Refer to the ollama documentation for configuration details
- Refer to the Linkwarden documentation for enabling AI tagging
systemctl --user stop linkwarden-pod will stop all containers
- https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html
- https://docs.linkwarden.app/self-hosting/installation
- File issues
- Ask questions
- Submit PRs
- Suggest features