...
- Contact Social Media Macroscope development team to acquire current SMILE credentials Chen Wang
- Alternatively, you can set up your own set of credentials by configuring the below shell script.
Shell script example using Traefik:
Using traefik is probably the easier solution in most cases. There are many benefits and one of the most important thing is that it will make the secure connection much easier and forwarding the components without complicated settings. However, there is prerequisite that your DNS should be pointing something like *.your.domain to your host. By doing this, the components will be able to have the DNS of traefik.your.domain, minio.your.domain, Using Traefik
Code Block | ||
---|---|---|
| ||
# system setting export DOCKERIZED=true # if use AWS algorithm, then you must use a static IP address export LOCAL_ALGORITHM=true # single user version vs multiple users export SINGLE_USER=false #set up home directory export HOME=/your/home/directory #set server info export SERVER=smm.server.com # settings for CILOGON export CILOGON_CLIENT_ID=<<cilogon id>> export CILOGON_CLIENT_SECRET=<<cilogon client secret>> export CILOGON_CALLBACK_URL=<<ci logon callback url>> export MINIO_URL=https://minio-api.${SERVER} export MINIO_PUBLIC_ACCESS_URL=https://minio-api.${SERVER} export BUCKET_NAME=macroscope-smile export SMILE_GRAPHQL_URL=https://graphql.${SERVER}/graphql # create mounted volumes on host machine mkdir -p ${HOME}/smile_data/${BUCKET_NAME} mkdir -p ${HOME}/smile_user mkdir -p ${HOME}/smile export RABBITMQ_HOST=${SERVER} export RABBITMQ_URL=amqp://${SERVER} export REDIS_URL=redis://redis # email notification #export EMAIL_HOST=<<email host>> #export EMAIL_PORT=465 #export EMAIL_FROM_ADDRESS=<<email from address>> #export EMAIL_PASSWORD=<<email password>> # align with AWS export AWS_ACCESSKEY=<<aws_accesskey>> export AWS_ACCESSKEYSECRET=<<aws_accesskeysecret>> # social media platforms export REDDIT_CLIENT_ID=<<reddit client id>> export REDDIT_CLIENT_SECRET=<<reddit client secret>> export REDDIT_CALLBACK_URL=<<reddit callback url>> #export TWITTER_CONSUMER_KEY=<<twitter consumer key>> #export TWITTER_CONSUMER_SECRET=<<twitter consumer secret>> export TWITTER_V2_CLIENT_ID=<<twitter v2 client id>> export TWITTER_V2_CLIENT_SECRET=<<twitter v2 client secret>> export TWITTER_V2_CALLBACK_URL=<<twitter v2 callback url>> # export export BOX_CLIENT_ID=<box client id> export BOX_CLIENT_SECRET=<<box client secret>> export DROPBOX_CLIENT_ID=<<dropbox client id>> export DROPBOX_CLIENT_SECRET=<<dropbox client secret>> export GOOGLE_CLIENT_ID=<<google client id>> export GOOGLE_CLIENT_SECRET=<<google client secret>> export CLOWDER_BASE_URL=https://clowder.server.com/ export CLOWDER_GLOBAL_KEY=<<clowder global key>> export CLOWDER_ON=false # start docker-compose -f docker-compose-smile-traefik.yml -d up # stop # docker-compose -f docker-compose-smile.yml down -v # update latest image from docker hub # docker-compose -f docker-compose-smile.yml pull |
Variables Explained
More details about variables are documented in here
- System setting. Set to true to use standalone containerized SMILE.
- DOCKERIZED=true
- If using algorithm deployed on AWS, then you must use a static IP address.
- LOCAL_ALGORITHM=true
- Single user mode vs multiple users mode.
- SINGLE_USER=false
- Settings for CILOGON (this section is not required if running in single user mode)
- CILOGON_CLIENT_ID={{cilogon id}}
- CILOGON_CLIENT_SECRET={{cilogon client secret}}
- CILOGON_CALLBACK_URL={{ci logon callback url}}
- Configure email server to enable capability of sending email notifications for long running jobs.
- EMAIL_HOST={{email host}}
- EMAIL_PORT=465
- EMAIL_FROM_ADDRESS={{email from address}}
- EMAIL_PASSWORD={{email password}}
- MINIO access keys and secret. Can be set to align with AWS S3 access keys and secret.
- AWS_ACCESSKEY={{aws_accesskey}}
- AWS_ACCESSKEYSECRET={{aws_accesskeysecret}}
- Social media platforms configurations.
- REDDIT_CLIENT_ID={{reddit client id}}
- REDDIT_CLIENT_SECRET={{reddit client secret}}
- REDDIT_CALLBACK_URL={{reddit callback url}}
- TWITTER_CONSUMER_KEY={{twitter consumer key}}
- TWITTER_CONSUMER_SECRET={{twitter consumer secret}}
- TWITTER_V2_CLIENT_ID={{twitter v2 client id}}
- TWITTER_V2_CLIENT_SECRET={{twitter v2 client secret}}
- TWITTER_V2_CALLBACK_URL={{twitter v2 callback url}}
- Cloud storage platforms configurations (Optional)
- 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}}
- Clowder configurations (Optional)
- CLOWDER_BASE_URL={{clowder instance base url}}
- CLOWDER_GLOBAL_KEY={{clowder global key}}
- CLOWDER_ON=false (enable connection to clowder or not)
Note:
- You need to place your host IP address to HOST_IP variable. For example, mine IP is 192.168.10.12. If you are a mac user, you can find your IP here
Additional Notes:
The HOME variable will be the location to hold persistent data, such as user information, social media and analytics output, tags and etc.
- When set SINGLE_USER=true, it uses your home user name on your machine. When set SINGLE_USER=false, you will be redirect to registration/login page.
...
All images you needed to run the stack have already been pushed to Docker Hub: https://hub.docker.com/orgs/socialmediamacroscope/repositories
All you need is the YAML configuration file to run.
You must
...
acquire either one of the below docker compose YAML file
Latest docker compose yaml file here:
...
- SMILE Using NGINX: https://github.com/ncsa/standalone-smm-analytics/blob/main/rabbitmq/docker-compose-smile.yml
- SMILE Using Traefik (recommended) https://github.com/ncsa/standalone-smm-analytics/blob/main/rabbitmq/
...
...
To Start
run the prewritten aforementioned shell script:
sh docker-command-smile.sh
...
https://hub.docker.com/orgs/socialmediamacroscope/repositories
Architectures
Docker vs Hubzero Tool mode (legacy)
export DOCKERIZED=true → Dockerized version
...