#!/bin/bash # 🚀 Auto-generated by The AltStack # https://thealtstack.com echo "🔵 Starting AltStack Deployment..." # 1. Check/Install Docker if ! command -v docker &> /dev/null; then echo "📦 Docker not found. Installing..." curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh rm get-docker.sh echo "✅ Docker installed." else echo "✅ Docker is already installed." fi # 2. Setup Directory APP_DIR="listmonk-deploy" mkdir -p $APP_DIR cd $APP_DIR echo "📂 Created directory: $APP_DIR" # 3. Create docker-compose.yml echo "📄 Writing configuration..." cat << 'INNER_EOF' > docker-compose.yml # ------------------------------------------------------------------------- # 🚀 Created and distributed by The AltStack # 🌍 https://thealtstack.com # ------------------------------------------------------------------------- version: '3.8' services: listmonk: image: listmonk/listmonk:latest container_name: listmonk restart: unless-stopped command: sh -c './listmonk --install --yes --idempotent && ./listmonk' depends_on: - listmonk-db ports: - "9000:9000" volumes: - ./config.toml:/listmonk/config.toml listmonk-db: image: postgres:13-alpine container_name: listmonk-db restart: unless-stopped environment: - POSTGRES_USER=listmonk - POSTGRES_PASSWORD=listmonk - POSTGRES_DB=listmonk volumes: - listmonk_db_data:/var/lib/postgresql/data volumes: listmonk_db_data: INNER_EOF # 4. Start Services echo "🚀 Starting services..." docker compose up -d echo "" echo "✅ Deployment Complete!" echo "👉 Your listmonk stack is running."