Files
ProxMailcow/nginx-proxy-manager/install.sh
T

65 lines
1.5 KiB
Bash

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