Standard Setup Guide for Self-Hosted

   This article has been moved!

We've recently updated our support center articles - Please bear with us while we make the transition. This article can now be found here!


This guide is for setting up Hudu with a free LetsEncrypt SSL certificate that will renew automatically for you. If you are looking to use a custom SSL certificate, you may want to read this article for alternative options: Getting Started with Hudu Self-Hosted.

Before Starting

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,20.04, or 22.04) as the OS.
  2. SMTP server for sending outgoing mail.
  3. An A record pointed to the Public IP of the Instance. Usually something like or
  4. Ports 443 and 80 opened externally (required for LetsEncrypt).

Video Instructions

Would you prefer a video walk-through of the setup? Here is a video from one of our great partners. Note, he uses DigitalOcean for the setup, so if you aren't using that, you may need to modify some steps.



  1. Test that ports 443 and 80 are opened for your publicly accessible A record. Enter your URL to this tool. If both ports aren't showing as open, then you will need to fix that first.
  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. Do not use SNAP to install Docker - this will cause issues later on.
  4. 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
  5. Place a file named docker-compose.yml in the directory. The contents can be found here.
  6. 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 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.
  7. When both files are residing within the directory, run the command: sudo docker compose up -d to start your Hudu instance.
  8. Wait for the command to execute. You will know it is done when you can visit your domain and see a page referring to SWAG (the name of the SSL Cert Tool we use).
  9. You will now need to setup a SSL certificate for your instance. Type sudo docker compose down to shut down your instance.
  10. 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/
  11. Edit the file named default.conf and replace ALL of the contents with this file named defaulthere
  12. Navigate back to the hudu2 folder. On Ubuntu: cd ~/hudu2
  13. Start the instance again: sudo docker compose up -d
  14. 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.
  15. If you don't see this screen, contact support, and please provide logs: sudo docker compose logs

Having Issues?

  •  Have you checked that your ports are open? Use this tool.
  • Are you pasting in the .env or docker-compose.yml from a Windows computer? It could be formatted incorrectly.





Was this article helpful?
0 out of 0 found this helpful