self-hosted.7 (2365B) [raw]
1 .Dd July 19, 2020 2 .Dt SELF-HOSTED 7 3 .Os 4 .Sh NAME 5 .Nm self-hosted 6 .Nd a tale of migrating to my own server 7 .Sh DESCRIPTION 8 If you look at the first post 9 .Xr ( a-new-hope 7 ) 10 on this site, you'll see that this site started as a series of static HTML 11 files that I was, by hand, uploading to Fastmail via their "files" GUI. 12 .Pp 13 Being a total nerd for automation, I was always on the lookout for an excuse to 14 migrate to my own server, where I could (over)engineer a pipeline to build my 15 static content and deploy it without ever leaving the terminal. 16 .Pp 17 That excuse presented itself in the form of needing to get a VPS to stand up my 18 hobby-project, `euchre.live`. 19 If I was going to pay for a tiny VM, it was a no-brainer to move my personal 20 site to it too. 21 .Pp 22 This turned out to be a great learning experience 23 \(em 24 getting hands on experience 25 with reverse proxies, DNS, and a variety of operating systems and webservers 26 (first hosted on Alpine Linux and migrated to OpenBSD). 27 Additionally, I could self-host git repos, which has long been a nerd-goal of mine :) 28 .Pp 29 I plan to write a lengthier post about the joys of self-hosting in the future, 30 but for now, I really just wanted to give a brief update on where I landed and 31 what the current stack is. 32 .Pp 33 I'm currently running (in no particular order): 34 .Pp 35 .Bl -bullet -compact 36 .It 37 .Sy OS : 38 OpenBSD 39 .It 40 .Sy Web server : 41 OpenBSD's 42 .Xr httpd 8 43 .Bl -dash -compact 44 .It 45 Serves the `www.` static content 46 .It 47 Also serves 48 .Lk https://git.alexkarle.com 49 .El 50 .It 51 .Sy Reverse proxy : 52 OpenBSD's 53 .Xr relayd 8 54 .Bl -dash -compact 55 .It 56 Used to send traffic between `euchre.live` (which uses a Mojolicious 57 web server as the backend) and `alexkarle.com` based on URL 58 .El 59 .It 60 .Sy `www` content : 61 .Bl -dash -compact 62 .It 63 100% static content 64 .It 65 No metrics, ads, or tracking 66 .It 67 Posts and pages written in markdown 68 .It 69 HTML generated with a pipeline of the original `Markdown.pl` into a small 70 templating Perl script that I home-rolled 71 .El 72 .It 73 .Sy Git : 74 .Bl -dash -compact 75 .It 76 Public repos served with 77 .Xr git-daemon 1 78 over the `git://` protocol 79 .It 80 Push access via the `ssh://` protocol 81 .It 82 static HTML of content generated via post-receive hook with 83 .Xr stagit 1 84 .El 85 .El 86 .Pp 87 That's all for now! 88 .Sh SEE ALSO 89 .Bl -bullet -compact 90 .It 91 .Xr blog 7 92 .It 93 .Xr a-new-hope 7 94 .It 95 .Lk https://euchre.live 96 .It 97 .Lk https://mojolicious.org Mojolicious 98 .El