By default, Nora listens onDocumentation Index
Fetch the complete documentation index at: https://noradocs.solomontsao.com/llms.txt
Use this file to discover all available pages before exploring further.
localhost:8080 and is only reachable from the machine it runs on. To make your deployment accessible over the internet — whether for a staging environment, a production rollout, or a PaaS offering — you need to update several environment variables, create an nginx configuration file for your domain, and optionally provision a TLS certificate. This page walks through each step.
Deployment mode comparison
| Local (default) | Public domain (HTTP) | Public domain (TLS) | |
|---|---|---|---|
NGINX_CONFIG_FILE | nginx.conf | nginx.public.conf | nginx.public.conf (TLS version) |
NGINX_HTTP_PORT | 8080 | 80 | 80 and 443 |
NEXTAUTH_URL | http://localhost:8080 | http://app.example.com | https://app.example.com |
CORS_ORIGINS | http://localhost:8080 | http://app.example.com | https://app.example.com |
| TLS certificate | None | None | Let’s Encrypt via setup-tls.sh |
| DNS required | No | Yes | Yes |
Set up public-domain access with HTTP
Update your .env file
Open your
.env file and change the access and URL variables to match your public domain. Replace app.example.com with your actual domain.CORS_ORIGINS accepts a comma-separated list. If your domain is reachable on multiple origins (for example, with and without www), include all of them:Create the nginx configuration file
Copy the public-domain nginx template from the Open This file is volume-mounted into the nginx container at startup using the
infra/ directory to produce nginx.public.conf in your project root:nginx.public.conf and replace the placeholder server name with your domain:NGINX_CONFIG_FILE value you set above.Add TLS with Let’s Encrypt
Ensure DNS is resolving
Before running the TLS setup script, confirm your domain’s DNS A record points to your server’s public IP address. Let’s Encrypt performs a domain ownership check that requires the domain to resolve correctly.
Run the TLS setup script
The Replace
infra/setup-tls.sh script requests a Let’s Encrypt certificate, writes a TLS-ready nginx.public.conf, and creates a docker-compose.override.yml that mounts the certificate files.app.example.com with your domain and admin@example.com with an address that should receive Let’s Encrypt expiry notices.The script produces:- An updated
nginx.public.confwithssl_certificateandssl_certificate_keydirectives - A
docker-compose.override.ymlthat mounts the certificate files into the nginx container