Skip to content

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

@maxdd

Description

@maxdd

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions