services: web: image: caddy:latest restart: always volumes: - ./web/html:/srv/html - ./web/Caddyfile:/etc/caddy/Caddyfile proxy: image: caddy:latest restart: always ports: - "80:80" - "443:443" volumes: - ./proxy/Caddyfile:/etc/caddy/Caddyfile - ./proxy/data:/data - ./proxy/config:/config depends_on: - web - searxng-core - searxng-valkey - gitea searxng-core: container_name: searxng-core image: docker.io/searxng/searxng:${SEARXNG_VERSION:-latest} restart: always env_file: ./searx/.env networks: - default volumes: - ./searx/core-config/:/etc/searxng/:Z - ./searx/core-data:/var/cache/searxng/ - ./searx/limiter.toml:/etc/searxng/limiter.toml:Z searxng-valkey: container_name: searxng-valkey image: docker.io/valkey/valkey:9-alpine command: valkey-server --save 30 1 --loglevel warning restart: always networks: - default volumes: - ./searx/valkey-data:/data/ gitea: image: docker.io/gitea/gitea environment: - USER_UID=1000 - USER_GID=1000 - ROOT_URL=https://gitea.viljarb.online - DOMAIN=gitea.viljarb.online - SSH_DOMAIN=gitea.viljarb.online - SSH_PORT=2222 - GITEA__log__ROOT_PATH=/var/log/gitea - GITEA__log__MODE=file restart: always networks: - default volumes: - ./gitea:/data - ./gitea/logs:/var/log/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "2222:2222"