Repository navigation
[BUG] swag-crowdsec: package install aborts on Alpine 3.24 — lua-resty-string pulls openresty, conflicts with nginx #625
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
Name of mod: linuxserver/mods:swag-crowdsec
Name of base container: linuxserver/swag
Current Behavior:
Since the SWAG base moved from Alpine 3.22 to 3.24 (5.7.0-ls479, build 2026-08-16T18:13),
the mod's package installation aborts entirely and nginx fails to start:
**** Successfully configured CrowdSec nginx Bouncer ****
[pkg-install-init] **** Installing all mod packages ****
ERROR: unable to select packages:
nginx-1.30.4-r1:
conflicts: openresty-1.31.1.1-r0
openresty-1.31.1.1-r0[cmd:nginx=1.30.4-r1]
satisfies: world[nginx]
nginx-mod-http-lua-1.30.4-r1[nginx=1.30.4-r1]
openresty-mod-devel-kit-1.31.1.1-r0[cmd:nginx]
openresty-mod-http-lua-1.31.1.1-r0[cmd:nginx]
openresty-1.31.1.1-r0:
conflicts: nginx-1.30.4-r1[nginx]
breaks: nginx-mod-http-lua-1.30.4-r1[nginx=1.30.4-r1] (and all other nginx-mod-*)
2026/08/16 22:26:24 [emerg] 1262#1262: unknown directive "lua_package_path"
in /etc/nginx/http.d/crowdsec_nginx.conf:1
crowdsec_nginx.conf is written before the package step, so the conf exists while
nginx-mod-http-lua does not. nginx then restart-loops once per second.
This is NOT the version-mismatch issue from #1127 / docker-swag#552 / #604
("module ... version 1028003 instead of 1028002"). Here the module is never
installed at all, because apk aborts the whole transaction.
It is also not docker-mods#798 — the workaround suggested there
(INSTALL_PACKAGES=nginx-mod-http-lua) cannot help, since it resolves in the
same apk transaction and hits the same conflict.
Culprit isolated:
Simulating each package of the mod list individually against the 3.24 image:
docker run --rm --entrypoint sh ghcr.io/linuxserver/swag:5.7.0-ls479 -c '
apk update >/dev/null 2>&1
for P in lua5.1-cjson lua-sec lua-resty-string lua-resty-http
lua-resty-core lua-resty-lrucache gettext lua5.1-libs; do
printf "== %s: " "$P"
if apk add --simulate "$P" >/dev/null 2>&1; then echo OK; else echo CONFLICT; fi
done'
== lua5.1-cjson: OK
== lua-sec: OK
== lua-resty-string: CONFLICT <-- this one
== lua-resty-http: OK
== lua-resty-core: OK
== lua-resty-lrucache: OK
== gettext: OK
== lua5.1-libs: OK
nginx-mod-http-lua on its own resolves cleanly:
(1/4) Installing luajit / lua-resty-lrucache / lua-resty-core / nginx-mod-http-lua
OK: 207.1 MiB in 222 packages
So on Alpine 3.24, lua-resty-string pulls openresty-mod-http-lua /
openresty-mod-devel-kit, which require openresty, which conflicts with nginx.
Ruled out: the lua-resty-* packages have NOT been moved into openresty —
apk policy still lists them standalone in main/community on 3.24.
Workaround: Pin to 5.7.0-ls477.
Expected Behavior
Mod installs its packages and nginx starts.
Steps To Reproduce
SWAG 5.7.0-ls479 (or the moving tag 5.7.0, which points to the same build) with DOCKER_MODS=linuxserver/mods:swag-crowdsec.
Environment
- OS: Synology DSM 7.4 (Container Manager, Docker 24.0.2)
- Base image: ghcr.io/linuxserver/swag:5.7.0-ls479, Alpine 3.24.1, nginx 1.30.4
- Working: ghcr.io/linuxserver/swag:5.7.0-ls477, Alpine 3.22.5CPU architecture
x86-64
Docker creation
docker compose pull; docker compose up -dContainer logs
[mod-init] Running Docker Modification Logic
[mod-init] Adding linuxserver/mods:swag-crowdsec to container
[mod-init] Downloading linuxserver/mods:swag-crowdsec from lscr.io
[mod-init] Installing linuxserver/mods:swag-crowdsec
[mod-init] linuxserver/mods:swag-crowdsec applied to container
[migrations] started
[migrations] done
Linuxserver.io version: 5.7.0-ls479
Build-date: 2026-08-16T18:13:00+00:00
using keys found in /config/keys
Certificate exists; parameters unchanged; starting nginx
**** Configuring CrowdSec nginx Bouncer ****
**** Successfully configured CrowdSec nginx Bouncer ****
[pkg-install-init] **** Installing all mod packages ****
ERROR: unable to select packages:
nginx-1.30.4-r1:
conflicts: openresty-1.31.1.1-r0
openresty-1.31.1.1-r0[cmd:nginx=1.30.4-r1]
satisfies: world[nginx]
nginx-mod-http-brotli-1.30.4-r1[nginx=1.30.4-r1]
nginx-mod-http-lua-1.30.4-r1[nginx=1.30.4-r1]
[... all other nginx-mod-* ...]
openresty-mod-devel-kit-1.31.1.1-r0[cmd:nginx]
openresty-mod-http-lua-1.31.1.1-r0[cmd:nginx]
openresty-1.31.1.1-r0:
conflicts: nginx-1.30.4-r1[nginx]
nginx-1.30.4-r1[cmd:nginx=1.31.1.1-r0]
breaks: nginx-mod-http-lua-1.30.4-r1[nginx=1.30.4-r1]
[... all other nginx-mod-* ...]
satisfies: world[nginx]
openresty-mod-devel-kit-1.31.1.1-r0[cmd:nginx]
openresty-mod-devel-kit-1.31.1.1-r0[openresty]
openresty-mod-http-lua-1.31.1.1-r0[cmd:nginx]
openresty-mod-http-lua-1.31.1.1-r0[openresty]
[custom-init] No custom files found, skipping...
[ls.io-init] done.
**** Disabling fail2ban Service ****
2026/08/16 22:25:43 [emerg] 1016#1016: unknown directive "lua_package_path" in /etc/nginx/http.d/crowdsec_nginx.conf:1
2026/08/16 22:25:44 [emerg] 1059#1059: unknown directive "lua_package_path" in /etc/nginx/http.d/crowdsec_nginx.conf:1
[repeats once per second]Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
github-actions commentedon Aug 19, 2026
Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.
Roxedus commentedon Aug 19, 2026
We stopped installing lua-resty-string from apk two days ago with linuxserver/docker-mods@3e6080e
thespad commentedon Aug 19, 2026
You need to prompt your LLM to keep more up to date
mkorthaus-private commentedon Aug 19, 2026
THX!