<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohammad Alsaraf</title>
    <description>The latest articles on DEV Community by Mohammad Alsaraf (@sarrph).</description>
    <link>https://dev.to/sarrph</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3844553%2Fac09d4a6-e95b-4b1b-a898-a8d482538732.png</url>
      <title>DEV Community: Mohammad Alsaraf</title>
      <link>https://dev.to/sarrph</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sarrph"/>
    <language>en</language>
    <item>
      <title>The $0.25 Burner VPS Is the Best Thing I Didn't Know I Needed</title>
      <dc:creator>Mohammad Alsaraf</dc:creator>
      <pubDate>Mon, 06 Apr 2026 17:44:36 +0000</pubDate>
      <link>https://dev.to/sarrph/the-025-burner-vps-is-the-best-thing-i-didnt-know-i-needed-40h1</link>
      <guid>https://dev.to/sarrph/the-025-burner-vps-is-the-best-thing-i-didnt-know-i-needed-40h1</guid>
      <description>&lt;p&gt;Here's a scenario I've been in too many times: I need to test something in a clean Linux environment. Not my laptop — a real server. And I need it for maybe two hours.&lt;br&gt;
My options used to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spin up a DigitalOcean droplet, forget to delete it, notice three weeks later that I've spent $18&lt;/li&gt;
&lt;li&gt;Use a Docker container locally, except the whole point is testing how it behaves with real inbound traffic&lt;/li&gt;
&lt;li&gt;Ask a friend if I can SSH into something (awkward)&lt;/li&gt;
&lt;li&gt;Use some free tier that takes 15 minutes to provision and has weird restrictions&lt;/li&gt;
&lt;li&gt;NATBox has a thing called a Burner VPS. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's $0.25. It lasts 24 hours. After that it's gone — automatically wiped, no lingering data, no grace period, nothing.&lt;br&gt;
I've used it four times now. Twice for testing deployment scripts against a fresh Debian install. Once to spin up a quick reverse proxy for something I was debugging. Once just because I wanted to see what Alpine Linux looks like when you actually have to configure it from scratch.&lt;br&gt;
The workflow is: order it, get SSH credentials in your inbox, do your thing, walk away. You don't have to delete it. You don't have to remember it exists. It costs less than a candy bar.&lt;br&gt;
If you've ever thought "I just need a throwaway server for a few hours" — this is exactly that. The fact that it auto-deletes is actually a feature, not a limitation. No cleanup. No accidentally running up charges. No orphaned droplets sitting around costing you $6/mo because you forgot.&lt;br&gt;
natbox.io, Burner plan, $0.25. I don't know why more hosting providers don't offer this.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>learning</category>
      <category>linux</category>
    </item>
    <item>
      <title>I Spent $0.99 on a VPS and Honestly? It Works.</title>
      <dc:creator>Mohammad Alsaraf</dc:creator>
      <pubDate>Mon, 06 Apr 2026 17:31:20 +0000</pubDate>
      <link>https://dev.to/sarrph/i-spent-099-on-a-vps-and-honestly-it-works-3cp3</link>
      <guid>https://dev.to/sarrph/i-spent-099-on-a-vps-and-honestly-it-works-3cp3</guid>
      <description>&lt;p&gt;I've been running side projects on the internet for about six years now. In that time I've paid for shared hosting, a few droplets, a couple of hetzner boxes, and one time I rented a dedicated server for something that absolutely did not need a dedicated server. You know how it goes.&lt;br&gt;
