selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
mmar logo

Self-host mmar

v0.3.0

Zero-dependency HTTP tunnel to expose localhost

BetaOpen SourceAGPL-3.0
Updated10 months ago
LanguageGo
Setup difficultyModerate
Stars
311
Ports
3376 (HTTP tunnel traffic), 6673 (TCP tunnel control connection)
Docker
ghcr.io/yusuf-musleh/mmar
Install with Docker
mmar screenshot 1

What is mmar?

mmar is a zero-dependency, cross-platform HTTP tunnel written in Go that lets developers expose their local development servers to the internet. It provides a free public tunnel service at mmar.dev with generated subdomains, and can be fully self-hosted on your own VPS with a custom domain. The tunnel supports exposing multiple ports on different subdomains, shows live request logs, and limits requests to 10MB. Self-hosting uses Docker Compose with a reverse proxy (Caddy recommended) for TLS termination and TCP routing. The server exposes HTTP on port 3376 and TCP on port 6673, with a stats page protected by username/password hashes. Current limitations include HTTP-only protocol support (WebSockets untested), 10MB request size limit, and 5 tunnels per IP.

Should you self-host mmar?

mmar scores 45/100 on selfhost.directory (how scoring works) and ranks #112 of 166 in Developer Tools. It has 311 GitHub stars.

It shipped 1 stable release in the past year. The latest, v0.3.0, came out on 6 December 2025.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is openhands (87/100, 92 068 stars). It scores higher overall, so compare the two before you pick. See mmar vs openhands side by side.

Features

  • Custom domain self-hosting
  • Free public subdomain
  • HTTP protocol onlyWebSockets not supported
  • HTTP Tunneling
  • Live request logs
  • Multiple port exposure
  • Request size limitCould be made configurable in future
  • Stats pageProtected by username/password hashes
  • Tunnel rate limitingCould be made configurable in future
  • Zero Dependencies

mmar README

How to install mmar

Install mmar with Docker

docker run --rm --network host ghcr.io/yusuf-musleh/mmar:v0.2.6 client --local-port 8080

Run client to create tunnel to localhost:8080

How to configure mmar

  • MMAR__LOCAL_PORTLocal port to expose via the tunnel

    Local port to expose via the tunnel

  • MMAR__SERVER_HTTP_PORTHTTP port for the mmar server

    HTTP port for the mmar server

  • MMAR__SERVER_TCP_PORTTCP port for the mmar server

    TCP port for the mmar server

  • MMAR__TUNNEL_HOSTTunnel host domain

    Tunnel host domain

  • MMAR__TUNNEL_HTTP_PORTHTTP port for the tunnel

    HTTP port for the tunnel

  • MMAR__TUNNEL_TCP_PORTTCP port for the tunnel

    TCP port for the tunnel

  • PASSWORD_HASHSHA256 hash of password for stats page authentication

    SHA256 hash of password for stats page authentication

  • USERNAME_HASHSHA256 hash of username for stats page authentication

    SHA256 hash of username for stats page authentication

mmar releases & version history

More in Networking

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…