summaryrefslogtreecommitdiffstats
path: root/content/posts/deploying-the-garden/index.md
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-01-05 21:15:44 +0200
committerJan Tuomi <jan@jantuomi.fi>2026-01-05 21:39:06 +0200
commit09e410b21358e1475261499ccf6a75fac2da12d4 (patch)
tree26bde85dbe6be7502d1eca29263e404e92633f94 /content/posts/deploying-the-garden/index.md
parentb2b9388f789c58a5b6ee1cbf9edfe88013d3fc63 (diff)
Refactor and colocate assets
Diffstat (limited to 'content/posts/deploying-the-garden/index.md')
-rw-r--r--content/posts/deploying-the-garden/index.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/content/posts/deploying-the-garden/index.md b/content/posts/deploying-the-garden/index.md
new file mode 100644
index 0000000..cdb5caf
--- /dev/null
+++ b/content/posts/deploying-the-garden/index.md
@@ -0,0 +1,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.
+
+{{ fig(src="repo_langs.png", alt="A GitHub repository language breakdown showing that most of the code is written in Scheme.") }}
+
+## 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_.