1. 环境配置

mkdir -p /docker/npm/data /docker/npm/letsencrypt /docker/mariadb-npm/data /docker/mariadb-npm/conf /docker/mariadb-npm/log && \
tee /docker/npm/.env <<-'EOF'
MYSQL_ROOT_PASSWORD=<MYSQL_ROOT_PASSWORD>
MYSQL_DATABASE=<MYSQL_DATABASE>
MYSQL_USER=<MYSQL_USER>
MYSQL_PASSWORD=<MYSQL_PASSWORD>
EOF

2. 编辑 docker-compose.yml

tee /docker/npm/docker-compose.yml <<-'EOF'
services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm
    restart: unless-stopped
    ports:
      - "80:80" # Public HTTP Port
      - "443:443" # Public HTTPS Port
      - "81:81" # Admin Web Port
    environment:
      DB_MYSQL_HOST: mariadb-npm
      DB_MYSQL_PORT: 3306
      DB_MYSQL_NAME: ${MYSQL_DATABASE}
      DB_MYSQL_USER: ${MYSQL_USER}
      DB_MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      #DISABLE_IPV6: true	# Uncomment this if IPv6 is not enabled on your host
    volumes:
      - /docker/npm/data:/data
      - /docker/npm/letsencrypt:/etc/letsencrypt
    depends_on:
      - mariadb-npm
    networks:
      - internal
    
    
  mariadb-npm:
    image: jc21/mariadb-aria:latest
    container_name: mariadb-npm
    restart: unless-stopped
    ports:
      - "82:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - /docker/mariadb-npm/data:/var/lib/mysql
      - /docker/mariadb-npm/log:/var/log/mysql:rw
      - /docker/mariadb-npm/conf/:/etc/mysql/conf.d
    networks:
      - internal

networks:
  internal:
    driver: bridge
    name: internal
EOF

3. 运行 docker compose

cd /docker/npm/ && \
docker compose up -d

4. 其他

# backup
cd /docker/npm/ && \
docker compose stop && \ 
docker compose rm -f && \
docker rmi jc21/nginx-proxy-manager:latest && \
docker rmi jc21/mariadb-aria && \
rm -rf /docker/npm /docker/mariadb-npm
# 查看日志
docker compose logs

NPM


&NPM

  • New Proxy Host

    • Details

      • Domain Names

        <域名>

      • Scheme

        http

      • Forward Hostname / IP

        npm

      • Forward Port

        81

      • Cache Assets

        False

      • Block Common Exploits

        True

      • Websockets Support

        True

      • Access List

        PUblicly Accessible

  • SSL

    • SSL Certificate

      Request a new SSL Certificate

    • Force SSL

      True

    • HTTP/2 Support

      True

    • HSTS Enabled

      False

    • HSTS Subdomains

      False

    • Use a DNS Challenge

      False

    • Email Address for Let's Encrypt

      <管理员邮箱>

    • I Agree to the Let's Encrypt Terms of Service

      True


&Navicat

  • 连接名

    NPM

  • 主机

    <域名 or IP>

  • 端口

    82

  • 用户名

    <MYSQL_USER>

  • 密码

    <MYSQL_PASSWORD>