version: "3.4" services: mongo: container_name: mongo image: mongo volumes: - ./docker-data/mongo:/data/db ports: - 27017:27017 networks: - tdrive_network minio: image: minio/minio container_name: minio hostname: minio ports: - "9000-9001:9000-9001" environment: MINIO_ACCESS_KEY: your_access_key MINIO_SECRET_KEY: your_secret_key MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: miniopassword volumes: - ./minio/minio_data:/data - ./minio/minio_config:/root/.minio networks: - tdrive_network command: minio server /data --console-address ":9001" node: build: context: . dockerfile: docker/tdrive-node/Dockerfile target: development container_name: tdrive-node hostname: tdrive_node ports: - 4000:4000 - 9229:9229 environment: - DEV=dev - SEARCH_DRIVER=mongodb - DB_DRIVER=mongodb - PUBSUB_TYPE=local - STORAGE_DRIVER=S3 - STORAGE_S3_BUCKET=tdrive-dev - STORAGE_S3_ENDPOINT=minio - STORAGE_S3_ACCESS_KEY=rdIhSodMBxG2Mi62s4IB - STORAGE_S3_SECRET_KEY=Hak2Ml5KLF6WxjBil1msKE7oQRXKKZAqj9X5FHeH volumes: - ./backend/node/src:/usr/src/app/src - ./docker-data/documents/:/storage/ depends_on: - mongo - minio # Make sure the node service depends on Minio links: - mongo networks: - tdrive_network frontend: build: context: . dockerfile: docker/tdrive-frontend/Dockerfile container_name: tdrive_frontend environment: - DEV=production - SSL_CERTS=selfsigned - NODE_HOST=http://tdrive_node:4000 ports: - 80:80 - 443:443 depends_on: - node volumes: - ./docker-data/logs/nginx/:/var/log/nginx - ./docker-data/letsencrypt/:/etc/letsencrypt/ - ./docker-data/drive-preview/:/tdrive-core/web/medias/ - ./docker-data/uploads/:/tdrive-core/web/upload/ - ./docker-data/ssl:/etc/nginx/ssl networks: - tdrive_network onlyoffice-connector: image: onlyoffice-connector environment: - CREDENTIALS_ENDPOINT=http://tdrive_node:4000 - ONLY_OFFICE_SERVER=http://localhost:8090/ - SERVER_ORIGIN=http://onlyoffice-connector:5000 - SERVER_PORT=5000 - SERVER_PREFIX=/plugins/onlyoffice - CREDENTIALS_ID=tdrive_onlyoffice - CREDENTIALS_SECRET=c1cc66db78e1d3bb4713c55d5ab2 ports: - 5000:5000 depends_on: - onlyoffice networks: - tdrive_network onlyoffice-rabbitmq: image: rabbitmq:management hostname: onlyoffice-rabbitmq container_name: rabbitmq environment: - RABBITMQ_DEFAULT_USER=guest - RABBITMQ_DEFAULT_PASS=guest ports: - "5672:5672" - "15672:15672" volumes: - ./.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/ - ./.docker-conf/rabbitmq/log/:/var/log/rabbitmq networks: - tdrive_network onlyoffice-postgresql: image: postgres:13 hostname: onlyoffice-postgresql environment: - POSTGRES_DB=onlyoffice - POSTGRES_USER=onlyoffice - POSTGRES_PASSWORD=onlyoffice ports: - 5432:5432 volumes: - ./onlyoffice_postgres_data:/var/lib/postgresql/data networks: - tdrive_network onlyoffice: image: docker.io/onlyoffice/documentserver hostname: onlyoffice ports: - 8090:80 networks: - tdrive_network environment: - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq - DB_HOST=onlyoffice-postgresql - DB_NAME=onlyoffice - DB_PORT=5432 - DB_TYPE=postgres - DB_USER=onlyoffice - JWT_ENABLED=false depends_on: - onlyoffice-rabbitmq - onlyoffice-postgresql volumes: - ./onlyoffice_data:/var/www/onlyoffice/Data networks: tdrive_network: driver: bridge