<?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%2F347785ff-b260-465b-953f-f698c6621e3f.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>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>cryptocurrency</category>
      <category>networking</category>
      <category>selfhosted</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>cryptocurrency</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;p&gt;Why the index wants memory&lt;br&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;p&gt;Real numbers, roughly&lt;br&gt;
Measure your own — dimension and index type move this a lot — but as a starting feel:&lt;/p&gt;

&lt;p&gt;A few hundred thousand embeddings — comfortable in 2–4 GB. A personal knowledge base, a single product's docs.&lt;br&gt;
Low millions — 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;br&gt;
Tens of millions, or high-dimension vectors — 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;br&gt;
A multi-agent system 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;p&gt;The engine choice, briefly&lt;br&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;p&gt;Why bother self-hosting&lt;br&gt;
Two reasons people actually do this, and neither is "to save a few dollars":&lt;/p&gt;

&lt;p&gt;Privacy. 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 paying in crypto with no KYC, a managed vector cloud undoes the whole point.&lt;/p&gt;

&lt;p&gt;Flat cost. 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;p&gt;What this means for sizing&lt;br&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 Pro line runs 32 to 80 GB with a dedicated IP and nightly backups, which matters when the index is the product and losing it hurts.&lt;/p&gt;

</description>
      <category>database</category>
      <category>performance</category>
      <category>rag</category>
      <category>search</category>
    </item>
    <item>
      <title>Hosting local LLM inference privately: what a CPU VPS can and can't do</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 09 Aug 2026 11:45:10 +0000</pubDate>
      <link>https://dev.to/eqvps/hosting-local-llm-inference-privately-what-a-cpu-vps-can-and-cant-do-45ii</link>
      <guid>https://dev.to/eqvps/hosting-local-llm-inference-privately-what-a-cpu-vps-can-and-cant-do-45ii</guid>
      <description>&lt;p&gt;Let's be honest up front: if you want fast, cheap, high-quality generation, call an API. A CPU VPS will not beat a datacenter full of GPUs, and anyone telling you otherwise is selling something.&lt;/p&gt;

&lt;p&gt;So why self-host inference at all? One reason, and it's a good one: the model on your server never sends your prompts anywhere.&lt;/p&gt;

&lt;p&gt;What CPU inference actually looks like&lt;br&gt;
You can run real models on CPU with enough RAM. A 7–8B model quantized to 4-bit works. A 13B works. You can even push a 30B-class model if you've got the memory. What you can't do is make it fast — output comes at a few tokens per second, not the instant stream an API gives you.&lt;/p&gt;

&lt;p&gt;That's the honest trade. For interactive chat it's frustrating. For background work — summarizing documents overnight, classifying a queue, enriching data on a schedule — a few tokens per second is completely fine, and nobody's watching the clock.&lt;/p&gt;

&lt;p&gt;The RAM math&lt;br&gt;
The model has to sit in memory, quantized or not, plus overhead for context and the runtime:&lt;/p&gt;

&lt;p&gt;7–8B, 4-bit — around 6–8 GB. Runs on a mid plan.&lt;br&gt;
13B, 4-bit — roughly 10–16 GB.&lt;br&gt;
30B-class, quantized — 24–48 GB, depending on quantization.&lt;br&gt;
Bigger, or higher precision — you're into 64–80 GB fast — and past 80 GB no single Pro box fits, still CPU-slow.&lt;br&gt;
This is why "run a local model" quietly becomes a high-memory question. The model is the memory footprint. Add a RAG index or agents on the same box and the numbers stack.&lt;/p&gt;

&lt;p&gt;Ollama vs vLLM, briefly&lt;br&gt;
Ollama is the easy door in — install, ollama run, done. It's the right tool for a private single-user setup where you just want the model available. vLLM is built for serving throughput: more setup, better under concurrent load, worth it when you're actually handling volume. Start with Ollama; reach for vLLM when you're serving real traffic.&lt;/p&gt;

&lt;p&gt;Where private-first genuinely wins&lt;br&gt;
The case for self-hosted inference isn't speed or cost — it's that some data can't leave. Legal documents. Medical records. Proprietary code. Anything where sending the prompt to a third-party API is off the table for policy or trust reasons. A slower model that runs entirely on your machine beats a fast one that logs everything you send it.&lt;/p&gt;

