Files
appfactory-tools/scripts/bootstrap-new-server.sh
T

52 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
APP_USER="${SUDO_USER:-$USER}"
APP_GROUP="$APP_USER"
APPFACTORY_DIR="/opt/appfactory"
WORKSPACE_DIR="/home/$APP_USER/workspace"
echo "======================================================"
echo "AppFactory Bootstrap"
echo "======================================================"
echo "User: $APP_USER"
echo "Workspace: $WORKSPACE_DIR"
echo "AppFactory: $APPFACTORY_DIR"
echo ""
read -r -p "Continue? (yes/no): " CONFIRM
if [ "$CONFIRM" != "yes" ]; then
echo "Cancelled."
exit 1
fi
apt update
apt install -y docker.io docker-compose-plugin git curl jq python3 python3-pip
systemctl enable docker
systemctl start docker
usermod -aG docker "$APP_USER"
mkdir -p "$APPFACTORY_DIR"/{apps,backups,config,data/gitea,data/registry,deploy,gateway/static,services,templates}
mkdir -p "$WORKSPACE_DIR"
cat > "$APPFACTORY_DIR/config/appfactory.env" <<EOF_ENV
APP_USER="$APP_USER"
APP_GROUP="$APP_GROUP"
APPFACTORY_DIR="$APPFACTORY_DIR"
WORKSPACE_DIR="$WORKSPACE_DIR"
BACKUP_DIR="$APPFACTORY_DIR/backups"
EOF_ENV
chmod 600 "$APPFACTORY_DIR/config/appfactory.env"
chown -R "$APP_USER:$APP_GROUP" "$APPFACTORY_DIR"
chown -R "$APP_USER:$APP_GROUP" "$WORKSPACE_DIR"
echo ""
echo "Bootstrap complete."
echo "Logout/login again so docker group is applied."