<?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: RomanZo</title>
    <description>The latest articles on DEV Community by RomanZo (@itprogresscorp).</description>
    <link>https://dev.to/itprogresscorp</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%2F3977565%2Fc8c73419-51b2-441f-893a-a08133259024.jpeg</url>
      <title>DEV Community: RomanZo</title>
      <link>https://dev.to/itprogresscorp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itprogresscorp"/>
    <language>en</language>
    <item>
      <title>How I revived a 128MB RAM NAS by building my own control panel</title>
      <dc:creator>RomanZo</dc:creator>
      <pubDate>Wed, 10 Jun 2026 11:20:47 +0000</pubDate>
      <link>https://dev.to/itprogresscorp/how-i-revived-a-128mb-ram-nas-by-building-my-own-control-panel-3keg</link>
      <guid>https://dev.to/itprogresscorp/how-i-revived-a-128mb-ram-nas-by-building-my-own-control-panel-3keg</guid>
      <description>&lt;h1&gt;
  
  
  How I revived a 128MB RAM NAS by building my own control panel
&lt;/h1&gt;

&lt;h2&gt;
  
  
  It all started with boredom and old hardware
&lt;/h2&gt;

&lt;p&gt;I had an old &lt;strong&gt;Netgear Stora MS2000&lt;/strong&gt; sitting around — a box with just 128 MB of RAM. I had installed Debian 7 and OpenMediaVault on it once. Then the disk died, I reinstalled Debian 9, but OMV turned out to be &lt;strong&gt;way too heavy&lt;/strong&gt; for this hardware.&lt;/p&gt;

&lt;p&gt;Editing Samba and NFS configs in the console every time was a pain. All I needed was two simple pages to create shares. I thought, "I'll just write a couple of PHP scripts and be done with it."&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;Mini Bucket&lt;/strong&gt; was born.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Fair warning: I'm not a programmer. The code could be more beautiful, the architecture more elegant. But my goal was different — to build a useful tool for myself as a sysadmin on old hardware.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How "two pages" turned into 20+
&lt;/h2&gt;

&lt;p&gt;The first two pages were quick. Shares were being created.&lt;/p&gt;

&lt;p&gt;Then I thought: "It'd be nice to see some stats." So I added a dashboard with graphs.&lt;/p&gt;

&lt;p&gt;Then: "Since SMB and NFS are already there, let's add rsync and FTP." And I did.&lt;/p&gt;

&lt;p&gt;Day by day, my "two-page panel" grew into a project now called &lt;strong&gt;Mini Bucket — NAS Control Panel&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where it actually runs:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raspberry Pi 1&lt;/strong&gt; (256 MB RAM) — yes, the very first one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Netgear Stora MS2000&lt;/strong&gt; (128 MB RAM)&lt;/li&gt;
&lt;li&gt;Debian 9 on old laptops and VMs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What it can do (short version):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live dashboard with CPU, RAM, network, disk graphs&lt;/li&gt;
&lt;li&gt;Firewall (UFW) with CRUD and ready-made rules&lt;/li&gt;
&lt;li&gt;System monitor + diagnostics (ping, traceroute, speedtest)&lt;/li&gt;
&lt;li&gt;Web console (SSH through the browser)&lt;/li&gt;
&lt;li&gt;Cron scheduler with logs&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;li&gt;Disks, RAID (0,1,5,6,10), LVM, SMART&lt;/li&gt;
&lt;li&gt;Two-panel file manager&lt;/li&gt;
&lt;li&gt;SMB, NFS, FTP, Rsync&lt;/li&gt;
&lt;li&gt;System checker ("Check everything" button)&lt;/li&gt;
&lt;li&gt;API key rotation for multiple servers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full list — 12 sections, 20+ pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first beta: critical mistakes I made
&lt;/h2&gt;

