
NextBox — Российская цифровая платформа для хранения и обработки данных. Решение устанавливается on premise (локально на сервер), помогает компаниям безопасно хранить и обмениваться корпоративными файлами, совместно работать с документами любых форматов в едином пространстве.
Есть бесплатный тариф для частного использования и в целом цены очень демократичные, данное решение может стать отличным корпоративным хранилищем.

Установка в docker
В системе предварительно должен быть установлен docker.
Самая простая конфигурация через docker compose, может выглядеть следующим образом:
Можно создать файл docker-compose.yaml
и default.conf
в одной директории.docker-compose.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:pine 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:6001 - POTENTIAL_GATEWAY_REDIS_HOST=redis file_storage_router: image: nextbox-docker.ptnl.moscow/nextbox/file_storage_router:pine 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:pine 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:pine 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:pine 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:pine 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:pine restart: always volumes: - static_storage_data:/var/nextbox 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:pine 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:pine 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:pine 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:pine 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:pine 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:pine 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:pine 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:pine 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:pine 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 links: image: nextbox-docker.ptnl.moscow/nextbox/links:pine restart: always networks: - nextbox environment: - POTENTIAL_LINKS_DATABASE_DSN=postgres://nextbox:nextbox@postgresql:5432/links - POTENTIAL_LINKS_SERVICE_BACK_URL=http://links:6037 - POTENTIAL_LINKS_DISCOVERY_URL=http://discovery:6011 - POTENTIAL_LINKS_RABBIT_MQ_HOST=rabbitmq frontend: image: nextbox-docker.ptnl.moscow/nextbox/frontend:pine 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: static_storage_data:
default.conf
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 /l/ { proxy_pass http://gateway:6005/l/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 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; } }
После создание представленных выше файлов, осталось вызвать команду из директории расположения этих файлов:
docker compose up -d
Если все сработало без ошибок, то web-интерфейс Nextbox будет доступен по адресу http://localhost:8095