BoxyBSD
This page documents my experience with BoxyBSD. BoxyBSD was a free, non-profit VPS provider that offered IPv6-only virtual machines running BSD operating systems. I used a FreeBSD VM from BoxyBSD to host my website from June 2025 to March 2026.
This page explains how I solved issues I encountered while setting up my server. Although BoxyBSD has shut down, the technical solutions remain applicable to any IPv6-only FreeBSD server.
BoxyBSD provided an IPv6-only server. To make services accessible to users on IPv4-only networks, you could use Cloudflare’s reverse proxy. Cloudflare would provide IPv4 access to your server.
I set up Caddy with a Cloudflare Origin CA certificate to encrypt the traffic between my server and Cloudflare. To do this, I generated a certificate and a private key in the Cloudflare dashboard and install them on the server.
Here is an example of how to configure Caddy to use an origin certificate:
dbohdan.com {
tls /usr/local/share/certs/cloudflare/dbohdan.com/certificate.pem /usr/local/share/certs/cloudflare/dbohdan.com/key.pem
# ...
}
The path /usr/local/share/certs/cloudflare/ is not standard; I chose it.
To access IPv4-only services like GitHub from an IPv6-only VPS, you need a so-called “IPv6 transition mechanism”. A public NAT64 service could be used by configuring its DNS64 servers in /etc/resolv.conf. DNS64 synthesizes AAAA (IPv6) records from A (IPv4) records, allowing IPv6-only clients to connect to IPv4-only servers through the NAT64 gateway.
I used the public NAT64 service from NAT64.net. To use it, edit /etc/resolv.conf to contain their nameservers:
nameserver 2a00:1098:2c::1
nameserver 2a00:1098:2b::1
nameserver 2a01:4f9:c010:3f02::1
After this change, I was able to clone repositories from GitHub.
My ISP was IPv4-only, so I couldn’t connect to an IPv6-only server directly. I used another server that has both IPv4 and IPv6 connectivity as an SSH jump host. The ProxyJump directive in my ~/.ssh/config made this seamless.
My configuration looked like this:
Host ipv6-box.example.com
ProxyJump ipv4-jumphost.example.com
When I ran the command ssh ipv6-box.example.com, OpenSSH first connected to ipv4-jumphost.example.com and from there established a connection to ipv6-box.example.com. The ProxyJump directive handled setting up TCP forwarding automatically.
I used Caddy to reverse-proxy my web services and serve static files and templates. See the Caddy page and “about” for more information about this setup, such as the template for the error pages. I found that Caddy on FreeBSD required a mime.types file; this was not specific to BoxyBSD.
CatchUp is an application written in Crystal, a programming-language compiler with a FreeBSD port. The application worked on FreeBSD without changes.
My VPS from BoxyBSD had 10 GB of ZFS storage: 2 GB of swap and an 8 GB root partition. Building a Crystal application required installing the Crystal compiler and LLVM, which consumed 2 GB of disk space. I decided to build the application on my local FreeBSD machine (a VM in Proxmox) and copy the compiled binary to the server.
I stopped hosting this site on BoxyBSD in March 2026 after I forgot to renew my VPS and seemingly lost it at the end of the grace period. I didn’t receive the intended email notification seven days before or on the day the VM expired. At first I thought this was temporary downtime. The user portal had also gone down due to hardware failure, so I couldn’t recreate the VM.
A day after I asked about my VM on Matrix, BoxyBSD founder gyptazy brought the portal back up and was able to restore my VM. However, I had already migrated to a different IPv6 VPS (reusing the Cloudflare infrastructure) and automated my configuration for Debian/Ubuntu using Pyinfra. It no longer made sense to move back.
A couple of days later, I learned that BoxyBSD was shutting down. The hardware issue combined with the state of the market and personal commitments made it untenable for gyptazy to continue.
Using BoxyBSD and hosting my site on it was fun and educational, and the service was remarkably stable. I’d like to thank gyptazy for creating and running BoxyBSD.
P.S.: My VPS had good uptime.
Output from uprecords.
# Uptime | System Boot up
----------------------------+---------------------------------------------------
1 107 days, 11:12:20 | FreeBSD 15.0-STABLE Wed Dec 3 07:39:26 2025
2 68 days, 22:00:59 | FreeBSD 14.3-RELEASE Sat Jun 21 20:09:07 2025
3 66 days, 17:32:38 | FreeBSD 14.3-RELEASE Fri Aug 29 18:11:20 2025
4 28 days, 13:53:14 | FreeBSD 14.3-RELEASE-p5 Tue Nov 4 16:30:35 2025
-> 5 0 days, 02:53:43 | FreeBSD 15.0-STABLE Mon Mar 23 11:28:44 2026
6 0 days, 01:14:09 | FreeBSD 14.3-RELEASE-p6 Wed Dec 3 06:24:22 2025
----------------------------+---------------------------------------------------
1up in 28 days, 10:59:32 | at Tue Apr 21 01:21:58 2026
no1 in 107 days, 08:18:38 | at Wed Jul 8 22:41:04 2026
up 271 days, 20:47:03 | since Sat Jun 21 20:09:07 2025
down 2 days, 21:26:17 | since Sat Jun 21 20:09:07 2025
%up 98.947 | since Sat Jun 21 20:09:07 2025