🌐 Expanding to Multi-Cloud: Provisioning Oracle Linux 10 on Google Cloud's $0 Always Free Tier & Joining K3s

Why settle for one free cloud provider when you can build an automated, resilient multi-cloud Kubernetes cluster across Oracle Cloud (OCI) and Google Cloud Platform (GCP) — completely for $0/month? In this post, I walk through the end-to-end process of: Provisioning an Oracle Linux Server 10.1 instance on Google Cloud’s Always Free Tier (gce10). Applying kernel and daemon memory hardening to reclaim ~250 MB of RAM. Joining gce10 as a worker node into our central K3s Kubernetes cluster across a secure WireGuard mesh. Running a head-to-head performance benchmark comparing Apple Silicon M1, OCI Ampere ARM (arm10), GCP Intel Xeon (gce10), and OCI AMD EPYC (amd10/amd11). 🏛️ 1. Multi-Cloud K3s Kubernetes Fleet Architecture Our fleet previously lived entirely in OCI Tokyo. Adding gce10 in GCP Iowa (us-central1) creates a geo-distributed cross-cloud presence with a dedicated US edge outpost. ...

August 27, 2026 · 5 min · 1022 words · Thang Hoang

🛠️ Building a Production-Grade Home Cloud on Oracle's $0 Always Free Tier

What can you actually run on a $0/month Always Free cloud server? In this post, I document the end-to-end journey of turning an Oracle Cloud 1 GB AMD Micro instance (amd10) in Tokyo into a multi-service personal cloud hub — complete with Dual-Stack DNS ad-blocking, Google Single Sign-On (SSO), lossless Hi-Res music streaming, a Rust-powered REST & AI MCP API, and a Hugo static blog. 🏗️ Architecture & Network Blueprint graph TD Internet["🌐 Internet / Home Network / Mobile"] --> Caddy["🔒 Caddy (Auto Let's Encrypt SSL)"] subgraph OCI Cloud Instance (amd10 - Tokyo) Caddy -->|/| VietCal["📅 VietCalendar REST & MCP (Rust :8080)"] Caddy -->|files.*| Oauth["🔑 OAuth2-Proxy (Google SSO :4180)"] Oauth --> FileBrowser["📁 FileBrowser Cloud Drive (:8082)"] Caddy -->|music.*| Navidrome["🎵 Navidrome Lossless FLAC (:4533)"] Caddy -->|blog.*| Hugo["📝 Hugo Static Site (:443)"] Caddy -->|adguard.*| AdGuardWeb["🛡️ AdGuard Dashboard (:3000)"] Router["🏠 Home Router (Fiber IPv4 & IPv6)"] --> AdGuardDNS["🛡️ AdGuard DNS Server (:53 & :853 DoT)"] end ⚡ 1. Reclaiming Hardware RAM (The crashkernel Discovery) On a standard 1 GB VM, Linux kdump can silently reserve up to 448 MB RAM (nearly half the server’s memory!). ...

August 21, 2026 · 3 min · 624 words · Thang Hoang

Supercharging Self-Hosted Cloud Uploads: How Cloudflare WARP Turbocharges File Ingestion

One of the most frustrating bottlenecks in self-hosting is uploading large files to overseas cloud servers. Whether you are uploading a 45 GB lossless FLAC music collection to Navidrome, backing up 4K video files to FileBrowser, or transferring gigabytes of PDF datasets to an AI vector store, standard public internet routing often degrades performance to an agonizing crawl. In this post, I will explain why international cross-border uploads stall, and how we used Cloudflare WARP and Anycast Edge Ingestion to boost our file upload throughput by 5x to 10x directly into our cloud fleet at vinhthang.dev. ...

August 24, 2026 · 4 min · 721 words · Thang Hoang & Antigravity

How to Snag the Elusive Oracle Cloud Always Free ARM64 Ampere A1 Instance

If you have ever tried to launch an ARM64 Ampere A1 Flex compute instance on Oracle Cloud Infrastructure (OCI) Always Free, you have almost certainly encountered this dreaded error message: 500-InternalError: Out of host capacity for shape VM.Standard.A1.Flex in availability domain... Oracle’s Always Free tier offers one of the most generous compute allowances in the industry—up to 4 OCPUs and 24 GB RAM on enterprise-grade Ampere Altra ARM64 processors. Because of this, capacity in popular data centers (like Tokyo, Seoul, Ashburn, Frankfurt, and Singapore) is constantly saturated. ...

August 24, 2026 · 4 min · 791 words · Thang Hoang & Antigravity