The MIH Project

learn how to create your own flavour of the MIH Server.

Prerequisite:-

  1. Ubuntu Server OS installed (24.04 tested)
  2. Docker is Installed.
  3. Git is Installed.
  4. Sudo permission granted.

Get Started:-

  1. Clone Git Repo.
  2. Navigate to mih-project directory.
    cd mih-project
  3. Create .env file in the same location as docker-compose.yml
    
    SQL_ROOT_PW=*PASSWORD*
    SQL_USER=*USER*
    SQL_USER_PW=*PASSWORD*
    
    SUPERTOKENS_DB=supertokens
    SUPERTOKENS_API_KEY=*API KEY*
    
    MINIO_ROOT_USER=*USER*
    MINIO_ROOT_PW=*PASSWORD*
    
    CERTBOT_EMAIL=*ADMIN_EMAIL*
    CERTBOT_APP_DOMAIN=*APP_DOMAIN*
    CERTBOT_API_DOMAIN=*API_DOMAIN*
    CERTBOT_STORAGE_DOMAIN=*STORAGE_DOMAIN*
    CERTBOT_MONITOR_DOMAIN=*MONITOR_DOMAIN*
    CERTBOT_AI_DOMAIN=*AI_DOMAIN*
    
    GITEA_SQL_ROOT_PW=*GITEA_SQL_ROOT_PW*
    GITEA_SQL_USER=*GITEA_SQL_USER*
    GITEA_SQL_PW=*GITEA_SQL_PW*
    GITEA_SQL_DB=*GITEA_SQL_DB*
    
    WP_SQL_DB=*WP_SQL_DB*
    WP_SQL_ROOT_PW=*WP_SQL_ROOT_PW*
    WP_SQL_USER=*WP_SQL_USER*
    WP_SQL_USER_PW=*WP_SQL_USER_PW*
    
  4. Configure MIH-AI.
    1. If your server hardware has an Nvidia GPU, follow the instructions below "How to enable MIH-AI GPU usage"
    2. If your server hardware does not use an Nvidia GPU, continue with the next step.
  5. Start MIH Server.
  6. sudo docker compose up -d --build
  7. Check the status of the new MIH server using Portainer. https://localhost:9443/ (Change Local Host to IP if necessary).
    1. If all containers are running without errors, proceed to step 5
      (NOTE: certbot container will stop after running successfully).
    2. If MIH-Minio did not start correctly, run sudo chown 1001 File_Storage/ in the project directory, stop MIH Server (see details below), then start MIH Server again.
      sudo chown 1001 File_Storage
  8. Set Up MIH-Minio config
    1. Access MIH-Minio using https://localhost:9001/login (Change Localhost to IP if necessary).
    2. Add/ Generate access key to MIH-Minio.
    3. Create a bucket called mih.
    4. Non-Prod: make the mih bucket public.
    5. Prod: keep the mih bucket private.

How to Stop MIH Server:-

sudo docker compose down

How to enable MIH-AI GPU:-

  1. Uncomment the code block in MIH-AI docker-compose.yaml
    
    # deploy:
    # resources:
    # reservations:
    # devices:
    # - driver: nvidia
    # count: all # or specify a number of GPUs
    # capabilities: [gpu]