← Go Back

Internal Environment Setup

Our recommended setup is with a cloud provider. However, you can also host Hudu on internal environments.


In order to host Hudu, you will need:

  1. Server with at least 4GB memory and at least 1 CPU (as long as there is no contention). We recommend Ubuntu 18.04 as the OS. We do not officially support Windows.
  2. SMTP server for sending outgoing mail. Read more
  3. Object storage provider. Must be Amazon S3-compatible. Popular choices are DigitalOcean Spaces (recommended), Amazon S3, and Wasabi. Min.io is a self-hosted S3 alternative if you would like to have everything on your internal networks. Read more
  4. The ability to make changes to DNS records for a domain. Read more

Things to Keep in Mind with Internal Networks

Internal Environment Setup Instructions

  1. Create an A record in your DNS records with the IP address pointing to the public IP address of your instance and the subdomain something like docs or hudu. Make sure your subdomain resolves before moving ahead.
  2. SSH into the server you are wishing to host Hudu on.
  3. Install Docker CE on the server. Setup instructions can be found here.
  4. Install Docker Compose on the server. Setup instructions can be found here.
  5. Create a blank directory named hudu2 on the home directory. On Ubuntu, you can do this by typing:
    mkdir ~/hudu2
  6. Move into the directory. On Ubuntu:
    cd ~/hudu2
  7. Place a file named docker-compose.yml in the directory. The contents can be found here.
  8. Place a file named .env in the directory. The contents need to be generated with our config generator: here.
  9. ⚠️ It is critical that you store a exact copy of the .env file in a secure location. Your encryption and secure keys are located in this file, and you can lose access to passwords and more if this file is lost.

  10. When both files are residing within the directory, run the command: sudo docker-compose up to start your Hudu instance.
  11. Wait for the command to execute. You will know it is done when you can visit your domain and see the following page: Nginx
  12. You will now need to setup a SSL certificate for your instance. Use Ctrl-C and then type sudo docker-compose down to shut down your instance.
  13. Navigate to /var/www/hudu2/config/nginx/site-confs/. With Ubuntu, you can do this by typing: cd /var/www/hudu2/config/nginx/site-confs/
  14. Delete the file named default and replace it with this file named default: here
  15. Navigate back to the hudu2 folder. On Ubuntu: cd ~/hudu2
  16. Start the instance again: sudo docker-compose up
  17. Your Hudu should now be up and running! Visit your domain to confirm.