searxng-docker/docker-compose.yaml

110 lines
2.4 KiB
YAML

version: '3.7'
services:
caddy:
container_name: caddy
image: abiosoft/caddy:1.0.1-no-stats
ports:
- 80:80
- 443:443
network_mode: host
command: -email ${LETSENCRYPT_EMAIL} -agree=${LETSENCRYPT_AGREE} -log stdout -host ${SEARX_HOSTNAME} -conf /etc/Caddyfile
volumes:
- ./Caddyfile:/etc/Caddyfile:rw
- ./caddy:/root/.caddy:rw
- ./srv:/srv:rw
- searx-checker:/srv/searx-checker:rw
environment:
- SEARX_HOSTNAME=${SEARX_HOSTNAME}
- SEARX_PROTOCOL=${SEARX_PROTOCOL:-}
- SEARX_TLS=${SEARX_TLS:-}
- FILTRON_USER=${FILTRON_USER}
- FILTRON_PASSWORD=${FILTRON_PASSWORD}
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
- DAC_OVERRIDE
filtron:
container_name: filtron
image: filtron
hostname: filtron
restart: always
ports:
- 127.0.0.1:4040:4040
- 127.0.0.1:4041:4041
networks:
searx:
ipv4_address: 10.10.10.3
command: -listen 10.10.10.3:4040 -api 10.10.10.3:4041 -target 10.10.10.4:8080
read_only: true
cap_drop:
- ALL
searx:
container_name: searx
image: asciimoo/searx
hostname: searx
restart: always
networks:
searx:
ipv4_address: 10.10.10.4
command: ${SEARX_COMMAND:-}
volumes:
- ./searx:/etc/searx:rw
environment:
- BIND_ADDRESS=10.10.10.4:8080
- BASE_URL=https://${SEARX_HOSTNAME}/
- MORTY_URL=https://${SEARX_HOSTNAME}/morty/
- MORTY_KEY=${MORTY_KEY}
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
morty:
container_name: morty
image: morty
hostname: morty
restart: always
ports:
- 127.0.0.1:3000:3000
networks:
searx:
ipv4_address: 10.10.10.5
command: -listen 10.10.10.5:3000 -timeout 6 -ipv6
environment:
- MORTY_KEY=${MORTY_KEY}
logging:
driver: none
read_only: true
cap_drop:
- ALL
searx-checker:
container_name: searx-checker
image: searx/searx-checker
hostname: searx-checker
restart: always
networks:
searx:
ipv4_address: 10.10.10.6
command: -cron -o html/data/status.json http://10.10.10.4:8080
volumes:
- searx-checker:/usr/local/searx-checker/html/data:rw
networks:
searx:
ipam:
driver: default
config:
- subnet: 10.10.10.0/24
volumes:
searx-checker: