Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

71 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner

License: MIT Next.js TypeScript Docker OmniRise YouTube

CI Latest Release Last Commit


Stop paying $15/mo for Linktree. LinkBreeze gives you links, analytics, QR codes, themes, and a real admin panel β€” free, forever, in one Docker command.

πŸ”— Live Demo β€” see the public page in action (read-only).

πŸ” Demo Dashboard β€” log in with demo / demo1234 to explore the admin panel.

✨ Features

  • πŸ”— Link Management β€” Add, reorder, and customize unlimited links with drag-and-drop
  • 🌐 Multi-Page Support β€” Create unlimited pages, each with its own slug, theme, links, analytics, SEO, and QR code
  • 🎨 Auto-Favicon Links β€” Links automatically show the target site's favicon β€” no manual icon uploads needed
  • πŸ“₯ Migration Wizard β€” Import existing links and social profiles from Linktree, Bento, Hopp.bio, LittleLink, or any HTML/JSON export
  • πŸ–ΌοΈ Link Thumbnails β€” Add images to your links for visual preview cards
  • 🎡 Embed Widgets β€” Embed YouTube, Spotify, SoundCloud, Vimeo, or Bandcamp directly on your page
  • ⏰ Link Scheduling β€” Schedule links to appear/disappear automatically with date/time controls
  • πŸ“Š Privacy-First Analytics β€” Page views, click tracking, referrers β€” no cookies, no tracking
  • πŸ“ˆ External Analytics β€” Inject Plausible, Umami, Matomo, or Google Analytics with one paste
  • πŸ”” Update Notifications β€” Dashboard banner notifies you when a new version is available (no phone-home, no auto-update)
  • 🎨 Themes β€” 9 built-in presets (Aurora, Glassmorphism, Neon Cyberpunk, Editorial Paper, Terminal Mono, Pastel Soft, Brutalist, Retro Sunset, Minimal Light) + full customizer with CSS token system (colors, 10 fonts, 8 background types, 6 card styles, layout controls, effects) + theme duplicate/import/export
  • ✏️ Custom CSS β€” Fine-tune your page with raw CSS injection
  • πŸ“§ Email Capture β€” Collect subscriber emails on your public page, export to CSV
  • πŸ“± Mobile-First β€” Gorgeous on every screen. Loads in under 300ms. Zero client-side JS bundles.
  • 🎯 QR Codes β€” Auto-generated for your page. Download as SVG or PNG.
  • πŸ”’ Self-Hosted β€” Your data, your server. No tracking. No ads. No subscription.
  • 🐳 One-Command Deploy β€” Docker compose and you're live

πŸš€ Quick Start

One command β€” zero config β€” live in 30 seconds:

curl -fsSL https://raw.githubusercontent.com/Manak-hash/LinkBreeze/main/scripts/install.sh | bash

The script detects Docker or Podman, pulls the image, starts the container, and optionally sets up a systemd service for auto-start on boot. Want auto-start on boot? Run it with sudo bash instead and answer y when prompted.

Don't like piping to bash?
curl -fsSL https://raw.githubusercontent.com/Manak-hash/LinkBreeze/main/scripts/install.sh -o install.sh
less install.sh
bash install.sh

Then open http://localhost:3000 β€” the setup wizard takes under 30 seconds.

Prefer a different method? Expand one below:

🐳  Docker

No Node.js, no npm, no config files needed.

Linux / macOS / Windows CMD:

docker run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:/app/data ghcr.io/manak-hash/linkbreeze:latest

Windows PowerShell β€” use backticks for line breaks:

