Add install-npm.sh
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Nginx Proxy Manager (NPM) Automated Installer for Fedora
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# 1. Ensure script is run with root/sudo privileges
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "❌ Please run this script with sudo or as root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🚀 Starting Nginx Proxy Manager installation for Fedora..."
|
||||
|
||||
# 2. Install Docker and Docker Compose plugin if not already installed
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "📦 Docker not found. Installing Docker and dependencies via dnf..."
|
||||
dnf install -y dnf-plugins-core
|
||||
dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
|
||||
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
fi
|
||||
|
||||
# 3. Start and enable Docker service
|
||||
echo "⚙️ Enabling and starting Docker service..."
|
||||
systemctl enable --now docker
|
||||
|
||||
# 4. Open required firewall ports (Firewalld is default on Fedora)
|
||||
if command -v firewall-cmd &> /dev/null; then
|
||||
echo "🔥 Configuring Firewalld to allow HTTP (80), HTTPS (443), and NPM Admin (81)..."
|
||||
firewall-cmd --permanent --add-port=80/tcp
|
||||
firewall-cmd --permanent --add-port=81/tcp
|
||||
firewall-cmd --permanent --add-port=443/tcp
|
||||
firewall-cmd --reload
|
||||
fi
|
||||
|
||||
# 5. Create deployment directory
|
||||
INSTALL_DIR="/opt/nginx-proxy-manager"
|
||||
echo "📁 Creating installation directory at ${INSTALL_DIR}..."
|
||||
mkdir -p "${INSTALL_DIR}"
|
||||
cd "${INSTALL_DIR}"
|
||||
|
||||
# 6. Generate docker-compose.yml
|
||||
echo "📝 Writing docker-compose.yml configuration..."
|
||||
cat << 'EOF' > docker-compose.yml
|
||||
services:
|
||||
app:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
container_name: nginx-proxy-manager
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80' # Public HTTP
|
||||
- '81:81' # Admin Web Port
|
||||
- '443:443' # Public HTTPS
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
EOF
|
||||
|
||||
# 7. Start the container stack
|
||||
echo "🐳 Launching Nginx Proxy Manager container..."
|
||||
docker compose up -d
|
||||
|
||||
# 8. Complete setup feedback
|
||||
echo ""
|
||||
echo "=========================================================="
|
||||
echo "🎉 Setup complete! Nginx Proxy Manager is running."
|
||||
echo ""
|
||||
echo "🌐 Access the Web Dashboard at:"
|
||||
echo " http://$(hostname -I | awk '{print $1}'):81"
|
||||
echo ""
|
||||
echo "🔑 Default Credentials:"
|
||||
echo " Email: admin@example.com"
|
||||
echo " Password: changeme"
|
||||
echo "=========================================================="
|
||||
Reference in New Issue
Block a user