this post was submitted on 17 May 2025
24 points (96.2% liked)

Selfhosted

46679 readers
511 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I hosted searxng on portainer and receive PermissionError and no python application found error

Log:

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!

you are viewing a single comment's thread
view the rest of the comments
[–] Override4414@lemmy.world 1 points 16 hours ago (1 children)

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

[–] HappyTimeHarry@lemm.ee 1 points 15 hours ago (2 children)

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.

[–] Override4414@lemmy.world 1 points 15 hours ago (1 children)

u are right its not writable, the files are read only, that is wierd

[–] HappyTimeHarry@lemm.ee 1 points 15 hours ago (1 children)

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.

[–] Override4414@lemmy.world 1 points 14 hours ago* (last edited 14 hours ago) (1 children)
SN_FR_@SN:~$ 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

[–] HappyTimeHarry@lemm.ee 1 points 5 hours ago* (last edited 5 hours ago)

The problem is that while docker is running as root (0) the searxng process internally runs as a user searxng with id 977

So your filesystem outside of docker needs to have those files assigned the right ownership.

This thread has a more detailed discussion that you might find helpful. https://forums.truenas.com/t/how-to-install-searxng-app-docker-permissions-issue/14049/10

[–] Override4414@lemmy.world 1 points 15 hours ago (1 children)
~ # ls /etc/searxng
settings.yml  uwsgi.ini
~ # cat settings.yml
cat: can't open 'settings.yml': No such file or directory
~ # cat /etc/searxng/settings.yml
general:
  # Debug mode, only for development. Is overwritten by ${SEARXNG_DEBUG}
  debug: false
  # displayed name
  instance_name: "searxng"
  # For example: https://example.com/privacy

I think I do have the permission?

[–] HappyTimeHarry@lemm.ee 1 points 15 hours ago

If you have permissions then try editibg uwsgi.ini and see if it lets you save.

Im going from memory but i think i had a similar issue and i had to manually create the file, yours shows the file already exists but it might not be writable.