Self-Hosting Hoarder: A Minimalistic Bookmark Manager

· 2 min read
Self-Hosting Hoarder: A Minimalistic Bookmark Manager

If your bookmarks are getting out of hand, Hoarder can help. It’s a self-hosted, privacy-first bookmark manager designed to bring order to your digital life. With Meilisearch for fast indexing and Chrome for metadata extraction, this setup ensures a smooth and efficient experience. Here’s how to deploy it with Docker.


What’s in This Stack?

  • Hoarder: The star of the show, managing your bookmarks and their metadata.
  • Meilisearch: Provides search functionality so you can retrieve bookmarks at warp speed.
  • Alpine Chrome: Handles rendering and extracting metadata from web pages.

The Docker Compose File

Here’s the Docker Compose configuration to deploy Hoarder with all its dependencies:

services:  
  hoarder:  
    image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}  
    container_name: hoarder  
    restart: unless-stopped  
    volumes:  
      - /home/labib/hoarder:/data  # Adjust this path  
    ports:  
      - "3999:3999"  
    env_file:  
      - .env  
    environment:  
      MEILI_ADDR: http://meilisearch:7700  
      BROWSER_WEB_URL: http://chrome:9222  
      DATA_DIR: /data  

  chrome:  
    image: gcr.io/zenika-hub/alpine-chrome:123  
    container_name: chrome  
    restart: unless-stopped  
    command:  
      - --no-sandbox  
      - --disable-gpu  
      - --disable-dev-shm-usage  
      - --remote-debugging-address=0.0.0.0  
      - --remote-debugging-port=9222  
      - --hide-scrollbars  

  meilisearch:  
    image: getmeili/meilisearch:v1.6  
    container_name: meilisearch  
    restart: unless-stopped  
    env_file:  
      - .env  
    environment:  
      MEILI_NO_ANALYTICS: "true"  
    volumes:  
      - meilisearch:/meili_data  

volumes:  
  meilisearch:  
  data:  

Step-by-Step Deployment

Step 1: Prepare the Environment

  1. Install Docker and Docker Compose on your server or local machine.
  2. Create a .env file in the same directory as your docker-compose.yml and add
HOARDER_VERSION=release  
MEILI_MASTER_KEY=your_master_key  

Step 2: Deploy the Stack

Run the following command to start the services:

docker-compose up -d  

This will:

  • Pull the required Docker images.
  • Start the containers for Hoarder, Chrome, and Meilisearch.
  • Set up persistent storage using the defined volumes.

Step 3: Access Hoarder

  1. Open your browser and go to http://<your-server-ip>:3999.
  2. Configure Hoarder to connect to Meilisearch (http://meilisearch:7700) and Chrome (http://chrome:9222).
  3. Start adding bookmarks and enjoy the powerful search capabilities!

How It Works

  • Hoarder uses Meilisearch to index your bookmarks, enabling near-instant search results.
  • Alpine Chrome fetches metadata and preview data from the bookmarked URLs.
  • Your data is stored securely in /data, ensuring persistence across container restarts.

Enhancements

  • Enable HTTPS: Use a reverse proxy like Traefik or Caddy to secure access to your Hoarder instance.
  • Scale Meilisearch: For larger datasets, you can scale Meilisearch with additional resources.
  • Automated Backups: Periodically back up the /data volume to ensure your bookmarks are safe.

Wrapping It Up

Self-hosting Hoarder is the perfect way to declutter your digital life while keeping control of your data. With a few Docker containers and minimal configuration, you’re ready to organize and search your bookmarks like never before.

Give it a try and let me know how it transforms your workflow! 🚀