&lt;p&gt;And if the data is that sensitive, the payment probably should be private too. Renting the box with crypto and no KYC keeps the whole chain — server, model, prompts, billing — off anyone's identity records. That's the actual pitch: not "cheaper inference," but "inference nobody else can see."&lt;/p&gt;

&lt;p&gt;Bottom line&lt;br&gt;
For speed and quality, use an API — no shame in it. Self-host when privacy is the requirement and slower is acceptable. Size for the model plus its context plus anything else sharing the box, and don't expect GPU speed from CPU.&lt;/p&gt;

&lt;p&gt;When the model needs real memory, the Pro line runs 32 to 80 GB with a dedicated IP and nightly backups — enough to hold a serious quantized model with room for context around it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>selfhosted</category>
      <category>pgaichallenge</category>
    </item>
    <item>
      <title>Why a no-KYC high-memory VPS costs more than the $/GB math suggests</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 09 Aug 2026 11:43:52 +0000</pubDate>
      <link>https://dev.to/eqvps/why-a-no-kyc-high-memory-vps-costs-more-than-the-gb-math-suggests-h0c</link>
      <guid>https://dev.to/eqvps/why-a-no-kyc-high-memory-vps-costs-more-than-the-gb-math-suggests-h0c</guid>
      <description>&lt;p&gt;If you go looking for a 64 or 80 GB VPS and you land on our Pro line, the first thing you'll probably do is divide the price by the RAM. Then you'll open a mainstream host in another tab, do the same math, and think: these guys are charging a premium for the same gigabytes.&lt;/p&gt;

&lt;p&gt;You're not wrong about the arithmetic. Let me tell you why the arithmetic is the wrong lens here.&lt;/p&gt;

&lt;p&gt;The honest part first&lt;br&gt;
Per gigabyte of RAM, a big commercial host is cheaper than us. Sometimes a lot cheaper. If your only requirement is "I need a box with a lot of memory and I don't care about anything else," you should go buy that box. I'm not going to pretend a Pro plan wins a pure $/GB race, because it doesn't, and you'd catch me lying inside five minutes.&lt;/p&gt;

&lt;p&gt;So if that's you — go. Seriously. No hard feelings.&lt;/p&gt;

&lt;p&gt;Still here? Then you probably have a second requirement, and it changes everything.&lt;/p&gt;

&lt;p&gt;Try to actually buy it&lt;br&gt;
Go and try to rent 80 GB of RAM without a credit card and without uploading an ID. Not "sign up and add a card you promise not to use" — actually pay with crypto, with nothing but an email, and get root.&lt;/p&gt;

&lt;p&gt;You'll find that almost nobody sells that. The cheap per-GB hosts are cheap partly because they run you through payment rails and identity checks that filter out exactly the customers who want to pay in USDC and not say who they are. The moment you need real memory and no KYC, the field of options collapses to a handful — and the per-GB price stops being comparable, because you're no longer shopping for the same product.&lt;/p&gt;

&lt;p&gt;That's the whole point. Pro isn't "expensive RAM." It's "RAM you can get on terms almost nobody offers."&lt;/p&gt;

&lt;p&gt;What the price is actually for&lt;br&gt;
When you pay for a Pro plan you're buying a bundle that normally doesn't come together:&lt;/p&gt;

&lt;p&gt;High memory — 32 to 80 GB, enough to hold a real vector index in RAM or run a fleet of agents that share state.&lt;br&gt;
No identity check — email and crypto, that's it.&lt;br&gt;
A dedicated IPv4 with every port open, so you can actually host something that listens (an API, a model server, a VPN endpoint), not just make outbound calls.&lt;br&gt;
Nightly auto-backups on the Pro line, so a 64 GB box full of your work isn't one bad command away from gone.&lt;br&gt;
Agent-orderable — an AI agent can provision it over MCP or REST without a human in the loop.&lt;br&gt;
Any one of those you can find somewhere. The combination, paid in crypto, is the rare thing.&lt;/p&gt;