&lt;p&gt;In the first version (beta), I made some silly mistakes, and the Habr community rightly criticized me for them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Worker files, cron scripts, and temporary files were stored &lt;strong&gt;inside the web server's document root&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You could technically send a request to an executable file without authentication&lt;/li&gt;
&lt;li&gt;Everything was in a single SQLite database, so under load you'd get "database is locked"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not denying it. I'm learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  What was fixed in version 3.6.2:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;All critical files moved outside the website folder (&lt;code&gt;/var/www/minib/&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Apache configuration reviewed&lt;/li&gt;
&lt;li&gt;Temporary files and logs are no longer accessible from the outside&lt;/li&gt;
&lt;li&gt;Databases split across multiple SQLite files + request queuing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Takeaway:&lt;/strong&gt; A beta is a beta. But now it's a stable release.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTPS and a self-signed certificate in 5 minutes
&lt;/h2&gt;

&lt;p&gt;Many asked: "What about security?"&lt;/p&gt;

&lt;p&gt;The whole process is documented, but here's the short version:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Host Manager → set the FQDN (e.g., &lt;code&gt;minib.local&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Security → SSL Manager → Create → Self-Signed Certificate&lt;/li&gt;
&lt;li&gt;System → Mini-B Settings → Enable HTTPS&lt;/li&gt;
&lt;li&gt;Apply &amp;amp; test config&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yes, your browser will complain about the self-signed certificate. But the traffic is encrypted. For a home NAS — that's enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now with plugins (version 3.6.4)
&lt;/h2&gt;

&lt;p&gt;I realized that in any "out of the box" system, you get 80% of what you need — and the remaining 20% is whatever you personally miss.&lt;/p&gt;

&lt;p&gt;That's why from version 3.6.4, &lt;strong&gt;Mini Bucket becomes a plugin platform&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  First plugins:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Log Manager&lt;/strong&gt; — real-time log viewer, search, export, cleanup. No more SSH and remembering paths to &lt;code&gt;/var/log&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugin Template&lt;/strong&gt; — a ready-made skeleton for your own plugins with built-in authentication, API, and SQLite support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anyone can write their own plugin (backup to S3, Telegram bot, disk temperature monitoring) and share it with the community.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned (this is the most important section)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Never store executables in the webroot&lt;/strong&gt; — this is basic security, and I missed it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split your databases&lt;/strong&gt; — a single SQLite for everything is a pain under load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listen to criticism&lt;/strong&gt; — On Habr, people downvoted me for the donation requests and rookie mistakes. I fixed the mistakes. I kept the donations, but moved them out of the spotlight.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You can't please everyone&lt;/strong&gt; — my project is niche. It's for people with old hardware and a "let's just get it done" attitude.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source is not just code&lt;/strong&gt; — it's the community. Forum, wiki, docs, plugins.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A marketplace for plugins inside the panel&lt;/li&gt;
&lt;li&gt;Support for more languages (currently mixed Russian/English)&lt;/li&gt;
&lt;li&gt;Integration with popular backup tools (S3, Borg, Restic)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/itprogresscorp/Mini-Bucket" rel="noopener noreferrer"&gt;github.com/itprogresscorp/Mini-Bucket&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo &amp;amp; documentation:&lt;/strong&gt; &lt;a href="https://mini-bucket.ru" rel="noopener noreferrer"&gt;mini-bucket.ru&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forum:&lt;/strong&gt; see the website&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  If you'd like to support the project
&lt;/h2&gt;

&lt;p&gt;The project lives on donations from people who've found it genuinely useful. If you revived your old NAS with Mini Bucket — I'd appreciate any support. Links are on GitHub and the website.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Installation on a clean Debian 9 — one command. Everything is described in the README on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.P.S.&lt;/strong&gt; I'm not a programmer. But it works. And it's Open Source.&lt;/p&gt;

</description>
      <category>sysadmin</category>
      <category>opensource</category>
      <category>nas</category>
      <category>php</category>
    </item>
  </channel>
</rss>
