mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
194 lines
5.1 KiB
YAML
194 lines
5.1 KiB
YAML
services:
|
|
newsblur_web:
|
|
hostname: nb.com
|
|
container_name: newsblur_web
|
|
image: newsblur/newsblur_${NEWSBLUR_BASE:-python3}:latest
|
|
build:
|
|
context: /srv/newsblur
|
|
dockerfile: docker/newsblur_base_image.Dockerfile
|
|
# user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
environment:
|
|
- DOCKERBUILD=True
|
|
- RUNWITHMAKEBUILD=${RUNWITHMAKEBUILD?Use the `make` command instead of docker CLI}
|
|
stdin_open: true
|
|
tty: true
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db_mongo
|
|
- db_postgres
|
|
- db_redis
|
|
- db_elasticsearch
|
|
ulimits:
|
|
nproc: 10000
|
|
nofile:
|
|
soft: 10000
|
|
hard: 10000
|
|
ports:
|
|
- 8000:8000
|
|
# only use gunicorn if the TEST env variable is not "True"
|
|
entrypoint: /bin/sh -c newsblur_web/entrypoint.sh
|
|
volumes:
|
|
- ${PWD}:/srv/newsblur
|
|
|
|
newsblur_node:
|
|
container_name: node
|
|
image: newsblur/newsblur_node:latest
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
environment:
|
|
- NODE_ENV=docker
|
|
- MONGODB_PORT=29019
|
|
command: node newsblur.js
|
|
restart: unless-stopped
|
|
stop_signal: HUP
|
|
depends_on:
|
|
- db_mongo
|
|
- db_postgres
|
|
- db_redis
|
|
ports:
|
|
- 8008:8008
|
|
volumes:
|
|
- ${PWD}/node:/srv
|
|
- ${PWD}/node/originals:/srv/originals
|
|
|
|
imageproxy:
|
|
container_name: imageproxy
|
|
# image: ghcr.io/willnorris/imageproxy:latest # Enable if you don't need arm64 and want the original imageproxy
|
|
image: yusukeito/imageproxy:v0.11.2 # Enable if you want arm64
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
entrypoint: /app/imageproxy -addr 0.0.0.0:8088 -cache /tmp/imageproxy -verbose
|
|
restart: unless-stopped
|
|
ports:
|
|
- 8088:8088
|
|
volumes:
|
|
- /tmp:/tmp/imageproxy
|
|
|
|
nginx:
|
|
container_name: nginx
|
|
image: nginx:1.19.6
|
|
restart: unless-stopped
|
|
ports:
|
|
- 81:81
|
|
depends_on:
|
|
- newsblur_web
|
|
- newsblur_node
|
|
- db_postgres
|
|
- db_redis
|
|
- db_mongo
|
|
- db_elasticsearch
|
|
environment:
|
|
- DOCKERBUILD=True
|
|
volumes:
|
|
- ./docker/nginx/nginx.local.conf:/etc/nginx/conf.d/nginx.conf
|
|
- ${PWD}:/srv/newsblur
|
|
|
|
db_postgres:
|
|
container_name: db_postgres
|
|
image: postgres:13.1
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=newsblur
|
|
- POSTGRES_PASSWORD=newsblur
|
|
# healthcheck:
|
|
# test: ["CMD-SHELL", "pg_isready -U newsblur"]
|
|
# interval: 10s
|
|
# timeout: 5s
|
|
# retries: 5
|
|
ports:
|
|
- 5434:5432
|
|
volumes:
|
|
- ./docker/volumes/postgres:/var/lib/postgresql/data
|
|
|
|
db_redis:
|
|
container_name: db_redis
|
|
image: redis:latest
|
|
ports:
|
|
- 6579:6579
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./docker/redis/redis.conf:/etc/redis/redis.conf
|
|
- ./docker/redis/redis_server.conf:/usr/local/etc/redis/redis_replica.conf
|
|
- ./docker/volumes/redis:/data
|
|
command: redis-server /etc/redis/redis.conf --port 6579
|
|
|
|
# Prod Redis
|
|
# db_redis:
|
|
# container_name: db_redis
|
|
# image: redis:latest
|
|
# ports:
|
|
# - 6579:6579
|
|
# restart: unless-stopped
|
|
# volumes:
|
|
# - ./docker/redis/redis.conf:/etc/redis/redis.conf
|
|
# - ./docker/redis/redis_server.conf:/usr/local/etc/redis/redis_replica.conf
|
|
# - ./docker/volumes/redis_prod:/data
|
|
# command: redis-server /etc/redis/redis.conf --port 6579
|
|
|
|
db_elasticsearch:
|
|
container_name: db_elasticsearch
|
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0-arm64
|
|
mem_limit: 4g
|
|
restart: unless-stopped
|
|
environment:
|
|
- discovery.type=single-node
|
|
- "ES_JAVA_OPTS=-XX:UseSVE=0"
|
|
- "CLI_JAVA_OPTS=-XX:UseSVE=0"
|
|
- "_JAVA_OPTIONS=-XX:UseSVE=0"
|
|
- cluster.routing.allocation.disk.threshold_enabled=false
|
|
- xpack.security.enabled=false
|
|
ports:
|
|
- 9200:9200
|
|
- 9300:9300
|
|
volumes:
|
|
- ./docker/volumes/elasticsearch:/usr/share/elasticsearch/data
|
|
- ./config/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
|
|
|
# Dejavu is a web UI for Elasticsearch
|
|
dejavu:
|
|
container_name: dejavu
|
|
image: appbaseio/dejavu:3.6.0
|
|
restart: unless-stopped
|
|
ports:
|
|
- 1358:1358
|
|
|
|
db_mongo:
|
|
container_name: db_mongo
|
|
image: mongo:4.0
|
|
user: mongodb
|
|
restart: unless-stopped
|
|
ports:
|
|
- 29019:29019
|
|
command: mongod --port 29019
|
|
volumes:
|
|
- ./docker/volumes/db_mongo:/data/db
|
|
|
|
task_celery:
|
|
container_name: task_celery
|
|
image: newsblur/newsblur_python3
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
command: "celery worker -A newsblur_web -B --loglevel=INFO"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ${PWD}:/srv/newsblur
|
|
environment:
|
|
- DOCKERBUILD=True
|
|
|
|
haproxy:
|
|
container_name: haproxy
|
|
image: haproxy:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- nginx
|
|
- newsblur_web
|
|
- newsblur_node
|
|
- imageproxy
|
|
- db_redis
|
|
- db_postgres
|
|
- db_elasticsearch
|
|
- db_mongo
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
- 1936:1936
|
|
volumes:
|
|
- ./docker/haproxy/haproxy.docker-compose.cfg:/usr/local/etc/haproxy/haproxy.cfg
|
|
- ${PWD}:/srv/newsblur
|