Added in plus config for bookstack

This commit is contained in:
root 2025-01-22 17:23:26 +00:00
parent 6d9c7968e5
commit 079e905432

View File

@ -3,6 +3,7 @@
# Bookstack Service
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /etc/federated
get_appvars
config_bookstack() {
@ -22,8 +23,6 @@ services:
networks:
core:
ipv4_address: 192.168.0.36
extra_hosts:
- "authelia.$DOMAIN:$EXTERNALIP"
env_file:
- ./.env
volumes:
@ -41,6 +40,7 @@ EOF
BOOKSTACK_ADMINPASSWORD=`htpasswd -bnBC 10 "" $ADMINPASS | tr -d ':\n' | sed 's/$2y/$2b/'`
BOOKSTACK_SECRET=$(create_password);
[[ "${PLUS}" = "true" ]] && sed -i "s/letsencrypt/httpresolver/g" /federated/apps/bookstack/docker-compose.yml
cat > /federated/apps/bookstack/.env <<EOF
IMAGE_VERSION="24.05.3"
@ -77,10 +77,10 @@ start_bookstack() {
# Start service with command to make sure it's up before proceeding
start_service "bookstack" "nc -z 192.168.0.36 80 &> /dev/null" "7"
docker exec pdns pdnsutil add-record $DOMAIN bookstack A 86400 $EXTERNALIP &> /dev/null
[ $? -ne 0 ] && fail "Couldn't add dns record for bookstack"
docker exec pdns pdnsutil add-record $DOMAIN documentation A 86400 $EXTERNALIP &> /dev/null
[ $? -ne 0 ] && fail "Couldn't add dns record for bookstack"
if [[ "${PLUS}" != "true" ]]; then
docker exec pdns pdnsutil add-record $DOMAIN bookstack A 86400 $EXTERNALIP &> /dev/null
docker exec pdns pdnsutil add-record $DOMAIN documentation A 86400 $EXTERNALIP &> /dev/null
fi
docker exec pdnsmysql mysql -ubookstack -p$BOOKSTACK_SECRET bookstack -e "delete from users where email = 'admin@admin.com';" &> /dev/null
docker exec bookstack php /app/www/artisan bookstack:create-admin --email="admin@$DOMAIN" --name="Admin" --password="$ADMINPASS" &> /dev/null
@ -188,7 +188,7 @@ uninstall_bookstack() {
docker image rm lscr.io/linuxserver/bookstack:$IMAGE_VERSION &> /dev/null
# Delete the DNS record
docker exec pdns pdnsutil delete-rrset $DOMAIN bookstack A
[[ "${PLUS}" != "true" ]] && docker exec pdns pdnsutil delete-rrset $DOMAIN bookstack A &> /dev/null
# Uninstall the SSO configuration if it exists in authelia (authelia must exist too)
if [[ $(grep "### Bookstack" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then
@ -247,7 +247,7 @@ OIDC_END_SESSION_ENDPOINT=https://authelia.$DOMAIN/logout?rd=https://dashboard.$
EOF
# Add in extra hosts config
add_authelia_config_to_dockercompose "bookstack" "$EXTERNALIP"
add_authelia_config_to_dockercompose "bookstack"
# Setup external_auth_id for each user in bookstack users table
BOOKSTACK_SECRET=$(cat /federated/apps/bookstack/.env | grep "DB_PASS" | awk -F= '{ print $2 }')
@ -260,3 +260,30 @@ EOF
echo -ne "done.\n"
}
configsso_bookstack_plus() {
GITEA_CLIENT_SECRET=$(cat /federated/apps/bookstack/.bookstack.client.secret)
cat >> /federated/apps/bookstack/.env <<EOF
AUTH_METHOD=oidc
AUTH_AUTO_INITIATE=false
OIDC_NAME=Authelia
OIDC_DISPLAY_NAME_CLAIMS=name
OIDC_CLIENT_ID=bookstack
OIDC_CLIENT_SECRET=$BOOKSTACK_CLIENT_SECRET
OIDC_ISSUER=https://authelia.$DOMAIN
OIDC_ISSUER_DISCOVER=true
OIDC_EXTERNAL_ID_CLAIM=email
OIDC_END_SESSION_ENDPOINT=https://authelia.$DOMAIN/logout?rd=https://dashboard.$DOMAIN
#APP_DEBUG=true
#OIDC_DUMP_USER_DETAILS=true
EOF
# Setup external_auth_id for each user in bookstack users table
BOOKSTACK_SECRET=$(cat /federated/apps/bookstack/.env | grep "DB_PASS" | awk -F= '{ print $2 }')
for i in $(docker exec pdnsmysql mysql -ubookstack -p${BOOKSTACK_SECRET} bookstack -sN -e "select email from users;"); do
docker exec pdnsmysql mysql -ubookstack -p${BOOKSTACK_SECRET} bookstack -e "update users set external_auth_id = '$i' where email = '$i'";
done
run_command "/federated/bin/stop bookstack"
run_command "/federated/bin/start bookstack"
}