103 lines
3.2 KiB
Bash
103 lines
3.2 KiB
Bash
|
#!/hint/bash -euE
|
||
|
# Copyright (C) 2023 Umorpha Systems
|
||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||
|
|
||
|
load_module "$(dirname -- "${BASH_SOURCE[0]}")/base-uwsgi.sh"
|
||
|
load_module "$(dirname -- "${BASH_SOURCE[0]}")/base-nginx.sh"
|
||
|
|
||
|
packages+=(
|
||
|
uwsgi-plugin-php
|
||
|
mariadb
|
||
|
)
|
||
|
|
||
|
post_install+=(20:bookstack:post_install)
|
||
|
bookstack:post_install() {
|
||
|
local arg_mountpoint=$1
|
||
|
|
||
|
install -Dm644 /dev/stdin "$arg_mountpoint/etc/nginx/sites/bookstack.conf" <<-'EOF'
|
||
|
# -*- mode: nginx; nginx-indent-level: 4; intent-tabs-mode: nil -*-
|
||
|
server {
|
||
|
server_name bookstack.mothstuff.lol;
|
||
|
include /etc/nginx/snippets/listen.conf;
|
||
|
|
||
|
root /usr/share/webapps/bookstack/public;
|
||
|
index index.php index.html;
|
||
|
|
||
|
location /index.php {
|
||
|
uwsgi_cache_key $host$request_uri;
|
||
|
uwsgi_cache_valid 5m;
|
||
|
|
||
|
include uwsgi_params;
|
||
|
uwsgi_modifier1 14; # Standard PHP request
|
||
|
uwsgi_pass unix:/run/uwsgi/bookstack.sock;
|
||
|
}
|
||
|
}
|
||
|
EOF
|
||
|
|
||
|
install -Dm755 /dev/stdin "$arg_mountpoint/etc/webapps/bookstack/config.env.sh" <<-'EOF'
|
||
|
#!/usr/bin/env bash
|
||
|
cat <<CFGEOF
|
||
|
APP_KEY=$(cat /etc/umorpha-secrets/bookstack-app-key.txt)
|
||
|
APP_URL=https://bookstack.mothstuff.lol
|
||
|
|
||
|
DB_HOST=localhost
|
||
|
DB_DATABASE=bookstack
|
||
|
DB_USERNAME=bookstack
|
||
|
DB_PASSWORD=$(cat /etc/umorpha-secrets/bookstack-mariadb-password.txt)
|
||
|
|
||
|
MAIL_DRIVER=smtp
|
||
|
MAIL_HOST=mail.infomaniak.com
|
||
|
MAIL_PORT=465
|
||
|
MAIL_ENCRYPTION=tls
|
||
|
MAIL_USERNAME=$(cat /etc/umorpha-secrets/bookstack-infomaniak-mailaddr.txt)
|
||
|
MAIL_PASSWORD=$(cat /etc/umorpha-secrets/bookstack-infomaniak-mailpassword.txt)
|
||
|
MAIL_FROM=$(cat /etc/umorpha-secrets/bookstack-infomaniak-mailaddr.txt)
|
||
|
MAIL_FROM_NAME="Umorpha BookStack"
|
||
|
|
||
|
AUTH_METHOD=oidc
|
||
|
AUTH_AUTO_INITIATE=true
|
||
|
OIDC_NAME=Infomaniak
|
||
|
OIDC_DISPLAY_NAME_CLAIMS=name
|
||
|
OIDC_CLIENT_ID=$(cat /etc/umorpha-secrets/bookstack-infomaniak-clientid.txt)
|
||
|
OIDC_CLIENT_SECRET=$(cat /etc/umorpha-secrets/bookstack-infomaniak-clientsecret.txt)
|
||
|
OIDC_ISSUER=https://login.infomaniak.com
|
||
|
OIDC_ISSUER_DISCOVER=true
|
||
|
CFGEOF
|
||
|
EOF
|
||
|
|
||
|
install -Dm644 /dev/stdin "$arg_mountpoint/etc/systemd/system/bookstack-init.service" <<-'EOF'
|
||
|
[Unit]
|
||
|
Description=Initialize BookStack configuration
|
||
|
Before=uwsgi@bookstack.service
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-app-key.txt
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-mariadb-password.txt
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-infomaniak-mailaddr.txt
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-infomaniak-mailpassword.txt
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-infomaniak-clientid.txt
|
||
|
ConditionPathExists=/etc/umorpha-secrets/bookstack-infomaniak-clientsecret.txt
|
||
|
|
||
|
[Service]
|
||
|
Type=oneshot
|
||
|
User=bookstack
|
||
|
Group=bookstack
|
||
|
ExecStart=/bin/sh -c '/etc/webapps/bookstack/config.env.sh >/etc/webapps/bookstack/config.env'
|
||
|
EOF
|
||
|
|
||
|
mkdir -p -- "$arg_mountpoint/etc/systemd/system/uwsgi@bookstack.service.wants"
|
||
|
ln -s "../bookstack-init.service" "$arg_mountpoint/etc/systemd/system/uwsgi@bookstack.service.wants"
|
||
|
|
||
|
install -Dm600 /dev/stdin "$arg_mountpoint/etc/uwsgi/bookstack.ini" <<-'EOF'
|
||
|
[uwsgi]
|
||
|
master = true
|
||
|
processes = 4
|
||
|
|
||
|
uid = %n
|
||
|
gid = http
|
||
|
|
||
|
plugins = php
|
||
|
php-set = extension=gd.so
|
||
|
EOF
|
||
|
|
||
|
systemctl --root="$arg_mountpoint" enable uwsgi@bookstack.socket
|
||
|
}
|