Crowdsec local api and log processor

Hi there,

once again a question to crowdsec on OpenWRT :grinning_face:
I'm still impressed how smooth everthing is running and I want to implement my docker container that is analyzing logs.
Therefore I modified my server api setting in the configuration file in /etc/crowdsec/config.yaml to listen on http://192.168.2.1:8080
I also modified the connection information in /etc/crowdsec/local_api_credentials.yaml and ensured that the connection to the api on the OpenWRT box could be made.

And then based on the official guide here I tried to connect my docker crowdsec container. I registered it successfully on the OpenWRT Box and after validating it it is now listed in the command cscli machines list.

root@OpenWrt:~# cscli machines list
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Name                                              IP Address    Last Update           Status  Version                         Auth Type  Last Heartbeat
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 0760f50ceebc44249ab1c25cd29253e6CUqrHrI7ggYAT0PD  192.168.2.1   2025-11-15T18:28:15Z  ✔️      v1.6.2-openwrt-1.6.2-1-openwrt  password   43s
 unraid                                            192.168.2.48  2025-11-15T18:19:49Z  ✔️                                      password   ⚠️ 9m29s
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

But like you could see in the output the docker crowdsec instance called unraid is not updating it's haertbeat.

The configuration of the crowdsec log processor is like this:
/crowdsec/config.yaml

common:
  log_media: stdout
  log_level: info
  log_dir: /var/log/
config_paths:
  config_dir: /etc/crowdsec/
  data_dir: /var/lib/crowdsec/data/
  simulation_path: /etc/crowdsec/simulation.yaml
  hub_dir: /etc/crowdsec/hub/
  index_path: /etc/crowdsec/hub/.index.json
  notification_dir: /etc/crowdsec/notifications/
  plugin_dir: /usr/local/lib/crowdsec/plugins/
crowdsec_service:
  acquisition_path: /etc/crowdsec/acquis.yaml
  acquisition_dir: /etc/crowdsec/acquis.d
  parser_routines: 1
plugin_config:
  user: nobody
  group: nobody
cscli:
  output: human
db_config:
  log_level: info
  type: sqlite
  db_path: /var/lib/crowdsec/data/crowdsec.db
  flush:
    max_items: 5000
    max_age: 7d
  use_wal: false
api:
  client:
    insecure_skip_verify: false
    credentials_path: /etc/crowdsec/local_api_credentials.yaml
  server:
    log_level: info
    listen_uri: 0.0.0.0:8080
    profiles_path: /etc/crowdsec/profiles.yaml
    trusted_ips: # IP ranges, or IPs which can have admin API access
      - 127.0.0.1
      - ::1
    online_client: # Central API credentials (to push signals and receive bad IPs)
      credentials_path: /etc/crowdsec//online_api_credentials.yaml
    enable: true
prometheus:
  enabled: true
  level: full
  listen_addr: 0.0.0.0
  listen_port: 6060

and /etc/crowdsec/local_api_credentials.yaml

url: 192.168.2.1:8080
login: unraid
password: qGJILRh0P1sFIgXTkUfAoyA6QmrasdadsqweoPvyv77goOzUf****2K47ql9v8

I also checked via curl that the log processor can contact the crowdsec API on the OpenWRT box which also looks good to me:

# curl -vk http://192.168.2.1:8080/v1/heartbeat
*   Trying 192.168.2.1:8080...
* Connected to 192.168.2.1 (192.168.2.1) port 8080
* using HTTP/1.x
> GET /v1/heartbeat HTTP/1.1
> Host: 192.168.2.1:8080
> User-Agent: curl/8.14.1
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 401 Unauthorized
< Content-Type: application/json; charset=utf-8
< Www-Authenticate: JWT realm=Crowdsec API local
< Date: Sat, 15 Nov 2025 18:24:24 GMT
< Content-Length: 46
< 
* Connection #0 to host 192.168.2.1 left intact

But why is the heartbeat not getting updated then on OpenWRT?

Regards
Shorty