Nanolinq - URL Shortener
A high-performance URL shortener written in Go, featuring a full web interface and automated CI/CD deployment on Proxmox.
This project
Nanolinq is a self-hosted URL shortener developed to provide a lightweight and fast solution for link management. Beyond the core logic, this project served as a playground to implement a professional deployment pipeline within my Homelab. Github
The web interface allows users to:
- Shorten URLs using custom short codes.
- Track statistics for each shortened link.
- Manage links through an intuitive dashboard (Edit/Delete).
Nanolinq Web Interface - Link management and statistics.
Deployment & CI/CD Pipeline
The true power of this project lies in its infrastructure:
- The application is containerized with Docker and deployed on a Proxmox VM.
- I configured a GitHub Actions Runner locally to enable a full CI/CD pipeline.
- Every time I merge code into the
mainbranch, the runner automatically builds the image and redeploys the service, ensuring zero-downtime updates.
Project objectives
I’ve built Nanolinq with these objectives:
- Create a functional tool for my own domain (nanolinq.ianchenn.com).
- Master Go (Golang) for backend services.
- Automate the software development lifecycle (SDLC) using GitHub Actions.
- Practice service orchestration within a Proxmox environment.
Technologies used
- Backend: Go (Golang) & Postgres SQL
- Infrastructure: Docker, Docker Compose & Proxmox
- DevOps: GitHub Actions (CI/CD) & Git
- Networking: Cloudflare Tunnels