Published multiple files
All checks were successful
Build and Deploy Quartz / build (push) Successful in 27s
All checks were successful
Build and Deploy Quartz / build (push) Successful in 27s
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /sh/garden
|
||||
title: Digital Garden
|
||||
created: 2026-02-05T09:58:59.613-07:00
|
||||
modified: 2026-02-05T12:21:13.912-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- digital_gardening
|
||||
- guide
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
# Digital Garden Setup
|
||||
|
||||
My digital garden stack for publishing Obsidian notes to the web.
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Obsidian Vault → Quartz Syncer → Quartz (build) → Caddy (serve)
|
||||
↓
|
||||
Self-hosted LiveSync (multi-device editing)
|
||||
```
|
||||
|
||||
## Components
|
||||
|
||||
1. [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] — Note-taking and editing
|
||||
2. [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]] — Static site generator (Markdown → HTML)
|
||||
3. [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]] — Web server with automatic HTTPS
|
||||
4. [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Selfhosted Live Sync]] — Real-time sync across devices
|
||||
|
||||
## Setup Order
|
||||
|
||||
1. **[[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]]** — Install and configure plugins
|
||||
2. **[[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Selfhosted Live Sync]]** — Set up CouchDB for multi-device sync
|
||||
3. **[[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]]** — Clone repo, configure, connect to vault
|
||||
4. **[[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]]** — Configure reverse proxy and deploy
|
||||
|
||||
## Publishing Workflow
|
||||
|
||||
1. Write/edit notes in Obsidian (any device)
|
||||
2. LiveSync keeps all devices in sync via CouchDB
|
||||
3. Mark notes for publishing with `publish: true` frontmatter
|
||||
4. Use Quartz Syncer plugin to push to Quartz repo
|
||||
5. Build triggers (manual or CI) regenerate the site
|
||||
6. Caddy serves the static files
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Component | Purpose | Tech |
|
||||
|-----------|---------|------|
|
||||
| Editor | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] | Electron app |
|
||||
| Sync | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Selfhosted Live Sync]] | CouchDB |
|
||||
| Generator | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]] | Node.js/TypeScript |
|
||||
| Server | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]] | Go binary |
|
||||
@@ -0,0 +1,148 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /sh/garden/caddy
|
||||
title: Caddy
|
||||
created: 2026-02-05T09:58:59.617-07:00
|
||||
modified: 2026-02-05T12:21:13.914-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- web_server
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Caddy is a powerful web server with automatic HTTPS. I use it to serve my [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]] digital garden.
|
||||
|
||||
## Installation
|
||||
|
||||
**Arch Linux:**
|
||||
```bash
|
||||
sudo pacman -S caddy
|
||||
```
|
||||
|
||||
**Docker:**
|
||||
```bash
|
||||
docker pull caddy:latest
|
||||
```
|
||||
|
||||
**Binary:**
|
||||
Download from https://caddyserver.com/download
|
||||
|
||||
## Basic Configuration
|
||||
|
||||
Caddyfile location: `/etc/caddy/Caddyfile`
|
||||
|
||||
### Serve Static Files
|
||||
|
||||
```caddyfile
|
||||
garden.example.com {
|
||||
root * /var/www/garden/public
|
||||
file_server
|
||||
|
||||
# Handle SPA routing (if using Quartz SPA mode)
|
||||
try_files {path} {path}/ /index.html
|
||||
|
||||
# Compression
|
||||
encode gzip zstd
|
||||
}
|
||||
```
|
||||
|
||||
### With Reverse Proxy
|
||||
|
||||
If running Quartz dev server:
|
||||
```caddyfile
|
||||
garden.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
```
|
||||
|
||||
## Automatic HTTPS
|
||||
|
||||
Caddy automatically provisions TLS certificates via Let's Encrypt. Just use a domain name and Caddy handles the rest.
|
||||
|
||||
Requirements:
|
||||
- Domain DNS points to your server
|
||||
- Ports 80 and 443 accessible
|
||||
- Caddy can bind to those ports
|
||||
|
||||
## Running Caddy
|
||||
|
||||
### systemd
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now caddy
|
||||
```
|
||||
|
||||
### Manual
|
||||
|
||||
```bash
|
||||
caddy run --config /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### Reload config
|
||||
|
||||
```bash
|
||||
sudo systemctl reload caddy
|
||||
# or
|
||||
caddy reload --config /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
## Digital Garden Setup
|
||||
|
||||
My Caddyfile for serving Quartz:
|
||||
|
||||
```caddyfile
|
||||
garden.example.com {
|
||||
root * /var/www/garden/public
|
||||
file_server
|
||||
|
||||
# Quartz SPA routing
|
||||
try_files {path} {path}.html {path}/ /index.html
|
||||
|
||||
# Compression for faster loads
|
||||
encode gzip zstd
|
||||
|
||||
# Cache static assets
|
||||
@static {
|
||||
path *.css *.js *.woff2 *.png *.jpg *.svg
|
||||
}
|
||||
header @static Cache-Control "public, max-age=31536000"
|
||||
|
||||
# Security headers
|
||||
header {
|
||||
X-Content-Type-Options nosniff
|
||||
X-Frame-Options DENY
|
||||
Referrer-Policy strict-origin-when-cross-origin
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Deployment Workflow
|
||||
|
||||
1. Build Quartz: `npx quartz build`
|
||||
2. Copy to server: `rsync -avz public/ server:/var/www/garden/public/`
|
||||
3. Caddy automatically serves the new files
|
||||
|
||||
Or use a CI/CD pipeline to automate.
|
||||
|
||||
## Multiple Sites
|
||||
|
||||
```caddyfile
|
||||
garden.example.com {
|
||||
root * /var/www/garden/public
|
||||
file_server
|
||||
}
|
||||
|
||||
blog.example.com {
|
||||
root * /var/www/blog
|
||||
file_server
|
||||
}
|
||||
|
||||
api.example.com {
|
||||
reverse_proxy localhost:3000
|
||||
}
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- Docs: https://caddyserver.com/docs/
|
||||
- Caddyfile: https://caddyserver.com/docs/caddyfile
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian.md
|
||||
permalink: /sh/garden/obsidian
|
||||
title: Obsidian Setup for Digital Gardening
|
||||
created: 2026-01-29T14:04:18.365-07:00
|
||||
modified: 2026-01-19T17:48:04.050-07:00
|
||||
modified: 2026-02-05T12:21:13.916-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- digital_gardening
|
||||
@@ -14,7 +14,6 @@ cssclasses: ""
|
||||
My current setup for digital gardening with [Obsidian](https://obsidian.md) is very lightweight by design, plugin bloat is real and detracts from the simplicity that allows me to just get things done.
|
||||
## Plugins
|
||||
- Harper - Great for spelling and grammar checks
|
||||
- Quartz Syncer - Used to synchronize my vault contents to my [[Quartz]] repo
|
||||
- BRAT - Used to install Quartz Syncer
|
||||
- Quartz Syncer - Used to synchronize my vault contents to my [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]] repo
|
||||
- Dataview - I just cannot live without this
|
||||
- Self-hosted LiveSync - For editing on multiple devices
|
||||
@@ -0,0 +1,179 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /sh/garden/quartz
|
||||
title: Quartz
|
||||
created: 2026-02-05T09:58:59.615-07:00
|
||||
modified: 2026-02-05T12:21:13.918-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- digital_gardening
|
||||
- static_site
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Quartz is a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites. Perfect for publishing [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] vaults as digital gardens.
|
||||
|
||||
## Features
|
||||
|
||||
- **Obsidian compatibility** — Wikilinks, callouts, backlinks
|
||||
- **Full-text search** — Client-side search
|
||||
- **Graph view** — Interactive note connections
|
||||
- **Popover previews** — Hover to preview linked notes
|
||||
- **Fast** — SPA routing, tiny bundles
|
||||
- **Customizable** — JSX components, plugin system
|
||||
|
||||
## Installation
|
||||
|
||||
Requires Node.js v22+.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/jackyzha0/quartz.git
|
||||
cd quartz
|
||||
npm i
|
||||
npx quartz create
|
||||
```
|
||||
|
||||
Follow the prompts to initialize with your content.
|
||||
|
||||
## Configuration
|
||||
|
||||
Main config: `quartz.config.ts`
|
||||
|
||||
```typescript
|
||||
const config: QuartzConfig = {
|
||||
configuration: {
|
||||
pageTitle: "My Digital Garden",
|
||||
enableSPA: true,
|
||||
enablePopovers: true,
|
||||
analytics: null, // or plausible, umami, etc.
|
||||
locale: "en-US",
|
||||
baseUrl: "garden.example.com",
|
||||
ignorePatterns: ["private", ".obsidian"],
|
||||
defaultDateType: "modified",
|
||||
theme: {
|
||||
cdnCaching: true,
|
||||
typography: {
|
||||
header: "Schibsted Grotesk",
|
||||
body: "Source Sans Pro",
|
||||
code: "IBM Plex Mono",
|
||||
},
|
||||
colors: {
|
||||
lightMode: { /* ... */ },
|
||||
darkMode: { /* ... */ },
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: { /* ... */ },
|
||||
}
|
||||
```
|
||||
|
||||
## Content
|
||||
|
||||
All content lives in `/content` folder. Home page is `content/index.md`.
|
||||
|
||||
### Frontmatter
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: My Note
|
||||
description: A description for previews
|
||||
tags:
|
||||
- example
|
||||
draft: false # true = don't publish
|
||||
publish: true # used by Quartz Syncer
|
||||
date: 2026-02-05
|
||||
---
|
||||
```
|
||||
|
||||
### Supported Syntax
|
||||
|
||||
- Standard Markdown + GFM (tables, footnotes, task lists)
|
||||
- Obsidian wikilinks: `[[Note Name]]`
|
||||
- Obsidian callouts: `> [!info]`
|
||||
- LaTeX math: `$inline$` and `$$block$$`
|
||||
- Syntax highlighting
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
# Development (hot reload)
|
||||
npx quartz build --serve
|
||||
|
||||
# Production build
|
||||
npx quartz build
|
||||
|
||||
# Output goes to /public
|
||||
```
|
||||
|
||||
## Syncing Content
|
||||
|
||||
### Manual
|
||||
|
||||
```bash
|
||||
npx quartz sync
|
||||
```
|
||||
|
||||
### Quartz Syncer Plugin (Recommended)
|
||||
|
||||
Install the **Quartz Syncer** plugin in [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]]:
|
||||
|
||||
1. Install from Community Plugins
|
||||
2. Configure Git provider (GitHub, GitLab, etc.)
|
||||
3. Set Quartz repo path
|
||||
4. Use plugin to selectively publish notes
|
||||
|
||||
Features:
|
||||
- Compiles Dataview queries to static content
|
||||
- Diff viewer before publishing
|
||||
- Selective publish/update/remove
|
||||
- Smart caching
|
||||
|
||||
## Hosting Options
|
||||
|
||||
### Self-hosted with [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]]
|
||||
|
||||
Build locally or via CI, serve `/public` with Caddy.
|
||||
|
||||
### GitHub Pages
|
||||
|
||||
Add `.github/workflows/deploy.yml`:
|
||||
```yaml
|
||||
name: Deploy Quartz
|
||||
on:
|
||||
push:
|
||||
branches: [v4]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
- run: npm ci
|
||||
- run: npx quartz build
|
||||
- uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: public
|
||||
deploy:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: github-pages
|
||||
steps:
|
||||
- uses: actions/deploy-pages@v4
|
||||
```
|
||||
|
||||
### Cloudflare Pages
|
||||
|
||||
- Build command: `npx quartz build`
|
||||
- Output directory: `public`
|
||||
- Production branch: `v4`
|
||||
|
||||
## Resources
|
||||
|
||||
- Docs: https://quartz.jzhao.xyz/
|
||||
- GitHub: https://github.com/jackyzha0/quartz
|
||||
- Quartz Syncer: https://github.com/saberzero1/quartz-syncer
|
||||
@@ -0,0 +1,158 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /sh/garden/livesync
|
||||
title: Self-hosted LiveSync
|
||||
created: 2026-02-05T09:58:59.620-07:00
|
||||
modified: 2026-02-05T12:21:13.920-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- obsidian
|
||||
- sync
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
Self-hosted LiveSync is a community plugin for [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] that enables real-time synchronization across devices using CouchDB or object storage.
|
||||
|
||||
## Features
|
||||
|
||||
- **Real-time sync** — Changes sync immediately
|
||||
- **Conflict resolution** — Automatic merging of simple conflicts
|
||||
- **End-to-end encryption** — Data encrypted before leaving device
|
||||
- **Self-hosted** — Your data on your server
|
||||
- **Multi-platform** — Works on all Obsidian platforms (desktop, mobile)
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Device A (Obsidian) ←→ CouchDB Server ←→ Device B (Obsidian)
|
||||
```
|
||||
|
||||
All devices sync to a central CouchDB instance. Changes propagate in real-time.
|
||||
|
||||
## Server Setup (CouchDB)
|
||||
|
||||
### Docker (Recommended)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: "3"
|
||||
services:
|
||||
couchdb:
|
||||
image: couchdb:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "5984:5984"
|
||||
environment:
|
||||
- COUCHDB_USER=admin
|
||||
- COUCHDB_PASSWORD=your-secure-password
|
||||
volumes:
|
||||
- ./couchdb-data:/opt/couchdb/data
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Configure CouchDB
|
||||
|
||||
Access Fauxton UI at `http://server:5984/_utils`
|
||||
|
||||
1. Create a database for your vault (e.g., `obsidian-vault`)
|
||||
2. Configure CORS if accessing from different domains
|
||||
|
||||
### CORS Setup
|
||||
|
||||
In Fauxton → Configuration → CORS:
|
||||
- Enable CORS
|
||||
- Set origins to `app://obsidian.md` and your domain
|
||||
|
||||
Or via curl:
|
||||
```bash
|
||||
curl -X PUT http://admin:password@localhost:5984/_node/_local/_config/httpd/enable_cors -d '"true"'
|
||||
curl -X PUT http://admin:password@localhost:5984/_node/_local/_config/cors/origins -d '"app://obsidian.md"'
|
||||
curl -X PUT http://admin:password@localhost:5984/_node/_local/_config/cors/credentials -d '"true"'
|
||||
curl -X PUT http://admin:password@localhost:5984/_node/_local/_config/cors/methods -d '"GET, PUT, POST, HEAD, DELETE"'
|
||||
curl -X PUT http://admin:password@localhost:5984/_node/_local/_config/cors/headers -d '"accept, authorization, content-type, origin, referer"'
|
||||
```
|
||||
|
||||
## Plugin Setup
|
||||
|
||||
1. Install **Self-hosted LiveSync** from Obsidian Community Plugins
|
||||
2. Open plugin settings
|
||||
3. Configure connection:
|
||||
- URI: `https://couchdb.example.com`
|
||||
- Username: your CouchDB user
|
||||
- Password: your CouchDB password
|
||||
- Database: `obsidian-vault`
|
||||
4. Set up encryption passphrase (all devices must use same passphrase)
|
||||
5. Test connection
|
||||
6. Enable sync
|
||||
|
||||
## Sync Modes
|
||||
|
||||
| Mode | Description |
|
||||
|------|-------------|
|
||||
| LiveSync | Real-time sync (uses more bandwidth) |
|
||||
| Periodic | Sync at intervals |
|
||||
| On file save | Sync when files change |
|
||||
|
||||
## Customization Sync
|
||||
|
||||
Sync settings, themes, plugins across devices:
|
||||
|
||||
Settings → Customization Sync → Enable
|
||||
|
||||
Select what to sync:
|
||||
- Settings files
|
||||
- Snippets
|
||||
- Themes
|
||||
- Plugins (careful with this)
|
||||
|
||||
## Encryption
|
||||
|
||||
Always enable end-to-end encryption:
|
||||
|
||||
1. Settings → Encryption → Enable
|
||||
2. Set passphrase (same on all devices)
|
||||
3. All data is encrypted before upload
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Sync not working
|
||||
|
||||
```bash
|
||||
# Check CouchDB is running
|
||||
curl http://localhost:5984
|
||||
|
||||
# Check database exists
|
||||
curl http://admin:password@localhost:5984/obsidian-vault
|
||||
```
|
||||
|
||||
### Conflicts
|
||||
|
||||
Plugin shows conflict indicator. Open note to resolve:
|
||||
- View both versions
|
||||
- Choose or merge manually
|
||||
- Conflicts auto-resolve if possible
|
||||
|
||||
### Rebuild database
|
||||
|
||||
If sync gets corrupted:
|
||||
1. Disable sync on all devices
|
||||
2. Delete database in CouchDB
|
||||
3. Re-create database
|
||||
4. Rebuild from primary device
|
||||
5. Re-enable on other devices
|
||||
|
||||
## Alternatives to CouchDB
|
||||
|
||||
LiveSync also supports:
|
||||
- MinIO (S3-compatible)
|
||||
- Cloudflare R2
|
||||
- AWS S3
|
||||
- WebRTC (peer-to-peer, experimental)
|
||||
|
||||
## Resources
|
||||
|
||||
- GitHub: https://github.com/vrtmrz/obsidian-livesync
|
||||
- Docs: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/
|
||||
@@ -1,13 +1,31 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Setup.md
|
||||
permalink: /sh/garden/setup
|
||||
title: Digital Garden Setup
|
||||
created: 2026-01-29T14:04:18.669-07:00
|
||||
modified: 2025-07-02T15:44:31.210-06:00
|
||||
modified: 2026-02-05T12:21:19.644-07:00
|
||||
tags:
|
||||
- self_hosting
|
||||
- digital_gardening
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
This Digital Garden is written using [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]], converted to a static site using [[Quartz]], and hosted using [[Caddy]]. To edit on multiple devices I use [[Selfhosted Live Sync]]
|
||||
This Digital Garden is built with a self-hosted stack:
|
||||
|
||||
| Layer | Tool | Purpose |
|
||||
|-------|------|---------|
|
||||
| Editor | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] | Write and organize notes |
|
||||
| Sync | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Selfhosted Live Sync]] | Real-time multi-device sync |
|
||||
| Generator | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Quartz]] | Convert Markdown to static site |
|
||||
| Server | [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]] | Serve with automatic HTTPS |
|
||||
|
||||
## Why Self-Hosted?
|
||||
|
||||
- **Privacy** — Notes stay on my infrastructure
|
||||
- **Control** — No vendor lock-in
|
||||
- **Learning** — Understanding the full stack
|
||||
- **Cost** — Cheap VPS vs subscription services
|
||||
|
||||
## See Also
|
||||
|
||||
- [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/00 - Start Here]] — Full setup guide with ordering
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.12 SERVICES/GoToSocial.md
|
||||
permalink: /sh/services/gotosocial
|
||||
title: GoToSocial
|
||||
created: 2026-01-29T14:04:18.591-07:00
|
||||
modified: 2026-01-21T22:26:52.945-07:00
|
||||
modified: 2026-02-05T12:21:24.501-07:00
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
---
|
||||
publish: true
|
||||
permalink: /20-29 HOBBYS/22 SELF HOSTING/22.12 SERVICES/Syncthing.md
|
||||
permalink: /sh/services/syncthing
|
||||
title: Syncthing
|
||||
created: 2026-01-29T14:04:18.802-07:00
|
||||
modified: 2026-01-20T13:36:36.219-07:00
|
||||
modified: 2026-02-05T12:21:24.504-07:00
|
||||
cssclasses: ""
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user