&lt;p&gt;Who this is genuinely for&lt;br&gt;
A few workloads eat memory for real reasons, not because someone over-provisioned:&lt;/p&gt;

&lt;p&gt;Self-hosted RAG at scale. Good vector search wants the index in RAM. A few hundred thousand embeddings fit in a couple of gigs; a few million, with the app and OS around them, and you're looking at 32–48 GB before you've done anything clever. Keep it on disk instead and search gets slow — the whole reason you self-hosted evaporates.&lt;/p&gt;

&lt;p&gt;Multi-agent systems that hold state. A crew of agents that only fire off API calls is light. But give them shared memory, long histories, a working set they pass around, and the RAM curve bends up fast. This is where a single 64 GB box quietly replaces three smaller ones you'd otherwise be juggling.&lt;/p&gt;

&lt;p&gt;Private inference and data work. Running a quantized model on CPU, or crunching a dataset that has to stay in memory, or co-locating several production services — memory-bound, all of it. And if the data is sensitive enough that you're paying in crypto to avoid a paper trail, a server you fully control is the point, not a nice-to-have.&lt;/p&gt;

&lt;p&gt;When you should not buy Pro&lt;br&gt;
Let me save you money. If KYC genuinely doesn't bother you and you just want cheap RAM — a mainstream host wins, take it. If your agents only call an LLM API and barely touch local memory, our own NAT and dedicated-IP plans from $3–20 are plenty; you don't need Pro. And if you need a GPU for real-time inference, no CPU-and-RAM box (ours or anyone's) is the answer.&lt;/p&gt;

&lt;p&gt;Pro earns its price in exactly one situation: you need a lot of memory and you need to pay privately, with no card and no ID. When both are true, the per-GB comparison isn't just unfavorable to us — it's measuring the wrong thing, because the cheap option was never actually available to you.&lt;/p&gt;

&lt;p&gt;That's the plan. If it fits, the Pro line starts at 32 GB; size up from there.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vps</category>
      <category>privacy</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>High-memory VPS for AI agents: when your fleet actually needs the RAM</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 09 Aug 2026 11:42:24 +0000</pubDate>
      <link>https://dev.to/eqvps/high-memory-vps-for-ai-agents-when-your-fleet-actually-needs-the-ram-2acc</link>
      <guid>https://dev.to/eqvps/high-memory-vps-for-ai-agents-when-your-fleet-actually-needs-the-ram-2acc</guid>
      <description>&lt;p&gt;The mistake I see most often with agent hosting is sizing for the wrong thing. Someone runs one agent, it uses 400 MB, and they conclude agents are cheap to host. Then they scale to a real crew and the box starts swapping at 3 a.m.&lt;/p&gt;

&lt;p&gt;One agent is cheap. That's not the interesting case.&lt;/p&gt;

&lt;p&gt;Where the memory actually goes&lt;br&gt;
An agent that only fires off API calls to a model is light — it's mostly waiting on the network. You could run a dozen of those on a small plan and never notice.&lt;/p&gt;

&lt;p&gt;The RAM disappears when agents start holding state. Conversation history that grows every turn. A working set several agents read and write. A vector store for long-term memory sitting in the same process. The moment your architecture stops being "call API, forget" and becomes "remember, coordinate, hand off," memory becomes the constraint, not CPU.&lt;/p&gt;

&lt;p&gt;CrewAI, LangGraph, AutoGPT-style loops — they all trend this way as they get serious. The framework doesn't eat the RAM; the state does.&lt;/p&gt;

&lt;p&gt;Rough sizing, honestly&lt;br&gt;
I won't pretend there's a formula, because there isn't — it depends entirely on how much each agent keeps around. But a practical feel from running these:&lt;/p&gt;

&lt;p&gt;Light, API-bound agents — you don't need Pro at all here; a NAT or dedicated-IP plan ($3–20) handles it. Pro earns its place once shared state pushes you past ~32 GB.&lt;br&gt;
32 GB — the sweet spot for a real multi-agent system: 5–10 agents with shared memory plus a vector database that's actually useful. Most people land here.&lt;br&gt;
64 GB — bigger fleets, longer histories, a memory index in the millions of vectors, or several services co-located. This is where one box replaces the three smaller ones you'd otherwise juggle.&lt;br&gt;
80 GB — heavy, memory-bound work: large in-memory datasets, many concurrent agents, or agents plus local model inference on the same host.&lt;br&gt;
Start below where you think you need to be. Watch htop for a day. Resize up when you see swap, not before — guessing high just wastes money.&lt;/p&gt;

&lt;p&gt;The part that's hard to buy&lt;br&gt;
Here's the thing that makes this awkward: renting 64 GB of RAM is easy. Renting 64 GB with crypto and no identity check is not. Most hosts that sell serious memory cheaply do it behind a card and a KYC form.&lt;/p&gt;

&lt;p&gt;If your agent provisions its own server, or the workload touches data you'd rather not tie to a name, that combination — high memory, crypto, no KYC, and orderable by the agent itself over MCP — is the actual product. It's not cheaper per gigabyte, and I've written separately about why that comparison misleads. It's available on terms almost nobody offers.&lt;/p&gt;

&lt;p&gt;So what do you do&lt;br&gt;
If your agents are light and API-bound, don't overthink it — a small NAT or dedicated-IP plan is plenty, skip the whole high-memory question. If you're running a real fleet that holds state, size by what's actually in memory, start at 32 GB, and move up when the graph tells you to.&lt;/p&gt;

&lt;p&gt;When you're there, the Pro line covers 32 to 80 GB with a dedicated IP and nightly backups. Pick the tier that matches your working set, not your ambitions.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>selfhosted</category>
      <category>llmops</category>
      <category>agents</category>
    </item>
    <item>
      <title>Run a CrewAI multi-agent crew on a VPS</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Thu, 06 Aug 2026 17:31:49 +0000</pubDate>
      <link>https://dev.to/eqvps/run-a-crewai-multi-agent-crew-on-a-vps-2l5i</link>
      <guid>https://dev.to/eqvps/run-a-crewai-multi-agent-crew-on-a-vps-2l5i</guid>
      <description>&lt;p&gt;Your CrewAI crew runs great on your laptop. The agents talk to each other, the researcher hands off to the writer, the whole thing hums — right up until you close the lid and it all stops. Or your wifi drops mid-task. Or you reboot and forget to restart it.&lt;/p&gt;

&lt;p&gt;A crew that only runs while you're watching isn't automation. It's a demo. Moving it to a VPS is what turns it into something that actually works while you sleep.&lt;/p&gt;

&lt;p&gt;Why a server, not your machine&lt;br&gt;
The pitch is simple: a VPS is a computer that never closes its lid. It has a fixed IP, it doesn't sleep, and if the process dies it can bring itself back. For a multi-agent crew — which by design runs long, chatty, multi-step jobs — that's the difference between "it worked once" and "it's been running for three weeks."&lt;/p&gt;

&lt;p&gt;There's a second reason that trips people up in a good way: you don't need a powerful machine. More on that next, because it's the question everyone asks first.&lt;/p&gt;

&lt;p&gt;No, you don't need a GPU&lt;br&gt;
This is the part people get wrong about hosting agents. CrewAI is an orchestrator. It decides which agent acts, in what order, with what context — and then it asks a language model to do the actual reasoning. That model almost always lives behind an API: you send a request to OpenAI or Anthropic, they run it on their GPUs, you get text back.&lt;/p&gt;

&lt;p&gt;So your server does three things: run Python, hold the crew's state, and make HTTPS calls. None of that touches a GPU. A plain CPU VPS is exactly right. The only time that changes is if you also want to run the model locally — but that's a separate, heavier project, and most crews don't.&lt;/p&gt;

&lt;p&gt;Practically: a 1–2 GB plan runs a small crew without breaking a sweat. Go to 4 GB if you're running several crews at once, holding big conversation histories in RAM, or bolting on a vector database for long-term agent memory.&lt;/p&gt;

&lt;p&gt;The actual setup&lt;br&gt;
Fresh Ubuntu box, root in about a minute after ordering. Here's the whole thing:&lt;/p&gt;

&lt;h1&gt;
  
  
  Python + venv
&lt;/h1&gt;

&lt;p&gt;apt update &amp;amp;&amp;amp; apt install -y python3-venv python3-pip&lt;br&gt;
python3 -m venv ~/crew &amp;amp;&amp;amp; source ~/crew/bin/activate&lt;/p&gt;

&lt;h1&gt;
  
  
  CrewAI
&lt;/h1&gt;

&lt;p&gt;pip install crewai crewai-tools&lt;/p&gt;

&lt;h1&gt;
  
  
  your project
&lt;/h1&gt;

&lt;p&gt;mkdir ~/mycrew &amp;amp;&amp;amp; cd ~/mycrew&lt;/p&gt;

&lt;h1&gt;
  
  
  copy your crew.py and .env up here (scp / git clone)
&lt;/h1&gt;

&lt;p&gt;Your .env holds the one secret that matters — the LLM API key:&lt;/p&gt;

&lt;p&gt;OPENAI_API_KEY=sk-...&lt;/p&gt;

&lt;h1&gt;
  
  
  or ANTHROPIC_API_KEY, etc.
&lt;/h1&gt;

&lt;p&gt;Then a normal python crew.py runs it. That's the manual version. It works, but it dies the moment your SSH session closes — which brings us to the actual point of a server.&lt;/p&gt;

&lt;p&gt;Keep it alive with systemd&lt;br&gt;
tmux is fine for a quick test. For anything real, use systemd — it restarts the crew if it crashes and brings it up on reboot. Drop this in /etc/systemd/system/mycrew.service:&lt;/p&gt;

&lt;p&gt;[Unit]&lt;br&gt;
Description=CrewAI crew&lt;br&gt;
After=network-online.target&lt;/p&gt;

&lt;p&gt;[Service]&lt;br&gt;
WorkingDirectory=/root/mycrew&lt;br&gt;
ExecStart=/root/crew/bin/python /root/mycrew/crew.py&lt;br&gt;
Restart=always&lt;br&gt;
RestartSec=5&lt;br&gt;
EnvironmentFile=/root/mycrew/.env&lt;/p&gt;

&lt;p&gt;[Install]&lt;br&gt;
WantedBy=multi-user.target&lt;br&gt;
systemctl daemon-reload&lt;br&gt;
systemctl enable --now mycrew&lt;br&gt;
journalctl -u mycrew -f   # watch it work&lt;br&gt;
Now the crew runs on boot, restarts on failure, and logs everywhere you can read them. Close your laptop — it doesn't care.&lt;/p&gt;

&lt;p&gt;Paying for it&lt;br&gt;
Signup is an email and a one-time code — no card, no ID. You fund a balance with USDC or USDT on Base, Ethereum or Polygon (Base is cheapest on fees), and orders draw from it. For a crew that mostly makes outbound API calls, the default NAT plan is fine and cheaper; pick a -ip plan only if the crew needs its own public IPv4 for inbound services.&lt;/p&gt;

&lt;p&gt;One nice trick: EQVPS has an MCP server at mcp.eqvps.com/mcp. If provisioning is itself one of your crew's jobs, an agent with a funded balance can call order_vps and stand up a box on its own — no human at the checkout.&lt;/p&gt;

&lt;p&gt;What's honest to say&lt;br&gt;
You bring the LLM API keys. We host the crew, not the model. Your OpenAI/Anthropic bill is separate and, for a busy crew, usually the larger cost — the VPS is the cheap part.&lt;/p&gt;

&lt;p&gt;It's CPU-only, one datacent``er in Germany. No local GPU inference, and latency is best if your users or APIs are Europe-adjacent. For a crew hitting US-hosted LLM APIs the extra hop is milliseconds — irrelevant next to model latency — but worth knowing.&lt;/p&gt;

&lt;p&gt;Size for your memory, not your model. The thing that actually grows your RAM use is conversation history and any vector store you add, not the number of agents. Watch journalctl and htop for a day and resize if you need to.&lt;/p&gt;

&lt;p&gt;The takeaway&lt;br&gt;
A CrewAI crew belongs on something that doesn't sleep. The move is short: a CPU VPS, pip install crewai, a systemd unit, your API key in a .env. Ten minutes and your crew is running 24/7 instead of "whenever the laptop's open." Root in about a minute, pay in crypto, resize when the memory tells you to — and let the agents get on with it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Run your own Bitcoin node on a VPS</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 02 Aug 2026 17:16:14 +0000</pubDate>
      <link>https://dev.to/eqvps/run-your-own-bitcoin-node-on-a-vps-55ag</link>
      <guid>https://dev.to/eqvps/run-your-own-bitcoin-node-on-a-vps-55ag</guid>
      <description>&lt;p&gt;Running your own node is the line between taking someone's word about the chain and verifying it yourself. Your node enforces every consensus rule independently, and your wallets can query your node instead of a public server that quietly logs all your addresses. The wall people hit: a full archival node wants 600 GB+ of disk and keeps growing. A pruned node steps around that — it still validates the entire chain, then discards the old blocks it no longer needs, landing around 10–15 GB. That fits a small VPS. Here's the honest how, and what pruning costs you.&lt;/p&gt;

&lt;p&gt;What a node actually gives you&lt;br&gt;
Independent validation. You enforce the rules yourself. Nothing invalid gets past your node because it believed a stranger.&lt;br&gt;
Privacy for your own queries. Your wallet asks your node, not a public explorer that sees every address you look up.&lt;br&gt;
A base for the rest. A node is the foundation other things sit on later — Lightning, explorers, your own apps.&lt;br&gt;
Pruned vs full — the honest core&lt;br&gt;
During the initial sync, your node downloads and verifies the entire chain. That's roughly 600 GB of bandwidth, once. Pruning changes only what happens after: it keeps recent blocks and drops the old ones, so final disk stays small.&lt;/p&gt;

&lt;p&gt;What you give up is real: a pruned node can't serve historical blocks to other peers, and it can't rescan arbitrary old wallet history. So if you'll import an old wallet with early transactions, you need full history — a full node on a big disk, not a pruned one. For simply validating and running current wallets, pruned is exactly right.&lt;/p&gt;

&lt;p&gt;What you need&lt;br&gt;
Disk: ~15–20 GB for a pruned node — a small box is fine.&lt;br&gt;
RAM: 2–4 GB. More dbcache speeds the initial sync; you can lower it afterward.&lt;br&gt;
Bandwidth: real throughput for the one-time full download.&lt;br&gt;
A reachable IP: to accept inbound peers on port 8333 and actually help the network, you want a public IP with 8333 open — a dedicated-IP plan. On NAT you get one SSH port and can't open 8333.&lt;br&gt;
The setup&lt;br&gt;
Install bitcoind, then a minimal bitcoin.conf:&lt;/p&gt;

&lt;p&gt;prune=10000        # keep ~10 GB of recent blocks&lt;br&gt;
dbcache=2048       # faster initial sync; lower it later&lt;br&gt;
listen=1           # accept inbound peers&lt;br&gt;
Run it under systemd so it restarts on crash and comes back after a reboot, and open port 8333 so peers can reach you. Then let it sync — this is the long part, hours to a day or two, because it's verifying the whole chain from genesis.&lt;/p&gt;

&lt;p&gt;Lock it down&lt;br&gt;
Keys-only SSH, firewall to 8333 and your SSH port. (The ten-minute checklist.)&lt;br&gt;
Never expose the RPC port to the internet. Bind it to localhost and reach it over an SSH tunnel or only from apps on the same box. An open RPC is an open door.&lt;br&gt;
The honest limits&lt;br&gt;
The first sync is long and bandwidth-heavy. That's inherent — validating the chain from scratch isn't a step you can configure away.&lt;br&gt;
A pruned node can't serve old blocks or rescan old history. Need those? That's a full node and a big disk.&lt;br&gt;
Monero is a fair question, and the honest answer is scope. Its chain is larger — a couple hundred GB, and even pruned around 90 GB — so it wants a bigger disk than our small plans carry. That's a full-node story for a different kind of box, and we'd rather say so than pretend it fits.&lt;br&gt;
You maintain it: updates, disk, the occasional peer hiccup. A node is a small commitment, not a fire-and-forget.&lt;br&gt;
Paying for it&lt;br&gt;
Sign up with an email and pay in USDC or USDT — no card, no ID. A fitting way to pay for running your own corner of Bitcoin.&lt;/p&gt;

</description>
      <category>bitcoin</category>
      <category>vps</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How I Built an MCP Server That Lets AI Agents Rent VPS</title>
      <dc:creator>EQVPS</dc:creator>
      <pubDate>Sun, 02 Aug 2026 15:51:26 +0000</pubDate>
      <link>https://dev.to/eqvps/how-i-built-an-mcp-server-that-lets-ai-agents-rent-vps-3lcn</link>
      <guid>https://dev.to/eqvps/how-i-built-an-mcp-server-that-lets-ai-agents-rent-vps-3lcn</guid>
      <description>&lt;p&gt;I built an MCP server that lets AI agents autonomously rent VPS servers — no human, no KYC, no card. Here's how.&lt;/p&gt;

&lt;p&gt;The Problem&lt;br&gt;
AI agents need always-on infrastructure to run 24/7. But today, provisioning a VPS requires:&lt;/p&gt;

&lt;p&gt;A credit card&lt;br&gt;
KYC verification&lt;br&gt;
A human to click through signup flows&lt;br&gt;
That's not infrastructure for autonomous agents. It's infrastructure for humans.&lt;/p&gt;

&lt;p&gt;The Solution: EQVPS MCP Server&lt;br&gt;
EQVPS is a crypto-native VPS host with an MCP server that exposes the full server lifecycle as tools:&lt;/p&gt;

&lt;p&gt;claude mcp add --transport http eqvps &lt;a href="https://mcp.eqvps.com/mcp" rel="noopener noreferrer"&gt;https://mcp.eqvps.com/mcp&lt;/a&gt;&lt;br&gt;
Once connected, an agent can:&lt;/p&gt;

&lt;p&gt;list_plans — browse available VPS plans&lt;br&gt;
register_account — create an account with just an email&lt;br&gt;
topup_balance — generate a crypto payment invoice&lt;br&gt;
order_vps — spin up a server in ~60 seconds&lt;br&gt;
power_vps — start, stop, reboot&lt;br&gt;
get_vps_status — get IP, SSH credentials, metrics&lt;br&gt;
cancel_service — tear down when done&lt;br&gt;
How It Works&lt;br&gt;
The MCP server maps 16 tools to REST API endpoints. Authentication uses Bearer tokens — agents get their own token via register_account. Humans sign in with email OTP; agents use the API flow.&lt;/p&gt;

&lt;p&gt;Payments go through USDC, USDT on Base, Ethereum, or Tron. No KYC. No bank account.&lt;/p&gt;

&lt;p&gt;Why This Matters&lt;br&gt;
This is a pattern I call infrastructure-as-tool. When an MCP server exposes infrastructure provisioning, agents can:&lt;/p&gt;

&lt;p&gt;Self-provision — spin up workers on demand&lt;br&gt;
Self-heal — if a server crashes, order a new one&lt;br&gt;
Self-scale — monitor usage and provision more capacity&lt;br&gt;
Imagine an agent that monitors a queue, spins up a VPS when traffic spikes, processes work, and tears down the server when done. All without a human in the loop.&lt;/p&gt;

&lt;p&gt;Getting Started&lt;br&gt;
Deploy a VPS (Ubuntu 24.04, 2–4 GB RAM) — paid in crypto, no KYC&lt;br&gt;
Install Docker and launch your agent framework&lt;br&gt;
Lock down access with SSH keys and tunneling&lt;br&gt;
Connect the EQVPS MCP server so your agent can scale itself&lt;br&gt;
Full documentation: eqvps.com/docs MCP server source: github.com/Poiuyhje/eqvps-mcp&lt;/p&gt;

&lt;p&gt;What's Next&lt;br&gt;
Add more regions and OS options&lt;br&gt;
Build a Terraform provider for EQVPS&lt;br&gt;
Integrate with more agent frameworks (CrewAI, AutoGen, LangGraph)&lt;br&gt;
Open-source the MCP SDK so anyone can build infrastructure MCP servers&lt;br&gt;
If you're building AI agents that need infrastructure, this is the stack. No gatekeepers, no KYC, no credit cards. Just crypto and code.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>vps</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
