diff --git a/deploy/local/docker-compose/nginx/nginx.conf b/deploy/local/docker-compose/nginx/nginx.conf new file mode 100644 index 00000000..0688d8b0 --- /dev/null +++ b/deploy/local/docker-compose/nginx/nginx.conf @@ -0,0 +1,69 @@ +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for" ' + '$host'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name _; + + location / { + return 404; + } + } + + server { + listen 80; + server_name grafana.$HOSTNAME; + + location / { + proxy_pass http://xatu-grafana:3000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + + server { + listen 80; + server_name server.$HOSTNAME; + + location / { + proxy_pass http://xatu-server:8080; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + + + server { + listen 80; + server_name tempo.$HOSTNAME; + + location / { + proxy_pass http://tempo:3200; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9a0df510..4c83476e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,8 @@ services: - ./deploy/local/docker-compose/clickhouse/clickhouse-01/etc/clickhouse-server/users.d/users.xml:/etc/clickhouse-server/users.d/users.xml - ./deploy/local/docker-compose/clickhouse/clickhouse-01/etc/clickhouse-server/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d ports: - - "127.0.0.1:8123:8123" - - "127.0.0.1:9000:9000" + - "${CLICKHOUSE_01_HTTP_ADDRESS:-127.0.0.1}:${CLICKHOUSE_01_HTTP_PORT:-8123}:8123" + - "${CLICKHOUSE_01_NATIVE_ADDRESS:-127.0.0.1}:${CLICKHOUSE_01_NATIVE_PORT:-9000}:9000" depends_on: xatu-clickhouse-zookeeper-01: condition: service_healthy @@ -50,8 +50,8 @@ services: - ./deploy/local/docker-compose/clickhouse/clickhouse-02/etc/clickhouse-server/users.d/users.xml:/etc/clickhouse-server/users.d/users.xml - ./deploy/local/docker-compose/clickhouse/clickhouse-02/etc/clickhouse-server/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d ports: - - "127.0.0.1:8124:8123" - - "127.0.0.1:9001:9000" + - "${CLICKHOUSE_02_HTTP_ADDRESS:-127.0.0.1}:${CLICKHOUSE_02_HTTP_PORT:-8124}:8123" + - "${CLICKHOUSE_02_NATIVE_ADDRESS:-127.0.0.1}:${CLICKHOUSE_02_NATIVE_PORT:-9001}:9000" depends_on: xatu-clickhouse-zookeeper-01: condition: service_healthy @@ -151,8 +151,8 @@ services: context: . dockerfile: Dockerfile ports: - - "8080:8080" - - "9096:9090" + - "${XATU_SERVER_ADDRESS:-0.0.0.0}:${XATU_SERVER_PORT:-8080}:8080" + - "127.0.0.1:9096:9090" volumes: - ./deploy/local/docker-compose/xatu-server.yaml:/etc/xatu-server/config.yaml networks: @@ -167,11 +167,11 @@ services: volumes: - postgres-data:/var/lib/postgresql/data environment: - POSTGRES_DB: xatu - POSTGRES_USER: user - POSTGRES_PASSWORD: password + POSTGRES_DB: ${POSTGRES_DB:-xatu} + POSTGRES_USER: ${POSTGRES_USER:-user} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} healthcheck: - test: ["CMD-SHELL", "pg_isready -U user -d xatu"] + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-user} -d ${POSTGRES_DB:-xatu}"] interval: 10s timeout: 5s retries: 5 @@ -185,7 +185,7 @@ services: image: grafana/grafana:latest container_name: xatu-grafana ports: - - "3000:3000" + - "${GRAFANA_ADDRESS:-0.0.0.0}:${GRAFANA_PORT:-3000}:3000" networks: - xatu-net environment: @@ -203,7 +203,7 @@ services: - "" image: prom/prometheus:latest ports: - - "9090:9090" + - "${PROMETHEUS_ADDRESS:-127.0.0.1}:${PROMETHEUS_PORT:-9090}:9090" networks: - xatu-net volumes: @@ -303,8 +303,8 @@ services: KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_LOG4J_LOGGERS: "kafka.controller=ERROR,kafka.producer.async.DefaultEventHandler=ERROR,state.change.logger=ERROR" ports: - - "29092:29092" - - "9092:9092" + - "${KAFKA_ADDRESS:-127.0.0.1}:${KAFKA_PORT:-29092}:29092" + - "${KAFKA_BROKER_ADDRESS:-127.0.0.1}:${KAFKA_BROKER_PORT:-9092}:9092" networks: - xatu-net volumes: @@ -331,7 +331,7 @@ services: environment: ZOO_LOG4J_PROP: "ERROR,CONSOLE" ports: - - "2181:2181" + - "${KAFKA_ZOOKEEPER_ADDRESS:-127.0.0.1}:${KAFKA_ZOOKEEPER_PORT:-2181}:2181" networks: - xatu-net volumes: @@ -354,7 +354,7 @@ services: environment: KAFKA_BROKERS: "xatu-kafka:29092" ports: - - "9005:9005" + - "${VECTOR_HTTP_KAFKA_ADDRESS:-127.0.0.1}:${VECTOR_HTTP_KAFKA_PORT:-9005}:9005" networks: - xatu-net healthcheck: @@ -379,7 +379,7 @@ services: networks: - xatu-net ports: - - "8686:8686" + - "${VECTOR_KAFKA_CLICKHOUSE_ADDRESS:-127.0.0.1}:${VECTOR_KAFKA_CLICKHOUSE_PORT:-8686}:8686" environment: CLICKHOUSE_ENDPOINT: "xatu-clickhouse-01:8123" CLICKHOUSE_USER: default @@ -484,7 +484,6 @@ services: - "/var/tempo" volumes: - tempo-data:/var/tempo - tempo: image: *tempoImage container_name: xatu-tempo @@ -493,12 +492,12 @@ services: - ./deploy/local/docker-compose/tempo.yaml:/etc/tempo.yaml - tempo-data:/var/tempo ports: - - "14268:14268" # jaeger ingest - - "3200:3200" # tempo - - "9095:9095" # tempo grpc - - "4317:4317" # otlp grpc - - "4318:4318" # otlp http - - "9411:9411" # zipkin + - "${TEMPO_JAEGER_ADDRESS:-127.0.0.1}:${TEMPO_JAEGER_PORT:-6831}:6831/udp" # jaeger ingest + - "${TEMPO_HTTP_ADDRESS:-127.0.0.1}:${TEMPO_HTTP_PORT:-3200}:3200" # tempo + - "${TEMPO_GRPC_ADDRESS:-127.0.0.1}:${TEMPO_GRPC_PORT:-9095}:9095" # tempo grpc + - "${TEMPO_OTLP_GRPC_ADDRESS:-127.0.0.1}:${TEMPO_OTLP_GRPC_PORT:-4317}:4317" # otlp grpc + - "${TEMPO_OTLP_HTTP_ADDRESS:-127.0.0.1}:${TEMPO_OTLP_HTTP_PORT:-4318}:4318" # otlp http + - "${TEMPO_ZIPKIN_ADDRESS:-127.0.0.1}:${TEMPO_ZIPKIN_PORT:-9411}:9411" # zipkin networks: - xatu-net depends_on: @@ -508,6 +507,29 @@ services: interval: 5s timeout: 5s retries: 5 + xatu-nginx: + profiles: + - nginx + image: nginx:alpine + container_name: xatu-nginx + ports: + - "${NGINX_ADDRESS:-127.0.0.1}:${NGINX_PORT:-80}:80" + environment: + - BASE_HOSTNAME=${BASE_HOSTNAME:-example.com} + volumes: + - ./deploy/local/docker-compose/nginx/nginx.conf:/tmp/nginx.conf:ro + networks: + - xatu-net + depends_on: + - xatu-grafana + - xatu-server + - xatu-prometheus + - tempo + command: > + /bin/sh -c " + sed 's/\$$HOSTNAME/'"$$BASE_HOSTNAME"'/g' /tmp/nginx.conf > /etc/nginx/nginx.conf && + nginx -g 'daemon off;' + " networks: xatu-net: