version: '3' services: nginx: container_name: infisical-dev-nginx image: nginx restart: always ports: - 8080:80 volumes: - ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - frontend - backend networks: - infisical-dev backend: container_name: infisical-dev-backend restart: unless-stopped depends_on: - mongo - smtp-server - redis build: context: ./backend dockerfile: Dockerfile volumes: - ./backend/src:/app/src - ./backend/nodemon.json:/app/nodemon.json - /app/node_modules - ./backend/api-documentation.json:/app/api-documentation.json - ./backend/swagger.ts:/app/swagger.ts command: npm run dev env_file: .env environment: - NODE_ENV=development - MONGO_URL=mongodb://root:example@mongo:27017/?authSource=admin networks: - infisical-dev extra_hosts: - "host.docker.internal:host-gateway" frontend: container_name: infisical-dev-frontend restart: unless-stopped depends_on: - backend build: context: ./frontend dockerfile: Dockerfile.dev volumes: - ./frontend/src:/app/src/ # mounted whole src to avoid missing reload on new files - ./frontend/public:/app/public env_file: .env environment: - NEXT_PUBLIC_ENV=development - INFISICAL_TELEMETRY_ENABLED=${TELEMETRY_ENABLED} networks: - infisical-dev mongo: image: mongo container_name: infisical-dev-mongo restart: always env_file: .env environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=example volumes: - mongo-data:/data/db networks: - infisical-dev mongo-express: container_name: infisical-dev-mongo-express image: mongo-express restart: always depends_on: - mongo env_file: .env environment: - ME_CONFIG_MONGODB_ADMINUSERNAME=root - ME_CONFIG_MONGODB_ADMINPASSWORD=example - ME_CONFIG_MONGODB_URL=mongodb://root:example@mongo:27017/ ports: - 8081:8081 networks: - infisical-dev smtp-server: container_name: infisical-dev-smtp-server image: lytrax/mailhog:latest # https://github.com/mailhog/MailHog/issues/353#issuecomment-821137362 restart: always logging: driver: 'none' # disable saving logs ports: - 1025:1025 # SMTP server - 8025:8025 # Web UI networks: - infisical-dev redis: image: redis container_name: infisical-dev-redis environment: - ALLOW_EMPTY_PASSWORD=yes ports: - 6379:6379 volumes: - redis_data:/data networks: - infisical-dev redis-commander: container_name: infisical-dev-redis-commander image: rediscommander/redis-commander restart: always depends_on: - redis environment: - REDIS_HOSTS=local:redis:6379 ports: - "8085:8081" networks: - infisical-dev volumes: mongo-data: driver: local redis_data: driver: local networks: infisical-dev: