docker-nginx-proxy-manager icon indicating copy to clipboard operation
docker-nginx-proxy-manager copied to clipboard

[Help] Any plan to publish an updated docker drop in replacement?

Open maxdd opened this issue 5 months ago • 0 comments

Current Behavior

Hello, i've seen you pushed some commits to support new versions of npm. Do you plan to publish a working docker image?

is this still a valid example https://github.com/LePresidente/example-docker-compose/tree/main/npm, definitely acquis.yaml inclusion will not work like this (you cannot use volume when mounting a file to crowdsec folder) Below my setup with which i cant get pass the npm login screen with [email protected] and changeme

Expected Behavior

npm homepage is accessible

Steps To Reproduce

see below

Environment

debian 12

Container creation


services:
  app:
    image: 'lepresidente/nginx-proxy-manager:latest'
    restart: unless-stopped
    networks:
      crowdsec:
      npm:
    ports:
      # These ports are in format :
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: ${DATABASE_PASSWORD}
      DB_MYSQL_NAME: "npm"
      CROWDSEC_OPENRESTY_BOUNCER: |
        ENABLED=true
        API_URL=http://crowdsec:8080
        API_KEY=${CROWDSEC_BOUNCER_APIKEY}
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./npm/data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      db:
        condition: service_healthy
    security_opt:
      - no-new-privileges=true

  db:
    image: 'mariadb:lts'
    restart: unless-stopped
    networks:
      npm:
    environment:
      MYSQL_ROOT_PASSWORD: ${ROOT_DATABASE_PASSWORD}
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: ${DATABASE_PASSWORD}
    volumes:
      - mariadb-data:/var/lib/mysql
    security_opt:
      - no-new-privileges=true
    healthcheck:
      test: ['CMD', '/usr/local/bin/healthcheck.sh', '--innodb_initialized']
      start_period: 5s
      timeout: 5s
      interval: 5s
      retries: 5

  crowdsec:
    image: docker.io/crowdsecurity/crowdsec:latest
    container_name: crowdsec
    environment:
      - COLLECTIONS=crowdsecurity/nginx-proxy-manager
    volumes:
      - ./crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
      - ./crowdsec/data:/var/lib/crowdsec/data/ #had to change to local folder
      - ./crowdsec/config:/etc/crowdsec/            #had to change to local folder
      - ./npm/data/logs/:/var/log/npm:ro
    networks:
      crowdsec:
    restart: unless-stopped
    security_opt:
      - no-new-privileges=true

volumes:
  #crowdsec-db:
  #crowdsec-config:
  mariadb-data:

networks:
  crowdsec:
    driver: bridge
  npm:
    driver: bridge

Container log

[supervisor  ] starting services...
[supervisor  ] starting service 'nginx'...
[nginx       ] nginx: [error] [lua] crowdsec.lua:119: init(): error loading captcha plugin: no recaptcha site key provided, can't use recaptcha
[nginx       ] nginx: [error] [lua] ban.lua:37: new(): BAN_TEMPLATE_PATH and REDIRECT_LOCATION variable are empty, will return HTTP 403 for ban decisions
[nginx       ] nginx: [alert] [lua] crowdsec_openresty.conf:5):11: [Crowdsec] Initialisation done
[supervisor  ] starting service 'app'...
[supervisor  ] all services started.
[cert_cleanup] ----------------------------------------------------------
[cert_cleanup] Let's Encrypt certificates cleanup - 2025/07/17 19:06:00
[cert_cleanup] ----------------------------------------------------------
[cert_cleanup] 0 file(s) kept.
[cert_cleanup] 0 file(s) deleted.
[app         ] [7/17/2025] [7:06:00 PM] [Global   ] › ℹ  info      Using MySQL configuration
[app         ] [7/17/2025] [7:06:00 PM] [Global   ] › ℹ  info      Creating a new JWT key pair...
[app         ] [7/17/2025] [7:06:09 PM] [Global   ] › ℹ  info      Wrote JWT key pair to config file: /data/keys.json
[app         ] [7/17/2025] [7:06:10 PM] [Migrate  ] › ℹ  info      Current database version: 20240427161436
[app         ] [7/17/2025] [7:06:10 PM] [Setup    ] › ℹ  info      Logrotate Timer initialized
[app         ] [7/17/2025] [7:06:10 PM] [Global   ] › ⬤  debug     CMD: logrotate -s /config/logrotate.status /etc/logrotate.d/nginx-proxy-manager
[app         ] [7/17/2025] [7:06:10 PM] [Setup    ] › ℹ  info      Logrotate completed.
[app         ] [7/17/2025] [7:06:10 PM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
[app         ] [7/17/2025] [7:06:10 PM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[app         ] [7/17/2025] [7:06:10 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v4
[app         ] [7/17/2025] [7:06:10 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v6
[app         ] [7/17/2025] [7:06:10 PM] [SSL      ] › ℹ  info      Let's Encrypt Renewal Timer initialized
[app         ] [7/17/2025] [7:06:10 PM] [SSL      ] › ℹ  info      Renewing SSL certs expiring within 30 days ...
[app         ] [7/17/2025] [7:06:10 PM] [IP Ranges] › ℹ  info      IP Ranges Renewal Timer initialized
[app         ] [7/17/2025] [7:06:10 PM] [Global   ] › ℹ  info      Backend PID 413 listening on port 3000 ...
[app         ] [7/17/2025] [7:06:10 PM] [SSL      ] › ℹ  info      Completed SSL cert renew process

Container inspect


Anything else?

The log doesnt show much and i cant browse port 81 to access npm npm folder is not getting populate as well

maxdd avatar Jul 15 '25 18:07 maxdd