docker run -d `
  --name linkbreeze `
  --restart unless-stopped `
  -p 3000:3000 `
  -v linkbreeze-data:/app/data `
  ghcr.io/manak-hash/linkbreeze:latest

Database migrations run automatically on container startup β€” no manual drizzle-kit migrate needed for Docker deployments.

🧩  Docker Compose

Best if you want to customize ports, add a reverse proxy, or manage updates easily.

Option A β€” Pull the pre-built image:

Create a docker-compose.yml:

services:
  linkbreeze:
    image: ghcr.io/manak-hash/linkbreeze:latest
    ports:
      - "3000:3000"
    volumes:
      - linkbreeze-data:/app/data
    restart: unless-stopped

volumes:
  linkbreeze-data:
docker compose up -d

Option B β€” Build from source:

git clone https://github.com/Manak-hash/LinkBreeze.git
cd LinkBreeze
docker compose up -d --build

Upgrade anytime: docker compose pull && docker compose up -d

Logs: docker compose logs -f linkbreeze

☁️  Coolify

Running Coolify on your VPS?

  1. + New Resource β†’ Docker Compose Empty
  2. Paste:
services:
  linkbreeze:
    image: ghcr.io/manak-hash/linkbreeze:latest
    ports:
      - "3000:3000"
    volumes:
      - linkbreeze-data:/app/data
    restart: unless-stopped

volumes:
  linkbreeze-data:
  1. Set a domain (e.g., links.yourdomain.com) for automatic SSL
  2. Click Deploy β€” Coolify handles Let's Encrypt automatically
πŸ“¦ Β Synology NAS

Running Synology DiskStation with Container Manager (DSM 7.2+)?

  1. Open Container Manager β†’ Container β†’ Create
  2. Image: ghcr.io/manak-hash/linkbreeze:latest (pull it first via Image β†’ Add if not found)
  3. Container settings:
    • Name: linkbreeze
    • Port: Local 3000 β†’ Container 3000
    • Volume: Create /docker/linkbreeze/data and map to /app/data
    • Restart policy: Unless stopped
  4. Click Done β€” live at http://<nas-ip>:3000

Update later: pull the latest image, stop and recreate the container. Data persists in the volume.

πŸ”§ Β Podman

Using Podman instead of Docker (RHEL, Fedora, CentOS)? Replace docker with podman:

podman run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:/app/data ghcr.io/manak-hash/linkbreeze:latest

If you get permission errors on the volume, create it first: podman volume create linkbreeze-data

For systemd integration with rootless Podman: podman generate systemd after starting the container.

The one-line install script at the top of this section detects Podman automatically.

πŸ–₯️ Β Portainer

Using Portainer to manage containers? Deploy as a Stack.

  1. Go to your environment β†’ Stacks β†’ Add stack
  2. Name it linkbreeze and paste:
services:
  linkbreeze:
    image: ghcr.io/manak-hash/linkbreeze:latest
    ports:
      - "3000:3000"
    volumes:
      - linkbreeze-data:/app/data
    restart: unless-stopped

volumes:
  linkbreeze-data:
  1. Click Deploy the stack

Update: Stacks β†’ linkbreeze β†’ Editor β†’ click Pull and redeploy.

πŸ”¨ Β Manual (without Docker)

Requires Node.js 18+.

git clone https://github.com/Manak-hash/LinkBreeze.git
cd LinkBreeze

npm install

cp .env.example .env
# Edit .env to set your SECRET_KEY and DATABASE_PATH if needed

npm run db:migrate
npm run dev

For production: npm run build && npm start

🌐 Making Your Page Public

LinkBreeze runs on your server. Once deployed, your page is accessible to anyone at https://your-domain.com/your-slug. Here's how to get it online:

Option 1: Reverse Proxy with Your Domain

Point your domain's A record to your server IP, then use a reverse proxy with automatic HTTPS:

Caddy (recommended β€” auto HTTPS)
links.example.com {
    reverse_proxy localhost:3000
}
nginx
server {
    server_name links.example.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Option 2: Cloudflare Tunnel (no open ports)

No domain purchase or port forwarding needed:

cloudflared tunnel --url http://localhost:3000

πŸ“Έ Screenshots

Click to expand
Public Page Admin Dashboard
Public Page Admin Dashboard
Links Profile
Links Page Profile Page
Theme Settings
Theme Picker Settings Page

πŸ†š Comparison

Feature Linktree LinkStack LittleLink Shako LinkBreeze
Price $15/mo Free Free Free Free
Admin Panel βœ… Slow ❌ ❌ βœ… Fast
Multi-Page βœ… (paid) ❌ ❌ ❌ βœ…
Auto-Favicon Links ❌ ❌ ❌ ❌ βœ…
Migration Wizard ❌ ❌ ❌ ❌ βœ…
Database Theirs MySQL None None SQLite
Built-in Analytics Paid Basic ❌ ❌ βœ… Full
External Analytics βœ… βœ… ❌ ❌ βœ…
Email Capture Paid ❌ ❌ ❌ βœ…
Embed Widgets Paid ❌ ❌ ❌ βœ…
Link Thumbnails βœ… ❌ ❌ ❌ βœ…
QR Codes βœ… βœ… ❌ ❌ βœ…
Link Scheduling Paid ❌ ❌ ❌ βœ…
Themes Paid Limited CSS only Config βœ… Full Token System + Import/Export
Custom CSS ❌ ❌ βœ… ❌ βœ…
Self-Hosted ❌ βœ… βœ… βœ… βœ…
Language Closed PHP HTML Astro TypeScript
Docker Deploy N/A Complex Simple Simple One command
Page Load ~2-3s ~1-2s Fast Fast <300ms
License Closed AGPL MIT GPL MIT

πŸ› οΈ Tech Stack

Layer Technology
Framework Next.js 16 (App Router, Server Components, ISR)
Database SQLite via better-sqlite3 (WAL mode)
ORM Drizzle ORM (type-safe, zero overhead)
Auth Cookie-based HMAC sessions, bcrypt
UI shadcn/ui + Tailwind CSS 4
Drag & Drop dnd-kit
Charts Recharts
QR Codes qrcode (server-side SVG/PNG)
Validation Zod
Icons Lucide + custom social SVGs

πŸ“– Documentation

βš™οΈ Configuration

All configuration is via environment variables (.env):

Variable Default Description
PORT 3000 Server port
DATABASE_PATH ./data/linkbreeze.db SQLite database file path
SECRET_KEY Auto-generated HMAC signing key for sessions

Runtime settings (page slug, title, SEO, theme) are managed via the admin dashboard and stored in the database β€” no code changes needed.

🎨 Theme System

9 presets are included out of the box: Aurora (animated flagship), Glassmorphism, Neon Cyberpunk, Editorial Paper, Terminal Mono, Pastel Soft, Brutalist, Retro Sunset, and Minimal Light.

The theme engine uses a CSS custom property (--lb-*) token system β€” every color, radius, shadow, and font is a token consumed by the public page components. The customizer gives you full control over:

  • Background β€” 8 types (solid, gradient, radial, mesh, aurora, animated gradient, image, pattern) with angle, overlay, and opacity controls
  • Colors β€” accent, secondary, text, muted text, card background, card border (hex or rgba)
  • Typography β€” 10 curated Google Fonts (Inter, Poppins, Playfair Display, JetBrains Mono, Space Grotesk, DM Sans, Lora, Bebas Neue, Sora, Outfit), font scale, weight, letter spacing
  • Card style β€” 6 link styles (pill, rounded, sharp, glass, outline, neon), hover effects, button size, corner radius, border width, shadow strength
  • Layout β€” container width, alignment (left/center/right), density (compact/normal/relaxed)
  • Effects β€” glow with custom color, glass blur, noise texture, reveal animation
  • Duplicate β€” clone any theme (preset or custom) as a new editable copy

All changes apply with zero client-side JS bundles β€” the public page ships no React runtime and renders as pure server-side HTML. (mailto/tel/social links use a tiny inline onclick beacon for best-effort click tracking; http/https links use the JS-free /go/:id redirect.)

πŸ’¬ Community

🀝 Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

πŸ“œ License

MIT β€” do whatever you want. See LICENSE.

🏒 About

Built by Manak-hash Β· An OmniRise project.

Releases

Packages

Used by

Contributors

Languages