Files
appfactory-tools/scripts/bootstrap-new-server.sh
T
2026-05-27 09:00:40 +02:00

97 lines
1.9 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 ""
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
echo ""
echo "Updating system..."
apt update
apt install -y \
docker.io \
docker-compose-plugin \
git \
curl \
jq \
python3 \
python3-pip
echo ""
echo "Enabling Docker..."
systemctl enable docker
systemctl start docker
echo ""
echo "Adding user to docker group..."
usermod -aG docker "$APP_USER"
echo ""
echo "Creating directories..."
mkdir -p "$APPFACTORY_DIR"
mkdir -p "$APPFACTORY_DIR/apps"
mkdir -p "$APPFACTORY_DIR/backups"
mkdir -p "$APPFACTORY_DIR/config"
mkdir -p "$APPFACTORY_DIR/data"
mkdir -p "$APPFACTORY_DIR/data/gitea"
mkdir -p "$APPFACTORY_DIR/data/registry"
mkdir -p "$APPFACTORY_DIR/deploy"
mkdir -p "$APPFACTORY_DIR/gateway"
mkdir -p "$APPFACTORY_DIR/gateway/static"
mkdir -p "$APPFACTORY_DIR/services"
mkdir -p "$APPFACTORY_DIR/templates"
mkdir -p "$WORKSPACE_DIR"
echo ""
echo "Creating config..."
cat > "$APPFACTORY_DIR/config/appfactory.env" <<EOF
APP_USER="$APP_USER"
APP_GROUP="$APP_GROUP"
APPFACTORY_DIR="$APPFACTORY_DIR"
WORKSPACE_DIR="$WORKSPACE_DIR"
BACKUP_DIR="$APPFACTORY_DIR/backups"
EOF
chmod 600 "$APPFACTORY_DIR/config/appfactory.env"
echo ""
echo "Fixing ownership..."
chown -R "$APP_USER:$APP_GROUP" "$APPFACTORY_DIR"
chown -R "$APP_USER:$APP_GROUP" "$WORKSPACE_DIR"
echo ""
echo "Bootstrap complete."
echo ""
echo "IMPORTANT:"
echo "Logout/login again so docker group is applied."
echo ""
echo "Next steps:"
echo "1. clone appfactory-tools"
echo "2. restore backup"
echo ""