Saturday, October 11, 2025

Kurz, a fully self-hosted URL shortener with passwordless login, queue-based analytics


full image - Repost: Kurz, a fully self-hosted URL shortener with passwordless login, queue-based analytics (from Reddit.com, Kurz, a fully self-hosted URL shortener with passwordless login, queue-based analytics)
Hey @selfhostedI’d like to share a project I’ve been building called Kurz — a completely self-hosted URL shortener designed to replace Bitly for personal use.You can check it out here: github.com/alexcastrodev/shortener⸻🚀 Why I built itI wanted a self-hosted link shortener that: • Runs fully on my homelab or VPS — no external dependencies • Uses modern, distributed design principles but stays lightweight • Focuses on low-latency redirection while keeping the rest (DB, monolith) simple • Remains free forever and easy to deploy via DockerThe redirect service itself runs on Deno, making it fast enough to serve from the edge (Cloudflare Workers, AWS Lambda, Azure Function, etc.).⸻🧰 Tech StackHere’s the stack powering Kurz: • Backend: Ruby on Rails 8 • Frontend: React (served via a lightweight container) • Redirect worker: Deno (serverless function optimized for latency) • Database: PostgreSQL 17 • Cache / Key-Value Store: Valkey 8.1 (Redis-compatible) • Message broker: RabbitMQ 3 (for async event dispatching) • Deployment: Docker Compose / Swarm ready • Monitoring / logging: Sentry integrationAll services — web, workers, jobs, frontend, serverless — are containerized and can be deployed independently.⸻⚙️ Core Features • 🔗 Create, manage, and share shortened links through a web interface • 📨 Passwordless login via email (no passwords to remember) • ⚡ Edge redirects via Deno worker for ultra-low latency • 🧱 RabbitMQ for asynchronous analytics & logging • 💾 Valkey (or Redis/KV) for near-instant key lookups • 📊 Future support for delayed aggregation of statistics • 🔐 Secure, environment-driven configuration • 🐳 Fully Dockerized — easy to self-host or extendThe design intentionally separates redirection (fast path) from administration and data aggregation (slow path), which keeps response times extremely low even on modest hardware.⸻💡 Why you might like itIf you want a Bitly alternative that runs on your own infrastructure, integrates easily with message queues or edge networks, and supports passwordless auth out of the box — this might be for you.I built Kurz in about two days as a personal experiment and have been improving it gradually since.It’s open source, MIT-licensed, and meant to stay free forever.Feel free to fork it, patch it, or deploy it in your homelab.Feedback, contributions, or performance suggestions are always welcome!


Mining:
Bitcoin, Cryptotab browser - Pi Network cloud PHONE MINING
Fone, cloud PHONE MINING cod. dhvd1dkx - Mintme, PC PHONE MINING


Exchanges:
Coinbase.com - Stex.com - Probit.com


Donations:
Done crypto



Comments System

Disqus Shortname

Disqus Shortname

designcart
Powered by Blogger.