Setup and Prerequisites
DNS Setup (AWS)
Overview
Enable HTTPS for the Hivel Web UI using Caddy, a lightweight reverse proxy. This guide covers prerequisites and two setup paths:
Option A (Recommended): Domain + Let's Encrypt for production
Option B (Temporary): Self-signed certificate for testing
Why HTTPS Is Needed?
The Hivel UI container serves traffic on port 3000 over plain HTTP. Modern browsers restrict certain security-sensitive APIs-such as crypto.randomUUID, used on sign-up and KYC pages-to secure contexts only (HTTPS or localhost).
Accessing the UI directly via http://<vm-public-ip>:3000 does not satisfy this requirement, resulting in a crypto.randomUUID is not a function error on affected pages.
Caddy is a lightweight reverse proxy that terminates TLS in front of the UI container, forwarding decrypted traffic to port 3000 internally. It runs as a Docker container, so no additional software installation is needed-Docker is already a prerequisite for this deployment.
General Prerequisites (Both Options)
VM is up and running with the Hivel UI container healthy on port 3000 (see Verification and Access)
Docker is installed on the VM (already required)
SSH access to the VM
Option-Specific Prerequisites
Option A (Domain + Let's Encrypt):
You have or can obtain a domain or subdomain (e.g.,
hivel.yourcompany.com)You can add DNS A records for your domain
Go to: Option A: Domain + Let's Encrypt
Option B (Self-Signed HTTPS – Temporary Testing Only):
For testing before domain/DNS setup is complete
Not recommended for client-facing production use - browsers will show an untrusted-certificate warning
Go to: Option B: Self-Signed.
Next Steps
For testing/development: Use Option B .
For production or when a domain becomes available: Upgrade to Option A: Domain + Let's Encrypt (see Upgrading from Option B to Option A for migration steps).
Last updated