selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Django-link-archive logo

Self-host Django-link-archive

Self-hosted link database and RSS reader

BetaOpen SourceGPL-3.0
Updated4 months ago
LanguagePython
Setup difficultyAdvanced
ThemeDark mode
Stars
149
Port
8000 (Django web application)
Requires
Crawler-buddy, PostgreSQL, RabbitMQ
Docker
rozbujnik/django-link-archive
Install with Docker Compose
Standard list view for RSS news readingYouTube gallery viewSearch engine viewDark theme UISearch formEntry/link details viewRSS sources managementSearch engines and tools panelPage analysis and download toolsTags and keywords view

What is Django-link-archive?

Django-link-archive is a self-hosted personal link database and RSS aggregator built with Django. It lets you collect and organize bookmarks from RSS feeds (YouTube, Reddit, Odysee, OPML), IMAP email servers, and web crawling into a searchable archive with tags, comments, and voting. The web UI offers standard list, gallery, and search-engine views with light/dark themes. It supports automatic exports to GitHub or local directories, YouTube video downloading via yt-dlp, and link rot analysis. The stack runs on PostgreSQL with RabbitMQ and Celery for background tasks, and includes a companion crawler service (crawler-buddy). Installation is via Docker Compose or manual Poetry setup, and the author reports it runs on a Raspberry Pi 5. The project is licensed under GPL-3.0.

Should you self-host Django-link-archive?

Django-link-archive scores 39/100 on selfhost.directory (how scoring works) and ranks #39 of 46 in Bookmarks & Link Sharing. It has 149 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Karakeep (82/100, 30 117 stars). It scores higher overall, so compare the two before you pick. See Django-link-archive vs Karakeep side by side.

Features

  • Automatic Exports
  • Bookmark Management
  • GitHub export
  • IMAP email clientGmail not supported due to hostile IMAP implementation
  • Internet Archive integration
  • Kiosk Mode
  • Link search
  • Multi-user support
  • RSS Feed Aggregation
  • Spaces
  • Tracking URL cleanup
  • User action tracking
  • Web CrawlingEthical crawling only, no proxy rotation
  • YouTube Download

Django-link-archive README

How to install Django-link-archive

Install Django-link-archive with Docker Compose

Docker and Docker Compose
Environment variables
DB_SERVER, DB_DB, DB_USER, DB_PASSWORD, ALLOWED_IP, DJANGO_SUPERUSER_USERNAME, DJANGO_SUPERUSER_PASSWORD, DJANGO_INITIALIZE_SOURCES, CRAWLER_BUDDY_SERVER, CRAWLER_BUDDY_PORT, SECRET_KEY, DEBUG

version: '3.7' services: djangolinkarchive: image: rozbujnik/django-link-archive container_name: djangolinkarchive build: context: . dockerfile: Dockerfile ports: - 8000:8000 depends_on: dbserver: condition: service_healthy environment: # could be localhost DB_SERVER: dbserver DB_DB: control DB_USER: power DB_PASSWORD: notexample ALLOWED_IP: "192.168.0.1" DJANGO_SUPERUSER_USERNAME: admin DJANGO_SUPERUSER_PASSWORD: admin DJANGO_INITIALIZE_SOURCES: 1 CRAWLER_BUDDY_SERVER: crawlerbuddy CRAWLER_BUDDY_PORT: 3000 SECRET_KEY: "xxxxxxxxxxxxx" DEBUG: 1 networks: - shared_network

dbserver: image: postgres restart: always environment: POSTGRES_DB: control POSTGRES_USER: power POSTGRES_PASSWORD: notexample healthcheck: test: ["CMD-SHELL", "pg_isready -U power -d control"] interval: 5s timeout: 5s retries: 5 networks: - shared_network

crawlerbuddy: image: rozbujnik/crawler-buddy container_name: crawlerbuddy ports: - 3000:3000 environment: CRAWLER_BUDDY_PORT: 3000 networks: - shared_network

networks: shared_network: driver: bridge

Requires rabbitmq.conf file in working directory with vm_memory_high_watermark.relative = 0.9

How to configure Django-link-archive

  • ALLOWED_IPAllowed IP address for access

    Allowed IP address for access

  • CRAWLER_BUDDY_PORTCrawler-buddy service port

    Crawler-buddy service port

  • CRAWLER_BUDDY_SERVERCrawler-buddy service hostname

    Crawler-buddy service hostname

  • DB_DBPostgreSQL database name

    PostgreSQL database name

  • DB_PASSWORDPostgreSQL password

    PostgreSQL password

  • DB_SERVERPostgreSQL server hostname

    PostgreSQL server hostname

  • DB_USERPostgreSQL username

    PostgreSQL username

  • DEBUGDjango debug mode

    Django debug mode

  • DJANGO_INITIALIZE_SOURCESWhether to initialize default RSS sources

    Whether to initialize default RSS sources

  • DJANGO_SUPERUSER_PASSWORDInitial admin password

    Initial admin password

  • DJANGO_SUPERUSER_USERNAMEInitial admin username

    Initial admin username

  • SECRET_KEYDjango secret key

    Django secret key

More in Bookmarks & Link Sharing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…