Files
tingz/pre-docker-deploy.sh

55 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euxo pipefail
echo "=== tingz pre-docker script ==="
echo "This script assumes you're running it on a Debian 12+ system."
echo "This script assumes you haven't created a tingz user & group yet."
echo "This script assumes you are using the default volumes directory structure."
echo
echo "Description:"
echo "This script creates a tingz user & group,"
echo "creates and sets permissions for volumes,"
echo "and creates a .env.development file."
echo
echo "1. Check dependencies"
commands=(docker adduser addgroup cut getent)
for cmd in "${commands[@]}"; do
if ! command -v "$cmd" &> /dev/null; then
echo "Error: $cmd could not be found"
exit 1
fi
done
echo "2. Add tingz user & group"
addgroup --system tingz
GID=$(getent group tingz | cut -d: -f3)
adduser --ingroup tingz --system --no-create-home --uid ${GID} --shell /usr/sbin/nologin tingz
echo "3. Verify tingz group and user"
getent group tingz
getent passwd tingz
echo "4. Create and set permissions for volumes"
mkdir -p volumes/data volumes/docs volumes/deploys
chown -R tingz:tingz volumes
echo "5. Create .env.development file"
cat > .env.tmp << EOF
#ADMIN_TOKEN=
HOST=127.0.0.1
PORT=8080
UID=${GID}
GID=${GID}
DEPLOY_ROOT=/var/www/docs
RELEASE_ROOT=/var/www/deploys
DB_PATH=/data/deployer.db
MAX_UPLOAD_SIZE=104857600
EOF
echo "Please verify .env.temp and move into .env if everything is correct"
echo "=== .env.tmp ==="
cat .env.tmp
echo "=== .env ==="
echo "Done"