Need help with searxng docker compose
-
I hosted searxng on portainer and receive
PermissionError
andno python application found
errorLog:
PermissionError: [Errno 13] Permission denied: '/etc/searxng/settings.yml' unable to load app 0 (mountpoint='') (callable not found or import error) *** no app loaded. going in full dynamic mode *** --- no python application found, check your startup logs for errors --- [pid: 19|app: -1|req: -1/1] 127.0.0.1 () {28 vars in 330 bytes} [Sat May 17 05:06:00 2025] HEAD /healthz => generated 21 bytes in 0 msecs (HTTP/1.1 500) 3 headers in 102 bytes (0 switches on core 0)
I tried removing cap_drop (as instructed on https://github.com/searxng/searxng-docker/issues/115) but no luck
version: "3.7" services: # caddy: # container_name: caddy # image: docker.io/library/caddy:2-alpine # network_mode: host # restart: unless-stopped # volumes: # - ./Caddyfile:/etc/caddy/Caddyfile:ro # - caddy-data:/data:rw # - caddy-config:/config:rw # environment: # # - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost/} # - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal} # cap_drop: # - ALL # cap_add: # - NET_BIND_SERVICE # logging: # driver: "json-file" # options: # max-size: "1m" # max-file: "1" redis: container_name: redis image: docker.io/valkey/valkey:8-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped networks: - searxng volumes: - valkey-data2:/data # cap_drop: # - ALL cap_add: - SETGID - SETUID - DAC_OVERRIDE logging: driver: "json-file" options: max-size: "1m" max-file: "1" searxng: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped networks: - searxng ports: # - "127.0.0.1:8080:8080" - "20054:8080" volumes: - ./searxng:/etc/searxng:rw environment: # - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/ - SEARXNG_BASE_URL="http://mydomain:20054/" - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4} - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4} # cap_drop: # - ALL cap_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1" networks: searxng: volumes: # caddy-data: # caddy-config: valkey-data2:
thx a lot!
-
I hosted searxng on portainer and receive
PermissionError
andno python application found
errorLog:
PermissionError: [Errno 13] Permission denied: '/etc/searxng/settings.yml' unable to load app 0 (mountpoint='') (callable not found or import error) *** no app loaded. going in full dynamic mode *** --- no python application found, check your startup logs for errors --- [pid: 19|app: -1|req: -1/1] 127.0.0.1 () {28 vars in 330 bytes} [Sat May 17 05:06:00 2025] HEAD /healthz => generated 21 bytes in 0 msecs (HTTP/1.1 500) 3 headers in 102 bytes (0 switches on core 0)
I tried removing cap_drop (as instructed on https://github.com/searxng/searxng-docker/issues/115) but no luck
version: "3.7" services: # caddy: # container_name: caddy # image: docker.io/library/caddy:2-alpine # network_mode: host # restart: unless-stopped # volumes: # - ./Caddyfile:/etc/caddy/Caddyfile:ro # - caddy-data:/data:rw # - caddy-config:/config:rw # environment: # # - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost/} # - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal} # cap_drop: # - ALL # cap_add: # - NET_BIND_SERVICE # logging: # driver: "json-file" # options: # max-size: "1m" # max-file: "1" redis: container_name: redis image: docker.io/valkey/valkey:8-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped networks: - searxng volumes: - valkey-data2:/data # cap_drop: # - ALL cap_add: - SETGID - SETUID - DAC_OVERRIDE logging: driver: "json-file" options: max-size: "1m" max-file: "1" searxng: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped networks: - searxng ports: # - "127.0.0.1:8080:8080" - "20054:8080" volumes: - ./searxng:/etc/searxng:rw environment: # - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/ - SEARXNG_BASE_URL="http://mydomain:20054/" - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4} - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4} # cap_drop: # - ALL cap_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1" networks: searxng: volumes: # caddy-data: # caddy-config: valkey-data2:
thx a lot!
I've never used portainer sorry.
If you see the published port for a very short time then something might be crashing when it tries to start.
docker logs searxng
from cli might be revealingedit: I do have a searxng container and my compose.yml is very similar to yours. I guess we both copied the example. The only difference I can see is that you still have the env variables for UWSGI_WORKERS and UWSGI_THREADS. I just set both of those to 4 instead of using the SEARXNG_ env vars
-
I've never used portainer sorry.
If you see the published port for a very short time then something might be crashing when it tries to start.
docker logs searxng
from cli might be revealingedit: I do have a searxng container and my compose.yml is very similar to yours. I guess we both copied the example. The only difference I can see is that you still have the env variables for UWSGI_WORKERS and UWSGI_THREADS. I just set both of those to 4 instead of using the SEARXNG_ env vars
Listen on [::]:8080
doesn't give 20054, could this be the reason?Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525] SearXNG version 2025.5.16+1b08324 Use existing /etc/searxng/uwsgi.ini Use existing /etc/searxng/settings.yml Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525] SearXNG version 2025.5.16+1b08324 Use existing /etc/searxng/uwsgi.ini Use existing /etc/searxng/settings.yml Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525]
-
Listen on [::]:8080
doesn't give 20054, could this be the reason?Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525] SearXNG version 2025.5.16+1b08324 Use existing /etc/searxng/uwsgi.ini Use existing /etc/searxng/settings.yml Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525] SearXNG version 2025.5.16+1b08324 Use existing /etc/searxng/uwsgi.ini Use existing /etc/searxng/settings.yml Listen on [::]:8080 [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525]
open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525]
I think here is your problem. Make sure that file exists and is readable from inside of the docker.
-
open("/etc/searxng/uwsgi.ini"): Permission denied [core/io.c line 525]
I think here is your problem. Make sure that file exists and is readable from inside of the docker.
I tried removing cap_drop (as instructed on https://github.com/searxng/searxng-docker/issues/115) but no luck, the permission error still exists. And also there occurs a new error
no python application found
-
I tried removing cap_drop (as instructed on https://github.com/searxng/searxng-docker/issues/115) but no luck, the permission error still exists. And also there occurs a new error
no python application found
try opening a shell with ' docker exec -it searxng sh" and see if you can cat the file from inside docker, if yes then I'm not sure of a solution ,if no then the problem is with permissions on your filesystem outside of docker where you have " - ./data/searxng:/etc/searxng" You need to go to ./data/searxng and correct the permissions so they can be read inside the docker.
-
try opening a shell with ' docker exec -it searxng sh" and see if you can cat the file from inside docker, if yes then I'm not sure of a solution ,if no then the problem is with permissions on your filesystem outside of docker where you have " - ./data/searxng:/etc/searxng" You need to go to ./data/searxng and correct the permissions so they can be read inside the docker.
u are right its not writable, the files are read only, that is wierd
-
u are right its not writable, the files are read only, that is wierd
Yep Probably you need to change ownership and/or permissions of the files outside of docker.
I dont want to give the wrong suggestion from memory so hopefully thats enough info to get you going in the direction of a fix. Basically see what user id owns the files inside of docker, make it the same uid outside of docker in the folder you are bind mounting.
-
Yep Probably you need to change ownership and/or permissions of the files outside of docker.
I dont want to give the wrong suggestion from memory so hopefully thats enough info to get you going in the direction of a fix. Basically see what user id owns the files inside of docker, make it the same uid outside of docker in the folder you are bind mounting.
$ sudo docker exec -it searxng sh -c "id" uid=0(root) gid=0(root) groups=0(root)
container is running as root, so there shouldn't be any permission error?
u are right its not writable, the files are read only, that is wierd
I'm opening those files with windows but the user permission inside docker shouldn't cause that problem.
I'm scratching my head nw
user id