Installation via Docker image
Beschreibung:
Hier installation via Docker mit composer file.
Installation.Ein SH Skript das die zertifikate und dieDie Verzeichnisse erstellterstellen und die Composter Datei.
Im root Verzeichnis ein neues Verzeichnis erstellen.
mkdir -p /root/bookstack
Ins Verzeichnis wechseln und eine neue datei anlegen mit .env anlegen.
cd /root/bookstack
nano setup_bookstack.sh/root/bookstack/.env
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# Domain
DOMAIN=wiki.example.com
# BookStack Datenbank Variablen
festlegenDB_HOST=db
ZERTIFIKAT_PFAD="./zertifikate"DB_DATABASE=bookstack
BOOKSTACK_DATA_PFAD="./bookstack_data"DB_USERNAME=bookstack_user
DB_DATA_PFAD="./db_data"DB_PASSWORD=sicheres_passwort
# APP_KEYBookStack generierenApp APP_KEY=Variablen
APP_URL=https://wiki.example.com
#der app key kann in der console mit folgendem Befehl generiert werden
#echo "base64:$(openssl rand -base64 32)" #Ausgabe Zertifikat: erstellenbase64:0HxGQ72frdcVZ+XyZQ1Q0Kr6FkFGwJS/UeYT/NLtZTo=
mkdirAPP_KEY=base64:0HxGQ72frdcVZ+XyZQ1Q0Kr6FkFGwJS/UeYT/NLtZTo=
Nun "$ZERTIFIKAT_PFAD"eine opensslangepasste reqphp.ini -x509für -nodesdas -daysUpload 36500limit, -newkeyhier rsa:204810 -keyoutGB "$ZERTIFIKAT_PFAD/nginx.key"kann -outnach "$ZERTIFIKAT_PFAD/nginx.crt"beliben -subjgeändert "/CN=localhost"werden. #In Nginx-Konfigurationsdateider erstellenDatei catalles <<EOFwas >10G nginx.confist usermit nginx;eigenem worker_processesWert 1;überschreiben
nano /etc/nginx/mime.types;root/boockstack/php.ini
Inhalt
upload_max_filesize sendfile= on;10G
keepalive_timeoutpost_max_size 65;= server10G
{memory_limit listen= 3000;512M
server_namemax_execution_time _;= return300
301max_input_time https://\$host\$request_uri;= }300
Nun {die listencomposer 443Datei
nano /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 > root/bookstack/docker-compose.yml
Inhalt
version: '3'3.8'
services:
bookstack:app:
image: solidnerd/linuxserver/bookstack:latest
container_name: bookstack_app
environment:
- DB_HOST=db:3306${DB_HOST}
- DB_DATABASE=bookstack${DB_DATABASE}
- DB_USERNAME=root${DB_USERNAME}
- DB_PASSWORD=secret${DB_PASSWORD}
- APP_URL=${APP_URL}
- APP_KEY=$APP_KEY
- APP_URL=https://192.168.178.24:3000
- APP_LANG=de{APP_KEY}
volumes:
- $BOOKSTACK_DATA_PFAD:./var/www/html/public/uploadsbookstack_data:/config
- $BOOKSTACK_DATA_PFAD:./var/www/html/storage/uploadsphp.ini:/etc/php7/conf.d/99-custom.ini # Mounte das php.ini-File
depends_on:
- db
db:
image: mariadb:latest10.6
container_name: bookstack_db
environment:
- MYSQL_ROOT_PASSWORD=secretroot_passwort
- MYSQL_DATABASE=bookstack${DB_DATABASE}
- MYSQL_USER=bookstack${DB_USERNAME}
- MYSQL_PASSWORD=secret${DB_PASSWORD}
volumes:
- $DB_DATA_PFAD:./bookstack_db:/var/lib/mysql
nginx:caddy:
image: nginx:caddy:latest
container_name: bookstack_caddy
ports:
- "3000:80:80"
- "443:443"
environment:
- CADDY_DOMAIN=${DOMAIN}
volumes:
- $ZERTIFIKAT_PFAD:./etc/nginx/certs:rocaddy_data:/data
- ./nginx.conf:caddy_config:/etc/nginx/nginx.conf:roconfig
depends_on:command: caddy reverse-proxy --from bookstack
EOF
# Docker-Container starten
docker-compose up${DOMAIN} -d-to Das script ausführbar machen.
chmod +x setup_bookstack.shapp:80
Das script starten
./setup_bookstack.sh