Skip to content

larsmikki/launchr

Repository files navigation

Linky

A lightweight, self-hosted web launcher. Organize your bookmarks into a drag-and-drop grid with collapsible groups and auto-fetched favicons.

License: MIT Docker Hub ghcr.io Last Commit

Linky screenshot

Getting started

Pick whichever install path matches your setup. All paths land on http://localhost:3020.

1. Docker (Docker Desktop, NAS, or any Docker server)

Works on Synology, Unraid, TrueNAS, QNAP, Proxmox, or a plain Docker host.

docker run -d \
  --name linky \
  -p 3020:3020 \
  -v linky-data:/app/data \
  --restart unless-stopped \
  larsmikki/linky:latest

Or pull the published Compose file:

curl -O https://raw.githubusercontent.com/larsmikki/linky/main/docker-compose.yml
docker compose up -d

2. Local install on Windows

Requires Git for Windows and Node.js 20+.

git clone https://github.com/larsmikki/linky.git
cd linky
npm run setup
npm run dev

For a production build: npm run build && npm start.

3. Local install on macOS

brew install node git
git clone https://github.com/larsmikki/linky.git
cd linky
npm run setup
npm run dev

For a production build: npm run build && npm start.

4. Local install on Linux

Debian/Ubuntu:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs git

git clone https://github.com/larsmikki/linky.git
cd linky
npm run setup
npm run dev

On Fedora/RHEL use dnf install nodejs git; on Arch use pacman -S nodejs npm git.

For a production build: npm run build && npm start.

Usage

  • Right-click the background to add shortcuts or groups
  • Right-click a shortcut or group to edit, move, or delete
  • Long-press on touch devices works the same way
  • Enable Arrange Mode from the context menu to drag items around the grid

Features

  • Grid layout with drag-and-drop repositioning
  • Auto-fetched favicons with local caching
  • Collapsible groups with custom colors
  • Manual icon upload with fallback letter tiles
  • 10 built-in themes including light and dark modes
  • Row and column layout modes
  • Import / export for backup and migration
  • Responsive — works on mobile and desktop
  • Data persisted in SQLite

Configuration

Environment variable Default Description
PORT 3020 Port the server listens on
DATA_DIR /app/data Directory for database and icon cache
ALLOWED_ORIGINS http://localhost:3020 Comma-separated allowed CORS origins

Data Persistence

Data is stored in a Docker volume (linky-data) at /app/data inside the container. Back up via Settings → Export, or copy the volume contents directly.

Tech Stack

  • Frontend: React 19, TypeScript, Vite, Tailwind CSS
  • Backend: Express, TypeScript
  • Database: SQLite (via sql.js)
  • Icons: Sharp for image processing

Support

If you find Linky useful, consider buying me a coffee. Linky is and always will be free, open source, and self-hosted.

About

Self-hosted web launcher / browser homepage. Organize your bookmarks into a drag-and-drop grid with collapsible groups, auto-fetched favicons, and a clean desktop-like interface. Built with React + TypeScript frontend and an Express + SQLite backend. Easy to deploy with Docker.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors