How do I run ryot rootless and as a read-only container? #1656
-
|
I tried giving ryot a shot today but couldn't get it to run for me as a normal user and read-only container. Here is my include:
- ../compose.common.yaml
- ../traefik/compose.yaml
- ../vectorchord/compose.yaml
services:
ryot:
container_name: ryot
image: ghcr.io/ignisda/ryot:v10.0.2
user: $PUID:$PGID
read_only: true
security_opt:
- no-new-privileges
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE # Needed for Caddy.
networks:
- traefik
- vectorchord
# - internet
environment:
DISABLE_TELEMETRY: true
FRONTEND_URL: https://ryot.$DOMAIN
DATABASE_URL: postgres://$RYOT_DB_USER:$RYOT_DB_PASSWORD@vectorchord:5432/$RYOT_DB
SERVER_ADMIN_ACCESS_TOKEN: $RYOT_ADMIN_ACCESS_TOKEN
SERVER_OIDC_ISSUER_URL: https://pocket-id.$DOMAIN
RUST_LOG: ryot=debug
TZ: $TZ
expose:
- &port 8000
labels:
traefik.enable: true
traefik.http.routers.ryot.rule: Host(`ryot.$DOMAIN`)
traefik.http.services.ryot.loadbalancer.server.port: *port
# tmpfs:
# - /tmp:noexec
# volumes:
# - ./cache:/app/cache:rw
# - ./state:/app/config:rw
restart: unless-stoppedWhen I run this, I get the following: This was expected to some extent and it would be nice to know which directories ryot expects to write to so that I can mount externally backed-up directories inside. I disabled the |
Beta Was this translation helpful? Give feedback.
Answered by
UtkarshVerma
Jan 2, 2026
Replies: 1 comment 3 replies
-
|
Ryot also writes the finalized configuration to |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks, I was able to modify my
compose.yamland now it works. All I had to do was add a tmpfs mount for/home/ryot/tmpand volume mounts for/.localand.config.