AFFiNE
Workspace that mixes docs, whiteboards and databases, so a page can flip between writing and an endless canvas. Edits sync to this server as you type.
Documents / Productivity / Wiki
Notes app for Markdown pages you can program, with two-way links, tasks, queries over everything you've written and Lua scripting for your own commands and widgets.
It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.
In Portainer, head to Settings --> App Templates, paste this in as the URL and save.
https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json http://<your-server>:3300 in a browser.Save this as compose.yml, then run docker compose up -d next to it.
services:
silverbullet:
image: ghcr.io/silverbulletmd/silverbullet:latest-slim
container_name: silverbullet
restart: unless-stopped
ports:
- 3300:3000
volumes:
- silverbullet-data:/data
volumes:
silverbullet-data:
Or skip the file and start it with one command.
docker run -d \
--name silverbullet \
--restart unless-stopped \
-p 3300:3000 \
-v silverbullet-data:/data \
ghcr.io/silverbulletmd/silverbullet:latest-slim Open http://<your-host>:3300 and the setup wizard asks for an admin account, then your first space (at /notes by default). There's no setup code, so whoever gets there first owns the server - do it straight after deploying, and from the address you'll actually use, since the admin dashboard always sends you back there (change it under Admin --> Server). Over plain http on anything but localhost it runs online-only, so no offline use, local encryption or single sign-on. Put it behind an HTTPS proxy to get those back. Accounts, settings and every page (as plain Markdown files) live in the volume. This is the slim image, so if you want the Runtime API, which needs Chromium, use the latest tag instead. Docs: docs.silverbullet.md
Change the left side of a port if it clashes with something else on your server. The volumes are where the data lives, so keep them when you update.
| On your server | In the container |
|---|---|
3300 | 3000/tcp |
silverbullet-data | /data |