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 36500 -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: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:3306
- DB_DATABASE=bookstack
- DB_USERNAME=root
- DB_PASSWORD=mmailsecret
- APP_KEY=$APP_KEY
- APP_URL=https://192.168.178.24:3000
- APP_LANG=de
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=mmailsecret
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=secret
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