From 1475f461196f4721867680ce2625b8111cdfe7b4 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:03:29 +0530 Subject: [PATCH 1/8] Create config.json --- apps/silverbullet/config.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/silverbullet/config.json diff --git a/apps/silverbullet/config.json b/apps/silverbullet/config.json new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/silverbullet/config.json @@ -0,0 +1 @@ + From 95a1b91478daa48096ede38540ccf5b92a5e3f14 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:03:54 +0530 Subject: [PATCH 2/8] Create docker-compose.json --- apps/silverbullet/docker-compose.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/silverbullet/docker-compose.json diff --git a/apps/silverbullet/docker-compose.json b/apps/silverbullet/docker-compose.json new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/silverbullet/docker-compose.json @@ -0,0 +1 @@ + From 1f9685958d4e16daf234cdd962403398bb1d8212 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:04:16 +0530 Subject: [PATCH 3/8] Create description.md --- apps/silverbullet/metadata/description.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/silverbullet/metadata/description.md diff --git a/apps/silverbullet/metadata/description.md b/apps/silverbullet/metadata/description.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/silverbullet/metadata/description.md @@ -0,0 +1 @@ + From 466458dab203c060a4efc1cb11dc26eb55e513d9 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:20:04 +0530 Subject: [PATCH 4/8] Update description.md --- apps/silverbullet/metadata/description.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/apps/silverbullet/metadata/description.md b/apps/silverbullet/metadata/description.md index 8b137891..5318832b 100644 --- a/apps/silverbullet/metadata/description.md +++ b/apps/silverbullet/metadata/description.md @@ -1 +1,22 @@ +# SilverBullet +SilverBullet aims to be your **workshop for the mind**: a creative space where you collect, create and expand your personal knowledge, while also letting you constantly evolve the tools you use to do so. +While you _can_ use SilverBullet as a simple note taking application that stores notes in plain markdown files on disk, it becomes truly powerful in the hands of more technical power users. By leveraging metadata annotations, its Objects infrastructure, Live Queries and Live Templates, SilverBullet becomes a powerful _end-user programming tool_, enabling you to quickly develop various types of ad-hoc knowledge applications. SilverBullet is implemented as an open-source, self-hosted, offline-capable web application. + +You’ve been told there is _no such thing_ as a [silver bullet](https://en.wikipedia.org/wiki/Silver_bullet). You were told wrong. + +[![Introduction to SilverBullet](http://img.youtube.com/vi/BbNbZgOwB-Y/0.jpg)](https://www.youtube.com/watch?v=BbNbZgOwB-Y) + +## Features +SilverBullet... +* Runs in any modern browser (including on mobile) as a PWA in two Client Modes (_online_ and _synced_ mode), where the _synced mode_ enables **100% offline operation**, keeping a copy of content in the browser, syncing back to the server when a network connection is available. +* Provides an enjoyable markdown writing experience with a clean UI, rendering text using Live Preview, further **reducing visual noise** while still providing direct access to the underlying markdown syntax. +* Supports wiki-style **page linking** using the `[[page link]]` syntax. Incoming links are indexed and appear as “Linked Mentions” at the bottom of the pages linked to thereby providing _bi-directional linking_. +* Optimized for **keyboard-based operation**: + * Quickly navigate between pages using the **page switcher** (triggered with `Cmd-k` on Mac or `Ctrl-k` on Linux and Windows). + * Run commands via their keyboard shortcuts or the **command palette** (triggered with `Cmd-/` or `Ctrl-/` on Linux and Windows). + * Use Slash Commands to perform common text editing operations. +* Provides a platform for [end-user programming](https://www.inkandswitch.com/end-user-programming/) through its support for Objects, Live Queries and Live Templates. +* Robust extension mechanism using plugs. +* **Self-hosted**: you own your data. All content is stored as plain files in a folder on disk. Back up, sync, edit, publish, script with any additional tools you like. +* SilverBullet is [open source, MIT licensed](https://github.com/silverbulletmd/silverbullet) software. From 53feea7734c7811bf588aa2022df13aba17f30f3 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:21:27 +0530 Subject: [PATCH 5/8] Update config.json --- apps/silverbullet/config.json | 41 ++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/apps/silverbullet/config.json b/apps/silverbullet/config.json index 8b137891..75bfa869 100644 --- a/apps/silverbullet/config.json +++ b/apps/silverbullet/config.json @@ -1 +1,40 @@ - +{ + "$schema": "../schema.json", + "name": "Silverbullet", + "port": 8214, + "available": true, + "exposable": true, + "id": "silverbullet", + "tipi_version": 1, + "version": "0.6.0", + "categories": [ + "utilities" + ], + "description": "SilverBullet aims to be your workshop for the mind", + "short_desc": "SilverBullet is a creative space where you collect, create and expand your personal knowledge, while also letting you constantly evolve the tools you use to do so.", + "author": "zefhemel", + "source": "https://github.com/silverbulletmd/silverbullet", + "website": "https://silverbullet.md", + "form_fields": [ + { + "type": "text", + "label": "Username", + "max": 50, + "min": 3, + "required": false, + "env_variable": "SB_USER" + }, + { + "type": "password", + "label": "Password", + "max": 50, + "min": 3, + "required": false, + "env_variable": "SB_PASSWORD" + } + ], + "supported_architectures": [ + "arm64", + "amd64" + ] +} From 4c6df63eab31f4c7466baf4dcf3e183a811ca7cb Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:23:36 +0530 Subject: [PATCH 6/8] Update docker-compose.json --- apps/silverbullet/docker-compose.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/silverbullet/docker-compose.json b/apps/silverbullet/docker-compose.json index 8b137891..ffc1df80 100644 --- a/apps/silverbullet/docker-compose.json +++ b/apps/silverbullet/docker-compose.json @@ -1 +1,16 @@ +version: '0.5' +services: + silverbullet: + image: zefhemel/silverbullet:0.6.0 + container_name: 'silverbullet' + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_DATA_DIR}/space:/space + environment: + - SB_USER=${SB_USER}:${SB_PASSWORD} + ports: + - ${APP_PORT}:3000 + networks: + - tipi_main_network From 84792e1fb446f84f21b7a827a383af96cb0ddeb1 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:24:18 +0530 Subject: [PATCH 7/8] Rename docker-compose.json to docker-compose.yml --- apps/silverbullet/{docker-compose.json => docker-compose.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/silverbullet/{docker-compose.json => docker-compose.yml} (100%) diff --git a/apps/silverbullet/docker-compose.json b/apps/silverbullet/docker-compose.yml similarity index 100% rename from apps/silverbullet/docker-compose.json rename to apps/silverbullet/docker-compose.yml From f4ac7f25a5d3ddbc24276184e2eb4c775d9f9913 Mon Sep 17 00:00:00 2001 From: Wraithers <4705057+Wraithers@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:27:51 +0530 Subject: [PATCH 8/8] Added silverbullet logo --- apps/silverbullet/metadata/logo.jpg | Bin 0 -> 22712 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/silverbullet/metadata/logo.jpg diff --git a/apps/silverbullet/metadata/logo.jpg b/apps/silverbullet/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8a3fbdc3b90803b59297340f8c9a74d7a994456 GIT binary patch literal 22712 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 literal 0 HcmV?d00001