URL shortener, people directory, and document host in a single Go binary. Type go/jira instead of hunting for a bookmark — short links redirect instantly, people linx get automatic profile pages, and documents render in a themed reader. Everything runs from one embedded SPA with SQLite storage. Supports HTTP, HTTPS, and Tailscale listeners.
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/staceyw/GoLinx/main/scripts/install.sh | bashWindows (PowerShell):
iex (irm https://raw.githubusercontent.com/staceyw/GoLinx/main/scripts/install.ps1)Linux systemd service:
curl -fsSL https://raw.githubusercontent.com/staceyw/GoLinx/main/scripts/install-service.sh | sudo bashProxmox LXC:
curl -fsSL https://raw.githubusercontent.com/staceyw/GoLinx/main/scripts/install-lxc.sh | bashThe script installers download the binary into the current directory. The service and LXC scripts create a systemd service that starts automatically.
./golinx --listen "http://:80"Or build from source:
go build -o golinx . && ./golinx --listen "http://:80"Open http://localhost — done. For persistent configuration, copy golinx.example.toml to golinx.toml and run ./golinx with no flags.
Port 80 is required for
go/linkto work in the browser. On Linux, usesudoif port 80 is restricted. For Tailscale, add both listeners so the FQDN works too:--listen "ts+https://:443" --listen "ts+http://:80". See Makinggo/linkWork for the full explanation of HTTP vs HTTPS and bare hostnames vs FQDNs.
- Links + People + Documents — short links, people profiles, and hosted documents in one unified grid
- Click analytics — charts dashboard with top links, daily click histogram, and summary stats
- Short code generator — one-click random short codes for bit.ly-style links
- Browser autocomplete — OpenSearch integration suggests short links as you type in the address bar
- Fuzzy search with type prefix filters (
:e,:c,:v,:l) and tag search (:t) - 12 themes — Catppuccin Mocha, Dracula, Nord, Solarized, Gruvbox, and more
- Profile pages with avatar, contact info, and social links
- Document hosting — publish Markdown, HTML, or plain text at
go/doc-namewith a themed reader - Path passthrough —
/github/org/reporesolves through/githubto the full URL - Go template URLs —
{{.Path}},{{.User}},{{.Query}}for dynamic routing - Soft delete — deleted items are retained for 30 days with one-click restore at
/.deleted - Tailscale integration — runs on your tailnet via tsnet with automatic HTTPS and user identification
- Single binary — all HTML/CSS/JS/help embedded, no external assets or build tools
| Type | Badge | /{name} behavior |
|---|---|---|
| Link (default) | — | 302 redirect to destination URL |
| Employee | Emp | Profile page |
| Customer | Cus | Profile page |
| Vendor | Ven | Profile page |
| Document | Doc | Themed reader (Markdown, HTML, or plain text) |
| Guide | Description |
|---|---|
| Admin Guide | Configuration, listener URIs, HTTP vs HTTPS, permissions, API reference, development setup |
| In-App Help | Quick reference for using the UI — search, shortcuts, themes, sorting, views, tags |
| Tailscale Grants | Step-by-step setup for admin access via Tailscale ACL groups, node tagging, and grants |
| Destination URL Templates | Go template syntax for dynamic URLs — path passthrough, query parameters, built-in functions |
In-app help is also available at /.help or by pressing F1.
BSD 3-Clause. See LICENSE.