Appearance
Инструкция по установке с использованием Docker
Системные требования
- Архитектура: amd64(x86_64), aarch64(arm64)
- Процессор: с тактовой частотой 2 ГГц или лучше
- Оперативная память: не менее 3 Гб
- Свободное место на жестком диске: не менее 40 Гб
Установка
В системе предварительно должен быть установлен docker.
Самая простая конфигурация через docker compose, может выглядеть следующим образом:
Можно создать файл docker-compose.yaml
и default.conf
в одной директории.
docker-compose.yaml
yaml
services:
nginx:
image: nginx:latest
restart: always
ports:
- "8095:80"
networks:
- nextbox
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
gateway:
image: nextbox-docker.ptnl.moscow/nextbox/gateway:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_GATEWAY_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/gateway
- POTENTIAL_GATEWAY_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_GATEWAY_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_GATEWAY_SERVICE_BACK_URL=http://gateway:9691
- POTENTIAL_GATEWAY_REDIS_HOST=redis
file_storage_router:
image: nextbox-docker.ptnl.moscow/nextbox/file_storage_router:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_FILE_STORAGE_ROUTER_SERVICE_BACK_URL=http://file_storage_router:6004
- POTENTIAL_FILE_STORAGE_ROUTER_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_FILE_STORAGE_ROUTER_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_FILE_STORAGE_ROUTER_FILE_SYSTEM_TMP=/usr/share/nextbox/tmp
- POTENTIAL_FILE_STORAGE_ROUTER_REDIS_HOST=redis
file_storage:
image: nextbox-docker.ptnl.moscow/nextbox/file_storage:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_FILE_STORAGE_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/file_storage
- POTENTIAL_FILE_STORAGE_SERVICE_BACK_URL=http://file_storage:6004
- POTENTIAL_FILE_STORAGE_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_FILE_STORAGE_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_FILE_STORAGE_REDIS_HOST=redis
file_storage_worker:
image: nextbox-docker.ptnl.moscow/nextbox/file_storage_worker:elder
restart: always
networks:
- nextbox
volumes:
- storage_data:/var/nextbox/storage_worker/1
environment:
- POTENTIAL_FILE_STORAGE_WORKER_SERVICE_BACK_URL=http://file_storage_worker:6004
- POTENTIAL_FILE_STORAGE_WORKER_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_FILE_STORAGE_WORKER_RABBIT_MQ_HOST=rabbitmq
auth:
image: nextbox-docker.ptnl.moscow/nextbox/auth:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_AUTH_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/auth
- POTENTIAL_AUTH_SERVICE_BACK_URL=http://auth:6006
- POTENTIAL_AUTH_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_AUTH_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_AUTH_REDIS_HOST=redis
volumes:
- nextbox_data:/var/nextbox
fca:
image: nextbox-docker.ptnl.moscow/nextbox/fca:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_FCA_SERVICE_BACK_URL=http://fca:6007
- POTENTIAL_FCA_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_FCA_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_FCA_REDIS_HOST=redis
- POTENTIAL_FCA_EXTERNAL_PROXY_URL=https://external-proxy.next-box.ru/
static_storage:
image: nextbox-docker.ptnl.moscow/nextbox/static_storage:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_STATIC_STORAGE_SERVICE_BACK_URL=http://static_storage:6010
- POTENTIAL_STATIC_STORAGE_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_STATIC_STORAGE_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_STATIC_STORAGE_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/static_storage
- POTENTIAL_STATIC_STORAGE_FILE_SYSTEM_EXTENSIONS_PATH=/var/nextbox/extensions
- POTENTIAL_STATIC_STORAGE_FILE_SYSTEM_TMP_PATH=/var/nextbox/static_tmp
- POTENTIAL_STATIC_STORAGE_FILE_SYSTEM_FILES_PATH=/var/nextbox/static_files
connections:
image: nextbox-docker.ptnl.moscow/nextbox/connections:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_CONNECTIONS_SERVICE_BACK_URL=http://connections:6009
- POTENTIAL_CONNECTIONS_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_CONNECTIONS_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_CONNECTIONS_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/connections
- POTENTIAL_CONNECTIONS_REDIS_HOST=redis
logstash:
image: nextbox-docker.ptnl.moscow/nextbox/logstash:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_LOGSTASH_SERVICE_BACK_URL=http://logstash:6008
- POTENTIAL_LOGSTASH_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_LOGSTASH_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_LOGSTASH_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/logstash
- POTENTIAL_LOGSTASH_REPOSITORY_PATH=/var/nextbox/logstash/
volumes:
- logstash_data:/var/nextbox/logstash/
discovery:
image: nextbox-docker.ptnl.moscow/nextbox/discovery:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_DISCOVERY_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_DISCOVERY_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/discovery
- POTENTIAL_DISCOVERY_DATABASE_ADMIN_DSN=postgres://nextbox:nextbox@postgresql:5432/postgres
- POTENTIAL_DISCOVERY_SERVICE_BACK_URL=http://discovery:6011
- POTENTIAL_DISCOVERY_DISCOVERY_URL=http://discovery:6011
share:
image: nextbox-docker.ptnl.moscow/nextbox/share:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_SHARE_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_SHARE_SERVICE_BACK_URL=http://share:6004
- POTENTIAL_SHARE_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_SHARE_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/share
- POTENTIAL_SHARE_REDIS_HOST=redis
volumes:
- nextbox_data:/var/nextbox
webdav:
image: nextbox-docker.ptnl.moscow/nextbox/webdav:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_WEBDAV_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_WEBDAV_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_WEBDAV_SERVICE_BACK_URL=http://webdav:6004
pusher:
image: nextbox-docker.ptnl.moscow/nextbox/pusher:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_PUSHER_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_PUSHER_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_PUSHER_SERVICE_BACK_URL=http://pusher:6004
notifications:
image: nextbox-docker.ptnl.moscow/nextbox/notifications:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_NOTIFICATIONS_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_NOTIFICATIONS_SERVICE_BACK_URL=http://notifications:6004
- POTENTIAL_NOTIFICATIONS_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_NOTIFICATIONS_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/notifications
- POTENTIAL_NOTIFICATIONS_REDIS_HOST=redis
volumes:
- nextbox_data:/var/nextbox
proxy:
image: nextbox-docker.ptnl.moscow/nextbox/proxy:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_PROXY_SERVICE_BACK_URL=http://proxy:6004
- POTENTIAL_PROXY_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_PROXY_DISCOVERY_URL=http://discovery:6011
license:
image: nextbox-docker.ptnl.moscow/nextbox/license:elder
restart: always
networks:
- nextbox
environment:
- POTENTIAL_LICENSE_RABBIT_MQ_HOST=rabbitmq
- POTENTIAL_LICENSE_DISCOVERY_URL=http://discovery:6011
- POTENTIAL_LICENSE_SERVICE_BACK_URL=http://license:6004
volumes:
- nextbox_data:/var/nextbox
frontend:
image: nextbox-docker.ptnl.moscow/nextbox/frontend:elder
restart: always
networks:
- nextbox
postgresql:
image: postgres:16
restart: always
environment:
POSTGRES_USER: nextbox
POSTGRES_PASSWORD: nextbox
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- postgresql_data:/var/lib/postgresql/data/pgdata
networks:
- nextbox
rabbitmq:
image: rabbitmq:3.7-management
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
networks:
- nextbox
volumes:
- rabbitmq_data:/var/lib/rabbitmq/
redis:
image: redis:6-alpine
restart: always
networks:
- nextbox
volumes:
- redis_data:/data
networks:
nextbox:
volumes:
nextbox_data:
redis_data:
rabbitmq_data:
postgresql_data:
storage_data:
logstash_data:
default.conf
nginx
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $http_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
server {
listen 80 default_server;
server_name _;
client_max_body_size 8000M;
gzip on;
gzip_comp_level 9;
gzip_vary on;
gzip_proxied any;
gzip_min_length 1000;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml application/javascript;
gzip_disable "msie6";
location /api {
proxy_pass http://gateway:6005/api;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header Host $host;
proxy_request_buffering off;
}
location / {
proxy_pass http://frontend;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_request_buffering off;
}
}
После создание представленных выше файлов, осталось вызвать команду из директории расположения этих файлов:
bash
docker compose up -d
Если все сработало без ошибок, то web-интерфейс Nextbox будет доступен по адресу http://localhost:8095