Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/whaler/whaler-haproxy-plugin

Whaler haproxy plugin
https://github.com/whaler/whaler-haproxy-plugin

haproxy plugin whaler

Last synced: 10 days ago
JSON representation

Whaler haproxy plugin

Awesome Lists containing this project

README

        

# Whaler haproxy plugin

This plugin install haproxy as a load balancer for whaler.
Plugin is useful when you need deploy multiple applications on one server, or use complex application publishing.

## Install

```sh
whaler plugins:install whaler-haproxy-plugin
```

## Dnsmasq

The only reason why `dnsmasq` is needed is to point all the domains `*.whaler.lh` to machine where docker is installed.
On `linux` it is `127.0.0.1`, on `windows` and `mac` it's virtual machines's IP.

> **NB!** Dnsmasq step is pure optional, but then you need manually add records to `/etc/hosts` file.

Install dnsmasq:

```sh
sudo apt-get install dnsmasq
```

Update config file `/etc/dnsmasq.conf` with following line:

```
address=/whaler.lh/127.0.0.1
```

> **NB!** Don't forget to replace 127.0.0.1 with virtual machine ip, if not on linux.

### How to avoid conflicts between `dnsmasq` and `systemd-resolved`

Update config file `/etc/dnsmasq.conf` with following lines:

```
server=8.8.8.8
server=8.8.4.4
# ...
```

Run this commands:

```sh
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo sed -i 's/\[main\]/\[main\]\ndns=dnsmasq/g' /etc/NetworkManager/NetworkManager.conf
sudo systemctl restart NetworkManager
sudo rm /etc/resolv.conf
sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
sudo systemctl restart dnsmasq
```

## Usage

```yml
services:
service-name:
web: 80
ssl: 443
...

# OR

services:
service-name:
web:
port: 80
defaults: |
timeout server 50s
ssl:
port: 443
send-proxy: true
...
```

## License

This software is under the MIT license. See the complete license in:

```
LICENSE
```