Skip to content
SynapsrPublic

About

Stable .localify domains with trusted HTTPS for local development — Rust CLI, daemon, and Tauri desktop app

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

230 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Localify

Localify gives each local project a stable .localify domain with trusted HTTPS, so you open https://my-app.localify instead of remembering which localhost port a service landed on. OAuth callbacks, cookies, and CORS origins get a fixed HTTPS address, and coding agents reach your app at a URL that stays the same between runs.

It ships as a Rust CLI and daemon plus a Tauri desktop app. Everything that runs on your machine is free, with no limit on projects or domains.

What it does

  • Routes memorable .localify domains to local services.
  • Generates and trusts local TLS certificates.
  • Supports HTTP, HTTPS, WebSockets, static directories, and wildcard domains.
  • Groups domains and services into projects with worktree-aware development commands.
  • Shows request logs, project controls, and diagnostics in the desktop app.
  • Starts services in the desktop app's terminal from the CLI (localify dev --in-app), and reads their output, status, and stops them from anywhere (localify logs, services status, stop).
  • Gives coding agents every action through an MCP server (localify mcp), including starting services in the app and removing the worktrees they are done with. See Coding agents.

Install

Desktop app

Download the app from localify.dev. On first launch it asks for your administrator password once, then sets up HTTPS, DNS, and the daemon. The first time you need HTTPS in a browser, macOS asks you to confirm the certificate once.

CLI from source

You need Rust stable, on macOS or Linux. On Linux, read docs/linux.md first.

git clone https://github.com/Synapsr/Localify.git
cd Localify
cargo build --release --bin localify
sudo install -m 755 target/release/localify /usr/local/bin/localify

Set up the local certificate authority, DNS and the background service:

localify install

On macOS this asks for an administrator's approval once. After that nothing of Localify's runs as root: the daemon runs as you, starts at boot, and only this Mac can reach it unless you run localify lan enable. localify uninstall --force removes all of it, with one more approval.

HTTP and Node.js work right away. For HTTPS in browsers, run localify trust once and confirm in the macOS window.

On Linux with systemd it works the same way: one sudo password at install, then nothing of Localify's runs as root. The install also trusts the certificate, so HTTPS works in tools that use the system store. See Localify on Linux.

Local CLI example

With the setup above done, point a domain at a service on port 3000:

localify register my-app.localify --route "/=3000"
localify status
localify logs -f

The app is now at https://my-app.localify. The CLI reference covers routes, wildcards, and static directories.

On macOS, localify init-project my-app --yes creates a project from the current folder instead, with my-app.localify as its default domain. Localify picks a free target port unless you provide one.

Telemetry

Official desktop builds send product analytics and error reports to PostHog. They send explicit events only, with no autocapture, and analytics events never include project names, domains, request logs, or local paths. Before an error report is sent, a filter removes URLs, file paths, .localify domains, and quoted names. It matches patterns, so it can miss something in an unusual message. Session replay is off by default, and you can turn it on in Settings. Builds without VITE_PUBLIC_POSTHOG_TOKEN send nothing, and the CLI and daemon have no telemetry.

Repository layout

  • src/: Rust library, CLI, daemon, DNS, TLS, routing, and project logic.
  • src-tauri/: Tauri desktop shell and commands.
  • desktop-ui/: React, Vite, and TanStack desktop interface.
  • apps/web/: Next.js website, localify.dev. See apps/web/README.md.

Development

Requirements:

  • Rust stable
  • Node.js and pnpm
  • macOS for the primary desktop development flow

Install JavaScript dependencies:

pnpm install

Build the CLI:

cargo build --bin localify

Run the desktop app with the development profile:

pnpm tauri:dev

Run the website:

pnpm web:dev

Quality checks

Rust changes must pass:

cargo fmt
cargo clippy -- -D warnings
cargo test

Desktop UI changes must also pass:

pnpm run typecheck

Website changes must pass:

pnpm web:typecheck
pnpm web:build

Documentation

Design notes for features that are not built yet:

Contributing

Contributions are welcome. See CONTRIBUTING.md to get started, including the contributor license agreement every contribution needs, and the code of conduct. To report a vulnerability, see SECURITY.md.

Acknowledgements

Localify started as a fork of Roxy by Martin Voldřich, which provides the original DNS, TLS, and reverse proxy foundations.

License

Localify is licensed under the GNU Affero General Public License v3.0 only. It derives from Roxy, whose code remains under the MIT license.

The AGPL doesn't cover everything here. The Localify name and logo aren't licensed, and neither is the media in apps/web/public/. progresive-blur.tsx is adapted from Skiper UI. NOTICE has the details.

About

Stable .localify domains with trusted HTTPS for local development — Rust CLI, daemon, and Tauri desktop app

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages