#!/bin/bash # Nginx Proxy Manager install script # Run on the NPM VM (10.48.200.80) after first SSH login: # ssh ubuntu@10.48.200.80 # bash <(curl -s https://raw.githubusercontent.com/myronblair/ProxMailcow/main/nginx-proxy-manager/install.sh) set -euo pipefail echo "=== Installing Docker ===" curl -fsSL https://get.docker.com | sh usermod -aG docker ubuntu systemctl enable docker echo "=== Setting up Nginx Proxy Manager ===" mkdir -p /opt/npm/data /opt/npm/letsencrypt cat > /opt/npm/docker-compose.yml << 'COMPOSE' version: '3.8' services: npm: image: jc21/nginx-proxy-manager:latest restart: unless-stopped ports: - "80:80" - "443:443" - "81:81" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt environment: DISABLE_IPV6: "true" COMPOSE echo "=== Starting NPM ===" cd /opt/npm && docker compose up -d echo "=== Creating systemd service ===" cat > /etc/systemd/system/npm.service << 'SERVICE' [Unit] Description=Nginx Proxy Manager After=docker.service Requires=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/opt/npm ExecStart=/usr/bin/docker compose up -d ExecStop=/usr/bin/docker compose down [Install] WantedBy=multi-user.target SERVICE systemctl daemon-reload systemctl enable npm.service echo "" echo "=== NPM INSTALL COMPLETE ===" echo "Admin UI: http://10.48.200.80:81" echo "Default login: admin@example.com / changeme" echo "CHANGE THE PASSWORD IMMEDIATELY." echo "" echo "Next step: Configure proxy hosts per nginx-proxy-manager/npm-proxy-setup.md"