Siehe auch Blog-Post: Linkding: Ein einfaches Tool für meine Bookmarks
Docker Setup
Ich nutze einen Caddy Server in meinem Setup als Reverse Proxy vor dem Linkding Server. Dieser ist für das SSL Zertifikat zuständig. Der Caddy Server holt per ACME von einer internen PKI ein Zertifikat ab und aktualisiert dies auch selbständig.
Für öffentlich erreichbare Server kann der Caddy Server auch über Letsencrypt die Zertifikate besorgen.
Wenn ihr das nicht braucht, könnt ihr diesen auch weglassen.
Bei mir läuft alles in einem LXC Container in Proxmox. Linkding gibt den Port 80 frei. Die SSL Verschlüsselung erfolgt beim Zugriff auf den Port 443 der von Caddy verwaltet wird.
services:
caddy:
container_name: caddy
image: caddy:latest
restart: unless-stopped
ports:
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
# Das ist nur für meine Root-CA -> könnt ihr auch weglassen oder durch ein eigenes Zertifikat ersetzen
- /usr/local/share/ca-certificates/muench-lan-root-ca.crt:/usr/local/share/ca-certificates/muench-lan-root-ca.crt:ro
depends_on:
- linkding
linkding:
container_name: "${LD_CONTAINER_NAME:-linkding}"
image: sissbruecker/linkding:latest-plus
ports:
- 80:9090
volumes:
- "${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data"
env_file:
- .env
restart: unless-stopped
volumes:
caddy_data:
caddy_config:
Konfiguration
Die .env
Datei für Linkding gibt es als Vorlage hier: https://github.com/sissbruecker/linkding/blob/master/.env.sample
Ich habe die Datenbank von Sqlite (Standard ohne explizite Konfiguration) auf Postgres umgestellt.
In meiner .env
Datei habe ich dann die Engine auf postgres
gesetzt.
# Database engine, can be sqlite (default) or postgres
LD_DB_ENGINE=postgres
# Database name (default: linkding)
LD_DB_DATABASE=linkding
# Username to connect to the database server (default: linkding)
LD_DB_USER=linkding
# Password to connect to the database server
LD_DB_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# The hostname where the database is hosted (default: localhost)
LD_DB_HOST=postgres.muench.lan
# Port use to connect to the database server
# Should use the default port if not set
LD_DB_PORT=5432
# Any additional options to pass to the database (default: {})
LD_DB_OPTIONS=