97 lines
1.9 KiB
Bash
Executable File
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 ""
|