51 lines
1.9 KiB
Bash
51 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ "${EUID}" -eq 0 ]]; then
|
|
echo "Run this script as a regular sudo-capable user, not root."
|
|
exit 1
|
|
fi
|
|
|
|
echo "[1/6] Updating apt package index..."
|
|
sudo apt-get update -y
|
|
|
|
echo "[2/6] Installing required Ubuntu packages..."
|
|
sudo apt-get install -y ca-certificates curl gnupg lsb-release make git
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "[3/6] Installing Docker Engine..."
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
else
|
|
echo "[3/6] Docker already installed, skipping."
|
|
fi
|
|
|
|
echo "[4/6] Ensuring current user can run Docker..."
|
|
sudo usermod -aG docker "$USER"
|
|
|
|
echo "[5/6] Initializing YakPanel environment file..."
|
|
cd "$(dirname "$0")/.."
|
|
cp -n .env.example .env || true
|
|
|
|
echo "[6/6] Starting YakPanel dev stack..."
|
|
# Use scripts/docker-compose.sh so compose works in this shell even when docker group
|
|
# was just added (usermod does not apply until a new login unless we use sg docker).
|
|
bash "$(dirname "$0")/docker-compose.sh" up -d --build
|
|
bash "$(dirname "$0")/docker-compose.sh" run --rm db-migrate
|
|
|
|
echo
|
|
echo "YakPanel dev stack started."
|
|
echo "API: http://localhost:8080/health"
|
|
echo "PostgreSQL: localhost:5432"
|
|
echo "Redis: localhost:6379"
|
|
echo "NATS monitor: http://localhost:8222"
|
|
echo "MinIO console: http://localhost:9001"
|
|
echo
|
|
echo "Docker group is configured; if a future terminal still cannot run docker, log out and back in once."
|