2022-04-21 13:04:37 +00:00
|
|
|
|
# Silver Bullet
|
2022-10-10 12:50:21 +00:00
|
|
|
|
|
|
|
|
|
Silver Bullet (SB) is an extensible, open source **personal knowledge
|
|
|
|
|
platform**. At its core it’s a clean markdown-based writing/note taking
|
|
|
|
|
application that stores your _pages_ (notes) as plain markdown files in a folder
|
|
|
|
|
referred to as a _space_. Pages can be cross-linked using the
|
|
|
|
|
`[[link to other page]]` syntax. This makes it a simple tool for
|
|
|
|
|
[Personal Knowledge Management](https://en.wikipedia.org/wiki/Personal_knowledge_management).
|
|
|
|
|
However, once you leverage its various extensions (called _plugs_) it can feel
|
|
|
|
|
more like a _knowledge platform_, allowing you to annotate, combine and query
|
|
|
|
|
your accumulated knowledge in creative ways specific to you.
|
2022-04-21 12:05:22 +00:00
|
|
|
|
|
2022-11-18 15:59:55 +00:00
|
|
|
|
<img src="https://github.com/silverbulletmd/silverbullet/raw/main/website/silverbullet-pwa.png" height="400"/><img src="https://github.com/silverbulletmd/silverbullet/raw/main/website/silverbullet-ios.png" height="400"/>
|
2022-08-01 10:07:02 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
For more in-depth information, an interactive demo, and links to more
|
|
|
|
|
background, check out the [Silver Bullet website](https://silverbullet.md)
|
|
|
|
|
(published from this repo’s `website/` folder).
|
2022-04-21 13:04:37 +00:00
|
|
|
|
|
2022-07-23 18:45:42 +00:00
|
|
|
|
Or checkout these two videos:
|
2022-06-28 12:41:21 +00:00
|
|
|
|
|
2022-11-25 12:36:42 +00:00
|
|
|
|
- [A Tour of some of Silver Bullet’s features](https://youtu.be/VemS-cqAD5k) —
|
2022-10-10 12:50:21 +00:00
|
|
|
|
spoiler alert: it’s cool.
|
|
|
|
|
- [A look the SilverBullet architecture](https://youtu.be/mXCGau05p5o) — spoiler
|
|
|
|
|
alert: it’s plugs all the way down.
|
2022-06-28 12:14:15 +00:00
|
|
|
|
|
|
|
|
|
## Features
|
2022-10-10 13:09:56 +00:00
|
|
|
|
|
|
|
|
|
- **Free and open source**. Silver Bullet is MIT licensed.
|
|
|
|
|
- **The truth is in the markdown.** Silver Bullet doesn’t use proprietary file
|
|
|
|
|
formats. It keeps its data as plain markdown files on disk. While SB uses a
|
|
|
|
|
database for indexing and caching some indexes, all of that can be rebuilt
|
|
|
|
|
from its markdown source at any time. If SB would ever go away, you can still
|
|
|
|
|
read your pages with any text editor.
|
|
|
|
|
- **One single, distraction free mode.** SB doesn’t have a separate view and
|
|
|
|
|
edit mode. It doesn’t have a “focus mode.” You’re always in focused edit mode,
|
|
|
|
|
why wouldn’t you?
|
|
|
|
|
- **Keyboard oriented**. You can use SB fully using the keyboard, typin’ the
|
|
|
|
|
keys.
|
|
|
|
|
- **Extend it your way**. SB is highly extensible with
|
|
|
|
|
[plugs](https://silverbullet.md/🔌_Plugs), and you can customize it to your
|
|
|
|
|
liking and your workflows.
|
2022-06-28 12:19:31 +00:00
|
|
|
|
|
2022-07-23 18:45:42 +00:00
|
|
|
|
## Installing Silver Bullet
|
2022-07-18 01:32:08 +00:00
|
|
|
|
|
2022-10-24 11:51:26 +00:00
|
|
|
|
### Installing Deno
|
|
|
|
|
|
|
|
|
|
Silver Bullet is built using [Deno](https://deno.land). To install Deno on Linux
|
|
|
|
|
or Mac run:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
curl -fsSL https://deno.land/install.sh | sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This will install Deno into `~/.deno/bin`, add this folder to your `PATH` in
|
|
|
|
|
your `~/.bashrc` or `~/.zshrc` file.
|
|
|
|
|
|
|
|
|
|
To install Deno on Windows (using Powershell) run:
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
irm https://deno.land/install.ps1 | iex
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Install Silver Bullet
|
|
|
|
|
|
|
|
|
|
With Deno installed (see instruction above), run:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
deno install -f --name silverbullet -A --unstable https://get.silverbullet.md
|
|
|
|
|
```
|
2022-10-10 13:09:56 +00:00
|
|
|
|
|
2022-10-24 14:10:24 +00:00
|
|
|
|
This will install `silverbullet` into your `~/.deno/bin` folder (which should
|
|
|
|
|
already be in your path if you installed Deno following the previous
|
|
|
|
|
instructions).
|
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
To run Silver Bullet create a folder for your pages (it can be empty, or be an
|
|
|
|
|
existing folder with `.md` files) and run the following command in your
|
|
|
|
|
terminal:
|
|
|
|
|
|
2022-10-24 14:10:24 +00:00
|
|
|
|
```shell
|
|
|
|
|
silverbullet <pages-path>
|
|
|
|
|
```
|
2022-12-04 05:24:06 +00:00
|
|
|
|
By default, SB will bind to port `3000` on all interfaces. To specify a
|
|
|
|
|
different address or port to listen on, use the `--hostname` and `--port`
|
2022-12-05 11:17:27 +00:00
|
|
|
|
options. By default SB doesn’t add authentication, to add
|
|
|
|
|
basic password authentication (BasicAuth), pass the `--user` flag (e.g.
|
|
|
|
|
`--user pete:1234` for username `pete` and password `1234`).
|
2022-06-28 12:19:31 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
Once downloaded and booted, SB will print out a URL to open SB in your browser
|
|
|
|
|
(spoiler alert: by default this will be http://localhost:3000 ).
|
2022-06-28 12:19:31 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
#protip: If you have a PWA enabled browser (like any browser based on Chromium)
|
|
|
|
|
hit that little button right of the location bar to install SB, and give it its
|
|
|
|
|
own window frame (sans location bar) and desktop/dock icon. At last the PWA has
|
|
|
|
|
found its killer app.
|
2022-06-28 12:19:31 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
## Upgrading Silver Bullet
|
2022-06-28 12:14:15 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
Simply run this:
|
|
|
|
|
|
2022-10-23 07:06:12 +00:00
|
|
|
|
silverbullet upgrade
|
2022-10-10 12:50:21 +00:00
|
|
|
|
|
|
|
|
|
And restart Silver Bullet. You should be good to go.
|
2022-07-10 14:56:52 +00:00
|
|
|
|
|
2022-10-24 14:10:24 +00:00
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
If you upgraded to the new Deno-based Silver Bullet from an old version, you may
|
|
|
|
|
have to use the `silverbullet fix <pages-path>` command to flush out your old
|
|
|
|
|
database and plugs. Plugs will likely need to be updated.
|
|
|
|
|
|
2022-07-23 18:45:42 +00:00
|
|
|
|
## Developing Silver Bullet
|
2022-09-24 12:38:58 +00:00
|
|
|
|
|
2022-09-24 18:07:23 +00:00
|
|
|
|
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/silverbulletmd/silverbullet)
|
2022-09-24 12:38:58 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
Silver Bullet is written in [TypeScript](https://www.typescriptlang.org/) and
|
|
|
|
|
built on top of the excellent [CodeMirror 6](https://codemirror.net/) editor
|
|
|
|
|
component. Additional UI is built using React.js.
|
|
|
|
|
[ParcelJS](https://parceljs.org/) is used to build both the front-end and
|
|
|
|
|
back-end bundles. The server backend runs as a HTTP server on node.js using
|
|
|
|
|
express.
|
2022-07-10 14:56:52 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
To prepare the initial web and plug build run:
|
2022-04-21 13:04:37 +00:00
|
|
|
|
|
|
|
|
|
```shell
|
2022-10-10 12:50:21 +00:00
|
|
|
|
deno task build
|
2022-04-21 13:04:37 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-10-24 14:10:24 +00:00
|
|
|
|
To symlink `silverbullet` to your locally checked-out version, run:
|
2022-10-12 09:47:13 +00:00
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
deno task install
|
|
|
|
|
```
|
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
You can then run the server in “watch mode” (automatically restarting when you
|
|
|
|
|
change source files) with:
|
2022-06-28 12:14:15 +00:00
|
|
|
|
|
2022-07-23 18:45:42 +00:00
|
|
|
|
```shell
|
2022-10-23 07:06:12 +00:00
|
|
|
|
deno task watch-server <PATH-TO-YOUR-SPACE>
|
2022-07-23 18:45:42 +00:00
|
|
|
|
```
|
2022-04-21 13:04:37 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
After this initial build, it's convenient to run three commands in parallel (in
|
|
|
|
|
separate terminals):
|
2022-04-21 12:05:22 +00:00
|
|
|
|
|
|
|
|
|
```shell
|
2022-10-10 12:50:21 +00:00
|
|
|
|
deno task watch-web
|
2022-10-23 07:06:12 +00:00
|
|
|
|
deno task watch-server <PATH-TO-YOUR-SPACE>
|
2022-10-10 12:50:21 +00:00
|
|
|
|
deno task watch-plugs
|
2022-04-21 12:05:22 +00:00
|
|
|
|
```
|
2022-07-23 18:45:42 +00:00
|
|
|
|
|
|
|
|
|
## Feedback
|
2022-09-05 14:37:30 +00:00
|
|
|
|
|
2022-10-10 12:50:21 +00:00
|
|
|
|
If you (hypothetically) find bugs or have feature requests, post them in
|
|
|
|
|
[our issue tracker](https://github.com/silverbulletmd/silverbullet/issues).
|
|
|
|
|
Would you like to contribute?
|
|
|
|
|
[Check out the code](https://github.com/silverbulletmd/silverbullet), and the
|
|
|
|
|
issue tracker as well for ideas on what to work on.
|