DEV Community

ChenXX
ChenXX

Posted on Originally published at moonproxy.app

How to Put a Local Service on the Public Internet with FRP (Without Losing Your Mind Over Config Files)

The Problem

FRP's configuration looks like this:

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[web]
type = http
local_port = 8080
custom_domains = myapp.example.com
Enter fullscreen mode Exit fullscreen mode

Every time you add a service, you edit this file, save it, and restart frpc. For developers, it's manageable. For everyone else, it's a barrier.

What MoonProxy Does

MoonProxy wraps FRP's frpc into a native desktop app:

  • Visual configuration — Fill a form instead of editing INI files
  • One-click start/stop — Toggle tunnels without touching the terminal
  • Rule management — Manage up to 50 proxy rules in one window
  • Auto-reconnect — Automatically recoble after network interruptions
  • Cross-platform — macOS (Intel + Apple Silicon) and Windows
  • Dark mode — Easy on the eyes

Tech Stack

Layer Technology
Frontend Vue 3 + TypeScript
Backend Rust
Framework Tauri v2
Engine frp (frpc)

The installer is ~5MB — a fraction of Electron-based alternatives.

Getting Started

  1. Download MoonProxy from GitHub Releases
  2. Install the app (DMG for macOS, EXE for Windows)
  3. Configure your FRP server address and port
  4. Add proxy rules for your local services
  5. Start — that's it

Use Cases

  • Remote NAS access — Reach your home file server from anywhere
  • Dev preview — Share localhost projects with clients
  • Home automation — Access Home Assistant while traveling
  • Game servers — Host Minecraft or Valheim for friends
  • Self-hosted apps — Expose Jellyfin, Gitea, Vaultwarden, etc.

Links

If you're using FRP or self-hosting services, give MoonProxy a try. Stars and feedback are appreciated! ⭐

Top comments (0)