Skip to content

Lynx is an open-source, self-hosted link manager that helps you gather all your digital touchpoints in a single page, with secure authentication and a fully customizable design.

License

Notifications You must be signed in to change notification settings

paoloronco/Lynx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lynx

Your personal links hub

Version

Lynx is an open-source, self-hosted link manager that helps you gather all your digital touchpoints in a single page, with secure authentication and a fully customizable design.


πŸ“‘ Table of Contents

  1. Lynx
  2. πŸš€ Quick Start
  3. πŸ“ Changelog
  4. πŸ“Œ To-Do / Next Steps
  5. πŸ‘¨β€πŸ’» Developed With
  6. πŸ“œ License

πŸŽ₯ Video

Lynx Demo

Watch the demo


πŸ§ͺ Demo

⚠️ The database resets automatically every 15 minutes.


✨ Features

  • 🎨 Full Customization β†’ personalize colors, themes, fonts, text alignment, and layouts.
  • πŸ“‡ Flexible Link Management β†’ create classic links, bulleted lists, or text cards (full-card clickable).
  • πŸ–Ό Rich Media Support β†’ add icons, emojis, or images to your links.
  • πŸ›  Admin Dashboard β†’ manage profile, links, and themes in a clean UI.
  • πŸ“¦ Import/Export β†’ backup and restore links & themes in JSON with one click.
  • 🌍 Deploy Anywhere β†’ easy setup on Railway, Render, Docker, GCP, DigitalOcean, Fly.io, and more.
  • πŸ“± Mobile-First β†’ responsive design that looks great on any device.
  • πŸ—„ Standalone by Design β†’ lightweight, no Firebase/Supabase required.
  • ⚑ Fast & Modern β†’ built with Vite, React, and Tailwind CSS.

πŸ”’ Security Features

  • πŸ”‘ Password Security β†’ bcryptjs hashing (12 salt rounds).
  • πŸ›‘ Token-Based Auth β†’ JWT with signed tokens (7-day expiry).
  • πŸ’Ύ Database Protection β†’ parameterized queries for SQLite, preventing SQL injection.
  • πŸͺ Safe Sessions β†’ HttpOnly + SameSite cookies to mitigate XSS/CSRF risks.
  • πŸ” Code Transparency β†’ fully open-source for audits and improvements.

πŸ›  Tech Stack


πŸš€ Quick Start

Credentials: User: admin Password: ChangeMe123!

1. Clone, Install & Run

(prerequisite: Node.js 18+)

  git clone https://github.com/paoloronco/Lynx.git
  cd Lynx
  npm install
  npm run build
  cd server
  npm install
  cd ..
  npm run start

Public β†’ http://localhost:3001

Admin β†’ http://localhost:3001/admin

2. πŸš€ Deploy with Docker

You can run Lynx directly using the pre-built image from Docker Hub.

  1. Pull the image

    docker pull paueron/lynx:latest
  2. Start the container

    docker run -d --name lynx \
      -p 8080:8080 \
      -e NODE_ENV=production \
      -e PORT=8080 \
      paueron/lynx:latest

    Once started, the app will be available at:

    πŸ‘‰ http://localhost:8080

    πŸ‘‰ http://localhost:8080/admin

  3. Optional environment variables

    • JWT_SECRET – secret key used to sign JWT tokens. If not set, a random key will be generated at runtime (⚠️ highly recommended to set this in production).

    • PORT – the internal server port (default: 8080).

    • NODE_ENV – Node.js environment (default: production).

  4. Data persistence (recommended)

    docker run -d --name lynx \
      -p 8080:8080 \
      -e NODE_ENV=production \
      -e PORT=8080 \
      -e JWT_SECRET="your-very-secret-key" \
      -v lynx_data:/app/server \
      paueron/lynx:latest

3. πŸš€ Deploy on Railway

You can deploy Lynx on Railway in a few steps:

  1. Go to Railway Dashboard β†’ New β†’ GitHub Repo
  2. Connect GitHub repo (Lynx)
  3. Set the following commands:
    • Build Command
      npm install && npm run build && cd server && npm install
    • Start Command
      npm run start
  4. Click Create and wait for the deployment ✨
  5. Add a public domain in the settings

4. πŸš€ Other alternatives to deploy it:


πŸ“ Changelog

v4.0.0

πŸ”§ Admin

  • Updated title to: β€œLynx – Your personal links hub”
  • Profile
    • Bio now supports line breaks (whitespace-pre-line)
    • Empty bio is automatically hidden (no blank space left)
    • Social links are hidden when empty
    • Profile picture now displays correctly
  • Links
    • Consistent text color applied across title, description, and URL
    • Improved Text Card rendering: Link name on the first line, URL on the second line (with horizontal scroll for long URLs)
    • Added support for image/emoji next to links
    • Added ability to insert either:
      • Text Card β†’ full card with only text, entire card clickable via a single link
      • Bulleted List β†’ list with a title and multiple links underneath
    • Option to export/import links as JSON
    • Bug fixes in rendering icons, removing cards, and updating links
    • Fixed bugs with icons, card removal, and link updates
    • Extended customization: choose font, size, and alignment for links
  • Theme
    • Removed duplicate β€œContent” tab (was redundant with name + bio)
    • Partially removed Typography tab β†’ now integrated into Links and Profile sections for better UX
    • Export/Import now properly saves and restores themes
  • UI
    • Updated footer to: Powered by Lynx | Lynx - Your personal links hub
    • Possibility to change the title and meta description

πŸ“Œ To-Do / Next Steps

πŸ”§ Admin

  • Code
    • Code cleaning & refactoring: removing unnecessary parts, obsolete code, and unused dependencies (e.g., leftover Supabase or Firebase integrations).

πŸ‘¨β€πŸ’» Developed With

  • ChatGPT
  • Claude
  • Lovable

πŸ“œ License

MIT License

Copyright (c) 2025 Paolo Ronco

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Lynx is an open-source, self-hosted link manager that helps you gather all your digital touchpoints in a single page, with secure authentication and a fully customizable design.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published