Linkding

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=