| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- services:
- nginx:
- image: nginx:latest
- ports:
- - "8081:80"
- volumes:
- - ./nginx.conf:/etc/nginx/nginx.conf:ro
- - media_uploads:/media:ro
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - gateway
- - ui
- messageBroker:
- container_name: messageBroker
- image: rabbitmq:management
- restart: unless-stopped
- ports:
- - 5672:5672
- - 15672:15672
- environment:
- RABBITMQ_DEFAULT_USER: username
- RABBITMQ_DEFAULT_PASS: password
- networks:
- - socialMediaManagerNetwork
- mongodb:
- container_name: mongodb
- image: mongo:7
- restart: unless-stopped
- ports:
- - 27018:27017
- environment:
- MONGO_INITDB_DATABASE: socialmedia
- volumes:
- - mongodb-data:/data/db
- networks:
- - socialMediaManagerNetwork
- redis:
- container_name: redis
- image: redis:7-alpine
- restart: unless-stopped
- ports:
- - 6379:6379
- volumes:
- - redis-data:/data
- networks:
- - socialMediaManagerNetwork
- ai-grammer-correction:
- build: ./services/ai_grammar_correction
- volumes:
- - ./services/ai_grammar_correction:/services/grammar_correction
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- command: tail -f /dev/null
- gateway:
- build: ./services/gateway
- volumes:
- - ./services/utils:/services/gateway/utils
- - ./services/gateway:/services/gateway
- - gateway_modules:/services/gateway/node_modules
- - media_uploads:/uploads
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- socket:
- build: ./services/socket
- volumes:
- - ./services/utils:/services/socket/utils
- - ./services/socket:/services/socket
- - socket_modules:/services/socket/node_modules
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- formatter:
- build: ./services/formatter
- volumes:
- - ./services/utils:/services/formatter/utils
- - ./services/formatter:/services/formatter
- - formatter_modules:/services/formatter/node_modules
- restart: unless-stopped
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- twitter:
- build:
- context: ./services
- dockerfile: twitter/dockerfile
- volumes:
- - twitter_modules:/services/twitter/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- linkedin:
- build: ./services/linkedin
- volumes:
- - ./services/utils:/services/linkedin/utils
- - ./services/linkedin:/services/linkedin
- - linkedin_modules:/services/linkedin/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- mastodon:
- build:
- context: ./services
- dockerfile: mastodon/Dockerfile
- volumes:
- - mastodon_modules:/services/mastodon/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- bluesky:
- build:
- context: ./services
- dockerfile: bluesky/Dockerfile
- volumes:
- - bluesky_modules:/services/bluesky/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- instagram:
- build:
- context: ./services
- dockerfile: instagram/Dockerfile
- volumes:
- - instagram_modules:/services/instagram/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- facebook:
- build:
- context: ./services
- dockerfile: facebook/Dockerfile
- volumes:
- - facebook_modules:/services/facebook/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- feed-aggregator:
- build:
- context: ./services
- dockerfile: feed-aggregator/Dockerfile
- volumes:
- - feed_aggregator_modules:/services/feed-aggregator/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - messageBroker
- - mongodb
- - twitter
- - linkedin
- - mastodon
- - bluesky
- - instagram
- - facebook
- scheduler:
- build:
- context: ./services
- dockerfile: scheduler/Dockerfile
- volumes:
- - scheduler_modules:/services/scheduler/node_modules
- restart: unless-stopped
- env_file: .env
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - mongodb
- - redis
- # ── Optional: Ollama local AI ─────────────────────────────────────────────────
- # Uncomment to run Ollama inside Docker (CPU only).
- # For GPU acceleration, add a `deploy.resources.reservations.devices` block.
- # After starting, pull a model: docker exec -it ollama ollama pull llama3.2
- # ollama:
- # image: ollama/ollama:latest
- # container_name: ollama
- # restart: unless-stopped
- # volumes:
- # - ollama-data:/root/.ollama
- # networks:
- # - socialMediaManagerNetwork
- ui:
- build: ./ui
- volumes:
- - ./ui:/app/ui
- - ui_modules:/app/ui/node_modules
- networks:
- - socialMediaManagerNetwork
- depends_on:
- - gateway
- networks:
- socialMediaManagerNetwork:
- driver: bridge
- volumes:
- mongodb-data:
- redis-data:
- media_uploads:
- ollama-data:
- gateway_modules:
- socket_modules:
- formatter_modules:
- twitter_modules:
- linkedin_modules:
- mastodon_modules:
- bluesky_modules:
- instagram_modules:
- facebook_modules:
- feed_aggregator_modules:
- scheduler_modules:
- ui_modules:
|