<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OCI on RANDX</title>
    <link>https://randx.tokyo/tags/oci/</link>
    <description>Recent content in OCI on RANDX</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Sun, 05 Apr 2026 12:00:00 +0900</lastBuildDate>
    <atom:link href="https://randx.tokyo/tags/oci/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>I Built My Personal 200GB Cloud Storage for Free</title>
      <link>https://randx.tokyo/posts/i-built-my-personal-200gb-cloud-storage-for-free/</link>
      <pubDate>Sun, 05 Apr 2026 12:00:00 +0900</pubDate>
      <guid>https://randx.tokyo/posts/i-built-my-personal-200gb-cloud-storage-for-free/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://randx.tokyo/images/built-my-personal-200GB-cloud-storage-for-free-en.jpg&#34; alt=&#34;built-my-personal-200GB-cloud-storage-for-free&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Deploy a personal file manager on Oracle&amp;rsquo;s always-free cloud, fronted by Cloudflare for SSL termination and origin protection for free.&lt;/p&gt;&#xA;&lt;p&gt;Traffic flow: &lt;strong&gt;browser → Cloudflare (HTTPS :443) → OCI VM (HTTP :80) → Nginx → FileBrowser (:8080)&lt;/strong&gt;. The origin IP is never exposed publicly; Cloudflare handles all TLS.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;&#xA;  Prerequisites&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#prerequisites&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Requirement&lt;/th&gt;&#xA;          &lt;th&gt;Notes&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OCI account&lt;/td&gt;&#xA;          &lt;td&gt;Free tier, identity-verified, payment method on file&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Cloudflare account&lt;/td&gt;&#xA;          &lt;td&gt;Free plan at cloudflare.com&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Domain&lt;/td&gt;&#xA;          &lt;td&gt;Active in Cloudflare (nameservers pointed, status &amp;ldquo;Active&amp;rdquo;)&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SSH keypair&lt;/td&gt;&#xA;          &lt;td&gt;Ready locally before you create the VM&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;tech-stack&#34;&gt;&#xA;  Tech stack&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#tech-stack&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Layer&lt;/th&gt;&#xA;          &lt;th&gt;Component&lt;/th&gt;&#xA;          &lt;th&gt;Role&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Compute&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;VM.Standard.E2.1.Micro&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Always-free x86-64 VM, 1 OCPU / 1 GB RAM&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OS&lt;/td&gt;&#xA;          &lt;td&gt;Ubuntu 24.04 LTS&lt;/td&gt;&#xA;          &lt;td&gt;Host operating system&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Firewall&lt;/td&gt;&#xA;          &lt;td&gt;OCI Security List + &lt;code&gt;ufw&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Two-layer ingress filtering&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Reverse proxy&lt;/td&gt;&#xA;          &lt;td&gt;Nginx&lt;/td&gt;&#xA;          &lt;td&gt;Forwards port 80 → FileBrowser, restores real IPs&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;App&lt;/td&gt;&#xA;          &lt;td&gt;FileBrowser&lt;/td&gt;&#xA;          &lt;td&gt;Web-based file manager, runs on &lt;code&gt;localhost:8080&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Edge / CDN&lt;/td&gt;&#xA;          &lt;td&gt;Cloudflare (free)&lt;/td&gt;&#xA;          &lt;td&gt;SSL termination, orange-proxy, hides origin IP&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Process manager&lt;/td&gt;&#xA;          &lt;td&gt;systemd&lt;/td&gt;&#xA;          &lt;td&gt;Keeps FileBrowser running across reboots&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;limits&#34;&gt;&#xA;  Limits&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#limits&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;VM.Standard.E2.1.Micro&lt;/strong&gt; is OCI&amp;rsquo;s x86-64 always-free shape.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
