Direkt zum Hauptinhalt

Installation via Docker image

Beschreibung:

Hier installation via Docker mit composer file.

Installation.

Ein SH Skript das die zertifikate und die Verzeichnisse erstellt und die Composter Datei.

Im root Verzeichnis ein neues Verzeichnis erstellen.

mkdir -p /root/bookstack

Ins Verzeichnis wechseln und eine neue datei anlegen.

cd /root/bookstack
nano setup_bookstack.sh

Nun folgenden Inhalt einfügen und die Tage des Zertifikates anpassen, wenn gewünscht.
Ich habs auf 365000 angepasst.
ursprünglich 365 Tage und die secrets für die Maria DB müssen angepasst werden

#!/bin/bash

# Variablen festlegen
ZERTIFIKAT_PFAD="./zertifikate"
BOOKSTACK_DATA_PFAD="./bookstack_data"
DB_DATA_PFAD="./db_data"

# APP_KEY generieren
APP_KEY=$(openssl rand -base64 32)

# Zertifikat erstellen
mkdir -p "$ZERTIFIKAT_PFAD"
openssl req -x509 -nodes -days 36500036500 -newkey rsa:2048 -keyout "$ZERTIFIKAT_PFAD/nginx.key" -out "$ZERTIFIKAT_PFAD/nginx.crt" -subj "/CN=localhost"

# Nginx-Konfigurationsdatei erstellen
cat <<EOF > nginx.conf
user  nginx;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
       listen 3000;
       server_name _;
       return 301 https://\$host\$request_uri;
    }



    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate     /etc/nginx/certs/nginx.crt;
        ssl_certificate_key /etc/nginx/certs/nginx.key;

        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;

        client_max_body_size 10G;

        location / {
            proxy_pass http://bookstack:80;8080;
            proxy_set_header Host \$host;
            proxy_set_header X-Real-IP \$remote_addr;
            proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto \$scheme;
        }
    }
}
EOF

# Docker-Compose-Datei erstellen
cat <<EOF > docker-compose.yml
version: '3'

services:
  bookstack:
    image: solidnerd/bookstack:latest
    environment:
      - DB_HOST=db
      - DB_DATABASE=bookstack
      - DB_USERNAME=root
      - DB_PASSWORD=secretmmail
      - APP_KEY=$APP_KEY
      - APP_URL=127.0.0.1:80https://192.168.178.24:3000
    volumes:
      - $BOOKSTACK_DATA_PFAD:/var/www/html/public/uploads
      - $BOOKSTACK_DATA_PFAD:/var/www/html/storage/uploads
    depends_on:
      - db

  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=secretmmail
      - MYSQL_DATABASE=bookstack
    volumes:
      - $DB_DATA_PFAD:/var/lib/mysql

  nginx:
    image: nginx:latest
    ports:
      - "3000:443"
    volumes:
      - $ZERTIFIKAT_PFAD:/etc/nginx/certs:ro
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - bookstack

EOF

# Docker-Container starten
docker-compose up -d

Das script ausführbar machen.

chmod +x setup_bookstack.sh

Das script starten

./setup_bookstack.sh