SilverBullet — инструмент для ведения заметок и управления знаниями. Он хранит данные в локальной директории и использует формат Markdown, что делает файлы совместимыми с любыми редакторами. Веб-интерфейс SilverBullet напоминает упрощённый IDE. Он поддерживает автодополнение, быстрый поиск, плагины и шаблоны. Благодаря открытой архитектуре SilverBullet подходит как для личных заметок, так и для небольшой команды.
В статье разберём, как установить SilverBullet на виртуальный выделенный сервер, работающий под управлением Ubuntu или Debian.
Как установить SilverBullet на Ubuntu и Debian
Сначала обновите списки пакетов в системе и установите утилиты, необходимые для дальнейшей установки SilverBullet. А именно, для загрузки и инсталляции сервиса будут нужны wget
— консольная утилита для скачивания файлов, и unzip
— утилита для распаковки ZIP-архивов.
$ sudo apt update
$ sudo apt install wget unzip
Дистрибутив SilverBullet представляет собой ZIP-архив, содержащий бинарный файл, скомпилированный под определённую платформу. Чтобы загрузить его, перейдите на GitHub-страницу SilverBullet и скопируйте ссылку на архив дистрибутива актуальной версии для Linux-систем.

Затем перейдите в свой домашний каталог и при помощи утилиты wget
и скопированной ссылки загрузите архив:
$ cd ~
$ wget https://github.com/silverbulletmd/silverbullet/releases/download/2.0.0/silverbullet-server-linux-x86_64.zip
По окончании загрузки распакуйте полученный архив:
$ unzip silverbullet-server-linux-x86_64.zip
Далее, создайте два каталога для SilverBullet: каталог для бинарного файла и каталог для рабочих данных:
$ sudo mkdir /opt/silverbullet/
$ sudo mkdir /var/lib/silverbullet/
В каталог /opt/silverbullet/
переместите бинарный файл SilverBullet:
$ sudo mv silverbullet /opt/silverbullet/
Далее создайте специального пользователя для сервиса SilverBullet. Он будет запускать процесс, но не сможет подключаться к системе и не будет иметь домашней директории. В нашем примере таким пользователем будет учётная запись с именем silverbullet-user
:
$ sudo useradd --system --no-create-home --shell /usr/sbin/nologin silverbullet-user
Затем измените владельца и группу каталогов и всех файлов внутри них на пользователя и группу silverbullet-user
. Это необходимо для того, чтобы процесс SilverBullet, который работает от имени пользователя silverbullet-user
, имел полный доступ к этим директориям.
$ sudo chown -R silverbullet-user:silverbullet-user /opt/silverbullet/
$ sudo chown -R silverbullet-user:silverbullet-user /var/lib/silverbullet/
Запуск SilverBullet в качестве системного сервиса
Чтобы SilverBullet мог автоматически стартовать при включении сервера, перезапускаться при сбое, работать от отдельного пользователя для безопасности, вести журналы событий в journalctl
и управляться централизованно с помощью команд systemctl
, необходимо настроить его работу в качестве системного сервиса. Другими словами, нужно превратить бинарный файл в надёжный и удобный для администрирования серверный процесс.
Для этого создайте юнит-файл, в котором будет описано, как запускать, останавливать и управлять новым сервисом:
$ sudo nano /etc/systemd/system/silverbullet.service
Скопируйте в него следующее содержимое:
[Unit]
Description=SilverBullet Download Manager
After=network.target
[Service]
ExecStart=/opt/silverbullet/silverbullet -L 0.0.0.0 -p 3000 /var/lib/silverbullet
WorkingDirectory=/opt/silverbullet
Restart=always
User=silverbullet-user
[Install]
WantedBy=multi-user.target
Закройте файл с сохранением изменений и обновите конфигурацию systemd
:
$ sudo systemctl daemon-reload
После чего запустите созданную службу silverbullet
:
$ sudo systemctl start silverbullet
Установите службу в автозагрузку:
$ sudo systemctl enable silverbullet
Проверьте работоспособность службы при помощи команды, которая выводит её текущее состояние:
$ systemctl status silverbullet
Вывод команды не должен содержать сообщений об ошибках.

Поскольку веб-интерфейс SilverBullet по умолчанию доступен на TCP-порту 3000, добавьте разрешающее правило для данного порта в брандмауэр UFW:
$ sudo ufw allow 3000/tcp
После чего откройте браузер и перейдите на http://X.X.X.X:3000
, где замените X.X.X.X
на IP-адрес вашего виртуального сервера.
