Linkwarden als docker compose mit PostgreSQL-Datenbank
Linkwarden ist eine Open-Source-Plattform zur Verwaltung und Archivierung von Lesezeichen, die vollständig selbst gehostet werden kann. Es ermöglicht Nutzern, Links und Webseiten zentral zu speichern, zu organisieren und offline zu archivieren, um langfristig Zugriff auf wichtige Inhalte zu gewährleisten. Die integrierten Funktionen wie Suchoptionen, Tags und Notizen bieten eine benutzerfreundliche Möglichkeit, auch große Sammlungen von Lesezeichen effizient zu verwalten.
Ich habe das Projekt mit docker compose und einer PostgreSQL-Datenbank umgesetzt. Dabei verwende ich als Reverse Proxy einen Nginx Proxy Manager.
Hier die docker-compose-Datei für Linkwarden:
services: linkwarden: image: ghcr.io/linkwarden/linkwarden:latest container_name: linkwarden-app restart: unless-stopped # ports: # - "3000:3000" # Auskommentiert da hier nicht benötigt environment: - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@linkwarden-db:5432/${POSTGRES_DB} - APP_ENV=production - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} - NEXTAUTH_URL=https://bookmarks.mydomain.de volumes: - /path/to/linkwarden/data:/data/data depends_on: - postgres networks: - linkwarden-net - proxy-net postgres: image: postgres:16 container_name: linkwarden-db restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - /path/to/linkwarden/db:/var/lib/postgresql/data networks: - linkwarden-net - proxy-net networks: linkwarden-net: driver: bridge proxy-net: external: true
Die Variablen müssen noch mit Werten gefüllt werden, hier eine Beispiel .env-Datei:
NEXTAUTH_SECRET
=<ein sehr langes Secret>
POSTGRES_USER
=linkwarden
POSTGRES_DB
=linkwarden
POSTGRES_PASSWORD
=<Langes PostgreSQL-Passwort>
Die Volumes von Linkwarden und der PostgreSQL-Datenbank habe ich ins Dateisystem gemappt, so kann leicht bei Bedarf auf die Daten zugegriffen werden.
Für das Linkwarden-Projekt habe ich ein eigenes Netzwerk eingerichtet, außerdem muss das docker-Netzwerk "proxy-net" schon existieren und ein Nginx Proxy Manager (NPM) muss in diesem Netzwerk sein.
Nach dem Anlegen einer Domain für das Projekt (hier z.b. bookmarks.mydomain.de) muss im NPM ein Proxy-Eintrag angelegt werden, der per http auf den docker-internen host "linkwarden-app" mit Port 3000 verweist. Den Port habe ich auskommentiert zum besseren Verständnis in der docker compose-Datei belassen.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
By accepting you will be accessing a service provided by a third-party external to https://neticens.de/