docker-compose.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. services:
  2. nginx:
  3. image: nginx:latest
  4. ports:
  5. - "8081:80"
  6. volumes:
  7. - ./nginx.conf:/etc/nginx/nginx.conf:ro
  8. - media_uploads:/media:ro
  9. networks:
  10. - socialMediaManagerNetwork
  11. depends_on:
  12. - messageBroker
  13. - gateway
  14. - ui
  15. messageBroker:
  16. container_name: messageBroker
  17. image: rabbitmq:management
  18. restart: unless-stopped
  19. ports:
  20. - 5672:5672
  21. - 15672:15672
  22. environment:
  23. RABBITMQ_DEFAULT_USER: username
  24. RABBITMQ_DEFAULT_PASS: password
  25. networks:
  26. - socialMediaManagerNetwork
  27. mongodb:
  28. container_name: mongodb
  29. image: mongo:7
  30. restart: unless-stopped
  31. ports:
  32. - 27018:27017
  33. environment:
  34. MONGO_INITDB_DATABASE: socialmedia
  35. volumes:
  36. - mongodb-data:/data/db
  37. networks:
  38. - socialMediaManagerNetwork
  39. redis:
  40. container_name: redis
  41. image: redis:7-alpine
  42. restart: unless-stopped
  43. ports:
  44. - 6379:6379
  45. volumes:
  46. - redis-data:/data
  47. networks:
  48. - socialMediaManagerNetwork
  49. ai-grammer-correction:
  50. build: ./services/ai_grammar_correction
  51. volumes:
  52. - ./services/ai_grammar_correction:/services/grammar_correction
  53. networks:
  54. - socialMediaManagerNetwork
  55. depends_on:
  56. - messageBroker
  57. command: tail -f /dev/null
  58. gateway:
  59. build: ./services/gateway
  60. volumes:
  61. - ./services/utils:/services/gateway/utils
  62. - ./services/gateway:/services/gateway
  63. - gateway_modules:/services/gateway/node_modules
  64. - media_uploads:/uploads
  65. env_file: .env
  66. networks:
  67. - socialMediaManagerNetwork
  68. depends_on:
  69. - messageBroker
  70. - mongodb
  71. socket:
  72. build: ./services/socket
  73. volumes:
  74. - ./services/utils:/services/socket/utils
  75. - ./services/socket:/services/socket
  76. - socket_modules:/services/socket/node_modules
  77. networks:
  78. - socialMediaManagerNetwork
  79. depends_on:
  80. - messageBroker
  81. formatter:
  82. build: ./services/formatter
  83. volumes:
  84. - ./services/utils:/services/formatter/utils
  85. - ./services/formatter:/services/formatter
  86. - formatter_modules:/services/formatter/node_modules
  87. restart: unless-stopped
  88. networks:
  89. - socialMediaManagerNetwork
  90. depends_on:
  91. - messageBroker
  92. twitter:
  93. build:
  94. context: ./services
  95. dockerfile: twitter/dockerfile
  96. volumes:
  97. - twitter_modules:/services/twitter/node_modules
  98. restart: unless-stopped
  99. env_file: .env
  100. networks:
  101. - socialMediaManagerNetwork
  102. depends_on:
  103. - messageBroker
  104. - mongodb
  105. linkedin:
  106. build: ./services/linkedin
  107. volumes:
  108. - ./services/utils:/services/linkedin/utils
  109. - ./services/linkedin:/services/linkedin
  110. - linkedin_modules:/services/linkedin/node_modules
  111. restart: unless-stopped
  112. env_file: .env
  113. networks:
  114. - socialMediaManagerNetwork
  115. depends_on:
  116. - messageBroker
  117. - mongodb
  118. mastodon:
  119. build:
  120. context: ./services
  121. dockerfile: mastodon/Dockerfile
  122. volumes:
  123. - mastodon_modules:/services/mastodon/node_modules
  124. restart: unless-stopped
  125. env_file: .env
  126. networks:
  127. - socialMediaManagerNetwork
  128. depends_on:
  129. - messageBroker
  130. - mongodb
  131. bluesky:
  132. build:
  133. context: ./services
  134. dockerfile: bluesky/Dockerfile
  135. volumes:
  136. - bluesky_modules:/services/bluesky/node_modules
  137. restart: unless-stopped
  138. env_file: .env
  139. networks:
  140. - socialMediaManagerNetwork
  141. depends_on:
  142. - messageBroker
  143. - mongodb
  144. instagram:
  145. build:
  146. context: ./services
  147. dockerfile: instagram/Dockerfile
  148. volumes:
  149. - instagram_modules:/services/instagram/node_modules
  150. restart: unless-stopped
  151. env_file: .env
  152. networks:
  153. - socialMediaManagerNetwork
  154. depends_on:
  155. - messageBroker
  156. - mongodb
  157. facebook:
  158. build:
  159. context: ./services
  160. dockerfile: facebook/Dockerfile
  161. volumes:
  162. - facebook_modules:/services/facebook/node_modules
  163. restart: unless-stopped
  164. env_file: .env
  165. networks:
  166. - socialMediaManagerNetwork
  167. depends_on:
  168. - messageBroker
  169. - mongodb
  170. feed-aggregator:
  171. build:
  172. context: ./services
  173. dockerfile: feed-aggregator/Dockerfile
  174. volumes:
  175. - feed_aggregator_modules:/services/feed-aggregator/node_modules
  176. restart: unless-stopped
  177. env_file: .env
  178. networks:
  179. - socialMediaManagerNetwork
  180. depends_on:
  181. - messageBroker
  182. - mongodb
  183. - twitter
  184. - linkedin
  185. - mastodon
  186. - bluesky
  187. - instagram
  188. - facebook
  189. scheduler:
  190. build:
  191. context: ./services
  192. dockerfile: scheduler/Dockerfile
  193. volumes:
  194. - scheduler_modules:/services/scheduler/node_modules
  195. restart: unless-stopped
  196. env_file: .env
  197. networks:
  198. - socialMediaManagerNetwork
  199. depends_on:
  200. - mongodb
  201. - redis
  202. # ── Optional: Ollama local AI ─────────────────────────────────────────────────
  203. # Uncomment to run Ollama inside Docker (CPU only).
  204. # For GPU acceleration, add a `deploy.resources.reservations.devices` block.
  205. # After starting, pull a model: docker exec -it ollama ollama pull llama3.2
  206. # ollama:
  207. # image: ollama/ollama:latest
  208. # container_name: ollama
  209. # restart: unless-stopped
  210. # volumes:
  211. # - ollama-data:/root/.ollama
  212. # networks:
  213. # - socialMediaManagerNetwork
  214. ui:
  215. build: ./ui
  216. volumes:
  217. - ./ui:/app/ui
  218. - ui_modules:/app/ui/node_modules
  219. networks:
  220. - socialMediaManagerNetwork
  221. depends_on:
  222. - gateway
  223. networks:
  224. socialMediaManagerNetwork:
  225. driver: bridge
  226. volumes:
  227. mongodb-data:
  228. redis-data:
  229. media_uploads:
  230. ollama-data:
  231. gateway_modules:
  232. socket_modules:
  233. formatter_modules:
  234. twitter_modules:
  235. linkedin_modules:
  236. mastodon_modules:
  237. bluesky_modules:
  238. instagram_modules:
  239. facebook_modules:
  240. feed_aggregator_modules:
  241. scheduler_modules:
  242. ui_modules: