mirror of
https://github.com/thatmattlove/hyperglass.git
synced 2026-01-17 00:38:06 +00:00
99 lines
2.5 KiB
Text
99 lines
2.5 KiB
Text
---
|
|
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
|
|
|
|
<Cards>
|
|
<Cards.Card
|
|
title="Install Caddy"
|
|
target="_blank"
|
|
href="https://caddyserver.com/docs/install"
|
|
arrow
|
|
/>
|
|
</Cards>
|
|
|
|
```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).
|
|
|
|
<Callout type="info">
|
|
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).
|
|
</Callout>
|
|
|
|
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 `<path to cert chain>` and `<path to key>` 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 <path to cert chain>
|
|
ssl_certificate_key <path to 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;
|
|
}
|
|
|
|
}
|
|
```
|