A few months ago I needed something small — just a place to run a lightweight Python script that checks a price API every 15 minutes and pings me when something changes. Nothing fancy. The script uses maybe 20MB of RAM when it's running. I did not need a $6/mo DigitalOcean droplet for this. I especially did not need the "recommended" $12/mo plan with 2GB RAM and backups enabled.&lt;br&gt;
I found NATBox while scrolling through some forum thread. Someone mentioned they'd been using it for bots and small automation jobs. The pricing page said $0.99/mo for 256MB RAM, 3GB SSD, and — this part caught my eye — 20 dedicated ports.&lt;br&gt;
I thought: okay, this is probably some sketchy thing running on someone's gaming PC. Let me try it anyway.&lt;br&gt;
&lt;strong&gt;What actually happens when you order&lt;/strong&gt;&lt;br&gt;
The ordering process is manual, which sounds alarming but in practice is fine. You fill out a form, they send you a PayPal or crypto payment link within an hour or two, and once you pay, they provision your container and email you an SSH command. No control panel. No wizard. Just:&lt;br&gt;
&lt;em&gt;ssh &lt;a href="mailto:root@147.135.215.238"&gt;root@147.135.215.238&lt;/a&gt; -p [your_port]&lt;/em&gt;&lt;br&gt;
And that's it. You're in. Full root. Real Linux.&lt;br&gt;
&lt;strong&gt;The ports thing&lt;/strong&gt;&lt;br&gt;
This is actually the clever part. NATBox runs LXC containers behind a shared IP, so instead of giving you a dedicated public IP, they give you 20 dedicated ports on their host. Port 1 is your SSH. Ports 2-20 forward into your container.&lt;br&gt;
For my use case — a script that doesn't need any inbound connections — this doesn't matter at all. But if you're running a web server, a bot, a game server, a proxy, whatever: you just bind to the port inside your container and it's reachable from the outside world at that port on the host IP. It works.&lt;br&gt;
&lt;strong&gt;One month in&lt;/strong&gt;&lt;br&gt;
The script runs. It has not gone down. I paid $0.99. I have genuinely nothing to complain about.&lt;br&gt;
Would I run a production app with real users here? Probably not — not because of reliability concerns, but because you'd want a dedicated IP, more RAM headroom, and the ability to scale. But for bots, scrapers, learning projects, dev environments, or just having a Linux shell in the cloud? NATBox is legitimately good.&lt;br&gt;
The fact that it exists at $0.99 is kind of wild. I keep expecting to find the catch. So far there isn't one.&lt;br&gt;
Find it at: natbox.io — Nano plan, $0.99/mo&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>startup</category>
    </item>
    <item>
      <title>Why I Built a $0.99 VPS and What I Learned</title>
      <dc:creator>Mohammad Alsaraf</dc:creator>
      <pubDate>Thu, 26 Mar 2026 10:42:23 +0000</pubDate>
      <link>https://dev.to/sarrph/why-i-built-a-099-vps-and-what-i-learned-2a77</link>
      <guid>https://dev.to/sarrph/why-i-built-a-099-vps-and-what-i-learned-2a77</guid>
      <description>&lt;p&gt;I got tired of paying $5-10/mo for a VPS I only needed to run a bot or test a script. So I built NATBox — NAT-based Linux containers starting at $0.99/mo. Here's what I actually learned building it.&lt;br&gt;
&lt;strong&gt;NAT vs dedicated IP — most people don't need a dedicated IP&lt;/strong&gt;&lt;br&gt;
The whole idea behind NAT VPS is simple: instead of giving each container its own public IP (expensive), you share one host IP and assign each container a dedicated range of ports. 20 ports per container, forwarded via iptables from the host. Port 1 of your range is SSH. Ports 2-20 are yours — run web servers, bots, proxies, whatever.&lt;br&gt;
For most lightweight workloads, this is completely fine. You only need a dedicated IP if you're running something that requires it — like a mail server. For everything else, 20 ports is plenty.&lt;br&gt;
&lt;strong&gt;The provisioning stack is a bash script&lt;/strong&gt;&lt;br&gt;
No Laravel. No Node. No fancy dashboard. The entire backend — create, suspend, renew, delete, expiry checks, email notifications, iptables rules — is a single bash script managing LXC containers and a pipe-delimited flat file as a database.&lt;br&gt;
It's not pretty, but it's reliable, fast, and I understand every line of it. When something breaks at 2am, I can fix it in under 5 minutes.&lt;br&gt;
&lt;strong&gt;The weirdest bugs I hit&lt;/strong&gt;&lt;br&gt;
Building this taught me more about Linux internals than anything else I've done. A few memorable ones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pam_loginuid.so
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;was silently killing SSH sessions inside LXC because /&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;proc/self/loginuid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;isn't writable in containers. The fix: comment it out in&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;/&lt;span class="n"&gt;etc&lt;/span&gt;/&lt;span class="n"&gt;pam&lt;/span&gt;.&lt;span class="n"&gt;d&lt;/span&gt;/&lt;span class="n"&gt;sshd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;before the container ever boots.&lt;br&gt;
dnf on Fedora was getting OOM-killed inside 256MB containers just resolving package metadata. Fix: pre-create a 512MB swapfile on the host into the container's rootfs before starting it.&lt;br&gt;
OpenSSH 9.2 on Debian 12 calls&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;linux_audit_write_entry&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;during session open, which requires&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CAP_AUDIT_WRITE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;. I dropped that cap in an earlier version and SSH started dying immediately after auth. One of those bugs that takes an hour to find and 3 seconds to fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What $0.99/mo actually gets you&lt;/strong&gt;&lt;br&gt;
256MB RAM, 3GB SSD, 20 dedicated ports, full root access, your choice of 6 distros. It's a real Linux container, not a toy. I run bots on nano plans. People use them for proxies, learning environments, lightweight APIs, scrapers, testing.&lt;br&gt;
If you want to try it: natbox.io&lt;/p&gt;

</description>
      <category>linux</category>
      <category>networking</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
