#!/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"