I was totally blown away by the idea that you can dynamically view content using queries. Then I watched a few videos that explain SilverBullet really well (really great videos!) and it became clear to me that I should switch my note-taking system. It consisted of AsciiDoc files. But almost all note-taking systems only work with Markdown, so I first had to convert them from AsciiDoc to Markdown using downdoc, which works quite well.
Installation was also easy with Docker on a Synology. But then came the requirement for HTTPS: I first had to familiarize myself with HTTPS, reverse proxies, etc., and eventually ended up with Tailscale. Then I was able to get started, but had to do everything with the mouse because I had no idea how to bring up the pickers. For other commands, shortcuts are displayed when you search for them—that’s a brilliant solution. Then I found a “plugin” that let you display shortcuts. However, some of the shortcuts don’t work on a German keyboard. In particular, “Ctrl/Cmd + /” doesn’t work because “/” isn’t a dedicated key on the German keyboard—it’s Shift-7. So I had to figure out how to redefine shortcuts so that I could eventually open the Command Picker without a mouse.
Then I also discovered that treeview and Silversearch exist. Something like this could be standard, and during onboarding, you could suggest them as recommended plugins and immediately demonstrate how to integrate plugins.
The next hurdle was importing existing files into SilverBullet. My problem: they had a syntax like this: aaa.bbb.ccc.md, to represent virtual hierarchies. That doesn’t work in SilverBullet, so I had to rename everything.
Next hurdle: working on a smartphone. SilverBullet uses shortcuts, but working with them on mobile is quite difficult. With Silversearch, you can at least find content. Treeview only works to a limited extent, since the font on the smartphone is very large and you therefore never see the entire filenames.
Ultimately, I set up a Syncthing process to have the space available in parallel on the smartphone as well, so I can edit the Markdown files in parallel with Markor.
And so I’m now working my way through it step by step. Now I’m trying to understand why it’s recommended to include page tags in frontmatter instead of using simple tags, even though simple tags like #abc immediately become a link, have autocomplete, etc.
I really like the idea behind Silverbullet, and it’s definitely worth taking the time to learn how to use it. It’s truly an excellent and well-designed piece of software.
update:
I completely forgot about another hurdle: SilverBullet supports Git, but Git has to be available in the container first. So I had to figure that out as well. It might be helpful to provide a few Docker Compose examples. Here’s mine:
version: "3.9"
services:
silverbullet:
image: zefhemel/silverbullet:latest
container_name: silverbullet
restart: unless-stopped
security_opt:
- no-new-privileges:true
# Start-Logik: Installiert Git, setzt globale Rechte & Identität, startet die App
entrypoint: ["/bin/sh", "-c"]
command: >
"apk add --no-cache git &&
git config --system --add safe.directory '*' &&
git config --system user.name \"$$GIT_USER_NAME\" &&
git config --system user.email \"$$GIT_USER_EMAIL\" &&
exec /docker-entrypoint.sh"
user: root
ports:
- "3010:3000"
environment:
# Diese Variablen mĂĽssen in den Portainer-Stack-Einstellungen definiert sein
- GIT_USER_NAME=${GIT_NAME}
- GIT_USER_EMAIL=${GIT_EMAIL}
- SB_AUTH=${SB_USER}:${SB_PASS}
- TZ=${TZ}
- PUID=1026
- PGID=100
- HOME=/space
volumes:
- ${SB_SPACE_PATH}:/space
- ${SB_GIT_PATH}:/gitserver