---
title: Reverse Proxy
description: Setting up a reverse proxy for hyperglass
---
import { Cards, Callout } from "nextra/components";
[Caddy](https://caddyserver.com) is recommended, but any reverse proxy ([NGINX](https://www.nginx.com), [Apache2](https://httpd.apache.org)) will work.
## Caddy
```shell copy
cp /opt/hyperglass/.samples/Caddyfile /etc/caddy/Caddyfile
```
Change the `lg.example.com` and `person@example.com` values to match your hyperglass FQDN and email address (the email address is for automatic SSL certificate generation via Let's Encrypt).
If you prefer to use other Let's Encrypt validation methods or your own SSL certificate, modify
your `/etc/hyperglass/Caddyfile` in accordance with the [Caddy
docs](https://caddyserver.com/docs/caddyfile-tutorial).
Restart the Caddy service: `systemctl restart caddy{:shell}`
## NGINX
```shell copy
cp /opt/hyperglass/.samples/hyperglass.nginx /etc/nginx/sites-available/hyperglass
ln -s /etc/nginx/sites-available/hyperglass /etc/nginx/sites-enabled/hyperglass
```
Change the `lg.example.com` value to match your hyperglass FQDN.
Change the `` and `` values to match the path to your certificate and private key files.
```nginx {4,9,10,17,19} title="NGINX"
server {
listen 80;
listen [::]:80;
server_name lg.example.com;
return 301 https://$host$request_uri;
}
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate
ssl_certificate_key
client_max_body_size 2M;
server_name lg.example.com;
root /etc/hyperglass/static;
location / {
try_files $uri $uri/ /ui /ui/$uri =404;
index /ui/index.html;
}
location /openapi.json {
try_files $uri @proxy_to_app;
}
location /custom/ {
try_files $uri $uri/ /custom;
}
location /images/ {
try_files $uri $uri/ /images;
}
location /api {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
# for ipv6
proxy_pass http://[::1]:8001;
# for ipv4
# proxy_pass http://127.0.0.1:8001;
}
}
```