Sign inSign up

oreiche/webmux

By oreiche

•Updated 5 months ago

WebMux (Website Multiplexer) is a reverse proxy for managing multiple virtual hosts with SSL support

Image
0

346

oreiche/webmux repository overview

⁠WebMux

WebMux (Website Multiplexer) is a reverse proxy system designed to manage multiple virtual hosts (websites) from public entry points. Those entry points can be used to terminate SSL tunnels, for which the system automatically manages certificate issuing and renewal (via acme.sh).

Source code: https://github.com/oreiche/webmux⁠

⁠Run with Docker

Build and run (adjust ports and persistent directories if needed):

$ mkdir -p var/{conf,data,log}  # persistent directories
$ docker run \
    -p 3000:3000 \
    -p 80:80 \
    -p 443:443 \
    -e WMX_ADMIN_PORT=3000 \
    -e WMX_SCAN_INTERVAL=3600 \
    -v $(pwd)/var/log:/var/log \
    -v $(pwd)/var/conf:/etc/webmux \
    -v $(pwd)/var/data:/var/lib/webmux \
    docker.io/oreiche/webmux:latest

⁠Run with Docker Compose

Create the file compose.yaml with following content:

version: "3.8"

services:
  webmux:
    container_name: webmux
    image: docker.io/oreiche/webmux:latest
    ports:
      # Admin port (WebUI)
      - "3000:3000"
      # Endpoints being served (adjust to your needs)
      - "80:80"
      - "443:443"
    restart: always
    environment:
      # WebMux settings
      WMX_ADMIN_PORT: 3000
      WMX_SCAN_INTERVAL: 3600
    volumes:
      # Persistent logging, data storage, and ACME credentials
      - ./var/log:/var/log
      - ./var/conf:/etc/webmux
      - ./var/data:/var/lib/webmux

Adjust endpoint ports and persistent directories if needed, and run:

$ mkdir -p var/{conf,data,log}  # persistent directories
$ docker-compose up

⁠Install as TrueNAS App

In the TrueNAS WebUI, go to Apps > Discover. Click the "three-dots" button (top right corner), then select Install via YAML. Insert the following YAML code and adjust endpoint ports and volumes if needed.

services:
  webmux:
    environment:
      WMX_ADMIN_PORT: "3000"
      WMX_SCAN_INTERVAL: "3600"
    hostname: webmux
    image: docker.io/oreiche/webmux:latest
    platform: linux/amd64
    ports:
      # Admin port (WebUI)
      - mode: ingress
        protocol: tcp
        published: 3000
        target: 3000
      # Endpoints being served (adjust to your needs)
      - mode: ingress
        protocol: tcp
        published: 80
        target: 80
      - mode: ingress
        protocol: tcp
        published: 443
        target: 443
    privileged: False
    pull_policy: missing
    restart: unless-stopped
    stdin_open: False
    tty: False
    volumes:
      - bind:
          create_host_path: True
          propagation: rprivate
        read_only: False
        source: /mnt/.ix-apps/app_mounts/webmux/config
        target: /etc/webmux
        type: bind
      - bind:
          create_host_path: True
          propagation: rprivate
        read_only: False
        source: /mnt/.ix-apps/app_mounts/webmux/data
        target: /var/lib/webmux
        type: bind
      - bind:
          create_host_path: True
          propagation: rprivate
        read_only: False
        source: /mnt/.ix-apps/app_mounts/webmux/log
        target: /var/log
        type: bind
volumes: {}
x-action-required: False
x-notes: >
  # WebMux

  WebMux (Website Multiplexer) is a reverse proxy system designed to manage
  multiple virtual hosts (websites) from public entry points. Those entry
  points can be used to terminate SSL tunnels, for which the system
  automatically manages certificate issuing and renewal (via acme.sh).

  ## Bug Reports and Feature Requests

  If you find a bug in this app or have an idea for a new feature, please file
  an issue at https://github.com/oreiche/webmux
x-portals:
  - host: 0.0.0.0
    name: Web UI
    path: /
    port: 3000
    scheme: http

Tag summary

Content type

Image

Digest

sha256:e556ac815…

Size

103.1 MB

Last updated

5 months ago

docker pull oreiche/webmux