User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
services:silverbullet [2024/08/07 14:54] willyservices:silverbullet [2024/09/05 12:56] (current) – [Startup] willy
Line 1: Line 1:
 ====== Silverbullet ====== ====== Silverbullet ======
  
 +[[https://silverbullet.md/|Silverbullet]] is an amazing and powerfull note taking app. It's actually incredibly more than that.
  
 +===== Installation =====
 +
 +As usual you need a dedicated user:
 +<code bash>
 useradd -d /data/daemons/silverbullet -m silverbullet -g users useradd -d /data/daemons/silverbullet -m silverbullet -g users
 +</code>
 +
 +Note that i am adding it to the **users** group because i want to share the notes (which are plain md files) via Syncthing later on.
 +
 +Set umask to 0002 in bashrc, so that any md files created by Silverbullet will also be accessible to all users in **users** group:
 +<code bash>
 +echo "umask 0002" >> /data/saemons/silverbullet/.bashrc
 +</code>
 +
 +Now, just download the latest release from  [[https://github.com/silverbulletmd/silverbullet/releases|Github releases page]] and unzip it:
 +<code bash>
 +su - silverbullet
 +wget 'https://github.com/silverbulletmd/silverbullet/releases/download/ [[[X.Y.Z]]] /silverbullet-server-linux-x86_64.zip' 
 +unzip silverbullet-server-linux-x86_64.zip 
 +</code>
 +
 +And you are all set! You will need to define a folder to store the notes, i will assume it's /home/notes, but you can pick your path, and a port, i assume will be 8001, for the reverse proxy.
 +
 +===== Reverse proxy =====
 +
 +Silverbullet requires a dedicated subdomain, it will not work on subpath. I will assume it's **notes.mydomain.com**. Also, since Silverbullet do not manage authentication, i will show you how to use proxy authentication. Please refer to [[selfhost:nginx|The Reverse Proxy concept]] for more details, specially on how to setup dual access: without authentication from inside your home, and authenticated from outside.
 +
 +Here is the NGINX configuration file:
 +<file - silverbullet.conf>
  
-umask 0002 in bashrc+access_log /var/log/nginx/notes.mydomain.com_access_log main;                                                                                                                                  
 +error_log /var/log/nginx/notes.mydomain.com_error_log info;                                                                                                                                   
  
-Download: +# login protected access from outside 
-https://github.com/silverbulletmd/silverbullet/releases+server { 
 +        server_name notes.mydomain.com
 +        listen 8443 ssl;  
 +        http2 on; 
 +        include "com.mydomain/authelia_location.conf"; 
 +         
 +        location {                                                                                                                                                                                  
 +             include "com.mydomain/authelia_proxy.conf";                                                                                                                                            
 +             include "com.mydomain/authelia_authrequest.conf";                                                                                                                                                                                                                                                                                  
 +             if ($http_origin = ''){                                                                                                                                                               
 +                 set $http_origin "*"; 
 +             } 
 +             proxy_hide_header Access-Control-Allow-Origin;   
 +             add_header Access-Control-Allow-Origin $http_origin;
  
-https://github.com/silverbulletmd/silverbullet/releases/download/0.7.5/silverbullet-server-linux-x86_64.zip+             client_max_body_size 512M; 
 +             proxy_pass http://127.0.0.1:8001$uri; 
 +        } 
 +}
  
- unzip silverbullet-server-linux-x86_64.zip +# Manage direct request inside home network 
 +# It's identical to the remote one, but it has no authentication 
 +# HTTPS on port 443 for direct local connections 
 +server 
 +        server_name notes.mydomain.com; 
 +        listen 443 ssl;  
 +        http2 on; 
 +         
 +        location / {                                                                                                                                                                  
 +             if ($http_origin = ''){                                                                                                                                                               
 +                 set $http_origin "*"; 
 +             } 
 +             proxy_hide_header Access-Control-Allow-Origin; 
 +             add_header Access-Control-Allow-Origin $http_origin; 
 +             client_max_body_size 512M; 
 +             proxy_pass http://127.0.0.1:8001$uri; 
 +     } 
 +}                                                                                                                                                                     
 +</file>
  
-./silverbullet /data/common/willy/Notes/ --hostname 127.0.0.1 --port 8001+Note: do not just copy and paste this file, you need to understand it and adapt where needed.
  
 ===== Startup ===== ===== Startup =====
Line 26: Line 90:
 pidfile="/run/silverbullet.pid" pidfile="/run/silverbullet.pid"
 command_background=true command_background=true
-command="/deposito/daemons/silverbullet/silverbullet" +command="/data/daemons/silverbullet/silverbullet" 
-command_args="/deposito/common/willy/Notes/ --hostname 127.0.0.1 --port 8001"+command_args="/home/notes/ --hostname 127.0.0.1 --port 8001"
 command_user="silverbullet:users" command_user="silverbullet:users"
  

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information