<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Terraform on East of the Sun, West of the Moon</title>
    <link>https://is-here.com/tags/terraform/</link>
    <description>Recent content in Terraform on East of the Sun, West of the Moon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>Erwin Harte</copyright>
    <lastBuildDate>Wed, 31 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://is-here.com/tags/terraform/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Mastodon server</title>
      <link>https://is-here.com/project/mastodon/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      
      <category>AWS</category><category>Mastodon</category><category>Terraform</category><guid>https://is-here.com/project/mastodon/</guid>
      <description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Status
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Active since December 2022.&lt;/p&gt;
&lt;p&gt;
Moved from AWS to Hetzner in November 2025.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
What
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;My personal &lt;a href=&#34;https://joinmastodon.org/&#34;&gt;Mastodon&lt;/a&gt; server. The accounts on there are all &lt;em&gt;me&lt;/em&gt;, at this time.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Where
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://strangeweb.page/&#34;&gt;https://strangeweb.page/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
I wanted to keep this relatively separate from other projects, so I registered a &lt;code class=&#34;verbatim&#34;&gt;.page&lt;/code&gt; domain.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
How
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When I migrated to Hetzner, I simplified the setup a bit:&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;A single VM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
More than enough CPU, RAM, storage, and of course an IPv4 and an IPv6 address.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Access via &lt;code class=&#34;verbatim&#34;&gt;ssh&lt;/code&gt; locked down&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Only my home IP address can get in. Easily updated when that changes (which is rare).&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The other ports available&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Port 80 (&lt;code class=&#34;verbatim&#34;&gt;http&lt;/code&gt;, in practice really only for LetsEncrypt, but also the classic &lt;code class=&#34;verbatim&#34;&gt;http&lt;/code&gt; to &lt;code class=&#34;verbatim&#34;&gt;https&lt;/code&gt; redirect), and of course 443 (&lt;code class=&#34;verbatim&#34;&gt;https&lt;/code&gt;) for the main attraction.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Still using the S3 bucket&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
I plan to migrate that to different object storage in the near future.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Terraform code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
It creates the VM, updates the DNS (A and AAAA records which now live at &lt;a href=&#34;https://desec.io/&#34;&gt;deSEC.io&lt;/a&gt;), as well as reverse DNS managed by Hetzner, then throws &lt;code class=&#34;verbatim&#34;&gt;cloud-init&lt;/code&gt; at it.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The &lt;code class=&#34;verbatim&#34;&gt;cloud-init&lt;/code&gt; setup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
This takes care of basic conveniences (things like &lt;code class=&#34;verbatim&#34;&gt;emacs&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;jq&lt;/code&gt;, &lt;code class=&#34;verbatim&#34;&gt;rsync&lt;/code&gt;, and others) but also installs dependencies for Mastodon and prepare it most of the way (skipping the interactive configuration of Mastodon itself).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Code and related things
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Mastodon &lt;a href=&#34;https://docs.joinmastodon.org/user/run-your-own/&#34;&gt;instructions&lt;/a&gt; for setting up your own server&lt;/p&gt;
&lt;p&gt;
The &lt;a href=&#34;https://codeberg.org/jochie/strangeweb.page/&#34;&gt;Infrastructure as Code&lt;/a&gt; at &lt;a href=&#34;https://codeberg.org/.&#34;&gt;https://codeberg.org/.&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Previously
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The setup in AWS (from 2022-2025) was as follows:&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Basic Virtual Private Cloud (VPC)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
Pretty standard setup. A subnet for public facing things (which is the only things in here right now), and one for resources that don&amp;#39;t connect out to the internet. Right now there aren&amp;#39;t any of the latter, but it is good to be prepared&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;A bastion server&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
A locked down instance that is intended to be the only way to get into the VPC with &lt;code class=&#34;verbatim&#34;&gt;ssh&lt;/code&gt;, with an IP address that is separate from the actual service.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The actual Mastodon server&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;An S3 bucket&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
This is where Mastodon stores media associated with posts (in the timeline of my accounts, or my own), with a CloudFront shield in front of it&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Terraform code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
This managed all of the above.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;For Mastodon upgrades&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
I created &lt;a href=&#34;https://codeberg.org/jochie/misc/src/branch/master/AWS/upscale-downscale.sh&#34;&gt;a script&lt;/a&gt; to temporarily bump up the instance size, because it was unhappy for some of those steps but perfectly content running in a smaller instance during normal operations.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Moving to Europe (part 2)</title>
      <link>https://is-here.com/post/2025/07/moving-to-europe-part-2/</link>
      <pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate>
      
      <category>Terraform</category><category>Self-hosting</category><category>LetsEncrypt</category><category>Hetzner</category><category>Scaleway</category><comments>https://strangeweb.page/@jochie/115794020313176152</comments><guid>https://is-here.com/post/2025/07/moving-to-europe-part-2/</guid>
      <description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
The saga continues
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;After I moved my (three) domains, most of the DNS, and my static websites to Europe I got side-tracked. An interaction with a former colleague nudged me to pick that back up.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Services
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;When I last wrote about it I thought I would land on UpCloud or Scaleway for a virtual server (or two), but now I&amp;#39;m actually working with a virtual server at Hetzner. They do things a little bit differently, so I&amp;#39;m still getting used to that. Both have &lt;em&gt;projects&lt;/em&gt;, which feels like the mental model equivalent of AWS VPCs? Hetzner has performance/usage graphs integrated into their web UI, whereas Scaleway has a hosted Grafana service (for which you need to create a dedicated user). Hetzner&amp;#39;s virtual servers seem more generous with their root volumes, but then it may not be as easy to change that out later, so choose wisely?&lt;/p&gt;
&lt;p&gt;
That said, for something that mostly needs to be compute, storage, and a web presence, Hetzner&amp;#39;s offerings seem quite nice.&lt;/p&gt;
&lt;p&gt;
Currently I&amp;#39;m putting together a &amp;#34;services&amp;#34; instance that will host things like webmail (Roundcube), bookmarks (Readeck), passwords (Vaultwarden, or something along those lines), etc. This would be the same Services project hinted at in the &lt;a href=&#34;https://is-here.com/project/read-later/&#34;&gt;Read Later&lt;/a&gt; project page. The goal here will be to make it relatively painless to blow it away and spin it up elsewhere, so a layer of Terraform, some cloud-init fun, and automatically generated and managed LetsEncrypt certificates are going to be part of that.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Object Storage
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;For this, Scaleway still seems to be the most reasonable price, in particular for buckets with not a lot of content. Hetzner &lt;em&gt;starts&lt;/em&gt; at 4.99 Euro for even an empty bucket (which then gets you 1TB of storage and traffic), by comparison. That&amp;#39;s a non-starter for a bucket where I expect to have just a few dozen GB of data. For completeness, UpCloud&amp;#39;s buckets also start at 5 Euros which then includes 250GB of storage, and states there are no data transfer fees, period?&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Open questions
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;For moving my mail server I still need to do some &lt;em&gt;research&lt;/em&gt; to find out which of these 3 (or some alternative I&amp;#39;ve overlooked or discarded unfairly) is the better pick in terms of IP reputation, or spam abuse complaint handling. Anyone know?&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Previously
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://is-here.com/post/2025/04/moving-to-europe/&#34;&gt;Moving to Europe&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>WARN Act Bot</title>
      <link>https://is-here.com/project/warn-act/</link>
      <pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate>
      
      <category>AWS</category><category>Terraform</category><category>Mastodon</category><comments>https://strangeweb.page/@@jochie/114849277939604707</comments><guid>https://is-here.com/project/warn-act/</guid>
      <description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Status
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Active since around April 2023.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
What
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;As I understand it, there are WARN Acts in most states (maybe all) that require employers of companies over a certain size to give a heads-up to the state when they plan to let go for one reason or another. This could be for permanent closure of a place of business, redundancies for whatever reason, and some other reasons I can&amp;#39;t think of right now. Many states make the notices available in some form on the web. Sadly they don&amp;#39;t seem to have considered standardizing that, so automation based on the content found online is a challenge.&lt;/p&gt;
&lt;p&gt;
In my case, I decided to automate checking the notices for the &lt;a href=&#34;https://edd.ca.gov/en/jobs_and_training/Layoff_Services_WARN&#34;&gt;California EDD&lt;/a&gt;, and post the incremental changes (summarized where possible) on the Fediverse.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Where
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://sfba.social/@warn_act_ca&#34;&gt;https://sfba.social/@warn_act_ca&lt;/a&gt; (originally at &lt;a href=&#34;https://botsin.space/@warn_act_ca,&#34;&gt;https://botsin.space/@warn_act_ca,&lt;/a&gt; but that server shut down at the end of 2024).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
How
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;The setup (in AWS) is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An S3 bucket to maintain state from one run to another&lt;/li&gt;
&lt;li&gt;A few Systems Manager Parameter Store entries for the knowledge of where the bot is and the token to post to its timeline&lt;/li&gt;
&lt;li&gt;A Lambda that is triggered from EventBridge on a regular basis that checks the California website&lt;/li&gt;
&lt;li&gt;An SQS queue through which to manage the posts to the bot account, with a Lambda consumer that does that work&lt;/li&gt;
&lt;li&gt;Terraform code to create these resources and some tangentially related ones&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Cost
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;$0.00!&lt;/p&gt;
&lt;p&gt;
Actually, the dedicated AWS account in which this runs had a bill for (literally) a few pennies one time, apparently related to AWS Cost Explorer of all things, but otherwise the monthly bills have been $0.00 since I started.&lt;/p&gt;
&lt;p&gt;
The reason is that all of the service usage (S3, Lambda, SNS, SQS, CloudWatch, and data transfer) are all flying well under the limits of the permanent AWS free tiers. The biggest risk is probably S3 where the it&amp;#39;s running up a bill of about $0.005 per month, so each month that is rounded down to $0.00 but when you request an annual total it lists that as ~$0.05. 😁&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-6&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-6&#34;&gt;
Code
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-6&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://codeberg.org/jochie/WARN&#34;&gt;https://codeberg.org/jochie/WARN&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Moving to Europe</title>
      <link>https://is-here.com/post/2025/04/moving-to-europe/</link>
      <pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate>
      
      <category>Hugo</category><category>Mastodon</category><category>Terraform</category><comments>https://strangeweb.page/@jochie/114333655533283802</comments><guid>https://is-here.com/post/2025/04/moving-to-europe/</guid>
      <description>
&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-1&#34;&gt;
Shifting things around
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;For &lt;em&gt;reasons&lt;/em&gt;, I am slowly but surely moving most of my online resources to European providers. This has meant a journey of discovery, finding suitable ones for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Domain registration&lt;/li&gt;
&lt;li&gt;DNS hosting&lt;/li&gt;
&lt;li&gt;Some place for a few static (placeholder) websites&lt;/li&gt;
&lt;li&gt;Virtual servers of some kind&lt;/li&gt;
&lt;li&gt;Object storage or something similar&lt;/li&gt;
&lt;li&gt;Git repository hosting&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-2&#34;&gt;
Resources that helped
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;Most of my information has come from &lt;a href=&#34;https://european-alternatives.eu/&#34;&gt;european-alternatives.eu&lt;/a&gt;. Some test accounts were needed here and there because it isn&amp;#39;t necessarily obvious how well they may cooperate with automation tools like Terraform and how much click-ops will be required, and how well does their web UI work in that case.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-3&#34;&gt;
Obstacles I encountered
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;There were some hiccups with getting the European companies to play nice with my US credit cards.&lt;/p&gt;
&lt;p&gt;
One disappointment was because the company (Infomaniak 🇨🇭) seems to be incapable of sending SMS to US phone numbers. Pity, because they looked promising otherwise.&lt;/p&gt;
&lt;p&gt;
Another &lt;em&gt;Nope&lt;/em&gt; was finding out that OVH 🇫🇷 pushes you to &lt;a href=&#34;https://us.ovhcloud.com/about/&#34;&gt;OVH US&lt;/a&gt; if you&amp;#39;re in the US or Canada, a &lt;em&gt;wholly owned subsidiary of OVH Group&lt;/em&gt;, defeating the purpose of going with European companies.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-4&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-4&#34;&gt;
Choices/solutions
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-4&#34; class=&#34;outline-text-2&#34;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;My Pick&lt;/th&gt;
&lt;th&gt;Based in&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Domain registration&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://www.openprovider.com/&#34;&gt;https://www.openprovider.com/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;🇳🇱&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://desec.io/&#34;&gt;https://desec.io/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;🇩🇪&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static websites&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://www.statichost.eu/&#34;&gt;https://www.statichost.eu/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;🇸🇪&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git repository hosting&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://codeberg.org/&#34;&gt;https://codeberg.org/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;🇩🇪&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
Of these, &lt;a href=&#34;https://www.statichost.eu/&#34;&gt;statichost.eu&lt;/a&gt; was a nice find, because it will let you point to a git repository (public or private), and run with it, with support for either fully static content, or one of several static site generators, and even pick a specific version to avoid surprises.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;outline-container-headline-5&#34; class=&#34;outline-2&#34;&gt;
&lt;h2 id=&#34;headline-5&#34;&gt;
Still to do
&lt;/h2&gt;
&lt;div id=&#34;outline-text-headline-5&#34; class=&#34;outline-text-2&#34;&gt;
&lt;p&gt;That leaves virtual servers, for my self-hosted mail-server and the one-person-Mastodon instance. Most likely I&amp;#39;ll pick one of UpCloud (🇫🇮) or Scaleway (🇫🇷), after sitting down again to do a side-by-side comparison.&lt;/p&gt;
&lt;p&gt;
For object storage Scaleway seems to have a reasonably priced solution, but that also needs another look.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
  </channel>
</rss>
