Fully featured Open-source URL Shortener | Beta Documentation
Linkos is an open-source URL Shortener, packed with many useful features, realtime processing and custom audience targeting.
🏗 Development status:
- ✅ Idea
- 👉 Alpha!
- 🏗 Beta
- ⏳ Release
Linkos is being built with microservice architecture, with stateless logic parts that are ready for a small and large scale.
What | Tech |
---|---|
Backend | Bun, Hono |
Links DB | PostgreSQL |
OLAP DB | ClickHouse |
Message Queue | Kafka + KRaft |
Cache | Redis |
Frontend | Vue with Tabler theme |
Extension | Vue with WXT |
Cronjob | Croner |
Realtime | Soketi |
For SSL use either Nginx & certbot, or any domain-level SSL as Cloudflare.
Container | Description | Notes |
---|---|---|
Traefik | Application Proxy | Standalone application |
Postgres | Clicks DB | Standalone application |
ClickHouse | OLAP DB | Standalone application |
Redis | Cache DB | Standalone application |
Kafka | Message Queue | Standalone application |
Linkos | A stateless backend | API & Dashboard |
Linkos Links | Links entrypoint | Provider |
Analytics | Kafka consumer | Worker |
Webhooks | Kafka consumer | Worker |
Scheduler | Cron | Runner |
Feature | Description | Quota / Notes |
---|---|---|
Short links | Number of links can be created each month | Unlimited |
Campaign | Create and manage links by campaigns and get stats for campaign in general | Unlimited |
Redirect link | Changing link destination | Unlimited |
Custom URI | Set your own short link hash | Unlimited |
Custom domain | Set custom domain for your links | Unlimited |
Clicks | How many time each link can be clicked | Unlimited |
QR | Generate branded link QR code | Unlimited |
Private | Private links protected with password | Unlimited |
Expiration | Make link expire in N time | Unlimited |
I Redirect | Redirect with info and Continue button |
Unlimited |
Plus page | Behind the link page. | Unlimited |
Webhooks | Get notified when click, goal oriented Meaning every X clicks, etc. |
Unlimited |
Device targeting | Target link by device type, brand. | Unlimited |
Geo targeting | Geo targeting by ip-db | Unlimited |
Tags | Organize links by tags. | Unlimited |
Users | Multiple users. | Unlimited |
CSV/Bulk | Short a big list of URLs | 10,000+ |
Analytics | Comprehensive link analytics, look below | 3 Years |
Monitor | Monitor links like uptime robot | Hourly |
UTM Builder & Forwarder | Easy UTM builder and forward the UTM data | ✅ |
Parameter passing | Pass all other parameters | ✅ |
API | The same API being used by the dashboard but with a Token | ✅ |
Backup | Easy automate backup to any S3-compatible storage | ✅ |
OAuth2 login | For now Google, Apple & Facebook | ✅ |
2FA | Enable 2fa with SMS (Plivo, Twilio) and OTPT | ✅ |
Easy firewalling | For easy endpoint firewalling all api would be behind /v1/api endpointAnd, all management would be behind admin endpoint and it's changeable in the .env file |
✅ |
GDPR, CCPA, PECR | Compliance with GPDT, CCPA and PECR. | ✅ |
SSO/SAML | Azure AD, Google Workspace. | Later |
Feature | Description |
---|---|
Clicks | Number of clicks |
QR scans | How many times the link was accessed through the QR code it will work as links with QR code have a qr in the URL |
Country | Country origin |
Device | Device type, and brand |
Referer | URL referrer |
You can run the e2e
tests locally using act by running
act -W ".github/workflows/test.yml" pull_request -P ubuntu-latest=catthehacker/ubuntu:act-22.04 --cache-server-addr host.docker.internal