2023-02-24 03:31:46 -05:00
|
|
|
|
#!/command/with-contenv bash
|
2023-03-09 07:11:28 -05:00
|
|
|
|
# shellcheck shell=bash
|
|
|
|
|
|
2023-02-24 03:31:46 -05:00
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
DATA_PATH=/data
|
|
|
|
|
PUID=${PUID:-911}
|
|
|
|
|
PGID=${PGID:-911}
|
|
|
|
|
|
|
|
|
|
# Ensure /data is mounted
|
|
|
|
|
if [ ! -d "$DATA_PATH" ]; then
|
|
|
|
|
echo '--------------------------------------'
|
|
|
|
|
echo "ERROR: $DATA_PATH is not mounted! Check your docker configuration."
|
|
|
|
|
echo '--------------------------------------'
|
|
|
|
|
/run/s6/basedir/bin/halt
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "❯ Checking folder structure ..."
|
|
|
|
|
|
|
|
|
|
# Create required folders
|
|
|
|
|
mkdir -p /tmp/nginx/body \
|
|
|
|
|
/run/nginx \
|
|
|
|
|
/var/log/nginx \
|
|
|
|
|
/var/lib/nginx/cache/public \
|
|
|
|
|
/var/lib/nginx/cache/private \
|
|
|
|
|
/var/cache/nginx/proxy_temp \
|
|
|
|
|
/data/logs
|
|
|
|
|
touch /var/log/nginx/error.log && chmod 777 /var/log/nginx/error.log && chmod -R 777 /var/cache/nginx
|
|
|
|
|
# Dynamically generate resolvers file
|
|
|
|
|
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print $2}' /etc/resolv.conf)" ";" > /etc/nginx/conf.d/include/resolvers.conf
|
|
|
|
|
# Fire off acme.sh wrapper script to "install" itself if required
|
|
|
|
|
acme.sh -h > /dev/null 2>&1
|
|
|
|
|
|
|
|
|
|
# Add npmuser user
|
|
|
|
|
echo "❯ Creating user ..."
|
|
|
|
|
groupmod -g 1000 users || exit 1
|
|
|
|
|
useradd -u "${PUID}" -U -d /data -s /bin/false npmuser || exit 1
|
|
|
|
|
usermod -G users npmuser || exit 1
|
|
|
|
|
groupmod -o -g "$PGID" npmuser || exit 1
|
|
|
|
|
chown -R npmuser:npmuser /data
|
|
|
|
|
chown -R npmuser:npmuser /run/nginx
|
|
|
|
|
chown -R npmuser:npmuser /etc/nginx
|
|
|
|
|
chown -R npmuser:npmuser /tmp/nginx
|
|
|
|
|
chown -R npmuser:npmuser /var/cache/nginx
|
|
|
|
|
chown -R npmuser:npmuser /var/lib/nginx
|
|
|
|
|
chown -R npmuser:npmuser /var/log/nginx
|
|
|
|
|
# Home for npmuser
|
|
|
|
|
mkdir -p /tmp/npmuserhome
|
|
|
|
|
chown -R npmuser:npmuser /tmp/npmuserhome
|
|
|
|
|
|
2023-03-09 07:11:28 -05:00
|
|
|
|
# fail2ban configuration
|
|
|
|
|
mkdir -p /fail2ban/{action.d,filter.d,jail.d,log}
|
|
|
|
|
chown -R npmuser:npmuser /fail2ban
|
|
|
|
|
mkdir -p /var/run/fail2ban
|
|
|
|
|
mkdir -p /data/logs/fail2ban
|
|
|
|
|
chown nobody:nogroup /data/logs/fail2ban
|
|
|
|
|
chmod 02755 /data/logs/fail2ban
|
|
|
|
|
|
2023-02-24 03:31:46 -05:00
|
|
|
|
echo
|
|
|
|
|
echo "-------------------------------------
|
|
|
|
|
_ _ ____ __ __
|
|
|
|
|
| \ | | _ \| \/ |
|
|
|
|
|
| \| | |_) | |\/| |
|
|
|
|
|
| |\ | __/| | | |
|
|
|
|
|
|_| \_|_| |_| |_|
|
|
|
|
|
-------------------------------------
|
|
|
|
|
User UID: $(id -u npmuser)
|
|
|
|
|
User GID: $(id -g npmuser)
|
|
|
|
|
-------------------------------------
|
|
|
|
|
"
|