<?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: EQVPS</title>
    <description>The latest articles on DEV Community by EQVPS (@eqvps).</description>
    <link>https://dev.to/eqvps</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3985877%2Fb13a07da-c762-4247-bbc6-b9a88d3356ca.png</url>
      <title>DEV Community: EQVPS</title>
      <link>https://dev.to/eqvps</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eqvps"/>
    <language>en</language>
    <item>
      <title>Windows 10 or Windows Server on a VPS? Why every host sells Server, and what you lose</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 01 Nov 2026 13:00:02 +0000</pubDate>
      <link>https://dev.to/eqvps/windows-10-or-windows-server-on-a-vps-why-every-host-sells-server-and-what-you-lose-4kg3</link>
      <guid>https://dev.to/eqvps/windows-10-or-windows-server-on-a-vps-why-every-host-sells-server-and-what-you-lose-4kg3</guid>
      <description>&lt;p&gt;"Windows 10 VPS" is one of the most common searches for a Windows server, and almost every host answers it with Windows Server. That isn't a trick. There are licensing reasons, and for most programs the difference is smaller than it sounds. Here is what changes, what doesn't, and the numbers from our own Windows Server 2022 VPS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why hosts don't sell Windows 10
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Licensing.&lt;/strong&gt; A Windows 10 or 11 licence is written for a computer you own. Running desktop Windows on rented, shared hardware is allowed under Microsoft's terms only with specific enterprise subscriptions, and only through hosting partners Microsoft has authorised for exactly that. Windows Server is licensed for servers in data centres. That's why nearly every VPS host, including us, offers Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support.&lt;/strong&gt; Windows 10 reached end of support on &lt;strong&gt;October 14, 2025&lt;/strong&gt;. Paid consumer security updates (ESU) for home PCs run until October 12, 2027, but that programme covers your own PC, not a rented server. Windows Server 2022 gets security updates until &lt;strong&gt;October 14, 2031&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So "a Windows 10 VPS" today would be an out-of-support system under a licence that doesn't cover the use. Server 2022 is the honest version of the same request.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the same
&lt;/h2&gt;

