summaryrefslogtreecommitdiffstats
path: root/content/posts/deploying-the-garden.md
blob: ef3821dfb1b65997a774fc314f72b1461f418e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
title: Deploying the garden
date: 2024-03-26
extra:
  kind: note
---

Every respectable tech blog must contain two posts:

- ”This site now has RSS”
- ”This is how this site is deployed”

Other content is optional.

## Writing on the go

Content updates go like this:

1. I write Markdown in a special directory in my Obsidian Vault
2. The change is synced to my Digital Ocean server via Obsidian Sync (I run an Obsidian process on my server)
3. A file system monitor script picks it up and runs a build script
4. Built HTML files are served with Nginx

This process gives me full control over the content wherever I have access to Obsidian. Making writing as easy as possible is the principle behind this design.

[This is considered a good idea in the frog community.](https://www.todepond.com/wikiblogarden/art/never-stop-writing/on-your-phone)

Making changes to the build process itself, or the HTML template, requires a computer, however.

## Parentheses

Most of the heavy lifting is done by `pandoc`. The glue parts use an obscure and ancient language with many curved sigils. Give it a try.

![A GitHub repository language breakdown showing that most of the code is written in Scheme.](/files/repo_langs.png)

## Hosting

My small Digital Ocean server also moonlights as a container image registry. I build the scripts into an OCI image, push it on the server and run it with `docker-compose`. Don’t over-engineer when you want things _done_.