[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
#!/usr/local/bin/bash
|
|
|
|
# This script installs the current release of Mariadb and PhpMyAdmin into a created jail
|
|
|
|
#####
|
|
|
|
#
|
|
|
|
# Init and Mounts
|
|
|
|
#
|
|
|
|
#####
|
|
|
|
|
|
|
|
# Initialise defaults
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
JAIL_IP="jail_${1}_ip4_addr"
|
|
|
|
JAIL_IP="${!JAIL_IP%/*}"
|
|
|
|
INCLUDES_PATH="${SCRIPT_DIR}/blueprints/mariadb/includes"
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
CERT_EMAIL="jail_${1}_cert_email"
|
|
|
|
CERT_EMAIL="${!CERT_EMAIL:-placeholder@email.fake}"
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_ROOT_PASSWORD="jail_${1}_db_root_password"
|
|
|
|
HOST_NAME="jail_${1}_host_name"
|
|
|
|
DL_FLAGS=""
|
|
|
|
DNS_ENV=""
|
|
|
|
|
|
|
|
# Check that necessary variables were set by nextcloud-config
|
|
|
|
if [ -z "${JAIL_IP}" ]; then
|
|
|
|
echo 'Configuration error: The mariadb jail does NOT accept DHCP'
|
|
|
|
echo 'Please reinstall using a fixed IP adress'
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Make sure DB_PATH is empty -- if not, MariaDB/PostgreSQL will choke
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
if [ "$(ls -A "/mnt/${global_dataset_config}/${1}/db")" ]; then
|
|
|
|
echo "Reinstall of mariadb detected... Continuing"
|
|
|
|
REINSTALL="true"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Mount database dataset and set zfs preferences
|
2020-07-12 17:27:01 +00:00
|
|
|
iocage exec "${1}" rm -Rf /usr/local/etc/mysql/my.cnf
|
|
|
|
createmount "${1}" "${global_dataset_config}"/"${1}"/db /config/db
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
zfs set recordsize=16K "${global_dataset_config}"/"${1}"/db
|
|
|
|
zfs set primarycache=metadata "${global_dataset_config}"/"${1}"/db
|
|
|
|
|
2020-07-12 17:27:01 +00:00
|
|
|
iocage exec "${1}" "pw groupadd -n mysql -g 88"
|
|
|
|
iocage exec "${1}" "pw useradd -n mysql -u 88 -d /nonexistent -s /usr/sbin/nologin -g mysql"
|
|
|
|
|
|
|
|
iocage exec "${1}" chown -R mysql:mysql /config
|
|
|
|
|
|
|
|
iocage exec "${1}" sysrc mysql_optfile=/config/my.cnf
|
|
|
|
iocage exec "${1}" sysrc mysql_dbdir=/config/db
|
|
|
|
iocage exec "${1}" sysrc mysql_pidfile=/config/mysql.pid
|
|
|
|
iocage exec "${1}" sysrc mysql_enable="YES"
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
|
|
|
|
# Install includes fstab
|
|
|
|
iocage exec "${1}" mkdir -p /mnt/includes
|
|
|
|
iocage fstab -a "${1}" "${INCLUDES_PATH}" /mnt/includes nullfs rw 0 0
|
|
|
|
|
2020-07-12 17:27:01 +00:00
|
|
|
iocage exec "${1}" cp -f /mnt/includes/my.cnf /config/my.cnf
|
|
|
|
iocage exec "${1}" cp -f /mnt/includes/config.inc.php /usr/local/www/phpMyAdmin/config.inc.php
|
|
|
|
iocage exec "${1}" sed -i '' "s|mypassword|${!DB_ROOT_PASSWORD}|" /config/my.cnf
|
|
|
|
iocage exec "${1}" ln -s /config/my.cnf /usr/local/etc/mysql/my.cnf
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
|
|
|
|
#####
|
|
|
|
#
|
2020-07-12 17:27:01 +00:00
|
|
|
# Install Caddy and PhpMyAdmin
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
#
|
|
|
|
#####
|
|
|
|
|
|
|
|
fetch -o /tmp https://getcaddy.com
|
|
|
|
if ! iocage exec "${1}" bash -s personal "${DL_FLAGS}" < /tmp/getcaddy.com
|
|
|
|
then
|
|
|
|
echo "Failed to download/install Caddy"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Copy and edit pre-written config files
|
|
|
|
echo "Copying Caddyfile for no SSL"
|
|
|
|
iocage exec "${1}" cp -f /mnt/includes/caddy.rc /usr/local/etc/rc.d/caddy
|
|
|
|
iocage exec "${1}" cp -f /mnt/includes/Caddyfile /usr/local/www/Caddyfile
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
iocage exec "${1}" sed -i '' "s/yourhostnamehere/${!HOST_NAME}/" /usr/local/www/Caddyfile
|
|
|
|
iocage exec "${1}" sed -i '' "s/JAIL-IP/${JAIL_IP}/" /usr/local/www/Caddyfile
|
|
|
|
|
|
|
|
iocage exec "${1}" sysrc caddy_enable="YES"
|
|
|
|
iocage exec "${1}" sysrc php_fpm_enable="YES"
|
|
|
|
iocage exec "${1}" sysrc caddy_cert_email="${CERT_EMAIL}"
|
|
|
|
iocage exec "${1}" sysrc caddy_env="${DNS_ENV}"
|
|
|
|
|
|
|
|
iocage restart "${1}"
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
if [ "${REINSTALL}" == "true" ]; then
|
|
|
|
echo "Reinstall detected, skipping generaion of new config and database"
|
|
|
|
else
|
|
|
|
|
|
|
|
# Secure database, set root password, create Nextcloud DB, user, and password
|
|
|
|
iocage exec "${1}" mysql -u root -e "DELETE FROM mysql.user WHERE User='';"
|
|
|
|
iocage exec "${1}" mysql -u root -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
|
|
|
|
iocage exec "${1}" mysql -u root -e "DROP DATABASE IF EXISTS test;"
|
|
|
|
iocage exec "${1}" mysql -u root -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
|
|
|
|
iocage exec "${1}" mysqladmin --user=root password "${!DB_ROOT_PASSWORD}"
|
|
|
|
iocage exec "${1}" mysqladmin reload
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Save passwords for later reference
|
|
|
|
iocage exec "${1}" echo "MariaDB root password is ${!DB_ROOT_PASSWORD}" > /root/"${1}"_db_password.txt
|
|
|
|
|
|
|
|
|
|
|
|
# Don't need /mnt/includes any more, so unmount it
|
|
|
|
iocage fstab -r "${1}" "${INCLUDES_PATH}" /mnt/includes nullfs rw 0 0
|
|
|
|
|
|
|
|
# Done!
|
|
|
|
echo "Installation complete!"
|
|
|
|
echo "Using your web browser, go to http://${!HOST_NAME} to log in"
|
|
|
|
|
|
|
|
if [ "${REINSTALL}" == "true" ]; then
|
|
|
|
echo "You did a reinstall, please use your old database and account credentials"
|
|
|
|
else
|
|
|
|
echo "Database Information"
|
|
|
|
echo "--------------------"
|
|
|
|
echo "The MariaDB root password is ${!DB_ROOT_PASSWORD}"
|
|
|
|
fi
|
|
|
|
echo ""
|
|
|
|
echo "All passwords are saved in /root/${1}_db_password.txt"
|