diff --git a/scripts/bootstrap-new-server.sh b/scripts/bootstrap-new-server.sh new file mode 100755 index 0000000..f77d9f4 --- /dev/null +++ b/scripts/bootstrap-new-server.sh @@ -0,0 +1,96 @@ +#!/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" <