Overseer Hosted - michaelfdeberry/overseer GitHub Wiki
The Overseer Server provides a hosted solution that provides a frontend and a backend. This allows accounts and configuration to be accessible across your network.
Introduction
The Overseer Server is only accessible by the host device by default. To make the application accessible to other devices on the network a reverse proxy must be configured. See the "Reverse Proxy Setup" section below for more information.
WARNING: It is strongly recommended that you do not make the Overseer Server accessible outside of your local network.
Automated Installation
The automated installation can potentially be used with any Linux distribution, but should be functional on single board computers such as the Raspberry Pi as long as it supports .Net 8.0.
The install script will, download the specified version, install the required dependencies, configure a systemd service, and optionally install and configure nginx as a reverse proxy. The only provides the most basic setup, you will likely need to make additional changes if you require any additional features.
-
Download
wget https://github.com/michaelfdeberry/overseer/releases/download/2.0.0-alpha.3/overseer-installer-2.0.0-alpha.3.sh
-
Execute
chmod 744 ./overseer-installer-2.0.0-alpha.3.sh && sudo ./overseer-installer-2.0.0-alpha.3.sh
If your initial install is done with this install script it could also be used for applying updates following the same steps.
Hosting On Other Platforms
The recommended way to add Overseer Daemon to your network is hosting it on a Raspberry Pi or similar device. However, it can run on any platform that supports .Net 8.0. If the .Net 8.0 runtime is installed Overseer can be started with the command:
dotnet Overseer.Daemon.dll
The web application will be available at http://localhost:9000/
Please refer to the following documentation to learn how to install .Net Core for your platform.
As mentioned, this will only be accessible to the local device.
Hosting On Octopi
It is possible to host Overseer on an Octopi instance alongside Octoprint. However, this is only recommended for higher end multi-core devices such as the Raspberry Pi 3 and above family of devices.
To install Overseer on Octopi instance you could follow the "Automated Installation" instructions from above.
The instructions below for configuring HAProxy for use with Overseer can followed with a few caveats.
-
Skip step 1 as HAProxy will already be installed.
-
The ports in the examples below will be in use on Octopi. The recommend port for this use case is 9001, making Overseer available at
http://<OCTOPI_IP_ADDRESS>:9001/
Reverse Proxy Setup
To make the Overseer web application accessible outside of the host device a reverse proxy is required. There are many different reverse proxy servers available with potentially endless configuration options.
Two basic examples are provided below one using NGINX, and one using HAProxy. However, both examples are only the bare minimum of what is required to get the reverse proxy functional. Please refer to the documentation for your reverse proxy of choice for more advanced configuration.
NGINX
-
Install NGINX
sudo apt-get nginx
-
Open the configuration file
sudo nano /etc/nginx/sites-available/default
-
Replace the contents of the file with the configuration below.
server { listen 80; location / { proxy_pass http://localhost:9000; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; } }
-
Restart NGINX
sudo service nginx restart
This configuration will listen for incoming traffic on the default http port, port 80, and will be available at either http://<DEVICE_HOST_NAME>/
or http://<DEVICE_IP_ADDRESS>/
.
In cases where port 80 is not available the configuration can be changed to listen on another port. For example, to access the site by either http://<DEVICE_HOST_NAME>:8080/
or http://<DEVICE_IP_ADDRESS>:8080/
change the line listen 80;
to listen 8080;
.
HAProxy
-
Install HAProxy
sudo apt-get install haproxy
-
Open the configuration file
sudo nano /etc/haproxy/haproxy.cfg
-
Append the configuration below to the bottom of the file
frontend overseer-public bind *:80 v4v6 use_backend overseer backend overseer server overseer1 localhost:9000
-
Restart HAProxy
sudo service haproxy restart
This configuration will listen for incoming traffic on the default http port, port 80, and will be available at either http://<DEVICE_HOST_NAME>/
or http://<DEVICE_IP_ADDRESS>/
.
In cases where port 80 is not available the configuration can be changed to listen on another port. For example, to access the site by either http://<DEVICE_HOST_NAME>:8080/
or http://<DEVICE_IP_ADDRESS>:8080/
change the line bind *:80 v4v6
in the overseer-public
section to bind *:8080 v4v6
.