Self-Hosting with Custom SSL Cert

The following is a guide for setting up Hudu with your own SSL certificate. If you are looking to use a free SSL certificate that auto-renews for you, you may want to read this article for alternative options: Getting Started with Hudu Self-Hosted.



In order to self-host Hudu, you will need:
  1. Server with at least 4GB memory and at least 1 CPU (as long as there is no contention), with Ubuntu (18.04 or 20.04) as the OS.
  2. SMTP server for sending outgoing mail.



  • SSH into the server you are wishing to host Hudu on.
  • Install Docker CE on the server.
    • Setup instructions can be found here.
  • Install Docker Compose on the server.
    • Setup instructions can be found here.
  • Create a blank directory named hudu2 on the home directory. On Ubuntu, you can do this by typing: mkdir ~/hudu2
  • Move into the directory. On Ubuntu: cd ~/hudu2
  • Place a file named docker-compose.yml in the directory.
    • The contents can be found here.
  • Place a file named .env in the directory.
    • The contents need to be generated with our config generator: here.

    It is critical that you store an 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.

  • When both files are residing within the directory, run the command: sudo docker compose up -d to start your Hudu instance.
  • Now, run: sudo docker compose down to stop your Hudu instance.
  • Create a file called: /var/www/hudu2/config/nginx/proxy.conf with the contents of this file:  
  • Open the file here: /var/www/hudu2/config/nginx/site-confs/default.conf and replace the contents with this file:
  • Obtain your SSL Certificate and perform the processes highlighted in this document: 
  • Navigate back to the hudu2 folder. On Ubuntu: cd ~/hudu2
  • Start the instance again: sudo docker compose up -d
  • Your Hudu should now be up and running! Visit your domain to confirm. If you see a Hudu sign-up screen, it's successful. Reach out to support for a license key.
  • If you don't see this screen, contact support, and please provide logs: sudo docker compose logs
Was this article helpful?
0 out of 0 found this helpful