Skip to content

Backend for Lynks project - Self-hosted link and note manager

Notifications You must be signed in to change notification settings

raharrison/lynks-server

Repository files navigation

Kotlin Build

Lynks Server - Self-hosted link and note manager

Updated for Kotlin 1.8.0 + Ktor 2.2.2

Server side for the Lynks project offering backend web services for entry management. Accompanied by lynks-ui project which provides a front-end webapp.

Libraries used:

  • Ktor - Kotlin async web framework, using the Netty engine
  • Exposed - Kotlin SQL framework
  • Postgres - Modern and scalable RDBMS as core data store
  • H2 - Embeddable database for testing or standalone deployments
  • HikariCP - High performance JDBC connection pooling
  • Flyway - Database migrations
  • Konf - Type-safe configuration management
  • JUnit 5, Mockk, AssertJ and Rest Assured for testing
  • Kover for code coverage, publishing to Codecov through GitHub Actions

Features

  • Create and manage a number of different entry types:
    • links - bookmarks with dynamic extraction capabilities
    • notes - Markdown text
    • snippet - small code or text segments
    • file - file uploads
  • Manage your entries within tags and collections with hierarchy support
  • Rich sorting, filtering and pagination capabilities
  • Full-text search within notes and extracted webpage content (readable view)
  • Automatic extraction of link content (screenshots), thumbnail generation and text content extraction - keep the content forever even if the site becomes unavailable
  • Find and link to discussions about links on Reddit and Hacker News
  • Automated YouTube metadata retrieval and youtube-dl integration
  • Comment on your entries and upload additional file attachments
  • Full history and audit on all entries - travel back in time to view or revert back to previous versions
  • Scheduled adhoc and recurring reminders with notifications through the webapp, Pushover or email
  • Scheduled digest emails to remind you of unread links in your collection
  • Easy single command Docker Compose based deployment (Ktor, Nginx and Express components)

Roadmap:

Server

  • markdown @abcde --> keep same link in markdown (@abcde) and then transform in html for correct title
  • automated checks for dead links

UI

  • update to Angular 15 when libs are updated
  • file sets with multiple uploads
  • entry colours
  • two-factor auth pages
  • hint for users to create new collections with parents by path

About

Backend for Lynks project - Self-hosted link and note manager

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages