From 78666e520d3e15d85b18a3467f870af120d5b9ff Mon Sep 17 00:00:00 2001
From: Dante Catalfamo
Date: Thu, 18 Jun 2020 00:36:15 -0400
Subject: Write more of the blog setup post

---
 content/posts/how-this-blog-works/index.org | 60 +++++++++++++++++++++++++++--
 1 file changed, 57 insertions(+), 3 deletions(-)

(limited to 'content')

diff --git a/content/posts/how-this-blog-works/index.org b/content/posts/how-this-blog-works/index.org
index 5b83c9c..fa1acb2 100644
--- a/content/posts/how-this-blog-works/index.org
+++ b/content/posts/how-this-blog-works/index.org
@@ -57,6 +57,12 @@ through how I run by blog.
   it's pretty easy to figure out.
 
 * Prerequisites
+
+  This can be hosted on a very cheap VPS since it only has to serve
+  static pages. For OpenBSD hosting I would recommend either [[https://www.vultr.com/][Vultr]] or
+  [[https://openbsd.amsterdam/][OpenBSD Amsterdam]].
+
+** Server
   The only thing that's required on the host server is =git=, although
   you could even get away without that if you chose to host your git
   repository elsewhere, like on github.
@@ -65,9 +71,22 @@ through how I run by blog.
   pkg_add git
   #+END_SRC
 
-  On the client you'll need both =git= and =rsync=. Both might already
-  be installed depending on the system you're on. If not, check your
-  package manager for details on how to install them.
+** Local machine
+  On the local machine you'll need both =git= and =rsync=. Both might
+  already be installed depending on the system you're on. If not,
+  check your package manager for details on how to install them. In
+  the case of Ubuntu or Debian it would be
+
+  #+BEGIN_SRC shell
+  sudo apt install git rsync
+  #+END_SRC
+
+  or for Fedora
+
+  #+BEGIN_SRC shell
+  sudo dnf install git rsync
+  #+END_SRC
+
 
 * Version Control
 
@@ -118,7 +137,42 @@ through how I run by blog.
   Since this blog is going to be hosted on OpenBSD, we don't need to
   install a web server, as it already comes with one built in.
 
+  Setting up =httpd= couldn't be easier, the configuration syntax is
+  very straight forward. If you would like to see a full breakdown of
+  the options available, check out the man page with =man
+  httpd.conf=. The example configuration in =/etc/examples/httpd.conf=
+  is also a good starting point.
+
+  In this case the simplest configuration would be as follows
+
+  # js chosen for prism.js syntax highlighting
+  #+BEGIN_SRC js
+  server "blog.lambda.cx" {
+      listen on * port 80
+      root "/htdocs/blog.lambda.cx"
+  }
+  #+END_SRC
+
+  Despite how it looks, the =htdocs= folder doesn't reside in the
+  system root (=/=) directory. It actually lives in =/var/www/htocs=,
+  and only appears that way because =httpd= gets automatically
+  =chroot='ed in =/var/www/= for security reasons.
+
+  For more information about how to set up SSL with Let's Encrypt,
+  check out [[{{< ref "posts/letsencrypt-on-openbsd" >}}][this post]].
+
 * Deployment
 
   The system used to deploy this blog is incredibly simple, involving
   only =rsync=, =hugo=, and a small shell script.
+
+** Server
+  First you have to allow the =blog= user to write to the website
+  root. We'll do this by making it the owner of
+  =/var/www/htdocs/blog.lambda.cx=.
+
+  #+BEGIN_SRC shell
+  chown -R blog /var/www/htdocs/blog.lambda.cx
+  #+END_SRC
+
+** Local machine
-- 
cgit v1.2.3