Why SilverBullet?

SilverBullet is a standout open-source, local-first personal knowledge management (PKM) system.

It’s built around markdown files, giving you full ownership and control of your data, and offers a robust web interface to manage it all.

Interesting, tell me more about SilverBullet Features 😎
  • Local-First Data Ownership: Your notes are plain markdown files stored directly on your disk, not in a proprietary database or cloud service. This ensures longevity and portability of your knowledge.
  • Markdown-Centric: Leverages the simplicity and versatility of markdown for all content creation, making it easy to learn and widely compatible.
  • Extensible & Customizable: While simple at its core, SilverBullet offers powerful features like dynamic pages, queries, and a plugin system for advanced users.
  • Web-Based Interface: Access and manage your notes from any device with a modern web browser, making it convenient for both desktop and mobile use.

The SilverBullet Project

For me, SilverBullet is the perfect solution for a future-proof, markdown-based knowledge base that I completely own.

Self-Hosting SilverBullet

First Things First - Get Docker! 🐋

The most recommended step for any self-hosting project: Ensure you have Docker installed and ready. If you’re on Linux, a quick way to get started is:

apt-get update && sudo apt-get upgrade && curl -fsSL [https://get.docker.com](https://get.docker.com?ref=fossengineer.com) -o get-docker.sh
sh get-docker.sh && docker version

SilverBullet with Docker

Setting up SilverBullet with Docker is straightforward, ensuring easy deployment and management of your PKM instance.

Here’s a simple Docker Compose configuration to get you started:

#version: '3.8'

services:
  silverbullet:
    image: ghcr.io/silverbulletmd/silverbullet:v2 # Using the official SilverBullet Docker image
    container_name: silverbullet
    restart: unless-stopped
    environment:
      # !! REQUIRED !! Set a strong username:password for the web interface
      - SB_USER=admin:your_strong_silverbullet_password_here 
      # Optional: Override the default port (3000) if needed
      # - SB_PORT=3001
    volumes:
      # This maps a local directory (./space) to the container's /space directory.
      # This is where all your SilverBullet notes (markdown files) will be stored.
      # Ensure this directory exists on your host machine before running.
      - ./space:/space
    ports:
      # Maps host port 3000 to container port 3000.
      # You can change the host port (e.g., "80:3000" or "8080:3000")
      # if you want to access it on a different port or the standard HTTP port.
      - "3000:3000"

Steps to Deploy:

  1. Create a directory for your SilverBullet project (e.g., silverbullet-app).
  2. Inside this directory, create the space folder: mkdir space. This will be where your notes live.
  3. Save the Docker Compose content above as docker-compose.yaml within your silverbullet-app directory.
  4. Crucially, edit the SB_USER environment variable in docker-compose.yaml to a secure username:password combination.
  5. Open your terminal, navigate to the silverbullet-app directory, and run:
docker compose up -d

Simple, right?

Now just go to http://localhost:3000 (or your server’s IP and chosen port) and start building your knowledge base!

To login, just use the admin/password you provided in the container config file:

SilverBullet Login

Inspired by the power of local-first apps and communities, SilverBullet is an excellent choice for those seeking true data ownership.

SilverBullet UI Editor

FAQ

What is a Local-First application?

A “local-first” application is one where the primary copy of your data resides on your local device.

This contrasts with traditional cloud-first applications where data is primarily stored on remote servers.

Key characteristics of local-first apps include:

  • Data Ownership: You maintain direct control and ownership of your data files.
  • Offline Access: They function fully even without an internet connection.
  • Performance: Operations are often faster as data is accessed locally.
  • Syncing (Optional): While local-first, they can still offer synchronization capabilities across devices or with collaborators, often using peer-to-peer or decentralized methods.

How does SilverBullet compare to other note-taking apps?

SilverBullet differentiates itself with its strong emphasis on markdown files, local-first storage, and a powerful “Space” concept that allows for interlinking and querying notes, similar to a personal wiki.

It’s often compared to:

  • Obsidian: Similar markdown-based, local-first philosophy, but SilverBullet is web-based and offers a more programmatic approach with queries and dynamic pages.
  • Notion/Evernote: These are typically cloud-first, proprietary solutions, offering more curated features but less direct data ownership compared to SilverBullet.

Can I access my SilverBullet notes from other markdown editors?

Yes! Since SilverBullet stores your notes as plain markdown files (.md) in the space directory you mapped, you can open and edit them with any standard markdown editor (like VS Code, Typora, or even a simple text editor).

Changes made externally will be reflected in SilverBullet, and vice-versa, as long as SilverBullet is running and monitoring the space directory.

Other F/OSS for Productivity & Knowledge Management

Star History Chart

For project management see:

See also: