mirror of
https://github.com/hcengineering/huly-selfhost.git
synced 2026-08-17 21:25:55 +02:00
* Disable auto-translate and mailboxes Signed-off-by: Artem Savchenko <armisav@gmail.com> * Clean up Signed-off-by: Artem Savchenko <armisav@gmail.com> --------- Signed-off-by: Artem Savchenko <armisav@gmail.com>
282 lines
8.6 KiB
YAML
282 lines
8.6 KiB
YAML
name: ${DOCKER_NAME}
|
|
services:
|
|
nginx:
|
|
image: "nginx:1.21.3"
|
|
ports:
|
|
- "${HTTP_BIND}:${HTTP_PORT}:80"
|
|
volumes:
|
|
- ./.huly.nginx:/etc/nginx/conf.d/default.conf
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
cockroach:
|
|
image: cockroachdb/cockroach:latest-v24.2
|
|
command: start-single-node --accept-sql-without-tls
|
|
environment:
|
|
- COCKROACH_DATABASE=${CR_DATABASE}
|
|
- COCKROACH_USER=${CR_USERNAME}
|
|
- COCKROACH_PASSWORD=${CR_USER_PASSWORD}
|
|
volumes:
|
|
- ${VOLUME_CR_DATA_PATH:-cr_data}:/cockroach/cockroach-data
|
|
- ${VOLUME_CR_CERTS_PATH:-cr_certs}:/cockroach/certs
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
redpanda:
|
|
image: docker.redpanda.com/redpandadata/redpanda:v24.3.6
|
|
command:
|
|
- redpanda
|
|
- start
|
|
- --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:19092
|
|
- --advertise-kafka-addr internal://redpanda:9092,external://localhost:19092
|
|
- --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:18082
|
|
- --advertise-pandaproxy-addr internal://redpanda:8082,external://localhost:18082
|
|
- --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:18081
|
|
- --rpc-addr redpanda:33145
|
|
- --advertise-rpc-addr redpanda:33145
|
|
- --mode dev-container
|
|
- --smp 1
|
|
- --default-log-level=info
|
|
volumes:
|
|
- ${VOLUME_REDPANDA_PATH:-redpanda}:/var/lib/redpanda/data
|
|
environment:
|
|
- REDPANDA_SUPERUSER_USERNAME=${REDPANDA_ADMIN_USER}
|
|
- REDPANDA_SUPERUSER_PASSWORD=${REDPANDA_ADMIN_PWD}
|
|
healthcheck:
|
|
test: ['CMD', 'rpk', 'cluster', 'info', '-X', 'user=${REDPANDA_ADMIN_USER}', '-X', 'pass=${REDPANDA_ADMIN_PWD}']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
networks:
|
|
- huly_net
|
|
|
|
minio:
|
|
image: "minio/minio"
|
|
command: server /data --address ":9000" --console-address ":9001"
|
|
volumes:
|
|
- ${VOLUME_FILES_PATH:-files}:/data
|
|
healthcheck:
|
|
test: ['CMD', 'mc', 'ready', 'local']
|
|
interval: 5s
|
|
retries: 10
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
elastic:
|
|
image: "elasticsearch:7.14.2"
|
|
command: |
|
|
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment || yes | ./bin/elasticsearch-plugin install --silent ingest-attachment;
|
|
/usr/local/bin/docker-entrypoint.sh eswrapper"
|
|
volumes:
|
|
- ${VOLUME_ELASTIC_PATH:-elastic}:/usr/share/elasticsearch/data
|
|
environment:
|
|
- ELASTICSEARCH_PORT_NUMBER=9200
|
|
- BITNAMI_DEBUG=true
|
|
- discovery.type=single-node
|
|
- ES_JAVA_OPTS=-Xms1024m -Xmx1024m
|
|
- http.cors.enabled=true
|
|
- http.cors.allow-origin=http://localhost:8082
|
|
healthcheck:
|
|
interval: 20s
|
|
retries: 10
|
|
test: curl -s http://localhost:9200/_cluster/health | grep -vq '"status":"red"'
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
# mongodb:
|
|
# image: mongo:7-jammy
|
|
# restart: unless-stopped
|
|
# volumes:
|
|
# - ${VOLUME_MONGO_PATH:-mongodb}:/data/db
|
|
# networks:
|
|
# - huly_net
|
|
# # Required by aibot and calendar services
|
|
|
|
# redis:
|
|
# image: redis:7-alpine
|
|
# command: redis-server --maxmemory 512mb --maxmemory-policy allkeys-lru
|
|
# restart: unless-stopped
|
|
# networks:
|
|
# - huly_net
|
|
# # Required by HulyPulse (push notifications / real-time updates)
|
|
|
|
# hulypulse:
|
|
# image: hardcoreeng/service_hulypulse:${HULY_PULSE_VERSION:-0.1.29}
|
|
# ports:
|
|
# - 8099:8099
|
|
# environment:
|
|
# - HULY_BIND_PORT=8099
|
|
# - HULY_LOG=info
|
|
# - HULY_TOKEN_SECRET=${SECRET}
|
|
# - HULY_HEARTBEAT_TIMEOUT=60
|
|
# - HULY_BACKEND=memory
|
|
# # For Redis backend instead of in-memory (optional, e.g. multi-node setups):
|
|
# # - HULY_BACKEND=redis
|
|
# # - HULY_REDIS_MODE=direct
|
|
# # - HULY_REDIS_URLS=redis://redis:6379
|
|
# deploy:
|
|
# resources:
|
|
# limits:
|
|
# memory: 512M
|
|
# restart: unless-stopped
|
|
# networks:
|
|
# - huly_net
|
|
|
|
rekoni:
|
|
image: hardcoreeng/rekoni-service:${HULY_VERSION}
|
|
environment:
|
|
- SECRET=${SECRET}
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 500M
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
transactor:
|
|
image: hardcoreeng/transactor:${HULY_VERSION}
|
|
environment:
|
|
- SERVER_PORT=3333
|
|
- SERVER_SECRET=${SECRET}
|
|
- DB_URL=${CR_DB_URL}
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
- FRONT_URL=http://localhost:8087
|
|
- ACCOUNTS_URL=http://account:3000
|
|
- FULLTEXT_URL=http://fulltext:4700
|
|
- STATS_URL=http://stats:4900
|
|
- LAST_NAME_FIRST=${LAST_NAME_FIRST:-true}
|
|
- QUEUE_CONFIG=redpanda:9092
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
collaborator:
|
|
image: hardcoreeng/collaborator:${HULY_VERSION}
|
|
environment:
|
|
- COLLABORATOR_PORT=3078
|
|
- SECRET=${SECRET}
|
|
- ACCOUNTS_URL=http://account:3000
|
|
- STATS_URL=http://stats:4900
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
account:
|
|
image: hardcoreeng/account:${HULY_VERSION}
|
|
environment:
|
|
- SERVER_PORT=3000
|
|
- SERVER_SECRET=${SECRET}
|
|
- DB_URL=${CR_DB_URL}
|
|
- TRANSACTOR_URL=ws://transactor:3333;ws${SECURE:+s}://${HOST_ADDRESS}/_transactor
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
- FRONT_URL=http${SECURE:+s}://${HOST_ADDRESS}
|
|
- STATS_URL=http${SECURE:+s}://${HOST_ADDRESS}/_stats
|
|
- MODEL_ENABLED=*
|
|
- ACCOUNTS_URL=http${SECURE:+s}://${HOST_ADDRESS}/_accounts
|
|
- ACCOUNT_PORT=3000
|
|
- QUEUE_CONFIG=redpanda:9092
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
workspace:
|
|
image: hardcoreeng/workspace:${HULY_VERSION}
|
|
environment:
|
|
- SERVER_SECRET=${SECRET}
|
|
- DB_URL=${CR_DB_URL}
|
|
- TRANSACTOR_URL=ws://transactor:3333;ws${SECURE:+s}://${HOST_ADDRESS}/_transactor
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
- MODEL_ENABLED=*
|
|
- ACCOUNTS_URL=http://account:3000
|
|
- STATS_URL=http://stats:4900
|
|
- QUEUE_CONFIG=redpanda:9092
|
|
- ACCOUNTS_DB_URL=${CR_DB_URL}
|
|
# - INIT_REPO_DIR=/no-init-scripts
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
front:
|
|
image: hardcoreeng/front:${HULY_VERSION}
|
|
environment:
|
|
- SERVER_PORT=8080
|
|
- SERVER_SECRET=${SECRET}
|
|
- LOVE_ENDPOINT=http${SECURE:+s}://${HOST_ADDRESS}/_love
|
|
- ACCOUNTS_URL=http${SECURE:+s}://${HOST_ADDRESS}/_accounts
|
|
- ACCOUNTS_URL_INTERNAL=http://account:3000
|
|
- REKONI_URL=http${SECURE:+s}://${HOST_ADDRESS}/_rekoni
|
|
- CALENDAR_URL=http${SECURE:+s}://${HOST_ADDRESS}/_calendar
|
|
- GMAIL_URL=http${SECURE:+s}://${HOST_ADDRESS}/_gmail
|
|
- TELEGRAM_URL=http${SECURE:+s}://${HOST_ADDRESS}/_telegram
|
|
- STATS_URL=http${SECURE:+s}://${HOST_ADDRESS}/_stats
|
|
- UPLOAD_URL=/files
|
|
- ELASTIC_URL=http://elastic:9200
|
|
- COLLABORATOR_URL=ws${SECURE:+s}://${HOST_ADDRESS}/_collaborator
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
- TITLE=${TITLE:-Huly Self Host}
|
|
- DEFAULT_LANGUAGE=${DEFAULT_LANGUAGE:-en}
|
|
- LAST_NAME_FIRST=${LAST_NAME_FIRST:-true}
|
|
- DESKTOP_UPDATES_CHANNEL=${DESKTOP_CHANNEL}
|
|
- DISABLED_FEATURES=auto-translate,mailboxes
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
fulltext:
|
|
image: hardcoreeng/fulltext:${HULY_VERSION}
|
|
environment:
|
|
- SERVER_SECRET=${SECRET}
|
|
- DB_URL=${CR_DB_URL}
|
|
- FULLTEXT_DB_URL=http://elastic:9200
|
|
- ELASTIC_INDEX_NAME=huly_storage_index
|
|
- STORAGE_CONFIG=minio|minio?accessKey=minioadmin&secretKey=minioadmin
|
|
- REKONI_URL=http://rekoni:4004
|
|
- ACCOUNTS_URL=http://account:3000
|
|
- STATS_URL=http://stats:4900
|
|
- QUEUE_CONFIG=redpanda:9092
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
stats:
|
|
image: hardcoreeng/stats:${HULY_VERSION}
|
|
environment:
|
|
- PORT=4900
|
|
- SERVER_SECRET=${SECRET}
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
kvs:
|
|
image: hardcoreeng/hulykvs:${HULY_VERSION}
|
|
depends_on:
|
|
cockroach:
|
|
condition: service_started
|
|
ports:
|
|
- 8094:8094
|
|
environment:
|
|
- HULY_DB_CONNECTION=${CR_DB_URL}
|
|
- HULY_TOKEN_SECRET=${SECRET}
|
|
restart: unless-stopped
|
|
networks:
|
|
- huly_net
|
|
|
|
volumes:
|
|
# These named volumes are used when custom volume paths are not specified
|
|
# If VOLUME_*_PATH variables are set, these volumes will be ignored
|
|
elastic:
|
|
files:
|
|
cr_data:
|
|
cr_certs:
|
|
redpanda:
|
|
mongodb:
|
|
|
|
networks:
|
|
huly_net:
|