Advanced / temporary - Option B: No Domain Yet (Self-Signed)
DNS Setup (AWS)
When to Use This Option?
Use this only for testing before DNS/domain setup is complete.
Warning: Not recommended for client-facing production use. Browsers will show an untrusted-certificate warning.
Step 1: Configure Caddy for Self-Signed Certificates
On the VM:
Create the Caddy configuration file:
mkdir -p ~/caddy && cd ~/caddy
cat > Caddyfile <<'EOF'
:443 {
tls internal
reverse_proxy localhost:3000
}
EOFThe tls internal directive tells Caddy to generate a self-signed certificate (no Let's Encrypt challenge needed).
Step 2: Start Caddy
On the VM:
Expected result: docker ps | grep caddy shows the container as Up.
Step 3: Open Port 443
In AWS Console (EC2 Security Group):
Go to EC2 > Security Groups
Select your VM's security group
Add an inbound rule:
Type: Custom TCP
Port: 443
Source: 0.0.0.0/0
Note: Port 80 is not required for this option (no ACME challenge needed).
Step 4: Access the UI
In your browser, navigate to:
Replace <vm-public-ip> with your VM's public IP address from AWS Console.
Browser warning: You'll see an "untrusted certificate" warning because the certificate is self-signed.
Click Advanced
Click Proceed (or equivalent button in your browser)
The page loads over HTTPS, which satisfies the secure-context requirement for APIs like crypto.randomUUID.
Next Steps: This setup is temporary. As soon as you have a domain available, upgrade to Option A: Domain + Let's Encrypt for a trusted certificate.
See Upgrading from Option B to Option A for migration steps.
Last updated