Skip to main content

Bookstack

Um einen Bookstack Container einzubinden, sind folgende Schritte durchzuführen:

  • Anlegen des Verzeichnis /opt/containers/bookstack
  • Anlegen des Verzeichnis /opt/containers/bookstack/data/db
  • Anlegen des Verzeichnis /opt/containers/bookstack/data/bs
sudo mkdir -p /opt/containers/bookstack/data/db
sudo mkdir /opt/containers/bookstack/data/bs

Für den Containerstart ist die Datei /opt/containers/bookstack/docker-compose.yml mit folgendem Inhalt anzulegen:

#
# /opt/containers/bookstack/docker-compose.yml
# Ein Bookstack Container mit MariaDB
#
version: '3'
services:
  db:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: bookstack-db
    networks:
      - db-network
    environment:
      - TZ=Europe/Berlin
      - MYSQL_ROOT_PASSWORD=RaRuRickZaubertrick
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=DaKommstDuNieDrauf
    volumes:
      - ./data/db:/config
    restart: unless-stopped
    labels:
      - traefik.enable=false

  app:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack-app
    networks:
      - db-network
      - proxy
    depends_on:
      - db
    environment:
      - APP_URL=https://book.die-steffens.eu
      - DB_HOST=db
      - DB_PORT=3306
      - DB_DATABASE=bookstack
      - DB_USERNAME=bookstack
      - DB_PASSWORD=DaKommstDuNieDrauf
    restart: unless-stopped
    volumes:
      - ./data/bs:/config
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bookstack.entrypoints=https"
      - "traefik.http.routers.bookstack.rule=Host(`book.die-steffens.eu`)"
      - "traefik.http.routers.bookstack.tls=true"
      - "traefik.http.routers.bookstack.tls.certresolver=http"
      - "traefik.http.routers.bookstack.service=bookstack"
      - "traefik.http.routers.bookstack.middlewares=secHeaders@file"
      - "traefik.http.services.bookstack.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

networks:
  db-network:
    external: false
  proxy:
    external: true

Es werden zwei Container gestartet: Die Datenbank MariaDB und der Bookstack Container. Für die Kommunikation mit der Datenbank wird ein internes Netzwerk eingerichtet, das von Außen nicht zu erreichen ist.

Gestartet und gestoppt wird wie üblich mit:
/opt/containers/bookstack/docker compose -f /opt/containers/bookstack/docker-compose.yml up -d
/opt/containers/bookstack/docker compose -f /opt/containers/bookstack/docker-compose.yml down