mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00

Before the gRPC migration, the system would serve both public and internal requests over HTTP, but distinguish the two using path prefixes and a few HTTP Headers (X-Public, X-Context) added by the reverse proxy to prevent misconfigurations. Since internal requests meaningfully no longer use HTTP, this convention is just an obstacle now, adding the need to always run the system behind a reverse proxy that rewrites the paths. The change removes the path prefix, and updates the docker templates to reflect the change. This will require a migration for existing systems.
171 lines
3.8 KiB
Plaintext
171 lines
3.8 KiB
Plaintext
x-svc: &service
|
|
env_file:
|
|
- "${INSTALL_DIR}/env/service.env"
|
|
volumes:
|
|
- conf:/wmsa/conf:ro
|
|
- model:/wmsa/model
|
|
- data:/wmsa/data
|
|
- logs:/var/log/wmsa
|
|
networks:
|
|
- wmsa
|
|
depends_on:
|
|
- mariadb
|
|
- zookeeper
|
|
x-p1: &partition-1
|
|
env_file:
|
|
- "${INSTALL_DIR}/env/service.env"
|
|
volumes:
|
|
- conf:/wmsa/conf:ro
|
|
- model:/wmsa/model
|
|
- data:/wmsa/data
|
|
- logs:/var/log/wmsa
|
|
- index-1:/idx
|
|
- work-1:/work
|
|
- backup-1:/backup
|
|
- storage-1:/storage
|
|
- uploads-1:/uploads
|
|
networks:
|
|
- wmsa
|
|
environment:
|
|
- "WMSA_SERVICE_NODE=1"
|
|
depends_on:
|
|
- mariadb
|
|
- zookeeper
|
|
services:
|
|
index-service-1:
|
|
<<: *partition-1
|
|
image: "marginalia/index-service"
|
|
container_name: "index-service-1"
|
|
executor-service-1:
|
|
<<: *partition-1
|
|
image: "marginalia/executor-service"
|
|
container_name: "executor-service-1"
|
|
query-service:
|
|
<<: *service
|
|
image: "marginalia/query-service"
|
|
container_name: "query-service"
|
|
expose:
|
|
- 80
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.search-service.rule=PathPrefix(`/`)"
|
|
- "traefik.http.routers.search-service.entrypoints=search"
|
|
control-service:
|
|
<<: *service
|
|
image: "marginalia/control-service"
|
|
container_name: "control-service"
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
expose:
|
|
- 80
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.control-service.rule=PathPrefix(`/`)"
|
|
- "traefik.http.routers.control-service.entrypoints=control"
|
|
mariadb:
|
|
image: "mariadb:lts"
|
|
container_name: "mariadb"
|
|
env_file: "${INSTALL_DIR}/env/mariadb.env"
|
|
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
|
|
ports:
|
|
- "127.0.0.1:3306:3306/tcp"
|
|
healthcheck:
|
|
test: mysqladmin ping -h 127.0.0.1 -u ${uval} --password=${pval}
|
|
start_period: 5s
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 60
|
|
volumes:
|
|
- db:/var/lib/mysql
|
|
networks:
|
|
- wmsa
|
|
zookeeper:
|
|
image: zookeeper
|
|
container_name: "zookeeper"
|
|
restart: always
|
|
ports:
|
|
- "127.0.0.1:2181:2181"
|
|
networks:
|
|
- wmsa
|
|
traefik:
|
|
image: "traefik:v2.10"
|
|
container_name: "traefik"
|
|
command:
|
|
#- "--log.level=DEBUG"
|
|
- "--api.insecure=true"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--entrypoints.search.address=:80"
|
|
- "--entrypoints.control.address=:81"
|
|
ports:
|
|
- "127.0.0.1:8080:80"
|
|
- "127.0.0.1:8081:81"
|
|
- "127.0.0.1:8090:8080"
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
networks:
|
|
- wmsa
|
|
networks:
|
|
wmsa:
|
|
volumes:
|
|
db:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/db
|
|
logs:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/logs
|
|
model:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/model
|
|
conf:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/conf
|
|
data:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/data
|
|
storage-1:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/index-1/storage
|
|
uploads-1:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/index-1/uploads
|
|
index-1:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/index-1/index
|
|
work-1:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/index-1/work
|
|
backup-1:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ${INSTALL_DIR}/index-1/backup |