Files
jdelpilarandJordan Del Pilar 2eaa2e9c5e
Johto Infrastructure Pipeline / Run Ansible Lint (push) Successful in 2m19s
Johto Infrastructure Pipeline / Deploy to Production (push) Successful in 3m24s
21 feat add new silverbullet role (#23)
### Description
This PR adds a new silvetbullet role that configures and starts the silverbullet container
Changes
- Creates required silverbullet `space` directory
- creates silverbullet `.container` file
- starts new and updated `.container` files

### Related Issue
Closes #21

### Testing Done
- [x] [e.g., Ran local unit tests]
- [x] [e.g., Verified service starts under Podman]
- [x] [e.g., Manual check of configuration file output]

### Checklist
- [x] My code follows the project's style guidelines.
- [x] I have performed a self-review of my own code.
- [x] I have updated the documentation (if necessary).

---------

Co-authored-by: Jordan Del Pilar <[email protected]>
Reviewed-on: #23
2026-07-27 20:40:42 -07:00
..

Role: SilverBullet Server

Sets up and deploys SilverBullet container For more information about SilverBullet check out their website

Tags

  • silverbullet
  • docs

Required Variables

Below is an annotated breakdown of the required variables and their structure for this role

Warning

Any variable marked # !SENSITIVE should not be stored in plain text under any circumstance

SilverBullet Info

Defines settings for the SilverBullet Server. Most of these variables are optional, and have predefined defaults in the role itself, however it is possible to define custom variables in host_vars files. Any variable marked as optional has a default value defined in defaults/main.yaml for this role

# (optional): Name of the silverbullet container
# This name is also the name of the service created by the quadlet file, 
# as well as the name of the .container file
# default: silverbullet
# format: snake_case
silverbullet_name:

# (optional): Image of the silverbullet container
# This can be any image from any register that podman supports
# default: ghcr.io/silverbulletmd/silverbullet:latest
# format: URL
silverbullet_image:

# (optional): Port of the silverbullet webui
# this is used for traefik labels to allow for access to the webui
# the default value is defined by the silverbullet container itself. For information on changing it, view the documentation for your image
# default: 3000
# format: int
silverbullet_port:

# (optional): Username of the silverbullet user
# this is the default user created for silverbullet
# note, this value has a default, but it is highly recommended to change it via `host_vars`
# default: jdelpilar
# format: username
silverbullet_user:

# (optional): password for the above created user
# note, this value has a default, but it is highly recommended to change it via `host_vars`
# !SENSITIVE
# default: generated password
# format: password
silverbullet_pass:

# (optional): url of the silverbullet instance
# this is used to set the url in traefik
# default: silverbullet.delpilar.net
# format: url
silverbullet_url:

Templates

silverbullet.container.j2

This template creates a .container file for silverbullet By default this template supports the following additional variables not listed above.

  • silver_bullet_volumes: used to define additional mounted volumes
    • format: <host_path>:<container_path>
  • silver_bullet_env: used to define additional environment variables used by the container
    • format: dict(:)

Execution

Note

This role restarts any containers where the .container file is changed. As such, please ensure that all work is saved and all users are made aware of any potential downtime.

To run this role without running any other roles, please use this command

ansible-playbook site.yaml --tags silverbullet

To run all roles with the docs tag at once, please use this command

ansible-playbook site.yaml --tags docs