Files
ProxMailcow/proxmox/snippets/npm-cloud-init.yaml
T
myron b60db8a0d0 Initial infrastructure: NPM + Mailcow on Proxmox
- VM 200: Nginx Proxy Manager (10.48.200.80)
- VM 201: Mailcow email server (10.48.200.82)
- Cloud-init automation for both VMs
- FortiGate VIP/policy documentation
- DNS records for web.orbishosting.com
- NPM proxy host setup guide
- Mailcow post-install checklist
- Cert sync script (NPM → Mailcow)

External IP: 97.176.15.26
2026-04-23 04:37:56 +00:00

77 lines
1.6 KiB
YAML

#cloud-config
# Nginx Proxy Manager VM - Ubuntu 24.04
# VM 200 | IP: 10.48.200.80
package_update: true
package_upgrade: true
packages:
- curl
- ca-certificates
- git
- htop
- net-tools
- qemu-guest-agent
runcmd:
# Enable and start qemu-guest-agent
- systemctl enable qemu-guest-agent
- systemctl start qemu-guest-agent
# Install Docker
- curl -fsSL https://get.docker.com | sh
- systemctl enable docker
- usermod -aG docker ubuntu
# Create NPM directory
- mkdir -p /opt/npm/data /opt/npm/letsencrypt
# Write docker-compose.yml
- |
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
# Start NPM
- cd /opt/npm && docker compose up -d
# Add compose startup on boot
- |
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 enable npm.service
final_message: |
NPM VM is ready.
Admin UI: http://10.48.200.80:81
Default login: admin@example.com / changeme
CHANGE THE PASSWORD IMMEDIATELY.