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