Skip to content

Commit

Permalink
added TOC to readme's
Browse files Browse the repository at this point in the history
  • Loading branch information
kx1t committed Oct 9, 2023
1 parent 26c2c91 commit 1561831
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 11 deletions.
37 changes: 26 additions & 11 deletions README-nginx-rev-proxy.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# How to install and set up a reverse web proxy for use with @Mikenye's ADSB container collection

- [How to install and set up a reverse web proxy for use with @Mikenye's ADSB container collection](#how-to-install-and-set-up-a-reverse-web-proxy-for-use-with-mikenyes-adsb-container-collection)
- [How To Do Things A Lot Easier Than Described Here](#how-to-do-things-a-lot-easier-than-described-here)
- [Introduction](#introduction)
- [Acknowledgements](#acknowledgements)
- [Installation of NGINX, a small web server with reverse-proxy capabilities](#installation-of-nginx-a-small-web-server-with-reverse-proxy-capabilities)
- [Configuration of NGINX as a reverse web proxy](#configuration-of-nginx-as-a-reverse-web-proxy)
Expand All @@ -9,10 +11,18 @@
- [Example `/etc/nginx/locations.conf` file](#example-etcnginxlocationsconf-file)


## How To Do Things A Lot Easier Than Described Here

We have created a container that implements a fullfledged reverse web proxy, that is easy to deploy and even easier to configure.

You can find that container [here](https://sdr-enthusiasts/docker-reversewebproxy).

## Introduction

In Mikenye's excellent [gitbook](https://mikenye.gitbook.io/ads-b/) on how to quickly set up a number of containers to receive and process ADSB aircraft telemetry,
you probably have created a bunch of containers that each provide a web service on their own port. This is a bit hard to manage, especially if you need to now open a large range of ports on your firewall to point at these services.

This README describes how you can set up a "reverse web proxy" that allows you to point to point https://mysite.com/aaaa to something like http://internalhost1:8080/xxxx, and repeat this for each of the containers or web services. Additionally, it (optionally) will redirect any non-encrypted "http://" request to a secure "https://" request, enabling you to access your web services via SSL.
This README describes how you can set up a "reverse web proxy" that allows you to point to point `https://mysite.com/aaaa` to something like `http://internalhost1:8080/xxxx`, and repeat this for each of the containers or web services. Additionally, it (optionally) will redirect any non-encrypted "http://" request to a secure "https://" request, enabling you to access your web services via SSL.

There are NO changes needed to the containers. All you need is to take a quick inventory of the web services you have and the machines / ports they live on. You can do this by (for example) reading the `docker-compose.yml` files that show which services and ports are exposed.

Expand All @@ -29,11 +39,13 @@ There are NO changes needed to the containers. All you need is to take a quick i
4. Do `sudo apt-get install nginx`

## Configuration of NGINX as a reverse web proxy

1. Edit the config file: `sudo nano -l /etc/nginx/nginx.conf` and make the following changes:
- Once your proxy is configured / tested / stable, you may want to switch logging off (near lines 41/42):
`access_log /var/log/nginx/access.log;` -> `access_log off;`
`#error_log /var/log/nginx/error.log;` -> `error_log off;`
Then save and exit

- Once your proxy is configured / tested / stable, you may want to switch logging off (near lines 41/42):
`access_log /var/log/nginx/access.log;` -> `access_log off;`
`#error_log /var/log/nginx/error.log;` -> `error_log off;`
- Then save and exit

2. Test. At this time, http://mysite.com (using the external or internal address) should render a template web page.

Expand All @@ -51,16 +63,17 @@ This will create an SSL certificate for you that is valid for 90 days. For renew
5. In `/etc/nginx`, create a file called `locations.conf`. In this file, you will add your proxy redirects. Use `localhost` or `127.0.0.1` for ports on the local machine. See an example of this file below - adapt it to your own needs

6. Now edit /etc/nginx/sites-available/default. There will be 3 sections that start with `server {` (potentially more that are commented out).
- The first section is for connections to the standard http port
- The second section is for connections to the SSL (https) port
- The third section rewrites any incoming "http" request into a "https" request
- For each `server` section, just before the closing `}`, add the following line:

- The first section is for connections to the standard http port
- The second section is for connections to the SSL (https) port
- The third section rewrites any incoming "http" request into a "https" request
- For each `server` section, just before the closing `}`, add the following line:

```text
include /etc/nginx/locations.conf;
```

7. Now, you're done! Restart the nginx server with `sudo systemctl restart nginx` and start testing!
1. Now, you're done! Restart the nginx server with `sudo systemctl restart nginx` and start testing!

## Troubleshooting and known issues

Expand Down Expand Up @@ -175,8 +188,10 @@ server {
```

## Example `/etc/nginx/locations.conf` file

Note - this is the file from my own setup. I have a bunch of service spread around machines and ports, and each `location` entry redirects a request from http://mysite.com/xxxx to wherever the webserver for xxxx is located on my subnet. It won't work directly for anyone else, but feel free to use it as an example.
```

```apacheconf
location /readsb/ {
proxy_pass http://10.0.0.191:8080/;
}
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Docker-Planefence

- [Docker-Planefence](#docker-planefence)
- [What is it?](#what-is-it)
- [Who is it for?](#who-is-it-for)
- [Install PlaneFence - Prerequisites](#install-planefence---prerequisites)
- [Getting ready](#getting-ready)
- [Planefence Configuration](#planefence-configuration)
- [Initial docker configuration](#initial-docker-configuration)
- [Planefence Settings Configuration](#planefence-settings-configuration)
- [Applying your setup](#applying-your-setup)
- [What does it look like when it's running?](#what-does-it-look-like-when-its-running)
- [API access to your data](#api-access-to-your-data)
- [Introduction](#introduction)
- [API parameters and usage examples](#api-parameters-and-usage-examples)
- [Planefence Query parameters](#planefence-query-parameters)
- [Plane-Alert Query parameters](#plane-alert-query-parameters)
- [Troubleshooting](#troubleshooting)
- [Getting help](#getting-help)


## What is it?

This repository contains Planefence, which is an add-on to `ultrafeeder`, `readsb`, `dump1090`, or `dump1090-fa` (referred to herein as `your Feeder Station`.
Expand Down

0 comments on commit 1561831

Please sign in to comment.