&lt;p&gt;More than people expect. Windows Server 2022 (build 20348) is built on the same core as Windows 10 and 11:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Desktop software installs and runs&lt;/strong&gt;: .NET apps, trading terminals, bots, browsers, office tools. Our image is the &lt;strong&gt;Desktop Experience&lt;/strong&gt; edition, a full desktop over RDP, not the command-line-only Server Core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge is preinstalled&lt;/strong&gt;, so you can download what you need straight away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell, Task Scheduler and the usual admin tools&lt;/strong&gt; are all there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your program runs on Windows 10, test it on Server first. It almost certainly works.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's different
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Windows 10 / 11 (desktop)&lt;/th&gt;
&lt;th&gt;Windows Server 2022&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Licence on a rented VPS&lt;/td&gt;
&lt;td&gt;Only via special enterprise programmes&lt;/td&gt;
&lt;td&gt;Standard: server licence (&lt;a href="https://eqvps.com/en/blog/byol-windows-server-vps-licensing" rel="noopener noreferrer"&gt;BYOL&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security updates&lt;/td&gt;
&lt;td&gt;Ended Oct 14, 2025 (Win 10)&lt;/td&gt;
&lt;td&gt;Until Oct 14, 2031&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simultaneous RDP sessions&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2 for administration, no extra licences&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Store&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server roles (IIS, DNS, Hyper-V…)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM at idle on our VPS&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;under 1.3 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The practical differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Microsoft Store.&lt;/strong&gt; On our server the Store package isn't present at all. Apps distributed &lt;em&gt;only&lt;/em&gt; through the Store won't install; the same app's normal installer usually will.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A few programs refuse a server edition.&lt;/strong&gt; Some consumer software and game anti-cheat systems check the edition and stop. This is rare for anything you'd run on a VPS, but check if your app is in that category.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two RDP sessions instead of one.&lt;/strong&gt; Two people (or you plus a script session) can be logged in at once. Each user gets one session by default, so reconnecting picks up where you left off. More than two concurrent users is a different product: the Remote Desktop Services role with paid client licences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How heavy is it really
&lt;/h2&gt;

&lt;p&gt;We measured on our Windows Server 2022 VPS with nobody logged in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAM:&lt;/strong&gt; 965 MB to 1.3 GB in use;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disk:&lt;/strong&gt; about 14 GB of the 50 GB system disk;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Processes:&lt;/strong&gt; 88.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's why our smallest Windows plan, &lt;a href="https://eqvps.com/en/products/windows-small" rel="noopener noreferrer"&gt;Windows-Small&lt;/a&gt; (4 vCPU, 4 GB RAM, 50 GB, $11/mo on NAT), has plenty of room for a bot, a terminal or a small .NET service. If you need your own public IPv4 for inbound connections, &lt;a href="https://eqvps.com/en/products/windows-small-ip" rel="noopener noreferrer"&gt;Windows Small-IP&lt;/a&gt; is $28/mo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Licence: bring your own
&lt;/h2&gt;

&lt;p&gt;The image is Windows Server 2022 Standard, starting as Evaluation, and you activate it with your own key. That keeps the plan price at the price of the machine. How activation and edition switching work is in &lt;a href="https://eqvps.com/en/blog/byol-windows-server-vps-licensing" rel="noopener noreferrer"&gt;BYOL Windows Server on a VPS&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  First things to do on a new Windows VPS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://eqvps.com/en/wiki/connect-windows-vps-rdp" rel="noopener noreferrer"&gt;Connect over RDP&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eqvps.com/en/wiki/how-to-secure-rdp-on-a-windows-vps" rel="noopener noreferrer"&gt;Secure RDP&lt;/a&gt;: NLA, lockout, an IP allowlist.&lt;/li&gt;
&lt;li&gt;If your program must run around the clock, &lt;a href="https://eqvps.com/en/wiki/how-to-run-a-script-24-7-on-windows-server" rel="noopener noreferrer"&gt;set it up in Task Scheduler&lt;/a&gt; so it survives reboots and crashes.&lt;/li&gt;
&lt;li&gt;For scripting from Linux or CI, &lt;a href="https://eqvps.com/en/wiki/how-to-install-openssh-on-windows-server" rel="noopener noreferrer"&gt;install OpenSSH&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All four Windows plans are on the &lt;a href="https://eqvps.com/en/windows-vps" rel="noopener noreferrer"&gt;Windows VPS page&lt;/a&gt;. Payment is in USDT, USDC or ETH on Base, Ethereum or Polygon, and no ID is needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can I get a Windows 10 or Windows 11 VPS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not from us, and not legitimately from most hosts. Microsoft's licence terms allow desktop Windows on rented, shared servers only under specific enterprise subscriptions, through hosting partners Microsoft has authorised for that. Hosts outside that programme offer Windows Server, which is licensed for servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will my Windows 10 program run on Windows Server 2022?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Very likely. Server 2022 is built on the same core as Windows 10 and 11, so ordinary desktop software, .NET apps, trading terminals and bots install and run as usual. The exceptions are apps that ship only through the Microsoft Store and a few programs that refuse to install on a server edition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many people can use RDP at once?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Two at the same time, for administration, with no extra licences. Desktop Windows allows one. More than two simultaneous users needs the Remote Desktop Services role plus RDS client access licences, which is a separate purchase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Windows Server 2022 still supported?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Mainstream support ended on October 13, 2026, which stops new features, but security updates continue until October 14, 2031. Windows 10 itself left support on October 14, 2025.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Windows Server heavier than Windows 10?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. With nobody logged in our Windows Server 2022 VPS used under 1.3 GB of RAM and about 14 GB of disk. A 4 GB plan leaves plenty for your programs.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was created with the help of AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>vps</category>
      <category>selfhosted</category>
      <category>devops</category>
    </item>
    <item>
      <title>How much disk space does a VPS need? We measured what actually fills it</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sat, 31 Oct 2026 13:00:02 +0000</pubDate>
      <link>https://dev.to/eqvps/how-much-disk-space-does-a-vps-need-we-measured-what-actually-fills-it-4jg8</link>
      <guid>https://dev.to/eqvps/how-much-disk-space-does-a-vps-need-we-measured-what-actually-fills-it-4jg8</guid>
      <description>&lt;p&gt;Plan pages list RAM first, but a full disk takes a server down just as surely. With "No space left on device", databases stop writing and sites stop answering, however much memory is free. Disk use isn't hard to predict once you know what grows. We booted fresh servers from our own images and measured each of the usual suspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a fresh server uses
&lt;/h2&gt;

&lt;p&gt;Measured right after the first boot:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Disk used&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Alpine Linux 3.21&lt;/td&gt;
&lt;td&gt;153 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debian 12&lt;/td&gt;
&lt;td&gt;1.2 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ubuntu 24.04&lt;/td&gt;
&lt;td&gt;2.7 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows Server 2022&lt;/td&gt;
&lt;td&gt;14.0 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On Linux, almost all of a &lt;a href="https://eqvps.com/en/products/nano" rel="noopener noreferrer"&gt;15 GB Nano&lt;/a&gt; is yours from day one. Windows takes more than a quarter of its 50 GB plan before you install anything, and as you'll see below, updates take more.&lt;/p&gt;

&lt;p&gt;Part of Ubuntu's 2.7 GB was easy to win back. 440 MB was the package cache from first-boot updates, and three kernels were installed where one is in use. Two commands brought it to 2.16 GB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt clean
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt autoremove &lt;span class="nt"&gt;--purge&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docker: images add up fast
&lt;/h2&gt;

&lt;p&gt;Installing Docker itself added about 300 MB. The images are what count. We pulled eight common ones, one after another, and measured how much the disk grew each time:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Image&lt;/th&gt;
&lt;th&gt;Disk added&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nginx:alpine&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;91 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nginx:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;232 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;postgres:16&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;501 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python:3.12-slim&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;59 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;node:22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,564 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mariadb:11&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;437 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;wordpress:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;960 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;redis:7-alpine&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;55 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.9 GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Images that share a base reuse its layers, which is why &lt;code&gt;python:3.12-slim&lt;/code&gt; added only 59 MB after &lt;code&gt;nginx:latest&lt;/code&gt; and &lt;code&gt;postgres:16&lt;/code&gt; had already brought in the same Debian base. Alpine-based images are several times smaller than the full ones. &lt;code&gt;node:22&lt;/code&gt; alone is 1.5 GB, so build with &lt;code&gt;node:22-slim&lt;/code&gt; or &lt;code&gt;node:22-alpine&lt;/code&gt; when you can.&lt;/p&gt;

&lt;p&gt;Images pile up when you update: each &lt;code&gt;docker compose pull&lt;/code&gt; leaves the old version behind. On our test server one command cleared all of them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker system &lt;span class="nb"&gt;df
&lt;/span&gt;docker system prune &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It reported 4.1 GB reclaimed. &lt;code&gt;prune -a&lt;/code&gt; removes every image no container is using, so run it when your stack is up. Volumes are left alone unless you add &lt;code&gt;--volumes&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logs: the one that fills a disk overnight
&lt;/h2&gt;

&lt;p&gt;Docker keeps everything a container prints, with &lt;strong&gt;no size limit&lt;/strong&gt; by default. We started a container that printed one short line in a loop, the kind of output a health check or debug mode produces. After 30 seconds its log file was 6 MB. At that rate it would write about 17 GB a day, more than a whole Micro plan's disk.&lt;/p&gt;

&lt;p&gt;Set a limit for all new containers in &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"log-driver"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"log-opts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"max-size"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"10m"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"max-file"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then &lt;code&gt;sudo systemctl restart docker&lt;/code&gt; and recreate your containers (&lt;code&gt;docker compose up -d --force-recreate&lt;/code&gt;). Existing containers keep the settings they were created with. With the limit, the same test container's log was 4 MB after 30 seconds and can never pass 30 MB.&lt;/p&gt;

&lt;p&gt;The system journal is already capped: on our 25 GB Ubuntu server, journald limits itself to 2.3 GB, a tenth of the filesystem. It was using 15 MB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Windows: updates need room
&lt;/h2&gt;

&lt;p&gt;Our Windows Server 2022 image dated from 2022, so we brought it up to date. Used space went from 12.6 GB to 20.8 GB while the first cumulative update installed, and reached 24.5 GB after the second. Windows keeps the old version of every system file an update replaces. Cleaning those out brought it back to 14.6 GB, and a fresh server from the updated image now starts at 14 GB. Keep at least 10 GB free for the next update. The &lt;a href="https://eqvps.com/en/wiki/how-to-update-windows-server-on-a-vps" rel="noopener noreferrer"&gt;Windows update guide&lt;/a&gt; shows the cleanup commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to choose
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you run&lt;/th&gt;
&lt;th&gt;Disk that's comfortable&lt;/th&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A bot, a VPN, a small static site&lt;/td&gt;
&lt;td&gt;15 GB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/nano" rel="noopener noreferrer"&gt;Nano&lt;/a&gt;, $3/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A Docker stack with a few images&lt;/td&gt;
&lt;td&gt;25 GB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/micro" rel="noopener noreferrer"&gt;Micro&lt;/a&gt;, $5/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WordPress with a database and uploads, several stacks&lt;/td&gt;
&lt;td&gt;35 GB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/small" rel="noopener noreferrer"&gt;Small&lt;/a&gt;, $8/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bigger databases, many images, local backups&lt;/td&gt;
&lt;td&gt;45 GB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/medium" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, $12/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows Server 2022&lt;/td&gt;
&lt;td&gt;50–60 GB&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/windows-small" rel="noopener noreferrer"&gt;Windows-Small&lt;/a&gt;, $11/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two rules make any of these last longer: cap container logs before you deploy, and copy backups off the server instead of keeping them on its disk. If a server is already full, our guide to &lt;a href="https://eqvps.com/en/wiki/how-to-free-up-disk-space-on-a-vps" rel="noopener noreferrer"&gt;freeing up disk space&lt;/a&gt; works through it step by step. For the memory side of sizing, see &lt;a href="https://eqvps.com/en/blog/how-much-ram-does-a-vps-need" rel="noopener noreferrer"&gt;how much RAM a VPS needs&lt;/a&gt;. All plans are on the &lt;a href="https://eqvps.com/en/vps" rel="noopener noreferrer"&gt;VPS&lt;/a&gt; page, and payment is in USDT, USDC or ETH on Base, Ethereum or Polygon.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is 15 GB enough for a VPS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For a bot, a VPN or a small site, yes. A fresh Ubuntu 24.04 server uses 2.7 GB of it and Alpine only 153 MB. It gets tight once you add Docker: eight common images took 3.9 GB on our test server. With Docker, start at 25 GB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much disk does Windows Server need?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A fresh server from our Windows Server 2022 image uses 14 GB. Updates need room on top of that: while our image caught up on four years of them it grew to 24.5 GB, and a cleanup brought it back to 14.6 GB. That's why our Windows plans start at 50 GB, which leaves about 35 GB for your programs and files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What fills a VPS disk most often?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Container logs with no limit, unused Docker images, the package cache, old kernels, and backups that are kept on the same disk. The first is the fastest: one chatty test container wrote 6 MB of logs in 30 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I add more disk later?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, by moving to a bigger plan. Each step up the Linux plans adds 10 GB of disk and more RAM. Before you upgrade, see whether a cleanup is enough: on our test server it freed 4.1 GB of Docker images in one command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I see what is using my disk?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run df -h / for the total and sudo du -xh --max-depth=1 / | sort -h for the biggest folders. If you use Docker, docker system df shows how much its images, containers and volumes take.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was created with the help of AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>linux</category>
      <category>windows</category>
      <category>vps</category>
    </item>
    <item>
      <title>Linux or Windows VPS: which one do you actually need?</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Fri, 30 Oct 2026 09:43:38 +0000</pubDate>
      <link>https://dev.to/eqvps/linux-or-windows-vps-which-one-do-you-actually-need-1dfl</link>
      <guid>https://dev.to/eqvps/linux-or-windows-vps-which-one-do-you-actually-need-1dfl</guid>
      <description>&lt;p&gt;Picking an operating system feels like a detail you can sort out later. On a VPS it decides three things at once: what you pay, how much of the RAM is left for your own work, and how you look after the server every day. Here's the short version, then the numbers behind it. We measured them on fresh servers from our own images.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Choose Windows&lt;/strong&gt; when the job needs a program that only exists for Windows: a Windows-only trading terminal, a desktop app your business already runs, an old .NET Framework service, automation that clicks through Windows software. Windows also suits people who want to manage the server like a desktop PC and never open a terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose Linux&lt;/strong&gt; for almost everything else: websites, Docker, databases, VPNs, Telegram and Discord bots, trading bots written in Python, AI agents and game servers. Most of the software in those categories is written for Linux first.&lt;/p&gt;

&lt;p&gt;If you aren't sure, it's probably Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  What each one uses before you start
&lt;/h2&gt;

&lt;p&gt;We booted fresh servers from our images and measured them about a minute and a half after boot, with nobody logged in:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;RAM used at idle&lt;/th&gt;
&lt;th&gt;Disk used&lt;/th&gt;
&lt;th&gt;Processes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Alpine Linux 3.21&lt;/td&gt;
&lt;td&gt;55 MB&lt;/td&gt;
&lt;td&gt;153 MB&lt;/td&gt;
&lt;td&gt;about 70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debian 12&lt;/td&gt;
&lt;td&gt;213 MB&lt;/td&gt;
&lt;td&gt;1.2 GB&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ubuntu 24.04&lt;/td&gt;
&lt;td&gt;313 MB&lt;/td&gt;
&lt;td&gt;2.7 GB&lt;/td&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows Server 2022&lt;/td&gt;
&lt;td&gt;965 MB to 1.3 GB&lt;/td&gt;
&lt;td&gt;about 14 GB&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Before your own software starts, Windows uses at least three times as much memory as Ubuntu and about twenty times as much as Alpine. That's why our smallest Windows plan has 4 GB of RAM, while the smallest Linux plan gets by on 1 GB. On disk, Windows takes about 14 of the 50 GB on its plan. Ubuntu takes under 3 GB.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs
&lt;/h2&gt;

&lt;p&gt;Prices for our plans, per month:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Linux&lt;/th&gt;
&lt;th&gt;Windows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cheapest&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/nano" rel="noopener noreferrer"&gt;Nano&lt;/a&gt;: 2 vCPU, 1 GB, 15 GB, $3&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/windows-small" rel="noopener noreferrer"&gt;Windows-Small&lt;/a&gt;: 4 vCPU, 4 GB, 50 GB, $11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 vCPU, 4 GB, NAT&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/small" rel="noopener noreferrer"&gt;Small&lt;/a&gt;: $8&lt;/td&gt;
&lt;td&gt;Windows-Small: $11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 vCPU, 4 GB, own IPv4&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP&lt;/a&gt;: $16&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/windows-small-ip" rel="noopener noreferrer"&gt;Windows Small-IP&lt;/a&gt;: $28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6 vCPU, 6 GB, NAT&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/medium" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;: $12&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://eqvps.com/en/products/windows-medium" rel="noopener noreferrer"&gt;Windows-Medium&lt;/a&gt;: $19&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;At the same size, Windows costs $3 to $7 more on NAT and $12 more with its own IPv4. The bigger gap is at the bottom of the range. A small bot or website that runs happily on a $3 Linux server needs at least the $11 Windows plan, because Windows alone uses about 1 GB.&lt;/p&gt;

&lt;p&gt;There's also the licence. Our Windows image is Windows Server 2022 that you activate with your own key (&lt;a href="https://eqvps.com/en/blog/byol-windows-server-vps-licensing" rel="noopener noreferrer"&gt;how BYOL works&lt;/a&gt;). Linux has no licence to buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  How you look after it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt; is managed over SSH, in text. Configuration lives in files, software comes from a package manager, and every step can go in a script. That's also why automation tools and AI agents find Linux servers easier to drive. Our setup guides for &lt;a href="https://eqvps.com/en/wiki/how-to-set-up-an-ubuntu-vps" rel="noopener noreferrer"&gt;Ubuntu&lt;/a&gt;, &lt;a href="https://eqvps.com/en/wiki/how-to-set-up-a-debian-vps" rel="noopener noreferrer"&gt;Debian&lt;/a&gt;, &lt;a href="https://eqvps.com/en/wiki/how-to-set-up-a-rocky-linux-vps" rel="noopener noreferrer"&gt;Rocky Linux&lt;/a&gt; and &lt;a href="https://eqvps.com/en/wiki/how-to-set-up-an-alpine-linux-vps" rel="noopener noreferrer"&gt;Alpine&lt;/a&gt; take about ten minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt; is managed over Remote Desktop: a full desktop, the usual GUI tools, and PowerShell when you want to script. Two people can be connected at the same time without extra licences (&lt;a href="https://eqvps.com/en/wiki/how-to-add-an-rdp-user-on-windows-server" rel="noopener noreferrer"&gt;how to add a second user&lt;/a&gt;). For scripting from another machine, &lt;a href="https://eqvps.com/en/wiki/how-to-install-openssh-on-windows-server" rel="noopener noreferrer"&gt;OpenSSH is built in&lt;/a&gt; too. The first thing to do on any Windows server is &lt;a href="https://eqvps.com/en/wiki/how-to-secure-rdp-on-a-windows-vps" rel="noopener noreferrer"&gt;lock down RDP&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three common mix-ups
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"I need Windows to use Remote Desktop."&lt;/strong&gt; You don't. A Linux server can run a desktop that you open with the same Remote Desktop app. With &lt;a href="https://eqvps.com/en/wiki/how-to-install-a-desktop-on-a-linux-vps" rel="noopener noreferrer"&gt;XFCE and xrdp&lt;/a&gt;, one session added about 360 MB of RAM on our Ubuntu test server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Trading bots need Windows."&lt;/strong&gt; Most don't. &lt;a href="https://eqvps.com/en/blog/freqtrade-vps" rel="noopener noreferrer"&gt;Freqtrade&lt;/a&gt;, &lt;a href="https://eqvps.com/en/blog/hummingbot-vps" rel="noopener noreferrer"&gt;Hummingbot&lt;/a&gt; and nearly every bot written in Python or Node.js run natively on Linux. Windows is only needed when the terminal itself is a Windows program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I want Windows 10, not Server."&lt;/strong&gt; Desktop Windows on rented servers is a licensing problem, and Windows 10 is out of support. Server 2022 runs the same programs. The details are in &lt;a href="https://eqvps.com/en/blog/windows-10-vs-windows-server-on-a-vps" rel="noopener noreferrer"&gt;Windows 10 vs Windows Server on a VPS&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our pick
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A website, Docker stack, database or bot:&lt;/strong&gt; Linux. Pick Ubuntu 24.04 if you follow tutorials, Debian 12 for less overhead, and Alpine for the leanest Docker host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software that exists only for Windows:&lt;/strong&gt; Windows Server 2022, starting with Windows-Small.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not sure:&lt;/strong&gt; start on Linux. Nano costs $3 a month, so finding out is cheap.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choose at the start, though. The Windows image runs only on the Windows plans, so going from Linux to Windows later means a new plan and moving your data. All Linux plans are in &lt;a href="https://eqvps.com/en/vps" rel="noopener noreferrer"&gt;VPS plans&lt;/a&gt; and all four Windows plans are on the &lt;a href="https://eqvps.com/en/windows-vps" rel="noopener noreferrer"&gt;Windows VPS page&lt;/a&gt;. Payment is in USDT, USDC or ETH on Base, Ethereum or Polygon, and no ID is needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is a Windows VPS more expensive than Linux?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, because Windows needs more of the machine. Our cheapest Linux plan is Nano at $3 a month with 1 GB of RAM; the cheapest Windows plan is Windows-Small at $11 a month with 4 GB. With the same 4 GB and 4 vCPU, Linux Small costs $8. On top of that, Windows needs a licence: you activate our image with your own key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I get a graphical desktop on a Linux VPS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. XFCE with xrdp gives you a desktop you open with the normal Remote Desktop app. On our test server one session added about 360 MB of RAM, so a 2 GB plan handles it. You only need Windows if the software inside the desktop is Windows software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I switch from Linux to Windows later?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not by reinstalling the same plan. The Windows image runs only on the Windows plans, and the Linux plans don't include it. Moving means ordering a Windows plan and copying your data across. Choosing the right one at the start saves you that move.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do trading bots need Windows?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most don't. Freqtrade, Hummingbot and nearly every bot written in Python or Node.js run natively on Linux. Windows is for terminals and tools that only exist as Windows programs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which Linux distribution should I pick?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ubuntu 24.04 if you follow online tutorials, because most are written for it. Debian 12 if you want the same tools with less overhead. Alpine if you want the smallest possible system, for example as a Docker host. Rocky Linux or AlmaLinux if you work with Red Hat-style systems.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was created with the help of AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>windows</category>
      <category>vps</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>You can now pay for a VPS with Solana</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Fri, 28 Aug 2026 22:50:23 +0000</pubDate>
      <link>https://dev.to/eqvps/you-can-now-pay-for-a-vps-with-solana-4d14</link>
      <guid>https://dev.to/eqvps/you-can-now-pay-for-a-vps-with-solana-4d14</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk0st2vsv40x8att5tc7t.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk0st2vsv40x8att5tc7t.webp" alt="Solana payments going live on EQVPS" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We added Solana to checkout this week. If you hold USDC, USDT or PYUSD on Solana — or you're sitting on some SOL — you can now pay for a server straight from there, no detour through another chain.&lt;/p&gt;

&lt;p&gt;It's a small change on the surface and a genuinely useful one in practice, so here's the why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reason is boring, which is the point
&lt;/h2&gt;

&lt;p&gt;A lot of people already keep their stablecoins on Solana. Until now, paying us meant moving those funds to Base, Ethereum or Polygon first — an extra hop, an extra fee, an extra chance to fat-finger a network. That friction lands right at the payment step, which is exactly where you don't want it. Now the answer is just "pay from where your money is."&lt;/p&gt;

&lt;p&gt;That's the whole pitch. No new economics, no tokenomics, no reason to overthink it. One more rail so fewer people have to move funds across chains before they can buy a $5 box.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Solana is good at here
&lt;/h2&gt;

&lt;p&gt;For a small payment the fee is the entire story, and Solana is hard to beat on it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fees are fractions of a cent&lt;/strong&gt; — well under a penny per transfer. On a $3–5 order that's a rounding error instead of a tax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confirmation in seconds.&lt;/strong&gt; Solana produces a block roughly every 400 ms; you send, and it's usually settled before you've switched tabs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;USDC, USDT, PYUSD or SOL&lt;/strong&gt; — stablecoins if you want a fixed amount, SOL if that's what you're holding.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One honest wrinkle worth knowing up front: Solana charges its network fee in SOL, even when you're sending USDC. It's a fraction of a cent, but a wallet with &lt;em&gt;only&lt;/em&gt; USDC can't move it — keep about ten cents of SOL around and you'll never think about it again. We &lt;a href="https://eqvps.com/en/wiki/pay-for-vps-with-solana" rel="noopener noreferrer"&gt;wrote up the full payment steps&lt;/a&gt; if you want the click-by-click version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is actually for
&lt;/h2&gt;

&lt;p&gt;If your crypto lives on Ethereum, keep paying on Base — nothing here changes for you. This is for the people whose default chain is Solana: traders and bot runners who settle there, folks who bought SOL and never moved it, anyone in the Solana ecosystem who'd rather not shuffle funds across chains to pay a hosting bill. For them the checkout just got one step shorter.&lt;/p&gt;

&lt;p&gt;And to be clear — Solana being fast and cheap doesn't make &lt;em&gt;us&lt;/em&gt; a different host. Same servers in Germany and Finland, same email-only signup, same root in about a minute. We just stopped making Solana users take the long way to the payment page.&lt;/p&gt;

&lt;p&gt;Want to try it? &lt;a href="https://eqvps.com/en/#pricing" rel="noopener noreferrer"&gt;Pick a plan&lt;/a&gt; and choose Solana at checkout — USDC, USDT, PYUSD or SOL, no KYC either way. If you're running actual Solana workloads on the box, not just paying from it, we went deeper on that in &lt;a href="https://eqvps.com/en/use-cases/vps-for-solana-developers" rel="noopener noreferrer"&gt;VPS for Solana developers&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>solana</category>
      <category>cryptocurrency</category>
      <category>web3</category>
      <category>vps</category>
    </item>
    <item>
      <title>Running Hummingbot on a VPS: 24/7 market-making without KYC</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Tue, 25 Aug 2026 14:14:46 +0000</pubDate>
      <link>https://dev.to/eqvps/running-hummingbot-on-a-vps-247-market-making-without-kyc-99i</link>
      <guid>https://dev.to/eqvps/running-hummingbot-on-a-vps-247-market-making-without-kyc-99i</guid>
      <description>&lt;p&gt;A market-making bot is not a "set it and forget it" script. Hummingbot sits on live WebSocket connections to the exchange, watches the order book tick by tick, and places and cancels orders every few seconds to keep a spread around the mid price. Close the laptop, drop the Wi-Fi, let the machine sleep for an OS update — and you've either got stale orders resting on the book at prices the market has already left, or a bot that quietly stopped quoting. Neither is where you want to be with money on an exchange.&lt;/p&gt;

&lt;p&gt;So Hummingbot belongs on a server. That part isn't controversial. The useful question is &lt;em&gt;what kind&lt;/em&gt; of server, and how not to overpay for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Hummingbot actually does to a machine
&lt;/h2&gt;

&lt;p&gt;It's lighter than people expect, and heavier in one specific place.&lt;/p&gt;

&lt;p&gt;The core loop — hold connections, read the book, quote a spread — barely touches the CPU. A single pure-market-making strategy on one exchange is happy in &lt;strong&gt;1–2 GB of RAM&lt;/strong&gt; and idles most of a core. If that's all you're doing, our Micro plan ($5/mo) is genuinely enough, and I'd rather tell you that than sell you something bigger.&lt;/p&gt;

&lt;p&gt;Memory is where it grows, and it grows for concrete reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;More markets.&lt;/strong&gt; Each strategy instance and each connector holds its own state. Run three or four bots across two exchanges and you're comfortably into 3–4 GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The dashboard.&lt;/strong&gt; Hummingbot's newer setup runs the bot, a dashboard, and a database as separate containers. That stack wants more headroom than the bare CLI bot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gateway for DEX trading.&lt;/strong&gt; If you're arbitraging or making markets on on-chain DEXes, the Gateway container is a second Node service sitting next to the main one. Not huge, but not free.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's why the honest recommendation is: start on Micro if you're running one strategy, and move to &lt;strong&gt;Small ($8/mo, 4 vCPU, 4 GB)&lt;/strong&gt; the moment you add a second bot, the dashboard, or Gateway. Small is the plan most people who run Hummingbot seriously settle on.&lt;/p&gt;

&lt;p&gt;Disk matters less than for a backtesting-heavy Freqtrade setup, but it still writes trade history and logs constantly. NVMe (ours is RAID1, ~800 MB/s reads) keeps that off the critical path. If you're coming from Freqtrade, our &lt;a href="https://eqvps.com/en/blog/freqtrade-vps" rel="noopener noreferrer"&gt;Freqtrade on a VPS&lt;/a&gt; write-up covers the backtesting-memory side in more detail — Hummingbot leans the other way, toward live connections rather than heavy backtests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Latency: useful honesty
&lt;/h2&gt;

&lt;p&gt;You'll see "low latency" on every trading-VPS page, including ours, so here's the real version. A server physically close to the exchange's matching engine reaches it faster than a home connection routed halfway across a continent — that's real and it matters for quoting tight spreads and for cross-exchange arbitrage where you're racing a price gap. Our servers are in Europe (Germany and Finland), which is close to where a lot of the big matching engines actually live.&lt;/p&gt;

&lt;p&gt;What it is &lt;strong&gt;not&lt;/strong&gt; is co-located high-frequency trading. If your strategy only works when you're inside the same datacenter as the exchange, shaving microseconds, a shared $8 VPS won't get you there and no honest host would claim otherwise. For everything short of that — normal market-making, spread capture, cross-exchange arb on a human-plus-seconds timescale — a nearby VPS is exactly the right amount of infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that's actually our angle
&lt;/h2&gt;

&lt;p&gt;Your exchange already knows who you are; it did its KYC when you opened the account. The machine that holds your API keys and runs your strategy is a different question. There's no reason the &lt;em&gt;infrastructure&lt;/em&gt; under a trading operation has to be tied to your identity too, and plenty of people running bots would rather it wasn't — a server rented with an email and paid in stablecoin is one less place your name is written down.&lt;/p&gt;

&lt;p&gt;That's what we do. Sign up with an email, pay in &lt;strong&gt;USDC or USDT&lt;/strong&gt; (Base, Ethereum or Polygon), get root in about a minute. No card, no documents. One caveat worth stating plainly: if you're on the cheapest plans, pay in a stablecoin, not BTC — Bitcoin network fees can eat an ugly chunk of a small order, so it's the wrong rail for a $5 box.&lt;/p&gt;

&lt;p&gt;On the keys themselves: make them &lt;strong&gt;trade-only, withdrawals off&lt;/strong&gt;, and if your exchange lets you whitelist an IP, put a &lt;a href="https://eqvps.com/en/dedicated" rel="noopener noreferrer"&gt;dedicated IP&lt;/a&gt; on the plan so your API keys are bound to one fixed address. The bot is only as exposed as the server it runs on, so lock the server down like it's holding money — because effectively it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;Hummingbot needs a machine that never sleeps and never drops its connection to the exchange — that's the whole reason a VPS exists for this. Size it to what you're actually running: Micro for one strategy, Small once the dashboard, Gateway, or a second bot show up. Pay in crypto if you'd rather not attach your name to the infrastructure. And don't buy latency you can't use — a nearby European server is the right call; a co-lo fantasy on a $8 plan isn't.&lt;/p&gt;

&lt;p&gt;If you want the broader picture on running any trading bot with us, the &lt;a href="https://eqvps.com/en/use-cases/vps-for-trading-bots" rel="noopener noreferrer"&gt;VPS for crypto trading bots&lt;/a&gt; page covers plan sizing and the no-KYC setup across bots, not just Hummingbot.&lt;/p&gt;

</description>
      <category>hummingbot</category>
      <category>cryptocurrency</category>
      <category>trading</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>Locked out of your VPS by ufw? Get back in without a reinstall</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sat, 22 Aug 2026 13:33:05 +0000</pubDate>
      <link>https://dev.to/eqvps/locked-out-of-your-vps-by-ufw-get-back-in-without-a-reinstall-3i3</link>
      <guid>https://dev.to/eqvps/locked-out-of-your-vps-by-ufw-get-back-in-without-a-reinstall-3i3</guid>
      <description>&lt;p&gt;There's a rite of passage for anyone new to running their own server: you decide to set up a firewall, you type a few &lt;code&gt;ufw&lt;/code&gt; commands, you hit enable — and your terminal goes silent. SSH is gone. You didn't crash anything, you didn't get hacked. You just locked the door with yourself outside.&lt;/p&gt;

&lt;p&gt;It happens to good sysadmins too. It happened to one of our customers last week, which is why I'm writing this down. The good news: it's completely recoverable in under a minute, and you do &lt;strong&gt;not&lt;/strong&gt; need to reinstall or lose a single file. Here's how.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrtn6j8qr3ig05jxd0f2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrtn6j8qr3ig05jxd0f2.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
A VPS sealed behind a firewall wall, with a glowing console window as the way back in&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flwh9pevh69wxvqhazkfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flwh9pevh69wxvqhazkfe.png" alt="A VPS sealed behind a firewall wall, with a glowing console window as the way back in" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What actually went wrong
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;ufw&lt;/code&gt; (Uncomplicated Firewall) defaults to &lt;em&gt;deny all incoming&lt;/em&gt;. The moment you run &lt;code&gt;ufw enable&lt;/code&gt;, anything you didn't explicitly allow is dropped — including the SSH session you're sitting in. If you forgot to &lt;code&gt;ufw allow&lt;/code&gt; your SSH port first, you've cut your own connection the instant the rule takes effect.&lt;/p&gt;

&lt;p&gt;That's the classic version. There are two other flavours that catch people:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You allowed the &lt;em&gt;wrong&lt;/em&gt; port. Typo, or you allowed the service port (say 8080) and forgot 22.&lt;/li&gt;
&lt;li&gt;You allowed 22 but then set a &lt;code&gt;deny&lt;/code&gt; rule higher in the list that shadows it. ufw is order-sensitive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Either way the server itself is fine — running, disk intact, your app still humming behind the wall. It's purely a network-access problem. Which is exactly why the fix is easy.&lt;/p&gt;
&lt;h2&gt;
  
  
  The wrong move: reinstalling
&lt;/h2&gt;

&lt;p&gt;The first instinct is often "just reset the server and start over." Don't — not for this. A reinstall wipes everything to get back a working SSH, when the thing blocking SSH is one firewall command you can undo in ten seconds. You'd be burning down the house because you locked the front door.&lt;/p&gt;

&lt;p&gt;Reinstall is the right call when you &lt;em&gt;want&lt;/em&gt; a clean slate. For a ufw lockout, it's overkill.&lt;/p&gt;
&lt;h2&gt;
  
  
  The right move: the web console
&lt;/h2&gt;

&lt;p&gt;Every VPS worth its salt gives you an out-of-band console — a way into the machine that doesn't ride over SSH or even the network stack. On EQVPS it's the &lt;strong&gt;Console&lt;/strong&gt; button on your server's page. It's a serial console: text-only, connected straight to the VM the way a monitor and keyboard would be. A firewall rule has no power over it, because it isn't network traffic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fng4vybn3k4pp1zldsupg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fng4vybn3k4pp1zldsupg.png" alt=" " width="795" height="77"&gt;&lt;/a&gt;&lt;br&gt;
The Console button on the EQVPS server management page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7o0rkyhensgrsgmfl4ld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7o0rkyhensgrsgmfl4ld.png" alt="The Console button on the EQVPS server management page" width="795" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click it, log in with your root credentials (or reveal the password in the panel if you don't have it handy), and you're on the box — firewall or no firewall.&lt;/p&gt;

&lt;p&gt;Now undo the damage. Fastest path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw disable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That turns the firewall off and &lt;strong&gt;keeps your rules&lt;/strong&gt;, so you can re-enable it later once you've fixed the mistake. SSH comes straight back.&lt;/p&gt;

&lt;p&gt;If you'd rather not drop the firewall entirely, just open the port you missed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw allow 22
&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw status numbered
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;status numbered&lt;/code&gt; view is worth a look — it shows the rule order, which is where the "I allowed 22 but it still blocks" cases hide. If a &lt;code&gt;deny&lt;/code&gt; sits above your &lt;code&gt;allow&lt;/code&gt;, delete it with &lt;code&gt;sudo ufw delete &amp;lt;number&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The NAT gotcha most guides miss
&lt;/h2&gt;

&lt;p&gt;If you're on a NAT plan, there's a trap here. You SSH in on a high port — something like &lt;code&gt;20266&lt;/code&gt; — so the natural instinct is &lt;code&gt;ufw allow 20266&lt;/code&gt;. That does nothing.&lt;/p&gt;

&lt;p&gt;On NAT, that external port is forwarded to port &lt;strong&gt;22 inside&lt;/strong&gt; the VM. ufw runs inside the VM and only ever sees 22. So the rule you actually need is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw allow 22
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Allow 20266 and you'll stare at a still-broken connection wondering why. Allow 22 and you're in. Same idea for any service: allow the port the process listens on &lt;em&gt;inside&lt;/em&gt; the box, not the forwarded one you connect to from outside.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to never do this again
&lt;/h2&gt;

&lt;p&gt;The fix takes a minute, but not needing it is nicer. Two habits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Allow your SSH port before you enable.&lt;/strong&gt; In this order, always:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw allow 22
&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw &lt;span class="nb"&gt;enable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do it backwards and you're back in the console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep a second session open while you change firewall rules.&lt;/strong&gt; Log in twice. Make your changes in one window; if SSH dies, the other window is still alive to fix it. Old trick, saves you every time.&lt;/p&gt;

&lt;p&gt;And if you're setting up a fresh box, our &lt;a href="https://eqvps.com/en/blog/secure-new-vps-checklist" rel="noopener noreferrer"&gt;new-VPS security checklist&lt;/a&gt; covers ufw the right way round, alongside SSH keys and the handful of other things that actually matter in the first ten minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;A ufw lockout looks scary and is almost nothing. The server never left; you just need a door that a firewall can't slam — the web console — and one command. Keep &lt;code&gt;ufw disable&lt;/code&gt; and the console in your back pocket, allow your port before you enable next time, and you'll never sweat this one again.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>devops</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dedicated IP or NAT VPS: which one your project actually needs</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Tue, 11 Aug 2026 16:21:26 +0000</pubDate>
      <link>https://dev.to/eqvps/dedicated-ip-or-nat-vps-which-one-your-project-actually-needs-28ck</link>
      <guid>https://dev.to/eqvps/dedicated-ip-or-nat-vps-which-one-your-project-actually-needs-28ck</guid>
      <description>&lt;p&gt;You rent a VPS, install Nginx, open your browser to the server's address — and nothing loads. Or you set up a mail server and every message bounces. Nine times out of ten the box is fine; the problem is that you're on a NAT plan and the thing you're running needs to be reached from the outside.&lt;/p&gt;

&lt;p&gt;This is the one networking choice that trips people up when they buy a server, so let's make it simple. There's exactly one question that decides it, and then a lot of examples so you can place your own project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one question
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does anything on the internet need to start a connection &lt;em&gt;to&lt;/em&gt; your server?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No&lt;/strong&gt; → a NAT VPS is enough. Cheaper, same CPU, same disk, same speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yes&lt;/strong&gt; → you need a dedicated IP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the whole decision. Everything below is just applying it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "NAT" actually means here
&lt;/h2&gt;

&lt;p&gt;On a NAT plan your server shares one public IPv4 with other servers and sits behind network address translation. In plain terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outbound is unrestricted.&lt;/strong&gt; Your server can reach anything — pull from GitHub, call the OpenAI or Anthropic API, connect to Telegram, scrape a site, hit a database elsewhere. All of that starts &lt;em&gt;from&lt;/em&gt; your box, so NAT never gets in the way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inbound is not yours.&lt;/strong&gt; You don't own a port on the public address, so you can't just open 443 to the world and expect traffic. SSH is forwarded to you on a specific high port (we show you the exact &lt;code&gt;host:port&lt;/code&gt;), and that's the inbound you get.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a huge share of what people actually run on a small server, that's completely fine. A bot that talks to Telegram, an AI agent making API calls, a scraper, a cron job that pushes data somewhere, a CI runner that pulls jobs — none of these need the world to connect in. They reach out. NAT is built for exactly that, and it's why the NAT line starts at $3/mo instead of $8.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a dedicated IP gives you
&lt;/h2&gt;

&lt;p&gt;A dedicated-IP plan hands you your &lt;strong&gt;own public IPv4, with every port open&lt;/strong&gt;. Now the outside world can start a connection to you, which is the whole point for a certain class of software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Websites.&lt;/strong&gt; A browser has to connect in on 80/443. No public IP, no site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mail servers.&lt;/strong&gt; Inbound 25 to receive, plus you need control of reverse DNS (PTR) so other servers trust you. That requires an IP that's yours — &lt;a href="https://eqvps.com/en/wiki/set-reverse-dns-ptr" rel="noopener noreferrer"&gt;here's how to set the PTR&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A personal VPN.&lt;/strong&gt; WireGuard listens on a UDP port your client connects to — see &lt;a href="https://eqvps.com/en/use-cases/vps-for-vpn" rel="noopener noreferrer"&gt;VPS for a personal VPN&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A proxy server.&lt;/strong&gt; Same idea: your client connects in to the proxy port. &lt;a href="https://eqvps.com/en/use-cases/vps-for-proxy-server" rel="noopener noreferrer"&gt;VPS for a proxy server&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Game servers, reverse proxies, webhooks, self-hosted apps you open to the internet&lt;/strong&gt; — anything where "someone connects to my server" is the feature.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You also get reputation you control: the IP is used by you alone, so you're never sharing a blocklist entry with a stranger who spammed from the same address yesterday.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where people get it wrong
&lt;/h2&gt;

&lt;p&gt;A few honest corrections, because these come up constantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I need a public IP for my Telegram bot."&lt;/strong&gt; Usually no. In the default long-polling mode the bot dials out to Telegram and gets updates back over that connection. NAT is fine. You only need an inbound port if you deliberately switch to &lt;em&gt;webhook&lt;/em&gt; mode — and for most bots, long-polling is simpler anyway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"A dedicated IP is more private."&lt;/strong&gt; Careful — it's the reverse. A shared NAT address hides you in a crowd; a dedicated IP is yours alone. Dedicated is better for reliability and for anything that must be reachable, worse for blending in. Pick by function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I'll get the IP just in case."&lt;/strong&gt; Don't. Start on NAT, and if a project genuinely needs inbound later, order a dedicated-IP plan for it then. Paying $8–20 for an IP you never accept a connection on is money lit on fire.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick placement table
&lt;/h2&gt;

&lt;p&gt;If you're still unsure, find your thing here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NAT ($3–12/mo):&lt;/strong&gt; Telegram/Discord bots, AI agents, trading bots, web scrapers, CI runners, cron jobs, anything that only calls out. See &lt;a href="https://eqvps.com/en/use-cases/vps-for-ai-agents" rel="noopener noreferrer"&gt;AI-agent use cases&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated IP ($8–20/mo):&lt;/strong&gt; websites, mail, VPN, proxies, game servers, reverse proxies, public APIs, webhooks, anything the internet connects to. Start with &lt;a href="https://eqvps.com/en/products/nano-ip" rel="noopener noreferrer"&gt;Nano-IP ($8)&lt;/a&gt; for light single-service boxes, or &lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP ($16)&lt;/a&gt; when you want room for a couple of services at once.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The honest bottom line
&lt;/h2&gt;

&lt;p&gt;Ask the one question — &lt;em&gt;does anything need to connect in?&lt;/em&gt; — and the answer picks the plan. If you're building agents and bots that reach out to APIs, stay on NAT and keep the $5 a month. If you're putting something on the internet for other people or machines to reach, get the dedicated IP; nothing else will work. Buying the wrong one isn't the end of the world (you can always spin up the right plan), but getting it right the first time saves you an afternoon of wondering why your site won't load.&lt;/p&gt;

&lt;p&gt;Pay in USDC or USDT, email to sign up, no card and no ID either way. &lt;a href="https://eqvps.com/en/#pricing" rel="noopener noreferrer"&gt;See the plans&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What's the difference between a NAT VPS and a dedicated IP VPS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A dedicated IP VPS gives you your own public IPv4 address with every port open — anything on the internet can reach it. A NAT VPS shares an outbound IP and forwards only SSH; it can reach out to the internet freely, but nothing can connect in on an arbitrary port. Outbound work is identical; the difference is whether the outside world can start a connection to you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need a dedicated IP for a Telegram or Discord bot?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Those bots hold an outbound connection to Telegram/Discord and receive updates over it — nothing connects in to the bot. A NAT plan is enough and cheaper. You only need a dedicated IP if you switch a Telegram bot to webhook mode, which requires an inbound HTTPS port.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I start on NAT and move to a dedicated IP later?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes — pick NAT if you're unsure. Most people who think they need a public IP don't, and the cheaper plan does the job. If a project later needs to accept inbound connections, you order a dedicated-IP plan for it then. Don't pay for an IP 'just in case'.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is SSH on a weird port on the NAT plans?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On NAT there's no public IP to own port 22, so your SSH is forwarded from a high port on the shared address (the panel shows the exact host:port). It's normal and it works fine — just point your SSH client at the port we give you instead of 22.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is a dedicated IP more private?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's the opposite trade-off. A dedicated IP is yours alone — great for reputation and reliability, but your traffic doesn't blend into a crowd. NAT shares an outbound address with other servers, which hides you more but is useless for anything that must be reached from outside. Choose by what the server does, not by a vague sense of privacy.&lt;/p&gt;

</description>
      <category>vps</category>
      <category>networking</category>
      <category>selfhosted</category>
      <category>devops</category>
    </item>
    <item>
      <title>VPS for a Proxy Server (SOCKS5 / HTTP, your own IP)</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Tue, 11 Aug 2026 16:20:05 +0000</pubDate>
      <link>https://dev.to/eqvps/vps-for-a-proxy-server-socks5-http-your-own-ip-1cfb</link>
      <guid>https://dev.to/eqvps/vps-for-a-proxy-server-socks5-http-your-own-ip-1cfb</guid>
      <description>&lt;p&gt;A proxy is just a machine that makes requests on your behalf, so the other side sees the proxy's IP instead of yours. Rent a VPS with a dedicated IP, run a proxy daemon on it, and you have a fixed exit address that's yours alone — no monthly per-GB metering, no shared pool, no one else's abuse landing on your IP.&lt;/p&gt;

&lt;p&gt;The catch is that a proxy only works if clients can connect &lt;em&gt;to&lt;/em&gt; it. That's inbound traffic on a port, which is exactly what a NAT plan won't give you. So this is a dedicated-IP job from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, is this the proxy you actually want?
&lt;/h2&gt;

&lt;p&gt;Be honest with yourself about the use case, because "proxy" covers two very different needs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A fixed exit IP you control&lt;/strong&gt; — this is what a self-hosted proxy is great at. You want a stable outbound address to put on an API allowlist, a private route for your own traffic, a way to test how your app looks from a German IP, or a clean IP you're not sharing with strangers. One static datacenter IP is a feature here, not a limit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A rotating residential pool&lt;/strong&gt; for scraping thousands of pages without getting blocked — this is &lt;em&gt;not&lt;/em&gt; it. You get one datacenter IP. Some targets block datacenter ranges outright, and there's no rotation. If your job is high-volume scraping behind rotation, a single VPS proxy will get rate-limited fast, and we'd rather tell you now than take $16 for the wrong thing.&lt;/p&gt;

&lt;p&gt;If the first one is you, read on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A dedicated-IP plan.&lt;/strong&gt; The proxy listens on a port your clients dial in to; NAT plans don't forward arbitrary ports. &lt;strong&gt;Small-IP ($16/mo — 4 vCPU, 4 GB RAM, your own public IPv4)&lt;/strong&gt; handles real traffic and several clients comfortably. A single personal proxy is fine on &lt;strong&gt;Nano-IP ($8/mo)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unmetered traffic&lt;/strong&gt;, which every plan here has — a proxy that bills you per GB is a proxy you stop using.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ubuntu 24.04&lt;/strong&gt; and five minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The setup: 3proxy (SOCKS5 + HTTP, one daemon)
&lt;/h2&gt;

&lt;p&gt;3proxy is tiny, does both SOCKS5 and HTTP, and has clean auth. Install it, then write a minimal config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; 3proxy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create &lt;code&gt;/etc/3proxy/3proxy.cfg&lt;/code&gt;:&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="c"&gt;# resolve names, keep a small log
&lt;/span&gt;&lt;span class="n"&gt;nserver&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;.&lt;span class="m"&gt;1&lt;/span&gt;.&lt;span class="m"&gt;1&lt;/span&gt;.&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;nscache&lt;/span&gt; &lt;span class="m"&gt;65536&lt;/span&gt;
&lt;span class="n"&gt;log&lt;/span&gt; /&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;log&lt;/span&gt;/&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="n"&gt;proxy&lt;/span&gt;/&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="n"&gt;proxy&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt; &lt;span class="n"&gt;D&lt;/span&gt;
&lt;span class="n"&gt;rotate&lt;/span&gt; &lt;span class="m"&gt;7&lt;/span&gt;

&lt;span class="c"&gt;# ONE user — change these
&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="n"&gt;proxyuser&lt;/span&gt;:&lt;span class="n"&gt;CL&lt;/span&gt;:&lt;span class="n"&gt;a&lt;/span&gt;-&lt;span class="n"&gt;long&lt;/span&gt;-&lt;span class="n"&gt;random&lt;/span&gt;-&lt;span class="n"&gt;password&lt;/span&gt;

&lt;span class="c"&gt;# require that login for every connection
&lt;/span&gt;&lt;span class="n"&gt;auth&lt;/span&gt; &lt;span class="n"&gt;strong&lt;/span&gt;

&lt;span class="c"&gt;# SOCKS5 on 1080, HTTP on 3128
&lt;/span&gt;&lt;span class="n"&gt;socks&lt;/span&gt; -&lt;span class="n"&gt;p1080&lt;/span&gt;
&lt;span class="n"&gt;proxy&lt;/span&gt; -&lt;span class="n"&gt;p3128&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /var/log/3proxy
systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; 3proxy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now point your client at &lt;code&gt;your.server.ip:1080&lt;/code&gt; (SOCKS5) or &lt;code&gt;:3128&lt;/code&gt; (HTTP) with that username and password. &lt;code&gt;curl&lt;/code&gt; is the quickest test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-x&lt;/span&gt; socks5://proxyuser:PASSWORD@YOUR.SERVER.IP:1080 https://ifconfig.me
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it prints your server's IP, you're routing through your own proxy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lock it down — this part is not optional
&lt;/h2&gt;

&lt;p&gt;An open proxy on a public IP is found by scanners within hours and turned into someone else's spam relay. Two rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Auth on, always.&lt;/strong&gt; The &lt;code&gt;auth strong&lt;/code&gt; line above means no login, no connection. Keep it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall the ports&lt;/strong&gt; to the IPs that actually use them. If it's just you:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ufw allow 22/tcp
ufw allow from YOUR.HOME.IP to any port 1080 proto tcp
ufw allow from YOUR.HOME.IP to any port 3128 proto tcp
ufw &lt;span class="nt"&gt;--force&lt;/span&gt; &lt;span class="nb"&gt;enable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your clients roam and you can't pin an IP, at least keep auth strong and a long password, and watch the log. Abuse coming out of your server is on you — no-KYC means we don't ask who you are, not that anything goes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this beats a commercial proxy
&lt;/h2&gt;

&lt;p&gt;You control the box, so there's no third party logging which sites you route through it. The IP is static and yours, which is the whole point for an allowlist or a stable outbound route. And you pay for it in crypto with an email address — a proxy tied to your real name and card isn't much of a private route.&lt;/p&gt;

&lt;p&gt;The trade-off, again, honestly: it's one IP, and it's a datacenter IP. Perfect as a fixed exit you own; wrong as a rotating scraping pool. If that's the exit you want, &lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP at $16/mo&lt;/a&gt; is the sweet spot — or &lt;a href="https://eqvps.com/en/products/nano-ip" rel="noopener noreferrer"&gt;Nano-IP at $8&lt;/a&gt; for a single light personal proxy.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://eqvps.com/en/use-cases/vps-for-vpn" rel="noopener noreferrer"&gt;a personal VPN&lt;/a&gt; if you want to tunnel &lt;em&gt;all&lt;/em&gt; your traffic instead of per-app, and &lt;a href="https://eqvps.com/en/use-cases/vps-for-bypassing-censorship" rel="noopener noreferrer"&gt;bypassing censorship&lt;/a&gt; if a plain proxy gets fingerprinted where you are.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which plan do I need for a proxy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A dedicated-IP plan, because a proxy has to accept inbound connections on its port — NAT plans don't forward arbitrary ports. Small-IP ($16/mo — 4 vCPU, 4 GB RAM, your own public IPv4) is the comfortable pick when you'll push real traffic or a few users. A single light personal proxy runs fine on Nano-IP ($8/mo).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is a self-hosted proxy the same as buying residential proxies?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No, and it's important. Your server's IP is a datacenter address, static and yours alone. That's perfect for a fixed exit you control — API allowlists, a stable outbound IP, a private route. It is not a rotating residential pool: some sites block datacenter ranges, and you get one IP, not thousands. For large-scale scraping behind rotation, this isn't the tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOCKS5 or HTTP — which should I run?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SOCKS5 is more general: it forwards any TCP (and UDP) traffic, so it works for more than browsers. HTTP proxies are simpler and fine if you only need web traffic. 3proxy, which we use below, does both from one config, so you don't really have to choose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will people be able to abuse my open proxy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Only if you leave it open. Always require a username and password, and firewall the port. An unauthenticated proxy on a public IP gets found and abused within hours — and abuse from your server is your responsibility. The setup below turns auth on from the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you ask for ID?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Email to register, USDC or USDT to pay. A proxy you rent with your real name and card isn't really a private route — so we don't ask for either.&lt;/p&gt;

</description>
      <category>vps</category>
      <category>proxy</category>
      <category>privacy</category>
      <category>networking</category>
    </item>
    <item>
      <title>Run all your self-hosted services behind one IP with a reverse proxy</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Mon, 10 Aug 2026 11:26:22 +0000</pubDate>
      <link>https://dev.to/eqvps/run-all-your-self-hosted-services-behind-one-ip-with-a-reverse-proxy-m3c</link>
      <guid>https://dev.to/eqvps/run-all-your-self-hosted-services-behind-one-ip-with-a-reverse-proxy-m3c</guid>
      <description>&lt;p&gt;There's a point in every self-hosting habit where you stop wanting a server per thing. You've got an app, its database, maybe n8n for automations, a status dashboard, a small API — and running each on its own tiny VPS means five IPs, five bills, five machines to patch. It's tidier, and cheaper, to put them on one box behind one IP.&lt;br&gt;
The trick that makes this work is a &lt;strong&gt;reverse proxy&lt;/strong&gt;. Caddy, nginx or Traefik sits on the public ports 80/443 and routes by hostname: &lt;code&gt;app.you.com&lt;/code&gt; goes to your app, &lt;code&gt;n8n.you.com&lt;/code&gt; goes to n8n, &lt;code&gt;db-admin.you.com&lt;/code&gt; to your admin panel. Every service listens only on localhost; the proxy is the single public door, and it hands each subdomain its own HTTPS certificate automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plan for this
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://eqvps.com/en/products/medium-ip" rel="noopener noreferrer"&gt;Medium-IP&lt;/a&gt; ($20/mo)&lt;/strong&gt; is the natural fit: 6 vCPU, 6 GB RAM, 45 GB NVMe, a dedicated IPv4 with every port open. That's room for a handful of small services plus their databases without them fighting for resources.&lt;br&gt;
Two honest boundaries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you're really running just &lt;strong&gt;one app plus a database&lt;/strong&gt;, you don't need Medium — &lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP&lt;/a&gt; ($16) does it.&lt;/li&gt;
&lt;li&gt;If the services are &lt;strong&gt;memory-hungry&lt;/strong&gt; — a big database, a large vector store, in-memory processing — you'll hit the RAM ceiling fast, and that's where a &lt;a href="https://eqvps.com/en/pro" rel="noopener noreferrer"&gt;high-memory Pro plan&lt;/a&gt; makes more sense than stacking on a 6 GB box.
## Setup shape
​

&lt;code&gt;bash
# Ubuntu 24.04, Medium-IP — Docker + Compose, Caddy as the front door
curl -fsSL https://get.docker.com | sh
# docker-compose.yml: your services on localhost, Caddy routing by subdomain
# Caddy auto-issues HTTPS for each hostname you point at the IP
docker compose up -d
​&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Point your subdomains' A records at the one IP, list them in the Caddyfile, and each service comes up on its own clean HTTPS URL. Add reverse DNS from the dashboard if any of them send mail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why here
&lt;/h2&gt;

&lt;p&gt;One dedicated IP you fully control, everything behind it, paid as a single flat crypto bill with no KYC. It's the homelab-on-a-VPS pattern: your stack, your machine, one predictable monthly number. When one box stops being enough, you split the heaviest service onto its own — but most people run comfortably on one for a long time. &lt;a href="https://eqvps.com/en/products/medium-ip" rel="noopener noreferrer"&gt;Medium-IP&lt;/a&gt; is where that starts.&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>docker</category>
      <category>devops</category>
      <category>homelab</category>
    </item>
    <item>
      <title>Self-hosting email: the two things that actually decide deliverability</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Mon, 10 Aug 2026 11:23:53 +0000</pubDate>
      <link>https://dev.to/eqvps/self-hosting-email-the-two-things-that-actually-decide-deliverability-5ghp</link>
      <guid>https://dev.to/eqvps/self-hosting-email-the-two-things-that-actually-decide-deliverability-5ghp</guid>
      <description>&lt;p&gt;Most guides about self-hosting email skip the part that actually decides whether it works, and it isn't the software. You can set up Postfix in an afternoon. Whether your mail lands in inboxes or vanishes into spam folders comes down to two things: &lt;strong&gt;a dedicated IP and correct reverse DNS.&lt;/strong&gt; Everything else is detail.&lt;br&gt;
That's why email is the one workload where a NAT plan is a non-starter. Receiving mail means a server the world can reach on port 25 — you need a public IP of your own. And you need that IP's reputation to be &lt;em&gt;yours&lt;/em&gt;, not shared with whatever a hundred other users are doing. A dedicated IP gives you both.&lt;/p&gt;

&lt;h2&gt;
  
  
  What matters, in order
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A dedicated IPv4&lt;/strong&gt; — so you can listen on port 25 and own the IP's reputation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reverse DNS (PTR) that matches your hostname&lt;/strong&gt; — receiving servers reject mail without it. On our dedicated-IP plans you set this yourself in the dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SPF, DKIM, DMARC records&lt;/strong&gt; — the DNS trio that proves your mail is really from you. Get these right and you're in inboxes; skip them and you're in spam.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A warm IP&lt;/strong&gt; — send gently at first. A brand-new IP blasting volume looks like a spammer.
We wrote the &lt;a href="https://eqvps.com/en/blog/running-a-mail-server-vps" rel="noopener noreferrer"&gt;full walkthrough in the blog&lt;/a&gt; — this page is the short version of &lt;em&gt;why the plan matters&lt;/em&gt;.
## The plan
&lt;strong&gt;&lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP&lt;/a&gt; ($16/mo)&lt;/strong&gt; — 4 vCPU, 4 GB RAM, 35 GB NVMe, a dedicated IPv4, port 25 open, and reverse DNS you control. That's enough for a personal or small-team server: Mailcow or Mailu if you want a full stack with a web UI, or a lean Postfix + Dovecot if you like it minimal. Several domains and heavier volume? &lt;strong&gt;&lt;a href="https://eqvps.com/en/products/medium-ip" rel="noopener noreferrer"&gt;Medium-IP&lt;/a&gt; ($20/mo)&lt;/strong&gt;.
## Who this is honestly for
Self-hosted mail is more work than a hosted inbox, and it rewards patience with DNS and IP warm-up. What you get in return: your mail data on a server you control, a flat price paid in crypto with no KYC, and nobody scanning your messages. If you're running email for privacy or independence, that trade is the whole point. If you just want a mailbox that works out of the box, a hosted provider is the easier road — and that's a fair choice too.
Ready to run your own? &lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;Small-IP&lt;/a&gt; is where to start, then follow the &lt;a href="https://eqvps.com/en/blog/running-a-mail-server-vps" rel="noopener noreferrer"&gt;setup guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>selfhosted</category>
      <category>email</category>
      <category>devops</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Why your website won't load on a cheap VPS (and the fix)</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Mon, 10 Aug 2026 11:17:18 +0000</pubDate>
      <link>https://dev.to/eqvps/run-all-your-self-hosted-services-behind-one-ip-with-a-reverse-proxy-28cf</link>
      <guid>https://dev.to/eqvps/run-all-your-self-hosted-services-behind-one-ip-with-a-reverse-proxy-28cf</guid>
      <description>&lt;p&gt;The thing that trips people up hosting a website on a cheap VPS is the network setup. They grab the cheapest plan, deploy nginx, point a domain at it — and nothing loads. Because the cheapest plan is behind NAT, and a site behind NAT can't be reached from the outside on port 443.&lt;/p&gt;

&lt;p&gt;A website is the opposite of a bot. A bot makes outbound calls and never needs an inbound port. A website lives on inbound ports 80 and 443 — the whole point is that strangers connect to it. That requires a public IP of your own, which is exactly what a dedicated-IP plan gives you and a NAT plan doesn't.&lt;/p&gt;

&lt;p&gt;What you actually need&lt;/p&gt;

&lt;p&gt;For a normal site — a CMS, a landing page with a build step, a small app plus a database — Small-IP ($16/mo) is the comfortable fit: 4 vCPU, 4 GB RAM, 35 GB NVMe, and a dedicated IPv4 with every port open. Point your domain's A record at the IP, run nginx or Caddy, and Let's Encrypt handles HTTPS on its own.&lt;/p&gt;

&lt;p&gt;Running several sites, or expecting real traffic? Medium-IP ($20/mo) gives you 6 vCPU / 6 GB and more disk — enough to co-locate a few services behind the one IP.&lt;/p&gt;

&lt;p&gt;If your "site" is really just an outbound worker with no public front — a scraper, a bot, an API client — then you don't need any of this; a NAT plan from $3 is the honest answer. Dedicated IP is for things the world connects to.&lt;/p&gt;

&lt;p&gt;Setup, briefly&lt;/p&gt;

&lt;p&gt;On Ubuntu 24.04 (Small-IP), point yourdomain.com A record to your IP first, then:&lt;br&gt;
apt update &amp;amp;&amp;amp; apt install -y nginx certbot python3-certbot-nginx&lt;br&gt;
certbot --nginx -d yourdomain.com&lt;/p&gt;

&lt;p&gt;Full root, so WordPress, a Node/Next app, a Go binary, a static bundle — whatever your stack is, it runs. Reverse DNS you can set yourself from the dashboard, which matters if you'll also send email from the box.&lt;/p&gt;

&lt;p&gt;Why here specifically&lt;/p&gt;

&lt;p&gt;Two reasons people pick a no-KYC crypto host for a site instead of a mainstream one: they'd rather not tie the server to a card and an identity, and they want a flat monthly price paid in crypto with no surprises. It's not the cheapest per-gigabyte hosting on earth — it's a real public server you fully control, rented privately. If that's what you're after, Small-IP is where most sites start: &lt;a href="https://eqvps.com/en/products/small-ip" rel="noopener noreferrer"&gt;https://eqvps.com/en/products/small-ip&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vps</category>
      <category>webdev</category>
      <category>selfhosted</category>
      <category>hosting</category>
    </item>
    <item>
      <title>Self-hosted RAG at scale: how much RAM a vector index really eats</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 09 Aug 2026 11:45:51 +0000</pubDate>
      <link>https://dev.to/eqvps/self-hosted-rag-at-scale-how-much-ram-a-vector-index-really-eats-3148</link>
      <guid>https://dev.to/eqvps/self-hosted-rag-at-scale-how-much-ram-a-vector-index-really-eats-3148</guid>
      <description>&lt;p&gt;Every RAG tutorial runs on a laptop with a few hundred documents, and it feels effortless. Then you point it at a real corpus — a company's docs, years of tickets, a knowledge base — and suddenly memory is the whole conversation.&lt;/p&gt;

&lt;p&gt;RAG doesn't scale by CPU. It scales by RAM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the index wants memory
&lt;/h2&gt;

&lt;p&gt;Retrieval works by turning every chunk of text into an embedding — a vector, a few hundred to a couple thousand numbers long. Search means comparing your query vector against all of them, fast. "Fast" is the operative word: for low latency the index needs to live in RAM. On disk it works, but every query pays a penalty, and low-latency retrieval was the point of self-hosting in the first place.&lt;/p&gt;

&lt;p&gt;So the memory bill scales with two things: how many chunks you have, and how wide each vector is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real numbers, roughly
&lt;/h2&gt;

&lt;p&gt;Measure your own — dimension and index type move this a lot — but as a starting feel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A few hundred thousand embeddings&lt;/strong&gt; — comfortable in 2–4 GB. A personal knowledge base, a single product's docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low millions&lt;/strong&gt; — with the app, the model client, and the OS around it, plan for 16–32 GB. This is a serious company knowledge base or a multi-source RAG.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tens of millions, or high-dimension vectors&lt;/strong&gt; — now you're at 48–80 GB, and past that across several boxes. Large document estates, multi-tenant retrieval, or you're keeping several indexes hot at once.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A &lt;a href="https://eqvps.com/en/blog/high-memory-vps-for-ai-agents" rel="noopener noreferrer"&gt;multi-agent system&lt;/a&gt; that also holds a big index stacks both costs on the same box — that's how a 32 GB plan turns into a 64 GB one quietly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The engine choice, briefly
&lt;/h2&gt;

&lt;p&gt;If you already run Postgres, pgvector is the least-effort option — it's an extension, not a new service to babysit. When you have millions of vectors and want fast filtered search, a dedicated engine like Qdrant or Weaviate earns the separate process. Don't over-engineer it on day one; run what you already operate and split it out when search actually slows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why bother self-hosting
&lt;/h2&gt;

&lt;p&gt;Two reasons people actually do this, and neither is "to save a few dollars":&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy.&lt;/strong&gt; Embeddings aren't abstract — they encode the text they came from. Your docs, your customers' content, your internal notes, turned into vectors and shipped to a third party's servers. Self-hosting keeps that on a machine you control. If the data is sensitive enough that you're also &lt;a href="https://eqvps.com/en/blog/no-kyc-high-memory-vps-price" rel="noopener noreferrer"&gt;paying in crypto with no KYC&lt;/a&gt;, a managed vector cloud undoes the whole point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flat cost.&lt;/strong&gt; Managed vector services bill by vectors stored and queries run. A VPS is one monthly number and you can hammer it as hard as you like. At scale, predictable beats metered.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for sizing
&lt;/h2&gt;

&lt;p&gt;Start by measuring your corpus, not by guessing. Get your embedding count and dimension, load a sample, watch the resident memory, extrapolate. Then pick a plan with headroom for the index plus everything around it — the app, the model client, room to grow.&lt;/p&gt;

&lt;p&gt;For anything past a couple million vectors held privately, the &lt;a href="https://eqvps.com/en/pro" rel="noopener noreferrer"&gt;Pro line&lt;/a&gt; runs 32 to 80 GB with a dedicated IP and nightly backups, which matters when the index &lt;em&gt;is&lt;/em&gt; the product and losing it hurts.&lt;/p&gt;

</description>
      <category>database</category>
      <category>performance</category>
      <category>rag</category>
      <category>search</category>
    </item>
  </channel>
</rss>
