8000 GitHub - redrathnure/linkwarden: ⚡️⚡️⚡️Self-hosted collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

⚡️⚡️⚡️Self-hosted collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents.

License

Notifications You must be signed in to change notification settings

redrathnure/linkwarden

 
 

Repository files navigation

Fork Info

A staging repository for Linkwarden improvements. A following changes were done here:

  1. Docker image is run with node:node user (default user for official nodejs images). By default it's 1000:1000 however it may be adjusted using PUID and PGID args.
  2. It's possible to run contained with -u UID:GID params. Please note it is not the same as PUID:PGID args and it is not recommended at all (see description below)
  3. Experimental build with node.js 20 (✓)
  4. Images were optimized for Docker BuildX toolset (reorder docker layers, use cache mount points etc)

Some of the Issues Addressed

Rootless Container

Why: to not run process with under privileged user, to avoid creation file with root:root chown and to make possibility to run image(s) from predefined (non root) host user. Problem: 8000 PostgresSQL images are ready for rootless run. Just use -u arg or user: compose directive. However official Linkwarden image have multiple file permissions related problems. How to fix: Option 1: The custom images run under node:node (1000:1000) user by default. No any process with privileged user context anymore. Just run Docker/Docker Compose as usual without any extra parameters. All internal files are ready for this, all new files will be created with 1000:1000 owner. Option 2. The custom images support PUID and PGID environment arguments to specify desired UID and GID. Please make sure that shared mount points has right permissions, all new files will be created with PUID:PGID owner.

An example of docker compose file:

name: linkwarden
services:
  postgres:
    image: postgres:16-alpine
    env_file: .env
    restart: always
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    user: "${UID}:${GID}" # UID and GID must be specified in .env file, otherwise put the values here

  linkwarden:
    image: ghcr.io/linkwarden/linkwarden:latest
    env_file: .env
    environment:
      - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
      - PUID=${UID:-1000} # UID and GID must be specified in .env file, otherwise put the values here
      - PGID=${UID:-1000} # UID and GID must be specified in .env file, otherwise put the values here
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./data:/data/data
    depends_on:
      - postgres

Image Tags/Versions

Node.js 22 (Debian Bookworm based):

  • latest
  • 1-beta, 1.2-beta, 1.2.3-beta
  • 1.2.3-beta.13.g15da68da8 where the 13.g15da68da8 part points to the git commit where the images have been built from.
  • tags with a -node22 suffix.

Node.js 20 (Debian Bookworm based): same as nodejs 18 but with -node20 suffix.

Original Project Readme

Linkwarden

Bookmark Preservation for Individuals and Teams

Discord Twitter

GitHub release Open Collective

Intro & motivation

Linkwarden is a self-hosted, open-source collaborative bookmark manager to collect, organize and archive webpages.

The objective is to organize useful webpages and articles you find across the web in one place, and since useful webpages can go away (see the inevitability of Link Rot), Linkwarden also saves a copy of each webpage as a Screenshot and PDF, ensuring accessibility even if the original content is no longer available.

Additionally, Linkwarden is designed with collaboration in mind, sharing links with the public and/or allowing multiple users to work together seamlessly.

Tip

Our official Cloud offering provides the simplest way to begin using Linkwarden and it's the preferred choice for many due to its time-saving benefits.
Your subscription supports our hosting infrastructure and ongoing development.
Alternatively, if you prefer self-hosting Linkwarden, you can do so by following our Installation documentation.

Features

  • 📸 Auto capture a screenshot, PDF, single html file, and readable view of each webpage.
  • 🏛️ Send your webpage to Wayback Machine (archive.org) for a snapshot. (Optional)
  • ✨ Local AI Tagging to automatically tag your links based on their content (Optional).
  • 📂 Organize links by collection, sub-collection, name, description and multiple tags.
  • 👥 Collaborate on gathering links in a collection.
  • 🎛️ Customize the permissions of each member.
  • 🌐 Share your collected links and preserved formats with the world.
  • 📌 Pin your favorite links to dashboard.
  • 🔍 Full text search, filter and sort for easy retrieval.
  • 📱 Responsive design and supports most modern browsers.
  • 🌓 Dark/Light mode support.
  • 🧩 Browser extension. Star it here!
  • 🔄 Browser Synchronization (using Floccus!)
  • ⬇️ Import and export your bookmarks.
  • 🔐 SSO integration. (Enterprise and Self-hosted users only)
  • 📦 Installable Progressive Web App (PWA).
  • 🍎 iOS Shortcut to save Links to Linkwarden.
  • 🔑 API keys.
  • ✅ Bulk actions.
  • 👥 User administration.
  • 🌐 Support for Other Languages (i18n).
  • 📁 Image and PDF Uploads.
  • 🎨 Custom Icons for Links and Collections.
  • 🔔 RSS Feed Subscription.
  • ✨ And many more features. (Literally!)

Like what we're doing? Give us a Star ⭐

Star Us

We're building our Community 🌐

Join and follow us in the following platforms to stay up to date about the most recent features and for support:

Discord

Twitter

Mastodon

Suggestions

We usually go after the popular suggestions. Feel free to open a new issue to suggest one - others might be interested too! :)

Roadmap

Make sure to check out our public roadmap.

Community Projects

Here are some community-maintained projects that are built around Linkwarden:

  • My Links - iOS and MacOS Apps, maintained by JGeek00.
  • LinkDroid - Android App with share sheet integration, source code.
  • LinkGuardian - An Android client for Linkwarden. Built with Kotlin and Jetpack compose.
  • StarWarden - A browser extension to save your starred GitHub repositories to Linkwarden.

Development

If you want to contribute, Thanks! Start by checking our public roadmap, there you'll see a README for contributers for the rest of the info on how to contribute and the main tech stack.

Security

If you found a security vulnerability, please do not create a public issue, instead send an email to security@linkwarden.app stating the vulnerability. Thanks!

Support <3

Other than using our official Cloud offering, any donations are highly appreciated as well!

Here are the other ways to support/cheer this project:

  • Starring this repository.
  • Joining us on Discord.
  • Referring Linkwarden to a friend.

If you did any of the above, Thanksss! Otherwise thanks.

Thanks to All the Contributors 💪

Huge thanks to these guys for spending their time helping Linkwarden grow. They rock! ⚡️

Contributors

About

⚡️⚡️⚡️Self-hosted collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 89.9%
  • HTML 5.1%
  • JavaScript 2.7%
  • CSS 0.5%
  • Kotlin 0.5%
  • Dockerfile 0.4%
  • Other 0.9%
0