47 lines
1.3 KiB
Bash
Executable file
47 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Setup script for financial aggregator server
|
|
# Run on fresh Debian 12 VM
|
|
|
|
set -e
|
|
|
|
echo "=== Financial Aggregator Setup ==="
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Please run as root"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[1/6] Updating system..."
|
|
apt update && apt upgrade -y
|
|
|
|
echo "[2/6] Installing Docker..."
|
|
if ! command -v docker &> /dev/null; then
|
|
curl -fsSL https://get.docker.com | sh
|
|
usermod -aG docker $SUDO_USER
|
|
fi
|
|
|
|
echo "[3/6] Installing Docker Compose..."
|
|
if ! command -v docker compose &> /dev/null; then
|
|
apt install -y docker-compose-plugin
|
|
fi
|
|
|
|
echo "[4/6] Creating project directory..."
|
|
PROJECT_DIR="/opt/financial-aggregator"
|
|
mkdir -p $PROJECT_DIR/server/{caddy,mosquitto,aggregator}
|
|
|
|
echo "[5/6] Creating mosquitto directories..."
|
|
mkdir -p $PROJECT_DIR/server/mosquitto/{data,log}
|
|
chown -R 1883:1883 $PROJECT_DIR/server/mosquitto/
|
|
|
|
echo "[6/6] Setting permissions..."
|
|
chown -R $SUDO_USER:$SUDO_USER $PROJECT_DIR
|
|
|
|
echo ""
|
|
echo "=== Setup Complete ==="
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Copy server files to $PROJECT_DIR/server/"
|
|
echo "2. Edit aggregator/.env with your settings"
|
|
echo "3. Create MQTT password: docker run --rm -v $PROJECT_DIR/server/mosquitto:/mosquitto eclipse-mosquitto:2 mosquitto_passwd -c /mosquitto/passwd esp32"
|
|
echo "4. Edit caddy/Caddyfile with your domain"
|
|
echo "5. Deploy: cd $PROJECT_DIR/server && docker compose up -d"
|