version: "3.3" services: rabbitmq: image: rabbitmq:3-management ports: - "5672:5672" - "15672:15672" minio: image: minio/minio hostname: minio ports: - "9000:9000" volumes: - "smile_content_data:/tmp" command: server /tmp environment: - MINIO_ACCESS_KEY=${AWS_ACCESSKEY} - MINIO_SECRET_KEY=${AWS_ACCESSKEYSECRET} restart: unless-stopped mongodb: image: mongo hostname: mongodb volumes: - "smile_user:/data/db" # ports: # - "27017:27017" restart: unless-stopped redis: image: redis hostname: redis # ports: # - "6379:6379" restart: unless-stopped algorithm-classification-predict: # build: ./classification_predict image: socialmediamacroscope/classification_predict:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=classification_predict restart: unless-stopped algorithm-classification-split: # build: ./classification_split image: socialmediamacroscope/classification_split:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=classification_split restart: unless-stopped algorithm-classification-train: # build: ./classification_train image: socialmediamacroscope/classification_train:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=classification_train restart: unless-stopped algorithm-histogram: # build: ./histogram image: socialmediamacroscope/histogram:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=histogram restart: unless-stopped algorithm-network-analysis: # build: ./network_analysis image: socialmediamacroscope/network_analysis:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=network_analysis - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped algorithm-preprocessing: # build: ./preprocessing image: socialmediamacroscope/preprocessing:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=preprocessing - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped algorithm-sentiment-analysis: # build: ./sentiment_analysis image: socialmediamacroscope/sentiment_analysis:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=sentiment_analysis - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped algorithm-screen-name-prompt: # build: ./screen_name_prompt image: socialmediamacroscope/screen_name_prompt:latest depends_on: - rabbitmq - minio command: python ./screen_name_prompt.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=bae_screen_name_prompt restart: unless-stopped algorithm-topic-modeling: # build: ./topic_modeling image: socialmediamacroscope/topic_modeling:latest depends_on: - rabbitmq - minio command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=topic_modeling - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped algorithm-name-entity-recognition: # build: ./name_entity_recognition image: socialmediamacroscope/name_entity_recognition:latest depends_on: - rabbitmq - minio command: python3 ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=name_entity_recognition - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped algorithm-autophrase: # build: ./autophrase image: socialmediamacroscope/autophrase:latest depends_on: - rabbitmq - minio command: python3 ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=autophrase - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped image-crawler: # build: ./image_crawler image: socialmediamacroscope/image_crawler:latest depends_on: - rabbitmq - minio command: python3 ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=image_crawler - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped collect-reddit-comment: # build: ./collect_reddit_comment image: socialmediamacroscope/collect_reddit_comment:latest depends_on: - rabbitmq - minio command: python3 ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID} - REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - BUCKET_NAME=${BUCKET_NAME} - QUEUE_NAME=reddit_comment - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} restart: unless-stopped clowder-create-collection: # build: ./clowder_create_collection image: socialmediamacroscope/clowder_create_collection:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - QUEUE_NAME=clowder_create_collection restart: unless-stopped clowder-create-dataset: # build: ./clowder_create_dataset image: socialmediamacroscope/clowder_create_dataset:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - QUEUE_NAME=lambda_invoke_clowder restart: unless-stopped clowder-create-space: # build: ./clowder_create_space image: socialmediamacroscope/clowder_create_space:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - QUEUE_NAME=clowder_create_space restart: unless-stopped clowder-list: # build: ./clowder_list image: socialmediamacroscope/clowder_list:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - QUEUE_NAME=lambda_list_clowder restart: unless-stopped clowder-upload-file: # build: ./clowder_upload_file image: socialmediamacroscope/clowder_upload_file:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - HOST_IP=${HOST_IP} - QUEUE_NAME=lambda_upload_clowder - BUCKET_NAME=${BUCKET_NAME} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} restart: unless-stopped crimson-hexagon-monitors: # build: ./crimson_hexagon_monitors image: socialmediamacroscope/crimson_hexagon_monitors:latest depends_on: - rabbitmq command: python ./rabbitmq_handler.py environment: - QUEUE_NAME=crimson_hexagon_monitors restart: unless-stopped smile-server: # build: /Users/cwang138/Documents/Macroscope/SMILE/www image: socialmediamacroscope/smile_server:latest depends_on: - rabbitmq - minio - mongodb - redis - algorithm-classification-predict - algorithm-classification-split - algorithm-classification-train - algorithm-histogram - algorithm-network-analysis - algorithm-preprocessing - algorithm-sentiment-analysis - algorithm-autophrase - algorithm-name-entity-recognition - algorithm-topic-modeling - algorithm-screen-name-prompt - image-crawler - collect-reddit-comment - crimson-hexagon-monitors - clowder-create-collection - clowder-create-dataset - clowder-create-space - clowder-list - clowder-upload-file ports: - "8001:8001" command: npm run docker-start environment: - HOME=${HOME} - DOCKERIZED=${DOCKERIZED} - LOCAL_ALGORITHM=${LOCAL_ALGORITHM} - HOST_IP=${HOST_IP} - BUCKET_NAME=${BUCKET_NAME} - AWS_ACCESSKEY=${AWS_ACCESSKEY} - AWS_ACCESSKEYSECRET=${AWS_ACCESSKEYSECRET} - TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY} - TWITTER_CONSUMER_SECRET=${TWITTER_CONSUMER_SECRET} - REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID} - REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET} - BOX_CLIENT_ID=${BOX_CLIENT_ID} - BOX_CLIENT_SECRET=${BOX_CLIENT_SECRET} - DROPBOX_CLIENT_ID=${DROPBOX_CLIENT_ID} - DROPBOX_CLIENT_SECRET=${DROPBOX_CLIENT_SECRET} - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - EMAIL_HOST=${EMAIL_HOST} - EMAIL_PORT=${EMAIL_PORT} - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS} - EMAIL_PASSWORD=${EMAIL_PASSWORD} - SINGLE_USER=${SINGLE_USER} volumes: - "smile_content_data:/tmp" - "smile_tag:${HOME}/smile" restart: unless-stopped smile-graphql: # build: /Users/cwang138/Documents/Macroscope/SMILE/www/graphql image: socialmediamacroscope/smile_graphql:latest depends_on: - smile-server ports: - "5050:5050" command: npm run docker-start environment: - DOCKERIZED=${DOCKERIZED} - TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY} - TWITTER_CONSUMER_SECRET=${TWITTER_CONSUMER_SECRET} restart: unless-stopped volumes: smile_content_data: driver: local driver_opts: o: bind type: none # put your own local data path here device: "${HOME}/smile_data" smile_user: driver: local driver_opts: o: bind type: none device: "${HOME}/smile_user" smile_tag: driver: local driver_opts: o: bind type: none device: "${HOME}/smile"