<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://qde.com/</id>
    <title>QDE — Blog</title>
    <updated>2026-08-12T10:29:20.507Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>QDE</name>
        <email>sales@qde.com</email>
        <uri>https://qde.com/</uri>
    </author>
    <link rel="alternate" href="https://qde.com/"/>
    <link rel="self" href="https://qde.com/atom.xml"/>
    <subtitle>Read the latest news, tutorials, and insights about VPS hosting, server management, and web infrastructure from the QDE team in the Netherlands.</subtitle>
    <rights>© 2026 QDE</rights>
    <entry>
        <title type="html"><![CDATA[7 Best cPanel Web Hosting Providers in 2026]]></title>
        <id>https://qde.com/blog/best-cpanel-web-hosting-providers/</id>
        <link href="https://qde.com/blog/best-cpanel-web-hosting-providers/"/>
        <updated>2026-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A practical look at seven cPanel web hosting providers worth considering in 2026, what each is known for, and who each one fits best.]]></summary>
        <content type="html"><![CDATA[<p>The cPanel shortlist is smaller than it used to be. Hostinger puts shared-hosting customers in hPanel, SiteGround has Site Tools, and Hosting.com now directs standard web-hosting customers to its own panel. If you specifically want cPanel, checking the provider name is no longer enough. You need to check the exact product.</p>
<p>This article covers seven current options. It is not a benchmark ranking: we did not deploy the same site and traffic test on every platform, so the order does not claim that number three is faster than number five. Product details and prices were checked against official sources on July 25, 2026.</p>
<p><strong>Disclosure:</strong> QDE publishes this comparison and appears first. We sell cPanel shared hosting, so our commercial interest should be visible before the recommendations, not hidden in the conclusion. The other six providers are included because they sell a cPanel hosting product to new customers and offer a useful range of contract terms, locations, support models, and resource limits.</p>
<h2 id="what-cpanel-hosting-means-in-this-comparison">What &quot;cPanel hosting&quot; means in this comparison<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-cpanel-hosting-means-in-this-comparison"><span></span></a></h2>
<p><a href="https://www.cpanel.net/products/">cPanel</a> is the account-level interface used to manage files, domains, databases, email, PHP settings, certificates, and applications on a Linux hosting server. The provider runs WHM and the underlying server. You receive a restricted cPanel account.</p>
<p>The cPanel logo does not make two hosting plans equivalent. A provider can disable individual interfaces, choose different backup software, impose its own CPU and memory limits, and decide whether migrations or restores are included. Bluehost places cPanel behind the Bluehost Portal. Hosting.com sells it as a separate product from standard web hosting. GoDaddy packages it inside a broader account dashboard. The familiar cPanel screen is only one layer of the service.</p>
<p>Backups need particularly careful wording. cPanel can generate a full account archive, but its <a href="https://docs.cpanel.net/cpanel/files/backup-for-cpanel/">own backup documentation</a> says customers cannot automatically restore a full backup from the cPanel interface. That normally requires the destination host or someone with WHM access. cPanel&#39;s <a href="https://docs.cpanel.net/whm/transfers/transfer-tool/">Transfer Tool</a> is also a WHM administrator function, not a button available to every shared-hosting customer.</p>
<h2 id="how-the-seven-providers-compare">How the seven providers compare<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-the-seven-providers-compare"><span></span></a></h2>
<p>Promotional prices are difficult to normalize. Some require one, two, or three years of advance payment, while others bill monthly. Taxes, region, free-domain terms, email, and renewal prices also differ. The table records the pricing pattern that matters most, but the checkout total is the number to compare.</p>





















































<div class="cs-content-table-wrap"><table><thead><tr><th>Provider</th><th>How cPanel is provided</th><th>Pricing pattern checked July 25, 2026</th><th>Best fit</th></tr></thead><tbody><tr><td>QDE</td><td>Direct cPanel access on every shared plan</td><td>From €2.95/month, billed monthly with no introductory rate</td><td>EU hosting, predictable billing, and a dedicated IPv4 address</td></tr><tr><td>Bluehost</td><td>cPanel through the Bluehost Portal; not included with Bluehost Cloud</td><td>Starter renews from $9.99 to $15.99/month depending on term</td><td>WordPress beginners who want a guided account portal</td></tr><tr><td>HostGator</td><td>cPanel on shared hosting</td><td>Low introductory pricing, followed by published regular rates</td><td>First sites where initial cost matters and the buyer checks renewal details</td></tr><tr><td>InMotion Hosting</td><td>cPanel on every shared plan</td><td>Long-term promotions from $4.79/month; higher renewal rates</td><td>Agencies and developers needing generous storage and more runtime tools</td></tr><tr><td>Hosting.com</td><td>Separate Pro cPanel Hosting product</td><td>Promotional term followed by the regular rate shown at checkout</td><td>Former A2 users and cPanel migrations that benefit from LiteSpeed</td></tr><tr><td>Namecheap</td><td>cPanel on Stellar shared hosting</td><td>Stellar is $1.91/month for year one; $55.88/year on renewal</td><td>Domain customers and small sites on a tight budget</td></tr><tr><td>GoDaddy</td><td>cPanel on Linux Web Hosting</td><td>Prices and plan names vary by market and term</td><td>Small businesses consolidating domains and hosting with one vendor</td></tr></tbody></table></div>
<h2 id="1-qde">1. QDE<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#1-qde"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/jpdfr/qde-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/jpdfr/qde-homepage-hero.webp" alt="QDE homepage hero advertising European VPS hosting, NVMe storage, and a 10 Gbps network" title="QDE homepage hero advertising European VPS hosting, NVMe storage, and a 10 Gbps network"/></a></p>
<p><a href="https://qde.com/shared-hosting/">QDE shared hosting</a> runs in Amsterdam and uses cPanel on every plan. Starter costs €2.95 per month, Standard €4.95, and Premium €9.95. Those are monthly prices rather than short introductory rates tied to a multi-year prepayment.</p>
<p>Every account receives a dedicated IPv4 address, daily offsite backups, free TLS certificates, MariaDB with phpMyAdmin, and a selectable PHP version from 8.2 through 8.5 for each site. The network has a 10 Gbps shared uplink. &quot;Shared&quot; matters: 10 Gbps describes the connected port, not bandwidth reserved for one hosting account.</p>
<p>The service is intended for PHP, WordPress, and static sites. Each account can use up to 512 MB of RAM. A project that needs root access, Docker, system packages, or an unrestricted Node.js or Python environment belongs on a <a href="https://qde.com/vps/">VPS</a> instead.</p>
<p>QDE accepts iDEAL, PayPal, credit cards, Bitcoin, Litecoin, USDT, and Monero. You can inspect the interface before buying through the <a href="https://europa.qde.net:2083/">QDE cPanel demo</a> with username <code>demo</code> and password <code>I8.aB?*+AFx~t{w-</code>.</p>
<p><strong>Best fit:</strong> a site owner who wants cPanel on Netherlands infrastructure, a dedicated IPv4 address, and month-to-month billing without a renewal jump.</p>
<p><strong>Check before ordering:</strong> the 512 MB account limit and PHP-focused environment are designed for conventional websites, not custom server software.</p>
<h2 id="2-bluehost">2. Bluehost<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#2-bluehost"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/5hurx/bluehost-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/5hurx/bluehost-homepage-hero.webp" alt="Bluehost homepage promoting its AI website builder and WordPress hosting" title="Bluehost homepage promoting its AI website builder and WordPress hosting"/></a></p>
<p><a href="https://www.bluehost.com/">Bluehost</a> is the longest-running host on the current <a href="https://wordpress.org/hosting/">WordPress.org hosting recommendation page</a>. Its current Starter shared plan supports up to 10 websites with 10 GB of NVMe storage. It also includes a first-year domain, Let&#39;s Encrypt certificates, a WordPress migration tool, CDN access, and a 30-day hosting refund period.</p>
<p>cPanel is present, but Bluehost no longer makes it the center of every task. Its June 2026 <a href="https://www.bluehost.com/help/article/cpanel-access">cPanel access guide</a> says most functions are available in the Bluehost Portal, with a cPanel button for database, email, FTP, and other advanced settings. Bluehost Cloud does not include cPanel at all.</p>
<p>The regular rate deserves as much attention as the signup offer. Bluehost&#39;s current <a href="https://www.bluehost.com/help/article/shared-hosting-prices">shared-hosting price sheet</a> lists Starter renewal at $15.99 per month on a monthly term, $11.99 per month equivalent for 12 months, or $9.99 per month equivalent for 36 months. Longer terms reduce the monthly equivalent but require more money up front.</p>
<p><strong>Best fit:</strong> a new WordPress owner who values Bluehost&#39;s setup flow, WordPress tooling, and large support library, while still wanting cPanel available for traditional hosting tasks.</p>
<p><strong>Check before ordering:</strong> confirm the product says shared or web hosting if cPanel is mandatory. Bluehost Cloud uses a different management setup.</p>
<h2 id="3-hostgator">3. HostGator<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#3-hostgator"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/ve2gj/hostgator-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/ve2gj/hostgator-homepage-hero.webp" alt="HostGator homepage promoting its Snappy Pro VPS plans" title="HostGator homepage promoting its Snappy Pro VPS plans"/></a></p>
<p><a href="https://www.hostgator.com/">HostGator shared hosting</a> still provides cPanel. Its current <a href="https://www.hostgator.com/help/article/what-is-shared-hosting">shared-hosting feature table</a> lists Hatchling, Business, and Pro plans with 10, 50, and 100 websites respectively. Storage ranges from 10 GB to 100 GB, and every tier lists SSL, a CDN, a migration tool, managed WordPress updates, and a 30-day money-back period.</p>
<p>There is an awkward documentation mismatch. The feature table uses Hatchling, Business, and Pro, but HostGator&#39;s published <a href="https://www.hostgator.com/help/article/hosting-price-chart">renewal price chart</a> still lists Hatchling, Baby, and Business. That chart puts Hatchling at $17.59 for one month, $13.19 per month equivalent for a one-year renewal, and $10.99 per month equivalent for three years.</p>
<p>Treat the cart and renewal notice as authoritative for the exact product you select. Saving a copy of the checkout summary is sensible when the public plan names do not line up cleanly.</p>
<p>HostGator and Bluehost are not independent corporate groups. HostGator states that it is an indirect subsidiary of Newfold Digital, and Bluehost lists Newfold Digital as its parent company. Their account portals, promotions, and feature development can still differ, but buyers comparing corporate concentration should know the connection.</p>
<p><strong>Best fit:</strong> a first-time site owner looking for an established cPanel host with a low promotional entry point and a path to larger hosting products.</p>
<p><strong>Check before ordering:</strong> verify the plan name, website limit, renewal term, and regular price in the cart because HostGator&#39;s current comparison and renewal pages do not fully agree.</p>
<h2 id="4-inmotion-hosting">4. InMotion Hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#4-inmotion-hosting"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/e9yjz/inmotion-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/e9yjz/inmotion-homepage-hero.webp" alt="InMotion Hosting homepage marking its 25th anniversary and showing shared, VPS, and dedicated hosting" title="InMotion Hosting homepage marking its 25th anniversary and showing shared, VPS, and dedicated hosting"/></a></p>
<p><a href="https://www.inmotionhosting.com/shared-hosting">InMotion Hosting shared plans</a> pair cPanel with NVMe storage and more generous published site limits than most entry plans in this list. Launch supports two websites and 100 GB of storage. Power supports 10 websites and 200 GB. Pro supports 40 websites, 300 GB, 2 vCPU cores, 4 GB of RAM, a dedicated IP address, and WHM access for up to four client cPanel accounts.</p>
<p>InMotion also includes tools that are unusual on basic shared hosting. Its current page lists SSH, Git, Node.js, Python, Ruby, WP-CLI, MySQL, and PostgreSQL. These remain managed shared accounts without root access, but they cover more development workflows than a PHP-only plan.</p>
<p>The long refund window is another practical difference. InMotion advertises a 90-day full money-back guarantee and a free migration using one cPanel or WordPress backup. Launch promotions start around $4.79 or $4.99 per month equivalent on prepaid terms, with published renewal rates around $13.99 to $14.99 for those terms. Month-to-month pricing is higher.</p>
<p>Backups should not be inferred from the refund period or migration offer. The plan table describes Backup Manager as available, so check whether the backup schedule you want is included or added separately.</p>
<p><strong>Best fit:</strong> a small agency or developer who wants cPanel, substantial storage, SSH, and modern runtime tools without administering a VPS.</p>
<p><strong>Check before ordering:</strong> compare the prepaid total, renewal rate, and backup option. Launch support is chat and ticket only, while phone support starts on higher tiers.</p>
<h2 id="5-hostingcom-formerly-a2-hosting">5. Hosting.com, formerly A2 Hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#5-hostingcom-formerly-a2-hosting"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/cuc94/hostingcom-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/cuc94/hostingcom-homepage-hero.webp" alt="Hosting.com homepage showing shared hosting, WordPress hosting, and managed cPanel VPS offers" title="Hosting.com homepage showing shared hosting, WordPress hosting, and managed cPanel VPS offers"/></a></p>
<p>A2 Hosting became <a href="https://hosting.com/">Hosting.com</a> in April 2025, not 2026. The company announced the <a href="https://hosting.com/blog/a-new-chapter-begins-a2-hosting-evolves-into-hosting/">rebrand after its acquisition by World Host Group</a>, while A2 Hosting, LLC remains the legal company trading under the Hosting.com name.</p>
<p>The product split has since changed. Standard web hosting now uses the Hosting.com panel. Customers who specifically want cPanel must choose <a href="https://hosting.com/hosting/hosting-by-service/cpanel-hosting/">Pro cPanel Hosting</a>. That dedicated line includes the full cPanel interface, LiteSpeed on NVMe storage, MariaDB, Softaculous, domain email, daily backups with 30 days of restore points, free SSL, and migration assistance. Hosting.com advertises a 30-day money-back guarantee for new shared-hosting purchases.</p>
<p>This is an important distinction for old A2 comparisons. A review that says &quot;A2 Hosting includes cPanel&quot; may describe an existing account or an earlier lineup. In 2026, the product name at checkout decides which panel a new customer receives.</p>
<p><strong>Best fit:</strong> a cPanel user moving from another host who wants a managed LiteSpeed stack and provider-assisted backup-and-restore migration.</p>
<p><strong>Check before ordering:</strong> select Pro cPanel Hosting explicitly. The cheaper or more prominent standard web-hosting path may use Hosting.com&#39;s own control panel instead.</p>
<h2 id="6-namecheap">6. Namecheap<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#6-namecheap"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/vrktp/namecheap-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/vrktp/namecheap-homepage-hero.webp" alt="Namecheap homepage with its domain search field and current registration offers" title="Namecheap homepage with its domain search field and current registration offers"/></a></p>
<p><a href="https://www.namecheap.com/hosting/shared/">Namecheap shared hosting</a> uses cPanel and Softaculous across its Stellar, Stellar Plus, and Stellar Business plans. The entry Stellar plan supports three websites and includes 20 GB of SSD storage. It is advertised at $1.91 per month for the first year, billed as $22.92, and currently renews at $55.88 per year. A month-to-month renewal is $5.88.</p>
<p>Those renewal numbers changed on May 19, 2026. Namecheap published the new <a href="https://www.namecheap.com/support/knowledgebase/article.aspx/10780/22/shared-hosting-pricing-changes-may-2026/">shared-hosting renewal table</a> rather than making customers reconstruct it from a discount percentage. Stellar Plus renews at $85.44 per year and Stellar Business at $128.88.</p>
<p>Backup coverage differs by tier. Namecheap says Stellar Plus and Business receive cPanel AutoBackup with daily, weekly, and monthly restore points. The hosting policy describes a less extensive internal schedule for entry-level Stellar accounts. The current refund policy gives first-time shared-hosting accounts 30 days.</p>
<p>Namecheap also publishes shared-account resource limits in its <a href="https://www.namecheap.com/legal/hosting/aup/">hosting acceptable-use policy</a>. Physical memory is 1 GB on a standard shared account and 2 GB on Stellar Plus and Stellar Business, with separate CPU, process, and I/O limits. That transparency makes it easier to judge whether a busy plugin stack still belongs on shared hosting.</p>
<p><strong>Best fit:</strong> a Namecheap domain customer, personal site, or small business that wants inexpensive cPanel hosting and one account for domains and hosting.</p>
<p><strong>Check before ordering:</strong> entry-level backups are not the same as the AutoBackup policy on Plus and Business, and the free standard SSL offer has a one-year term.</p>
<h2 id="7-godaddy">7. GoDaddy<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#7-godaddy"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/xnmem/godaddy-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/xnmem/godaddy-homepage-hero.webp" alt="GoDaddy homepage promoting a discounted .com domain offer" title="GoDaddy homepage promoting a discounted .com domain offer"/></a></p>
<p><a href="https://www.godaddy.com/hosting/web-hosting">GoDaddy Web Hosting</a> uses cPanel on its Linux shared plans. Current regional product pages list NVMe storage, AutoSSL, daily account backups, unmetered bandwidth, CloudLinux resource controls, a 99.9% uptime promise, and an automated migration tool. The higher Web Hosting Plus range offers guaranteed processing and memory resources for sites that have outgrown ordinary shared allocation.</p>
<p>GoDaddy&#39;s plan names, prices, included email, and SSL terms vary by country. For example, current product pages in some markets list Starter, Economy, Deluxe, and Ultimate, while older comparison material still refers to Maximum. Use the localized checkout for the country that will own and pay for the account.</p>
<p>The refund wording also deserves a direct look. The hosting page advertises 30 days, while GoDaddy&#39;s May 2026 <a href="https://www.godaddy.com/en/legal/agreements/refund-policy">refund policy</a> gives annual plans 30 days and monthly plans only 48 hours under its standard terms. The policy also contains product-specific exceptions, so a monthly purchase should not be treated as a 30-day trial without checking the applicable regional terms.</p>
<p><strong>Best fit:</strong> a small business that already uses GoDaddy for domains and prefers to keep hosting, billing, and account support with the same large vendor.</p>
<p><strong>Check before ordering:</strong> compare the localized renewal price, SSL duration, mailbox terms, refund window, and site limit. They are not uniform across markets.</p>
<h2 id="what-to-compare-before-choosing">What to compare before choosing<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-to-compare-before-choosing"><span></span></a></h2>
<p>The word &quot;cPanel&quot; answers only the interface question. These details usually matter more after the first week:</p>
<ol>
<li><strong>The exact product:</strong> Bluehost Cloud has no cPanel, and Hosting.com&#39;s standard web hosting uses its own panel. Product families can mix control panels.</li>
<li><strong>The full first invoice and renewal:</strong> multiply the monthly equivalent by the prepaid term, add tax and domain costs, then record the regular renewal price.</li>
<li><strong>CPU, memory, processes, and I/O:</strong> &quot;unmetered bandwidth&quot; says little about how many PHP workers or concurrent requests the account can handle.</li>
<li><strong>Backup frequency and restore method:</strong> check retention, offsite storage, database and mailbox coverage, self-service restore, and any restore fee.</li>
<li><strong>Email and SSL after year one:</strong> a free first-year mailbox or certificate can become a separate renewal charge.</li>
<li><strong>Migration scope:</strong> ask whether the provider moves files only or also transfers databases, mailboxes, DNS zones, cron jobs, certificates, and account settings.</li>
<li><strong>Server location and support hours:</strong> a familiar panel does not shorten network distance or guarantee that an experienced technician is available when the site fails.</li>
</ol>
<p>Take screenshots of the product summary and renewal terms before paying. Hosting pages change more often than most buyers revisit them.</p>
<h2 id="when-a-vps-is-the-better-answer">When a VPS is the better answer<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#when-a-vps-is-the-better-answer"><span></span></a></h2>
<p>cPanel shared hosting is usually the simpler choice for WordPress and conventional PHP applications. The provider maintains the operating system, web server, mail stack, and cPanel license. You work inside the account limits.</p>
<p>A <a href="https://qde.com/vps/">VPS</a> becomes the better fit when you need root access, Docker, custom system services, unusual extensions, a private network layout, or predictable server-level resources. Some shared hosts expose Node.js or Python tools, as InMotion does, but that is not the same as controlling the runtime and operating system.</p>
<p>Running cPanel on a VPS also changes the economics. The cPanel license may cost extra, and you remain responsible for administration unless the VPS is explicitly managed. Our <a href="https://qde.com/blog/shared-hosting-vs-vps-hosting/">shared hosting vs VPS comparison</a> covers that boundary in more detail. The companion article on <a href="https://qde.com/blog/is-cpanel-still-the-best-control-panel-2026/">whether cPanel is still the best control panel in 2026</a> compares cPanel with Plesk, CloudPanel, HestiaCP, CyberPanel, and DirectAdmin.</p>
<h2 id="which-provider-should-you-shortlist">Which provider should you shortlist?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-provider-should-you-shortlist"><span></span></a></h2>
<p>QDE is the most direct fit here for monthly EU cPanel hosting with a dedicated IPv4 address. Bluehost has the clearest WordPress-first onboarding, but cPanel sits behind its portal and is absent from Bluehost Cloud. HostGator remains a promotional-price option, provided you verify the current plan and renewal table.</p>
<p>InMotion is the strongest starting point for agencies and developers who want SSH, modern runtime tools, larger storage allocations, and a long refund period. Hosting.com is worth considering for LiteSpeed and cPanel migration, but only through its separate Pro cPanel Hosting product. Namecheap is attractive for inexpensive small sites and existing domain customers. GoDaddy suits businesses that value having one vendor for domains and hosting more than having the simplest pricing sheet.</p>
<p>No provider wins every category. Pick two that match the site, compare their final checkout and renewal totals, then ask both the same questions about backups, resource limits, migration, and support.</p>
<p><em><strong>Want a month-to-month cPanel account in Amsterdam, or help deciding whether your application needs a VPS instead? <a href="https://qde.com/contact/">Contact the QDE team</a> with the sites, mailboxes, and software you plan to run.</strong></em></p>
<h2 id="frequently-asked-questions-about-cpanel-web-hosting">Frequently asked questions about cPanel web hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-cpanel-web-hosting"><span></span></a></h2>
<h3 id="is-cpanel-hosting-still-worth-it-in-2026">Is cPanel hosting still worth it in 2026?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-cpanel-hosting-still-worth-it-in-2026"><span></span></a></h3>
<p>Yes, when you want a familiar Linux hosting interface and expect to move between conventional shared hosts. The panel is mature and widely documented. It is less important than the provider&#39;s resource limits, backups, support, and renewal terms, and it does not suit applications that need root access or a custom server stack.</p>
<h3 id="does-every-plan-from-these-providers-include-cpanel">Does every plan from these providers include cPanel?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-every-plan-from-these-providers-include-cpanel"><span></span></a></h3>
<p>No. Bluehost Cloud does not include cPanel. Hosting.com uses its own panel for standard web hosting and sells cPanel through a separate Pro cPanel Hosting product. VPS and dedicated plans from several providers may also price the cPanel license separately. Check the exact product, not just the brand.</p>
<h3 id="can-i-move-a-full-cpanel-account-to-another-provider">Can I move a full cPanel account to another provider?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-move-a-full-cpanel-account-to-another-provider"><span></span></a></h3>
<p>Usually, but the destination host often has to perform the full restore through WHM. A customer can create and download a full account backup when the host enables that interface, but cPanel does not give ordinary account users an automatic full-backup restore button. Ask the new provider what its migration includes and test mail, DNS, cron jobs, databases, and certificates after the move.</p>
<h3 id="which-cpanel-host-is-the-cheapest">Which cPanel host is the cheapest?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-cpanel-host-is-the-cheapest"><span></span></a></h3>
<p>That changes with promotions, terms, taxes, and regions. Namecheap displayed the lowest first-year monthly equivalent in this group on July 25, 2026, but it requires annual prepayment and renews at a higher rate. QDE starts at €2.95 per month with monthly billing and no introductory jump. Compare the total over the period you expect to stay, not the largest sale number.</p>
<h3 id="what-does-qde-cpanel-shared-hosting-include">What does QDE cPanel shared hosting include?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-does-qde-cpanel-shared-hosting-include"><span></span></a></h3>
<p>Every QDE shared plan includes cPanel, a dedicated IPv4 address, daily offsite backups, MariaDB with phpMyAdmin, TLS certificates, WordPress management, and per-site PHP selection from 8.2 through 8.5. Plans are billed monthly, include a 99.9% uptime SLA, and have a 14-day money-back guarantee under the current terms.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="cPanel Hosting" term="cPanel Hosting"/>
        <category label="Web Hosting" term="Web Hosting"/>
        <category label="Shared Hosting" term="Shared Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[7 Best Web Hosting Providers in the Netherlands for 2026]]></title>
        <id>https://qde.com/blog/best-web-hosting-providers-in-the-netherlands/</id>
        <link href="https://qde.com/blog/best-web-hosting-providers-in-the-netherlands/"/>
        <updated>2026-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Comparing Dutch shared hosting providers for 2026? Here are seven established Netherlands web hosting options, what each is known for, and who they fit best.]]></summary>
        <content type="html"><![CDATA[<p>The quickest way to compare Dutch web hosting is to ignore the lowest number in the largest type. Start with the control panel, the price after the promotion, the backup policy, and the location where the service actually stores your data.</p>
<p>This article covers seven viable choices for different needs. It is not a laboratory speed ranking: we did not deploy the same site on all seven platforms, so we will not pretend that a provider is &quot;40% faster&quot; based on its own marketing. The provider facts and advertised prices below were checked against official pages on July 25, 2026.</p>
<p><strong>Disclosure:</strong> QDE publishes this comparison and is included in it. We put QDE first so that commercial interest is visible rather than tucked away at the bottom. The other six providers were selected because they sell an active Netherlands-hosted shared hosting product, publish enough detail to compare, and represent a useful range of panels, contract terms, and service models. Their order is not a claim that number four is objectively faster than number five.</p>
<h2 id="what-netherlands-based-hosting-does-and-does-not-tell-you">What Netherlands-based hosting does, and does not, tell you<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-netherlands-based-hosting-does-and-does-not-tell-you"><span></span></a></h2>
<p>A server closer to most of your visitors can reduce the minimum network round-trip time. That helps, but location alone does not determine page-load time. Application code, caching, database work, image weight, a CDN, and the route between the visitor&#39;s ISP and the host can easily matter more.</p>
<p>Amsterdam is home to <a href="https://www.ams-ix.net/ams/about-ams-ix">AMS-IX</a>, one of the world&#39;s largest internet traffic hubs. That gives Dutch networks access to a strong interconnection market. It does not mean every host in the Netherlands peers directly at AMS-IX or uses the same routes. Check the provider&#39;s own network information or Looking Glass instead of treating a Dutch address as proof of identical connectivity. Our page on <a href="https://qde.com/features/eu-infrastructure/">EU-based infrastructure</a> explains that distinction in more detail.</p>
<p>Data residency needs the same careful wording. Keeping the hosting leg inside the European Economic Area can avoid an international transfer for that part of the service. The <a href="https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/rules-international-data-transfers_en">European Commission&#39;s transfer guidance</a> explains the additional safeguards that can apply when personal data leaves the EEA.</p>
<p>None of that makes a website GDPR-compliant automatically. You still need a lawful basis, suitable security, a processor agreement where required, retention rules, and correct handling of analytics, forms, cookies, and user requests.</p>
<h2 id="the-seven-providers-at-a-glance">The seven providers at a glance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-seven-providers-at-a-glance"><span></span></a></h2>
<p>The price column records the advertised pattern, not a normalized total cost. Contract length, advance payment, VAT treatment, domain charges, and optional email differ, so compare the full checkout amount before ordering.</p>





























































<div class="cs-content-table-wrap"><table><thead><tr><th>Provider</th><th>Control panel</th><th>Advertised entry-price pattern on July 25, 2026</th><th>Entry-level backup policy</th><th>Best fit</th></tr></thead><tbody><tr><td>QDE</td><td>cPanel</td><td>€2.95/month, billed monthly with no introductory rate</td><td>Daily offsite backup</td><td>Month-to-month cPanel hosting with a dedicated IPv4 address</td></tr><tr><td>TransIP</td><td>TransIP control panel</td><td>€1/month for 3 months; €9.99 regular price</td><td>Automatic backups; Basic retains 10 days</td><td>A broad Dutch platform with a proprietary panel</td></tr><tr><td>Hostnet</td><td>Mijn Hostnet</td><td>€4.99 promotional price; €9.99 regular price</td><td>Daily website and mailbox backups</td><td>Small businesses wanting guided service and a custom panel</td></tr><tr><td>Vimexx</td><td>DirectAdmin</td><td>€0.45 introductory price; €2.99 renewal</td><td>Up to 1 daily backup retained for 7 days</td><td>The lowest displayed entry price in this list</td></tr><tr><td>Antagonist</td><td>DirectAdmin</td><td>€5.55/month for year one; €9.99 renewal, excluding VAT</td><td>28 restore points over 2 weeks</td><td>Published CPU/RAM allocations and frequent restore points</td></tr><tr><td>Yourhosting</td><td>Plesk</td><td>€0.99/month for 6 months with 12-month prepayment; €14.99 displayed regular price</td><td>Automatic daily backups</td><td>Plesk users wanting onboarding and service add-ons</td></tr><tr><td>Versio</td><td>DirectAdmin</td><td>€0.99/month for 3 months with advance payment; later price varies by term</td><td>7 days on Start Web</td><td>Multi-site users who may later want reseller hosting or a VPS</td></tr></tbody></table></div>
<h2 id="1-qde">1. QDE<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#1-qde"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/nnwyy/qde-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/nnwyy/qde-homepage-hero.webp" alt="QDE homepage hero advertising European VPS hosting, NVMe storage, and a 10 Gbps network" title="QDE homepage hero advertising European VPS hosting, NVMe storage, and a 10 Gbps network"/></a></p>
<p><a href="https://qde.com/shared-hosting/">QDE shared hosting</a> runs on QDE&#39;s own Amsterdam infrastructure and uses cPanel. The Starter plan is €2.95 per month with monthly billing rather than a teaser rate tied to a long initial term. Every plan includes a dedicated IPv4 address, daily offsite backups, a 99.9% uptime SLA, a 14-day money-back guarantee, and a choice of PHP 8.2 through 8.5 per site. Payments include iDEAL, PayPal, credit cards, and cryptocurrency.</p>
<p>The network is the same Amsterdam platform used for QDE&#39;s VPS service, with a 10 Gbps shared uplink and AMS-IX peering. &quot;Shared&quot; matters here: 10 Gbps describes the connected port, not throughput reserved for one hosting account.</p>
<p>The limit is what the shared tier is designed to run. It supports PHP and static sites, and each hosting account can use up to 512 MB of RAM. Node.js, Python, Docker, custom system software, and root access require a <a href="https://qde.com/vps/">VPS</a> instead.</p>
<p><strong>Best fit:</strong> a site owner who wants familiar cPanel management, a dedicated IPv4 address, and predictable monthly billing on Dutch infrastructure.</p>
<h2 id="2-transip">2. TransIP<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#2-transip"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/4ma49/transip-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/4ma49/transip-homepage-hero.webp" alt="TransIP homepage hero promoting a discounted .nl domain name" title="TransIP homepage hero promoting a discounted .nl domain name"/></a></p>
<p><a href="https://www.transip.nl/webhosting/">TransIP&#39;s current web hosting plans</a> use its own control panel and store data across two Dutch availability zones: Amsterdam and Delft/Alblasserdam. The entry plan provides one website, 20 GB of storage, five 2 GB mailboxes, and a regular price of €9.99 per month. The advertised €1 rate applies to the first three months.</p>
<p>Backup detail is better than the one-word &quot;automatic&quot; found on many pricing tables. TransIP&#39;s <a href="https://www.transip.nl/knowledgebase/5912-back-ups-op-webhostingpakketten">web hosting backup documentation</a> says Basic keeps restore points for 10 days, while larger plans retain 14 or 30 days. File snapshots are hourly for the most recent day and daily after that; databases are backed up daily. Email is not included in the same self-service restore flow.</p>
<p>One contract detail deserves attention. TransIP&#39;s <a href="https://www.transip.nl/legal-and-security/beschikbaarheid/">availability policy</a> gives its VPS product a direct uptime guarantee, but classifies web hosting among the other services without one. Compensation may apply when one of those services is unavailable for more than two hours.</p>
<p><strong>Best fit:</strong> developers and small businesses who prefer TransIP&#39;s integrated Dutch platform and may later add VPS or public cloud services, and who do not need cPanel or DirectAdmin familiarity.</p>
<h2 id="3-hostnet">3. Hostnet<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#3-hostnet"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/zmfh5/hostnet-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/zmfh5/hostnet-homepage-hero.webp" alt="Hostnet homepage showing its hosting navigation, domain search, and website-building offers" title="Hostnet homepage showing its hosting navigation, domain search, and website-building offers"/></a></p>
<p><a href="https://www.hostnet.nl/webhosting">Hostnet web hosting</a> is managed through Mijn Hostnet, not cPanel. Its Lite plan advertises €4.99 per month during the promotional period and a normal price of €9.99, excluding VAT. The product page lists daily automatic backups for the website and mailboxes, free Let&#39;s Encrypt wildcard certificates, SSD-backed cluster hosting, and support seven days a week.</p>
<p>Hostnet says its <a href="https://www.hostnet.nl/academy/gratis-e-mail-aanmaken">green data centers are in Amsterdam</a>. Its own help material also shows that <a href="https://helpdesk.hostnet.nl/hc/nl-nl/articles/360014579497-Aan-de-slag-met-webhosting-van-Hostnet">files, PHP settings, and email are managed through Mijn Hostnet</a>. That can be straightforward for a first-time owner, but it is a provider-specific workflow rather than a portable cPanel account.</p>
<p>The promotional price applies to the first contract period. Hostnet&#39;s <a href="https://www.hostnet.nl/over-hostnet/algemene-voorwaarden">current terms summary</a> says renewal is at the normal rate and cancellation must arrive no later than one month before the contract ends.</p>
<p><strong>Best fit:</strong> a Dutch small business that values a broad domain, email, website, and managed-service catalog more than using a standard third-party control panel.</p>
<h2 id="4-vimexx">4. Vimexx<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#4-vimexx"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/6mq66/vimexx-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/6mq66/vimexx-homepage-hero.webp" alt="Vimexx homepage with a domain search field and navigation for hosting, VPS, and dedicated servers" title="Vimexx homepage with a domain search field and navigation for hosting, VPS, and dedicated servers"/></a></p>
<p><a href="https://www.vimexx.nl/webhosting">Vimexx&#39;s Netherlands web hosting</a> has the lowest displayed introductory price in this group: €0.45 per month for Basic, followed by a €2.99 renewal price. Basic includes 8 GB of SSD storage, 100 GB of monthly traffic, DirectAdmin, free SSL, and at most one backup per day retained for seven days.</p>
<p>The differences between tiers are substantial. Plus advertises up to seven backups per day retained for 60 days, 100 GB of storage, active DDoS protection, and a support SLA, while Basic lists no support SLA or DDoS protection. Compare the tier you will actually buy rather than carrying the Plus feature list down to the cheapest plan.</p>
<p>Vimexx says its <a href="https://www.vimexx.nl/info/infrastructure">infrastructure is housed in BIT data centers in Ede</a> and describes <a href="https://www.vimexx.nl/info/over-ons">Dronten as a second server location</a>. It documents <a href="https://www.vimexx.nl/directadmin">DirectAdmin as its web hosting panel</a>. The standard site is primarily Dutch, which may be a practical consideration for an international team.</p>
<p><strong>Best fit:</strong> price-sensitive Dutch-speaking users who are comfortable with DirectAdmin and willing to inspect the renewal price and tier-specific backup and support limits.</p>
<h2 id="5-antagonist">5. Antagonist<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#5-antagonist"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/q5evp/antagonist-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/q5evp/antagonist-homepage-hero.webp" alt="Antagonist homepage showing its hosting and domain search area and Slim, Plus, and Pro plans" title="Antagonist homepage showing its hosting and domain search area and Slim, Plus, and Pro plans"/></a></p>
<p>Antagonist publishes unusually clear resource and backup figures. Its <a href="https://www.antagonist.nl/webhosting-vergelijken/">hosting comparison</a> assigns the Slim plan one CPU core, 1 GB of RAM, 50 GB of SSD storage, and 28 restore points spanning two weeks. Plus and Pro increase both the isolated resources and the backup history. All three use DirectAdmin and include managed server operation, SSL, SSH, Installatron, and a 30-day money-back period.</p>
<p>Slim costs €5.55 per month for the first year and renews at €9.99 per month. Antagonist states that these prices exclude VAT and are paid in advance. That is less eye-catching than a €0.45 teaser, but the published CPU, RAM, backup, and renewal figures make the trade easier to evaluate.</p>
<p>Antagonist&#39;s <a href="https://help.antagonist.nl/hc/nl/articles/8523979339921-Waar-staan-de-servers-van-Antagonist">location documentation</a> places its servers in the Netherlands, at Previder in Hengelo. The company focuses heavily on managed web and reseller hosting; it is not the natural choice if the next step is an unmanaged root-access VPS.</p>
<p><strong>Best fit:</strong> a site owner who wants a managed DirectAdmin environment, explicit account resources, and frequent self-service restore points.</p>
<h2 id="6-yourhosting">6. Yourhosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#6-yourhosting"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/py8p8/yourhosting-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/py8p8/yourhosting-homepage-hero.webp" alt="Yourhosting homepage highlighting Dutch support, EU servers, and ISO 27001 certification" title="Yourhosting homepage highlighting Dutch support, EU servers, and ISO 27001 certification"/></a></p>
<p><a href="https://www.yourhosting.nl/webhosting/">Yourhosting&#39;s current web hosting lineup</a> combines Dutch-hosted service with installation help, migration help, daily automatic backups, and optional service bundles. Its Basic plan advertises €0.99 per month for six months when a 12-month term is paid in advance; the page shows €14.99 as the regular monthly price for that term. A 36-month selection lowers the displayed regular monthly equivalent but requires a much longer commitment.</p>
<p>Yourhosting uses Plesk for its main hosting environment. Its <a href="https://www.yourhosting.nl/kennisbank/hosting-website/overzicht-menu-items-in-plesk/">Plesk documentation</a> covers files, mail, databases, phpMyAdmin, and WordPress management. This is useful if you already know Plesk or want a standard panel without cPanel.</p>
<p>Yourhosting puts more guided help around the hosting account, including installation, migration, callback, and webmaster options on selected plans. Check which services are included in the exact tier and which become paid extras later.</p>
<p><strong>Best fit:</strong> a business that prefers Plesk and values onboarding and optional hands-on help enough to accept annual or multi-year billing.</p>
<h2 id="7-versio">7. Versio<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#7-versio"><span></span></a></h2>
<p><a href="https://cdn.qde.com/2026/07/24/fkszn/versio-homepage-hero.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/24/fkszn/versio-homepage-hero.webp" alt="Versio homepage hero with a domain search box and links to hosting, email, VPS, and security products" title="Versio homepage hero with a domain search box and links to hosting, email, VPS, and security products"/></a></p>
<p><a href="https://www.versio.nl/webhosting">Versio web hosting</a> runs on a Netherlands-based high-availability cloud with NVMe storage and redundant SAN storage. The current Start Web, Complete Web, and Max Web plans cover two, five, or ten websites and retain backups for 7, 14, or 60 days respectively.</p>
<p>The advertised €0.99 price applies for the first three months when the selected term is paid in advance. The later monthly equivalent varies between the one-, two-, and three-year options, so the checkout total is more useful than the banner price. Business email is currently shown as an add-on rather than an included mailbox allowance.</p>
<p>All web and reseller hosting customers use <a href="https://www.versio.nl/directadmin">DirectAdmin</a>. Versio also sells reseller hosting and VPS plans, which gives agencies a route to separate client accounts or move beyond shared hosting without immediately changing providers.</p>
<p><strong>Best fit:</strong> users managing several sites who want DirectAdmin and a possible path to reseller hosting, provided they account for the term length and separate email cost.</p>
<h2 id="what-to-compare-before-signing-up">What to compare before signing up<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-to-compare-before-signing-up"><span></span></a></h2>
<p>Seven product pages can still hide seven different definitions of &quot;included.&quot; Check these items against the exact tier in your cart:</p>
<ul>
<li><strong>Total initial and renewal cost:</strong> Multiply the post-promotion monthly equivalent by the committed term, then add VAT, the domain, email, migration, and any required service bundle.</li>
<li><strong>Control panel and migration format:</strong> A cPanel, Plesk, or DirectAdmin backup may shorten a move between compatible systems. A proprietary panel usually means moving files, databases, DNS, cron jobs, and mail through a provider-specific process.</li>
<li><strong>Backup scope:</strong> Confirm whether files, databases, and email are all protected, how often each is captured, how long restore points remain, and whether self-service restores cost extra. Keep an independent copy for data you cannot afford to lose.</li>
<li><strong>Resource limits:</strong> Storage is only one limit. CPU, RAM, processes, inodes, database size, outgoing mail, and the number of sites often determine whether a real workload fits.</li>
<li><strong>Uptime wording:</strong> &quot;High availability&quot; and monitoring are architecture claims. An SLA states a threshold, exclusions, claim procedure, and remedy. They are not interchangeable.</li>
<li><strong>Data location and contracts:</strong> Ask where the live data and backups reside, which legal entity signs the agreement, and whether a suitable processor agreement is available. A Dutch company address alone does not answer those questions.</li>
</ul>
<h2 id="which-dutch-host-should-you-choose">Which Dutch host should you choose?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-dutch-host-should-you-choose"><span></span></a></h2>
<p>Choose QDE if you specifically want monthly cPanel hosting, a dedicated IPv4 address, and a clean path to an Amsterdam VPS. Choose TransIP for a broad Dutch infrastructure portfolio and its proprietary panel, or Hostnet for a custom environment with a larger menu of guided business services.</p>
<p>Vimexx is the price-led DirectAdmin option, but its entry tier is materially different from Plus. Antagonist costs more at entry and publishes clearer account-resource and restore-point figures. Yourhosting is the Plesk choice in this group, with more onboarding services and longer billing options. Versio fits multi-site or reseller-oriented users who are comfortable adding email separately.</p>
<p>If your shortlist contains shared hosting and a server you would manage yourself, read <a href="https://qde.com/blog/shared-hosting-vs-vps-hosting/">shared hosting vs. VPS hosting</a> before comparing plan names. Root access and maintenance responsibility will matter more than a small monthly price difference.</p>
<p>If QDE&#39;s monthly cPanel model fits your requirements, review the <a href="https://qde.com/shared-hosting/">Amsterdam shared hosting plans</a> and their exact account limits before ordering.</p>
<h2 id="frequently-asked-questions-about-dutch-shared-hosting">Frequently asked questions about Dutch shared hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-dutch-shared-hosting"><span></span></a></h2>
<h3 id="does-dutch-shared-hosting-come-with-cpanel">Does Dutch shared hosting come with cPanel?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-dutch-shared-hosting-come-with-cpanel"><span></span></a></h3>
<p>It depends on the provider. QDE uses cPanel; Vimexx, Antagonist, and Versio use DirectAdmin; Yourhosting uses Plesk; and TransIP and Hostnet use their own management environments. Check the migration path as well as the interface, especially if you already have a full-account backup from another panel.</p>
<h3 id="do-netherlands-shared-hosting-plans-include-a-dedicated-ip-address">Do Netherlands shared hosting plans include a dedicated IP address?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-netherlands-shared-hosting-plans-include-a-dedicated-ip-address"><span></span></a></h3>
<p>Many shared hosting products use an address across multiple accounts, and several providers do not promise a dedicated address on their public plan pages. QDE includes one dedicated IPv4 address with every shared hosting account. A dedicated IP is not normally required for HTTPS because modern clients support SNI, but it can be useful for IP allowlists or isolating address reputation.</p>
<h3 id="how-fast-is-dutch-shared-hosting">How fast is Dutch shared hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-fast-is-dutch-shared-hosting"><span></span></a></h3>
<p>There is no honest provider-wide number. A 10 Gbps port describes network capacity at one point in the system; it is not a guarantee that one shared account will transfer at 10 Gbps. QDE lists a 10 Gbps shared uplink, while other providers describe their own caching and network designs. Test the actual site, its cache behavior, time to first byte, error rate, and latency from the visitor regions that matter to you.</p>
<h3 id="what-backup-uptime-and-refund-terms-should-i-look-for">What backup, uptime, and refund terms should I look for?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-backup-uptime-and-refund-terms-should-i-look-for"><span></span></a></h3>
<p>Look for separate answers. A useful backup policy names frequency, retention, covered data, storage location, and restore procedure. An SLA names an availability target and remedy. A money-back guarantee defines how long you can cancel and what charges are excluded. One does not replace either of the others.</p>
<p>QDE publishes daily offsite backups, a 99.9% uptime SLA, and a 14-day money-back guarantee. Other providers in this comparison publish different combinations, including longer restore histories or 30-day refund windows, so match the terms to the failure you need to recover from.</p>
<h3 id="when-should-i-move-from-shared-hosting-to-a-vps">When should I move from shared hosting to a VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#when-should-i-move-from-shared-hosting-to-a-vps"><span></span></a></h3>
<p>Move when the application needs root access, custom system packages, long-running services, Docker, Node.js or Python support that the shared plan does not provide, or resource isolation beyond the host&#39;s account limits. A VPS also moves operating-system patching, monitoring, and recovery work onto you unless you buy a managed service.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Shared Hosting" term="Shared Hosting"/>
        <category label="Netherlands Hosting" term="Netherlands Hosting"/>
        <category label="Web Hosting" term="Web Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Is cPanel Still the Best Control Panel for Websites in 2026?]]></title>
        <id>https://qde.com/blog/is-cpanel-still-the-best-control-panel-2026/</id>
        <link href="https://qde.com/blog/is-cpanel-still-the-best-control-panel-2026/"/>
        <updated>2026-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[cPanel remains a strong default for managed shared hosting, but the right 2026 control panel depends on licensing, operating system, mail, migration, and who maintains the server.]]></summary>
        <content type="html"><![CDATA[<p>cPanel is still one of the most predictable control-panel choices for managed shared hosting in 2026. It has familiar account and reseller workflows, broad software support, and documentation for nearly every routine task. It is no longer the automatic answer for every server.</p>
<p>Choose Plesk when supported Windows Server management matters. Consider CloudPanel for a self-managed Linux web or application server that does not need a local mail stack. HestiaCP offers a free all-in-one Linux setup with mail and DNS, while CyberPanel centers its free core on OpenLiteSpeed. DirectAdmin is the lower-priced commercial option worth testing for shared hosting and reselling.</p>
<p>QDE sells cPanel-based shared hosting and unmanaged VPS plans on which customers can install another panel. We therefore have a commercial interest on both sides of this comparison. The useful question is not which dashboard looks nicest. It is which panel matches your tenant model, applications, migration plan, and willingness to administer the server.</p>








































<div class="cs-content-table-wrap"><table><thead><tr><th>Situation</th><th>Strong starting point</th><th>Reason</th></tr></thead><tbody><tr><td>Managed PHP or WordPress shared hosting</td><td>cPanel</td><td>Familiar customer workflow and a mature hosting ecosystem</td></tr><tr><td>Linux and Windows Server estate</td><td>Plesk</td><td>The only panel in this comparison with supported Windows Server releases</td></tr><tr><td>Self-managed Linux web or app server without local email</td><td>CloudPanel</td><td>Free Community Edition and a focused Nginx-based application stack</td></tr><tr><td>Small self-managed Linux server with mail and DNS</td><td>HestiaCP</td><td>Free, open-source, and includes a conventional hosting stack</td></tr><tr><td>WordPress on OpenLiteSpeed</td><td>CyberPanel</td><td>Free core with OpenLiteSpeed and LSCache integration</td></tr><tr><td>Commercial shared-hosting panel on a tighter license budget</td><td>DirectAdmin</td><td>Lower direct license prices than cPanel</td></tr></tbody></table></div>
<h2 id="a-control-panel-changes-operations-not-server-ownership">A control panel changes operations, not server ownership<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#a-control-panel-changes-operations-not-server-ownership"><span></span></a></h2>
<p>A hosting control panel turns common system-administration tasks into web forms and guarded workflows. It can create domains, Unix users, mailboxes, databases, DNS zones, scheduled jobs, backups, and TLS certificates without making the customer edit each service configuration by hand.</p>
<p>That convenience gives the panel considerable access to the machine. Treat it as a privileged management layer: keep the panel and operating system patched, require multi-factor authentication, restrict administrator access where practical, store backups away from the server, and test restores.</p>
<p>A license does not make an unmanaged VPS managed. If you install a panel on an unmanaged server, you still own operating-system updates, firewall policy, mail reputation, capacity planning, monitoring, incident response, and recovery. With managed shared hosting, the provider normally handles that layer and gives each customer a limited panel account. This difference often matters more than the logo in the browser.</p>
<h2 id="why-cpanel-remains-a-strong-default">Why cPanel remains a strong default<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-cpanel-remains-a-strong-default"><span></span></a></h2>
<p>cPanel&#39;s roots go back to <a href="https://cpanel.net/blog/cpeople/cp-a-company-of-people/">hosting automation scripts written in 1996</a>. That history produced a deep body of documentation, trained support staff, migration experience, and integrations for billing, reselling, backups, security tools, and PHP applications.</p>
<p>Its two-layer model is particularly well suited to shared hosting:</p>
<ul>
<li>WHM gives the server owner or reseller control over packages, accounts, DNS, mail, limits, and server services.</li>
<li>cPanel gives each customer a separate interface for domains, files, databases, email, certificates, and applications.</li>
</ul>
<p>That account boundary is one reason providers keep using it. A new support technician is more likely to know cPanel than a younger panel, while customers can move a conventional cPanel backup between participating hosts with less retraining. cPanel&#39;s <a href="https://docs.cpanel.net/whm/transfers/transfer-tool/">Transfer Tool</a> also covers many cPanel-to-cPanel migrations.</p>
<p>There are limits. cPanel is a Linux product. Its current <a href="https://docs.cpanel.net/installation-guide/system-requirements/">system requirements</a> cover AlmaLinux, CloudLinux, Rocky Linux, and Ubuntu rather than Windows Server. Its account-based licensing also becomes expensive when a host adds many independent customers.</p>
<h2 id="what-cpanel-costs-in-2026">What cPanel costs in 2026<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-cpanel-costs-in-2026"><span></span></a></h2>
<p>As of July 25, 2026, the official <a href="https://support.cpanel.net/hc/en-us/articles/30117774089879-2026-cPanel-Store-License-Pricing">cPanel Store pricing for 2026</a> lists these monthly cloud-license rates:</p>



































<div class="cs-content-table-wrap"><table><thead><tr><th>License</th><th style="text-align:right">Included cPanel accounts</th><th style="text-align:right">Monthly cPanel Store rate</th></tr></thead><tbody><tr><td>Solo</td><td style="text-align:right">1</td><td style="text-align:right">$29.99</td></tr><tr><td>Admin</td><td style="text-align:right">Up to 5</td><td style="text-align:right">$35.99</td></tr><tr><td>Pro</td><td style="text-align:right">Up to 30</td><td style="text-align:right">$53.99</td></tr><tr><td>Premier</td><td style="text-align:right">Up to 100</td><td style="text-align:right">$69.99</td></tr><tr><td>Premier additional account</td><td style="text-align:right">Each account over 100</td><td style="text-align:right">$0.49</td></tr></tbody></table></div>
<p>Those are direct Store rates before tax, discounts, or cPanel Partner pricing. They are not necessarily what a hosting provider pays or passes on to a customer.</p>
<p>The scaling effect is easy to miss. At the direct Store rate, a Premier license for 300 accounts works out to $167.99 per month: $69.99 for the first 100 accounts and $98 for the remaining 200. Server cost, support, backups, monitoring, and other software still sit on top.</p>
<p>An account is not the same thing as a domain. One cPanel account may host several domains when its package allows that. Plesk editions, by contrast, are commonly described by domain limits. Compare the way you isolate customers and subscriptions rather than putting the headline account and domain numbers side by side.</p>
<p>For one managed website, the license math may be invisible because the host spreads it across the platform. For a developer running one small VPS, a $29.99 monthly panel can cost more than the server. For a host with hundreds of isolated accounts, per-account growth becomes a budget line that deserves its own forecast.</p>
<h2 id="how-the-alternatives-compare">How the alternatives compare<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-the-alternatives-compare"><span></span></a></h2>





























































<div class="cs-content-table-wrap"><table><thead><tr><th>Panel</th><th>License model</th><th>Supported server OS</th><th>Built-in mail stack</th><th>Main fit</th><th>Main caveat</th></tr></thead><tbody><tr><td>cPanel and WHM</td><td>Commercial, account-based</td><td>Linux</td><td>Yes</td><td>Managed shared hosting and resellers</td><td>Price rises with account count</td></tr><tr><td>Plesk</td><td>Commercial, edition/domain-based</td><td>Linux and Windows Server</td><td>Yes</td><td>Windows, agencies, and mixed estates</td><td>Commercial license and extension-specific limits</td></tr><tr><td>CloudPanel</td><td>Free Community Edition</td><td>Linux</td><td>No</td><td>Self-managed web and application servers</td><td>External mail service required</td></tr><tr><td>HestiaCP</td><td>GPLv3</td><td>Linux</td><td>Yes</td><td>Small all-in-one self-managed servers</td><td>Smaller integration and migration ecosystem</td></tr><tr><td>CyberPanel</td><td>GPLv3 core, paid add-ons available</td><td>Linux</td><td>Yes</td><td>OpenLiteSpeed and WordPress</td><td>Check Apache rewrite and premium-feature requirements</td></tr><tr><td>DirectAdmin</td><td>Commercial, account/domain tiers</td><td>Linux</td><td>Yes</td><td>Budget-conscious shared hosting and resellers</td><td>Smaller ecosystem than cPanel</td></tr></tbody></table></div>
<p>The table describes products, not management quality. A carefully maintained HestiaCP server is a better choice than a neglected cPanel server. A provider that answers incidents, tests backups, and patches quickly may be worth more than the difference between two panel licenses.</p>
<h3 id="plesk">Plesk<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#plesk"><span></span></a></h3>
<p><a href="https://www.plesk.com/editions/">Plesk</a> is cPanel&#39;s closest commercial peer in this group. Its Web Admin, Web Pro, and Web Host editions use domain-oriented limits and target site owners, agencies, and hosting providers respectively.</p>
<p>Its decisive difference is operating-system support. Plesk&#39;s current <a href="https://docs.plesk.com/release-notes/obsidian/system-requirements/">system requirements</a> cover both Linux distributions and supported Windows Server releases. If an application needs IIS, ASP.NET Framework, or another Windows-specific component, cPanel and the Linux-only alternatives do not solve that requirement.</p>
<p>Plesk offers Git and Docker through extensions, but read the extension limits before treating those features as a complete container platform. For example, Plesk&#39;s <a href="https://docs.plesk.com/en-US/obsidian/administrator-guide/plesk-administration/using-docker.75823/">Docker documentation</a> notes platform, backup, and migration constraints. Root access and a dedicated container workflow may still be the cleaner choice for a container-heavy service.</p>
<p>Plesk&#39;s <a href="https://docs.plesk.com/en-US/obsidian/migration-guide/introduction.75496/">Migrator documentation</a> lists cPanel 11.5 and later as supported sources. That is useful during a move, but it does not make the two products identical. Account layout, subscriptions, extensions, web-server rules, mail, and DNS still need a trial migration and verification.</p>
<h3 id="cloudpanel">CloudPanel<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#cloudpanel"><span></span></a></h3>
<p><a href="https://www.cloudpanel.io/pricing/">CloudPanel Community Edition</a> is free to use. Its current <a href="https://www.cloudpanel.io/docs/v2/technology-stack/">technology stack</a> is aimed at PHP, Node.js, Python, static sites, and reverse-proxy workloads on Nginx, with database and caching components available for application hosting.</p>
<p>The scope is deliberately narrower than cPanel. CloudPanel&#39;s own <a href="https://www.cloudpanel.io/docs/v2/frontend-area/e-mail/">email documentation</a> says that it does not provide an email server and recommends a separate mail service. That is often a sensible design for a developer managing application servers. It is a poor substitute for cPanel when customers expect to create local mailboxes, forwarders, spam rules, and webmail in the same account.</p>
<p>CloudPanel is a good candidate for a small agency or developer who already knows Linux, uses external email, and wants a focused application panel without per-account fees. The operator must still maintain the server. &quot;Free panel&quot; means a zero-dollar license, not zero operating cost.</p>
<h3 id="hestiacp">HestiaCP<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#hestiacp"><span></span></a></h3>
<p><a href="https://hestiacp.com/features">HestiaCP</a> is a GPLv3 control panel based on the earlier VestaCP project. It includes web hosting, DNS, Exim and Dovecot mail services, databases, Let&#39;s Encrypt certificates, and backups. It also supports PostgreSQL alongside MariaDB or MySQL, which can be useful for a mixed set of small applications.</p>
<p>Its compact scope suits a personal server, a small organization, or an administrator who wants an all-in-one Linux panel without a commercial license. The trade is a smaller plugin, support, and migration ecosystem than cPanel.</p>
<p>Hestia&#39;s official <a href="https://hestiacp.com/docs/server-administration/backup-restore">backup and restore documentation</a> covers HestiaCP and VestaCP backups. Do not assume a cPanel account archive will restore directly. Budget for a site-by-site migration or a tested third-party process.</p>
<h3 id="cyberpanel">CyberPanel<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#cyberpanel"><span></span></a></h3>
<p>CyberPanel&#39;s free core is GPLv3 and uses OpenLiteSpeed. Its <a href="https://cyberpanel.net/cyberpanel-addons">core feature and add-on list</a> includes mail, DNS, FTP, databases, SSL management, and WordPress tooling, while some advanced functions are paid.</p>
<p>That makes CyberPanel a practical candidate when OpenLiteSpeed and LSCache for WordPress fit the workload. It also offers an <a href="https://cyberpanel.net/KnowledgeBase/home/auto-import-cpanel-sites-to-cyberpanel/">automatic cPanel backup importer</a>, which can shorten a migration. Import is the beginning of the test, not proof that every mailbox, DNS record, cron job, PHP extension, rewrite rule, and certificate arrived correctly.</p>
<p>Check compatibility before moving an Apache site with a large or unusual <code>.htaccess</code> file. OpenLiteSpeed does not behave exactly like Apache in every configuration, and CyberPanel sells additional <code>.htaccess</code> tooling. A benchmark using your plugins, cache state, database, and traffic pattern is more useful than a generic claim that one web stack is faster.</p>
<h3 id="directadmin">DirectAdmin<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#directadmin"><span></span></a></h3>
<p><a href="https://www.directadmin.com/pricing.php">DirectAdmin&#39;s current retail pricing</a> starts at $5 per month for Personal PLUS, $15 for Lite, and $29 for Standard. The plans differ by account and domain limits, with Standard allowing unlimited accounts and domains under the license terms shown on that page.</p>
<p>DirectAdmin covers the normal shared-hosting stack and supports several web-server configurations. It also documents a <a href="https://docs.directadmin.com/directadmin/backup-restore-migration/migration-to-da.html">cPanel conversion and import process</a>, including known issues and a recommendation to test one account before a bulk move.</p>
<p>It is less ubiquitous than cPanel, but it occupies a useful middle ground: a commercial product and support channel without cPanel&#39;s direct Store price. Hosts should still compare billing integrations, backup systems, reseller workflows, staff familiarity, and migration results rather than choosing on license price alone.</p>
<h2 id="a-panel-name-is-not-a-performance-benchmark">A panel name is not a performance benchmark<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#a-panel-name-is-not-a-performance-benchmark"><span></span></a></h2>
<p>CloudPanel, CyberPanel, and other lean panels are often advertised as faster than cPanel. The panel can influence the default web server, caching tools, process manager, and background-service footprint, but its name does not determine requests per second.</p>
<p>A fair test keeps these variables under control:</p>
<ul>
<li>the same CPU, RAM, storage, operating system, and network;</li>
<li>the same PHP or application runtime and worker limits;</li>
<li>the same database version, data set, and buffer configuration;</li>
<li>identical application code, plugins, cache state, and TLS setup;</li>
<li>measured latency and error rate at several concurrency levels; and</li>
<li>enough run time to expose memory pressure, cache misses, and background jobs.</li>
</ul>
<p>If a panel saves 300 MB of idle memory but lacks the mail, backup, or tenant controls you require, it has not improved the complete hosting system. Conversely, there is little value in paying for a large control-panel ecosystem when one administrator runs three application servers and never uses the reseller or mail features.</p>
<h2 id="migration-tools-reduce-work-but-they-do-not-remove-risk">Migration tools reduce work, but they do not remove risk<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#migration-tools-reduce-work-but-they-do-not-remove-risk"><span></span></a></h2>
<p>cPanel, Plesk, CyberPanel, and DirectAdmin all provide migration or import paths for at least some source configurations. Coverage differs, and third-party plugins can add state that no generic importer understands. Treat a panel change as a server migration.</p>
<p>Before changing DNS:</p>
<ol>
<li>Inventory domains, aliases, DNS zones, mailboxes, forwarders, cron jobs, databases, users, PHP versions and extensions, TLS certificates, rewrite rules, and backup policies.</li>
<li>Export one representative account and import it into a test server.</li>
<li>Compare files, database row counts, DNS records, mailbox counts, scheduled jobs, and application behavior.</li>
<li>Test the new site through a local hosts-file override before public cutover.</li>
<li>Keep the old server unchanged long enough to provide a rollback path.</li>
<li>Plan the final database and mail synchronization so writes are not silently lost.</li>
<li>After cutover, monitor certificate renewal, mail queues, bounces, background jobs, error logs, and backup completion.</li>
</ol>
<p>The migration tool should be chosen only after the inventory. A successful progress bar cannot tell you whether a payment webhook, obscure mailbox rule, or nightly cron job still works.</p>
<h2 id="how-to-choose-in-2026">How to choose in 2026<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-choose-in-2026"><span></span></a></h2>
<p>Start with five questions:</p>
<ol>
<li><strong>Who maintains the operating system?</strong> If the answer is &quot;the hosting provider,&quot; evaluate the complete managed service. If it is you, include patching, monitoring, mail, and recovery time in the panel cost.</li>
<li><strong>Do you need local email and DNS?</strong> CloudPanel is intentionally lean and has no mail server. cPanel, Plesk, HestiaCP, CyberPanel, and DirectAdmin cover more of the traditional hosting stack.</li>
<li><strong>Do you need Windows Server?</strong> Choose Plesk from this group. The others are Linux panels.</li>
<li><strong>How are tenants separated?</strong> Count real customer accounts, subscriptions, and domains under each vendor&#39;s license model. The units are not interchangeable.</li>
<li><strong>What must migrate?</strong> Test the actual importer against a representative account before committing to the destination panel.</li>
</ol>
<p>cPanel remains the strongest default when a host needs predictable shared-hosting and reseller workflows, customers already know the interface, and the license cost is spread across a managed platform. It is harder to justify on a small self-managed VPS when you only need a web server, database, and certificate automation.</p>
<p>Plesk wins the Windows requirement. CloudPanel wins a narrower free application-server brief. HestiaCP offers a free conventional hosting stack. CyberPanel is worth evaluating for an OpenLiteSpeed-centered WordPress setup. DirectAdmin deserves a test when you want commercial support with lower direct license prices.</p>
<h2 id="where-qde-fits">Where QDE fits<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#where-qde-fits"><span></span></a></h2>
<p>QDE&#39;s <a href="https://qde.com/shared-hosting/">shared hosting</a> uses cPanel on our Amsterdam infrastructure. It is intended for PHP, WordPress, and static sites whose owners want the provider to maintain the hosting platform. Each account includes a dedicated IPv4 address, selectable PHP 8.2 through 8.5 per site, MariaDB with phpMyAdmin, and cPanel-based WordPress management.</p>
<p>If you want to inspect the interface first, open the <a href="https://europa.qde.net:2083/">QDE cPanel demo</a> and sign in with username <code>demo</code> and password <code>I8.aB?*+AFx~t{w-</code>.</p>
<p>QDE&#39;s <a href="https://qde.com/vps/">unmanaged KVM VPS plans</a> are the better fit when you need root access, Node.js, Python, Docker, a custom web stack, or a control panel of your own choosing. Installing and maintaining that panel remains your responsibility. If that boundary is still unclear, our <a href="https://qde.com/blog/shared-hosting-vs-vps-hosting/">shared hosting vs VPS guide</a> explains the wider resource, isolation, and administration differences.</p>
<p><em><strong>Want a managed cPanel account or help deciding whether your workload belongs on a VPS? <a href="https://qde.com/contact/">Contact the QDE team</a> with the applications, domains, and mail requirements you need to run.</strong></em></p>
<h2 id="frequently-asked-questions-about-cpanel-and-control-panels">Frequently asked questions about cPanel and control panels<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-cpanel-and-control-panels"><span></span></a></h2>
<h3 id="does-qde-shared-hosting-include-cpanel">Does QDE shared hosting include cPanel?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-qde-shared-hosting-include-cpanel"><span></span></a></h3>
<p>Yes. Every QDE shared hosting plan includes cPanel, and every account receives a dedicated IPv4 address. The account still uses a shared hosting platform; the IPv4 assignment is exclusive to that account.</p>
<h3 id="which-php-versions-can-i-use-with-qde-cpanel-hosting">Which PHP versions can I use with QDE cPanel hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-php-versions-can-i-use-with-qde-cpanel-hosting"><span></span></a></h3>
<p>QDE shared hosting supports PHP 8.2 through 8.5. You can select the version per site, which helps when separate applications have different runtime requirements.</p>
<h3 id="can-i-manage-databases-through-cpanel">Can I manage databases through cPanel?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-manage-databases-through-cpanel"><span></span></a></h3>
<p>Yes. QDE shared hosting includes MariaDB and phpMyAdmin, so you can create databases, manage users, browse tables, and run queries without SSH access.</p>
<h3 id="is-wordpress-installation-really-one-click">Is WordPress installation really one click?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-wordpress-installation-really-one-click"><span></span></a></h3>
<p>&quot;One-click&quot; is industry shorthand. QDE&#39;s cPanel WordPress workflow automates the files, database, and initial setup, but you still choose details such as the domain and administrator credentials. The installation normally takes a few clicks rather than a manual database and configuration process.</p>
<h3 id="what-if-qde-shared-hosting-is-not-right-for-my-site">What if QDE shared hosting is not right for my site?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-if-qde-shared-hosting-is-not-right-for-my-site"><span></span></a></h3>
<p>QDE shared hosting has a 99.9% uptime SLA and a 14-day money-back guarantee under the current hosting terms. Test the service with the real application, plugins, mail flow, and traffic pattern during that period rather than relying only on a feature list.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="cPanel" term="cPanel"/>
        <category label="Control Panel" term="Control Panel"/>
        <category label="Web Hosting" term="Web Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Do You Need a Dedicated IP Address for Your Website?]]></title>
        <id>https://qde.com/blog/do-you-need-a-dedicated-ip-address-for-your-website/</id>
        <link href="https://qde.com/blog/do-you-need-a-dedicated-ip-address-for-your-website/"/>
        <updated>2026-07-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A dedicated IP is assigned to one account or server instead of being shared; learn when that matters, when it does not, and how to check what your hosting includes.]]></summary>
        <content type="html"><![CDATA[<p>Most websites do not need a dedicated IP address just to use HTTPS, appear in search results, or load quickly. It becomes useful when another system must allowlist a predictable endpoint, your server sends enough email to justify managing its own IP reputation, or you want to avoid sharing address-level problems with unrelated tenants.</p>
<p>Two checks matter before you pay for one. First, &quot;dedicated&quot; means that the provider assigns the address only to your account or server. &quot;Static&quot; means that the address is expected to stay the same. Providers often bundle those properties, but they are not identical. Second, a website&#39;s dedicated IP may not be the IP that its mail server uses for outbound messages.</p>








































<div class="cs-content-table-wrap"><table><thead><tr><th>Requirement</th><th>Does a dedicated IP help?</th><th>What to confirm</th></tr></thead><tbody><tr><td>Standard HTTPS certificate</td><td>Usually no</td><td>The host supports SNI</td></tr><tr><td>Outbound email reputation</td><td>Sometimes</td><td>Mail actually leaves through the dedicated IP, and you can configure PTR, SPF, DKIM, and DMARC</td></tr><tr><td>Firewall, VPN, or partner allowlisting</td><td>Yes</td><td>The address is also static and is used in the required traffic direction</td></tr><tr><td>PCI DSS or another compliance framework</td><td>Not by itself</td><td>The assessor accepts the complete segmentation and control design</td></tr><tr><td>Isolation from another tenant&#39;s IP reputation</td><td>Yes</td><td>No other customer sends or serves traffic from the address</td></tr><tr><td>Better site speed or application security</td><td>No</td><td>Those depend on the server, application, and network controls</td></tr></tbody></table></div>
<h2 id="what-a-dedicated-ip-address-is">What a dedicated IP address is<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-a-dedicated-ip-address-is"><span></span></a></h2>
<p>A dedicated IP address is a public IPv4 or IPv6 address assigned exclusively to one account, server, or customer while that allocation remains active. You can still host several domains of your own on it. The word &quot;dedicated&quot; describes who may use the address, not how many sites you run or whether you own a physical server.</p>
<p>Shared hosting commonly works differently. Many customer accounts can use one public IP, while the web server selects the right site from the hostname in each request. This is efficient and does not stop those sites from using separate domains or certificates.</p>
<p>An account can therefore have a dedicated IP while still sharing the operating system, CPU, RAM, storage, and uplink with other accounts. If you are comparing those wider resource and management differences, read our <a href="https://qde.com/blog/shared-hosting-vs-vps-hosting/">shared hosting vs VPS hosting guide</a>.</p>
<h2 id="where-a-dedicated-ip-helps">Where a dedicated IP helps<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#where-a-dedicated-ip-helps"><span></span></a></h2>
<h3 id="stable-allowlisting-when-the-address-is-also-static">Stable allowlisting, when the address is also static<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#stable-allowlisting-when-the-address-is-also-static"><span></span></a></h3>
<p>Partner APIs, corporate firewalls, VPNs, license servers, and remote management rules often allow traffic only from or to approved IP addresses. A predictable address makes those rules much easier to maintain.</p>
<p>The traffic direction matters. A dedicated address assigned to a server is an obvious destination for inbound SSH, RDP, or HTTPS. For a partner that allowlists your source IP, confirm that outbound traffic is translated to the same address. A provider can route inbound traffic to one IP while sending outbound traffic through another gateway.</p>
<p>Ask whether the address will survive reboots, host maintenance, and normal migrations. A dedicated address can still be renumbered under a provider&#39;s terms, so use DNS names where the integration supports them.</p>
<h3 id="email-reputation-can-belong-to-one-sender">Email reputation can belong to one sender<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#email-reputation-can-belong-to-one-sender"><span></span></a></h3>
<p>A dedicated sending IP separates your IP reputation from other senders. Google&#39;s <a href="https://support.google.com/mail/answer/81126">email sender guidelines</a> explain that activity from every sender on a shared IP affects that IP&#39;s reputation. With a dedicated sending address, your own complaints, bounces, sending pattern, and list hygiene determine the address history.</p>
<p>This only applies to the sending IP. A dedicated website IP does nothing for deliverability if cPanel, your hosting provider, or a third-party email service sends mail through a different shared relay. Check the <code>Received</code> headers of a delivered message or ask the provider which public IP its SMTP service uses.</p>
<p>The IP is only one part of delivery. As of July 24, 2026, Gmail also requires sender authentication, valid forward and reverse DNS, TLS, and controlled spam rates. A dedicated IP without PTR records, SPF, DKIM, DMARC where required, and sensible sending practices is simply a private way to build a bad reputation.</p>
<h3 id="address-level-incidents-have-a-smaller-blast-radius">Address-level incidents have a smaller blast radius<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#address-level-incidents-have-a-smaller-blast-radius"><span></span></a></h3>
<p>If several unrelated sites or senders share one address, an address-specific blocklist entry, firewall rule, rate limit, or provider mitigation can affect all of them. Exclusive use removes that particular dependency.</p>
<p>This isolation has limits. A large attack can still congest shared infrastructure or trigger controls at a wider prefix or network level. A dedicated IP reduces exposure to events tied to one shared address; it does not turn shared infrastructure into a private network.</p>
<h3 id="legacy-software-and-ip-based-licensing-still-exist">Legacy software and IP-based licensing still exist<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#legacy-software-and-ip-based-licensing-still-exist"><span></span></a></h3>
<p>Some vendor licenses, older applications, partner integrations, and monitoring systems identify a server by IP instead of by hostname or account identity. A dedicated static IP may be the simplest compatible endpoint.</p>
<p>Verify that requirement before choosing a plan. Connecting to a website by raw IP can select the wrong virtual host, and a normal TLS certificate for <code>example.com</code> will not validate when a client connects to <code>https://203.0.113.10/</code>.</p>
<h2 id="where-it-does-not-help">Where it does not help<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#where-it-does-not-help"><span></span></a></h2>
<h3 id="https-no-longer-requires-one">HTTPS no longer requires one<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#https-no-longer-requires-one"><span></span></a></h3>
<p><a href="https://www.rfc-editor.org/rfc/rfc6066">Server Name Indication in RFC 6066</a> lets a TLS client include the hostname it wants during the handshake. The server can then choose the matching certificate even when several domains use the same underlying IP address.</p>
<p>Modern browsers and web servers support SNI, so ordinary HTTPS is not a reason to buy a dedicated address. Exceptions are limited to legacy clients and unusual configurations that cannot send or process SNI.</p>
<h3 id="a-fresh-sending-ip-starts-without-a-reputation">A fresh sending IP starts without a reputation<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#a-fresh-sending-ip-starts-without-a-reputation"><span></span></a></h3>
<p>A new dedicated IP has no sending history. Sending a large campaign immediately can cause throttling or junk-folder placement while mailbox providers decide how to treat it. Amazon SES documents the same tradeoff in its <a href="https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html">shared and dedicated IP comparison</a>: shared pools are ready immediately and suit low-volume senders, while standard dedicated IPs need warm-up and consistent volume.</p>
<p>For a small website that sends password resets, contact-form replies, and a few invoices, a well-managed shared mail service may produce better results with much less work. Dedicated email infrastructure is most useful when the sending volume and operational requirements justify maintaining it.</p>
<h3 id="ipv4-may-cost-extra">IPv4 may cost extra<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#ipv4-may-cost-extra"><span></span></a></h3>
<p>The RIPE NCC <a href="https://www.ripe.net/manage-ips-and-asns/ipv4/ipv4-run-out/">exhausted its remaining IPv4 pool in November 2019</a>. Networks now recover addresses, use transfer markets, or share IPv4 space while IPv6 deployment continues. That scarcity is why many providers limit extra IPv4 addresses or charge a monthly fee for them.</p>
<p>Check whether the advertised price includes the first dedicated IPv4 address, whether additional addresses are available, and what justification the provider requires. IPv6 space is far more plentiful, but an IPv6-only service will not replace IPv4 reachability for every visitor or integration.</p>
<h3 id="it-does-not-allocate-more-server-resources">It does not allocate more server resources<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#it-does-not-allocate-more-server-resources"><span></span></a></h3>
<p>An IP address does not add CPU time, RAM, storage I/O, throughput, or DDoS filtering. It also does not repair an outdated plugin, close an exposed admin panel, or configure a firewall. Those are separate properties of the hosting platform and application.</p>
<p>Compliance requires more than an address assignment. As of July 24, 2026, the PCI Security Standards Council describes effective segmentation in terms of controls such as properly configured firewalls, routers with access-control lists, VLANs, and other technologies that restrict access. Its <a href="https://www.pcisecuritystandards.org/faqs/1135/">segmentation guidance</a> does not make a dedicated IP a substitute for validated isolation. If an audit matters, ask the assessor about the complete architecture rather than buying an IP and treating the box as checked.</p>
<h2 id="how-to-check-what-your-hosting-already-includes">How to check what your hosting already includes<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-check-what-your-hosting-already-includes"><span></span></a></h2>
<p>Start with the provider&#39;s control panel, order confirmation, and product documentation. Those sources can tell you whether the address is contractually assigned only to your account. A command on the server can show which addresses it sees, but it cannot prove that the provider does not reuse an upstream proxy, NAT address, or mail relay.</p>
<p>For a domain, inspect the public DNS records:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">dig</span><span style="color:#CE9178"> +short</span><span style="color:#CE9178"> A</span><span style="color:#CE9178"> example.com</span></span>
<span class="line"><span style="color:#DCDCAA">dig</span><span style="color:#CE9178"> +short</span><span style="color:#CE9178"> AAAA</span><span style="color:#CE9178"> example.com</span></span></code></pre>
<p>If the site uses a CDN or reverse proxy, these results show the proxy&#39;s public addresses rather than the origin server. Seeing unrelated domains on the same address is evidence that the address is shared, but finding no other domains is not proof that it is dedicated. Reverse-IP databases are incomplete, and one customer can legitimately host many domains.</p>
<p>On a Linux VPS, list the addresses on active interfaces:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">ip</span><span style="color:#569CD6"> -brief</span><span style="color:#CE9178"> address</span><span style="color:#CE9178"> show</span><span style="color:#CE9178"> up</span></span></code></pre>
<p>Compare the result with the VPS control panel. Private addresses, link-local addresses, and a single configured address from a larger routed IPv6 subnet may all appear, so the provider&#39;s allocation details still matter.</p>
<p>If the server sends mail directly, check whether you control reverse DNS for its sending address:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">dig</span><span style="color:#569CD6"> -x</span><span style="color:#B5CEA8"> 203.0.113.10</span><span style="color:#CE9178"> +short</span></span></code></pre>
<p>Replace the documentation address with the real sending IP. A matching PTR record helps with mail setup, but it does not prove exclusivity either.</p>
<p>When the product page is unclear, ask the provider four precise questions:</p>
<ol>
<li>Is this public IPv4 address assigned only to my account or server?</li>
<li>Is it expected to remain unchanged during routine maintenance and migrations?</li>
<li>Does outbound web and SMTP traffic use this address?</li>
<li>Can I set its PTR or reverse DNS record?</li>
</ol>
<p>Those answers are more useful than a generic &quot;dedicated IP included&quot; badge.</p>
<h2 id="do-you-need-one">Do you need one?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-you-need-one"><span></span></a></h2>
<p>Choose a dedicated IP when a stable allowlist, a verified IP-based integration, direct high-volume mail, or address-level tenant isolation has operational value. Skip it when the only reasons are standard HTTPS, better rankings, faster pages, or a vague promise of improved security.</p>
<p>QDE sells both shared hosting and VPS plans, so our product interest is direct. Every <a href="https://qde.com/vps/">QDE KVM VPS</a> includes one dedicated IPv4 address and a /64 IPv6 subnet. Every <a href="https://qde.com/shared-hosting/">QDE shared hosting</a> account includes one dedicated IPv4 address, with one IPv6 address available on request. The shared hosting account still shares server resources; only its public IPv4 assignment is exclusive to that account.</p>
<p><em><strong>Need help choosing between them? <a href="https://qde.com/contact/">Contact the QDE team</a> with the software you run and any IP, mail, or allowlisting requirements.</strong></em></p>
<h2 id="frequently-asked-questions-about-dedicated-ip-addresses">Frequently asked questions about dedicated IP addresses<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-dedicated-ip-addresses"><span></span></a></h2>
<h3 id="what-is-the-main-benefit-of-a-dedicated-ip-address">What is the main benefit of a dedicated IP address?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-the-main-benefit-of-a-dedicated-ip-address"><span></span></a></h3>
<p>It gives one account or server exclusive use of an address. That can provide a predictable endpoint and separate address-level reputation or blocking from unrelated tenants. The benefit only applies at the IP layer.</p>
<h3 id="is-a-dedicated-ip-the-same-as-a-static-ip">Is a dedicated IP the same as a static IP?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-a-dedicated-ip-the-same-as-a-static-ip"><span></span></a></h3>
<p>No. Dedicated means exclusive to one customer while assigned. Static means expected to remain unchanged. Many hosting products provide both, but you should confirm the provider&#39;s migration and renumbering policy when a firewall or partner integration depends on the address.</p>
<h3 id="does-every-qde-vps-include-a-dedicated-ip">Does every QDE VPS include a dedicated IP?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-every-qde-vps-include-a-dedicated-ip"><span></span></a></h3>
<p>Yes. Every QDE VPS plan includes one dedicated IPv4 address and a /64 IPv6 subnet as standard plan features.</p>
<h3 id="do-i-need-a-dedicated-ip-for-an-ssl-certificate">Do I need a dedicated IP for an SSL certificate?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-a-dedicated-ip-for-an-ssl-certificate"><span></span></a></h3>
<p>No for normal modern hosting. SNI lets one IP serve the correct certificate for many domain names. A dedicated IP is only relevant for legacy clients or a specific configuration that cannot use SNI.</p>
<h3 id="will-a-dedicated-ip-automatically-improve-email-deliverability">Will a dedicated IP automatically improve email deliverability?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#will-a-dedicated-ip-automatically-improve-email-deliverability"><span></span></a></h3>
<p>No. It isolates the sending IP&#39;s reputation only when outbound mail actually uses that address. New IPs also need a careful warm-up, valid forward and reverse DNS, email authentication, and clean sending practices. Low-volume senders often do better on a reputable shared mail service.</p>
<h3 id="can-shared-hosting-include-a-dedicated-ip">Can shared hosting include a dedicated IP?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-shared-hosting-include-a-dedicated-ip"><span></span></a></h3>
<p>Yes. Dedicated describes the address assignment, not the server resources. QDE shared hosting assigns one dedicated IPv4 address to each account even though the account still runs on a shared hosting platform.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Dedicated IP" term="Dedicated IP"/>
        <category label="VPS Hosting" term="VPS Hosting"/>
        <category label="Networking" term="Networking"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to Self-Host Plausible Analytics With Docker]]></title>
        <id>https://qde.com/blog/how-to-self-host-plausible/</id>
        <link href="https://qde.com/blog/how-to-self-host-plausible/"/>
        <updated>2026-07-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Set up Plausible Community Edition with Docker, bind it to localhost, and serve it over HTTPS through Nginx on your own VPS.]]></summary>
        <content type="html"><![CDATA[<p>Plausible is a good fit when you want useful traffic numbers without sending every page view into Google&#39;s advertising stack. Community Edition runs the same core application on your own server, so you choose where the databases and backups live.</p>
<p><a href="https://plausible.io/self-hosted-web-analytics">Plausible</a> is open source, cookie-free web analytics. The dashboard covers page views, visitors, referrers, entry and exit pages, countries, devices, goals, and custom events without trying to build an advertising profile for each visitor.</p>
<p><a href="https://cdn.qde.com/2026/07/19/axjdj/image.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/19/axjdj/image.webp" alt="Plausible Analytics dashboard showing website traffic and referrer metrics" title="Plausible Analytics dashboard showing website traffic and referrer metrics"/></a></p>
<p>On a Linux VPS, the setup is Docker Compose behind Nginx and Let&#39;s Encrypt. We will keep the application port on localhost and finish with updates and backups. The analytics data stays with you, but the server maintenance does too.</p>
<h2 id="what-plausible-keeps-on-your-server">What Plausible keeps on your server<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-plausible-keeps-on-your-server"><span></span></a></h2>
<p>Plausible splits its data between two databases. PostgreSQL holds accounts and site settings; ClickHouse holds the analytics events. According to Plausible&#39;s <a href="https://plausible.io/security">security and privacy documentation</a>, the normal tracking flow uses no cookies and does not store raw visitor IP addresses or User-Agent strings. It creates a daily identifier with a rotating salt instead.</p>
<p>That is a much lighter data footprint than traditional advertising analytics, but self-hosting does not make a site compliant by default. Hosting location, Nginx logs, custom event properties, retention, access controls, and your privacy notice still count. Keep names, email addresses, account IDs, and other personal data out of custom properties.</p>
<p>ClickHouse sets the baseline for the server. The official <a href="https://github.com/plausible/community-edition">Plausible Community Edition repository</a> recommends at least 2 GB of RAM and a processor with SSE 4.2 or NEON support. For a small site, a <a href="https://qde.com/vps/">QDE KVM VPS</a> with at least 2 GB of RAM is a sensible starting point and gives you the root access needed for Docker. Start higher if you expect busy sites, long data retention, or several properties on one instance.</p>
<h2 id="before-you-begin">Before you begin<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#before-you-begin"><span></span></a></h2>
<p>Have these ready:</p>
<ul>
<li>A fresh Debian, Ubuntu, CentOS Stream, Rocky Linux, or AlmaLinux server</li>
<li>Root access or a user with <code>sudo</code> privileges</li>
<li>At least 2 GB of RAM</li>
<li>A domain or subdomain such as <code>plausible.example.com</code></li>
<li>DNS A and, if used, AAAA records pointing to the server</li>
<li>Ports 80 and 443 open in any host or provider firewall</li>
</ul>
<p>We use <code>plausible.example.com</code> throughout the guide. Replace it with your real hostname, and wait for DNS to resolve before asking Certbot for a certificate.</p>
<h2 id="1-install-the-required-system-packages">1. Install the required system packages<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#1-install-the-required-system-packages"><span></span></a></h2>
<p>On Debian or Ubuntu:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#569CD6"> -y</span><span style="color:#CE9178"> git</span><span style="color:#CE9178"> curl</span><span style="color:#CE9178"> openssl</span><span style="color:#CE9178"> ca-certificates</span></span></code></pre>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#569CD6"> -y</span><span style="color:#CE9178"> git</span><span style="color:#CE9178"> curl</span><span style="color:#CE9178"> openssl</span><span style="color:#CE9178"> ca-certificates</span></span></code></pre>
<p>Nothing unusual here: Git handles the repository, curl downloads the Docker installer and checks local endpoints, OpenSSL generates the secrets, and the CA bundle keeps HTTPS downloads working.</p>
<h2 id="2-install-docker-and-docker-compose">2. Install Docker and Docker Compose<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#2-install-docker-and-docker-compose"><span></span></a></h2>
<p>Docker&#39;s convenience script is the quickest route. Inspect it first if your server policy requires that, then run it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> -fsSL</span><span style="color:#CE9178"> https://get.docker.com</span><span style="color:#569CD6"> -o</span><span style="color:#CE9178"> get-docker.sh</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> bash</span><span style="color:#CE9178"> get-docker.sh</span></span></code></pre>
<p>On a production host with tighter package controls, follow the repository setup for your distribution in the <a href="https://docs.docker.com/engine/install/">Docker Engine installation guide</a> instead.</p>
<p>If you are not logged in as <code>root</code>, add your current user to the <code>docker</code> group:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> usermod</span><span style="color:#569CD6"> -aG</span><span style="color:#CE9178"> docker</span><span style="color:#9CDCFE"> $USER</span></span></code></pre>
<p>The group change takes effect after you log out and back in. If you want to continue in the current session, start a new shell with:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">newgrp</span><span style="color:#CE9178"> docker</span></span></code></pre>
<p>Treat membership in the <code>docker</code> group as root access, because that is effectively what it grants. Only add trusted administrator accounts. Docker covers the details in its <a href="https://docs.docker.com/engine/install/linux-postinstall/">Linux post-installation guide</a>.</p>
<p>Enable Docker at boot and confirm both Docker Engine and the Compose plugin are available:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> enable</span><span style="color:#569CD6"> --now</span><span style="color:#CE9178"> docker</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> version</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> version</span></span></code></pre>
<p>If either version command fails, fix Docker before moving on. The rest of the guide assumes both Engine and Compose are working.</p>
<h2 id="3-clone-plausible-community-edition">3. Clone Plausible Community Edition<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#3-clone-plausible-community-edition"><span></span></a></h2>
<p>Clone the official repository and print the branch Git checked out:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">git</span><span style="color:#CE9178"> clone</span><span style="color:#CE9178"> https://github.com/plausible/community-edition</span><span style="color:#CE9178"> plausible</span></span>
<span class="line"><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> plausible</span></span>
<span class="line"><span style="color:#DCDCAA">git</span><span style="color:#CE9178"> branch</span><span style="color:#569CD6"> --show-current</span></span></code></pre>
<p>Plausible CE uses a separate branch for each release, and <code>compose.yml</code> pins the matching application image. The clone command leaves out <code>-b</code>, so Git checks out whichever version branch the repository currently marks as default. Compare the printed branch with the current <a href="https://github.com/plausible/community-edition#quick-start">official quick start</a> before moving on. Keep that branch name in mind: a normal <code>git pull</code> will not jump to the next release later.</p>
<p>The repository includes Plausible, PostgreSQL, ClickHouse, and a set of conservative ClickHouse settings. Put your local configuration in <code>.env</code> and <code>compose.override.yml</code>; leave the tracked <code>compose.yml</code> alone. That avoids needless merge conflicts when it is time to upgrade.</p>
<h2 id="4-configure-the-environment">4. Configure the environment<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#4-configure-the-environment"><span></span></a></h2>
<p>Start with an empty environment file:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">touch</span><span style="color:#CE9178"> .env</span></span></code></pre>
<p>Add the public URL, then generate separate secrets for sessions and encrypted TOTP data:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;BASE_URL=https://plausible.example.com&quot;</span><span style="color:#D4D4D4"> &gt;&gt; </span><span style="color:#CE9178">.env</span></span>
<span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;SECRET_KEY_BASE=$(</span><span style="color:#DCDCAA">openssl</span><span style="color:#CE9178"> rand </span><span style="color:#569CD6">-base64</span><span style="color:#B5CEA8"> 48</span><span style="color:#CE9178">)&quot;</span><span style="color:#D4D4D4"> &gt;&gt; </span><span style="color:#CE9178">.env</span></span>
<span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;TOTP_VAULT_KEY=$(</span><span style="color:#DCDCAA">openssl</span><span style="color:#CE9178"> rand </span><span style="color:#569CD6">-base64</span><span style="color:#B5CEA8"> 32</span><span style="color:#CE9178">)&quot;</span><span style="color:#D4D4D4"> &gt;&gt; </span><span style="color:#CE9178">.env</span></span>
<span class="line"><span style="color:#DCDCAA">chmod</span><span style="color:#B5CEA8"> 600</span><span style="color:#CE9178"> .env</span></span></code></pre>
<p><code>SECRET_KEY_BASE</code> must stay the same after installation. Plausible uses it for sessions and other derived secrets. <code>TOTP_VAULT_KEY</code> protects two-factor authentication secrets at rest.</p>
<p>The TOTP key is optional. Without it, Plausible derives one from <code>SECRET_KEY_BASE</code> with PBKDF2. We set a separate random value anyway. Back up <code>.env</code> securely, and never paste either secret into a ticket, chat, or screenshot.</p>
<p>One small gotcha: the <code>TOTP_VAULT_KEY</code> assignment has one equals sign before the generated value. If the OpenSSL output ends in <code>=</code>, that character belongs to the Base64 value.</p>
<p>The official <a href="https://github.com/plausible/community-edition/wiki/Configuration">configuration reference</a> covers the remaining options, including registration, SMTP, geolocation, database URLs, and Docker secrets.</p>
<h2 id="5-bind-plausible-to-localhost-port-8000">5. Bind Plausible to localhost port 8000<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#5-bind-plausible-to-localhost-port-8000"><span></span></a></h2>
<p>Write the internal HTTP port to <code>.env</code>:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;HTTP_PORT=8000&quot;</span><span style="color:#D4D4D4"> &gt;&gt; </span><span style="color:#CE9178">.env</span></span></code></pre>
<p>Plausible already defaults to port <code>8000</code>. Writing it down makes the relationship between <code>.env</code> and the override file obvious when you come back to this setup months later.</p>
<p>Create <code>compose.override.yml</code> so Docker publishes that port only on <code>127.0.0.1</code>:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">cat</span><span style="color:#D4D4D4"> &gt; </span><span style="color:#CE9178">compose.override.yml</span><span style="color:#D4D4D4"> &lt;&lt;</span><span style="color:#D4D4D4">&#39;EOF&#39;</span></span>
<span class="line"><span style="color:#CE9178">services:</span></span>
<span class="line"><span style="color:#CE9178">  plausible:</span></span>
<span class="line"><span style="color:#CE9178">    ports:</span></span>
<span class="line"><span style="color:#CE9178">      - &quot;127.0.0.1:8000:${HTTP_PORT}&quot;</span></span>
<span class="line"><span style="color:#D4D4D4">EOF</span></span></code></pre>
<p>The quotes around <code>&#39;EOF&#39;</code> are doing real work. They leave <code>${HTTP_PORT}</code> untouched until Docker Compose reads <code>.env</code>. Without the quotes, your shell can expand an unset variable first and write a broken port mapping.</p>
<p>Let Compose parse the merged configuration before starting anything. The <code>--quiet</code> flag checks the file without printing your secrets:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> config</span><span style="color:#569CD6"> --quiet</span></span></code></pre>
<p>Plausible will now listen at <code>127.0.0.1:8000</code>, where only the server itself can reach it. That is what we want. Nginx will handle the public traffic.</p>
<h2 id="6-start-plausible">6. Start Plausible<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#6-start-plausible"><span></span></a></h2>
<p>Pull the container images and start the stack:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> pull</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>The first start is not instant. PostgreSQL and ClickHouse need to pass their health checks before Plausible can set up its databases. Give the stack a moment, then check it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> ps</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> logs</span><span style="color:#569CD6"> --tail=100</span><span style="color:#CE9178"> plausible</span></span></code></pre>
<p>Once the containers are up, test the local HTTP endpoint:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> --head</span><span style="color:#CE9178"> http://127.0.0.1:8000</span></span></code></pre>
<p>Any HTTP response confirms that the host can reach Plausible. If the connection fails, run <code>docker compose logs --tail=200</code> and fix the container error before adding Nginx to the mix.</p>
<h2 id="7-configure-nginx-as-the-reverse-proxy">7. Configure Nginx as the reverse proxy<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#7-configure-nginx-as-the-reverse-proxy"><span></span></a></h2>
<p>Install Nginx, Certbot, and Certbot&#39;s Nginx plugin.</p>
<p>On Debian or Ubuntu:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#569CD6"> -y</span><span style="color:#CE9178"> nginx</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> python3-certbot-nginx</span></span></code></pre>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#569CD6"> -y</span><span style="color:#CE9178"> epel-release</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#569CD6"> -y</span><span style="color:#CE9178"> nginx</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> python3-certbot-nginx</span></span></code></pre>
<p>The configuration path differs by distribution. On Debian or Ubuntu, create:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="text"><code><span class="line"><span>/etc/nginx/sites-available/plausible.example.com.conf</span></span></code></pre>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux, create:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="text"><code><span class="line"><span>/etc/nginx/conf.d/plausible.example.com.conf</span></span></code></pre>
<p>Put the same server block in either file:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="nginx"><code><span class="line"><span style="color:#569CD6">upstream</span><span style="color:#D4D4D4"> plausible {</span></span>
<span class="line"><span style="color:#569CD6">    server</span><span style="color:#D4D4D4"> 127.0.0.1:8000;</span></span>
<span class="line"><span style="color:#D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">server</span><span style="color:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#569CD6">    listen </span><span style="color:#B5CEA8">80</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">    listen </span><span style="color:#D4D4D4">[::]:80;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">    server_name </span><span style="color:#D4D4D4">plausible.example.com;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">    location</span><span style="color:#D4D4D4"> / {</span></span>
<span class="line"><span style="color:#569CD6">        proxy_pass </span><span style="color:#D4D4D4">http://plausible;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_http_version </span><span style="color:#B5CEA8">1.1</span><span style="color:#D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Host $</span><span style="color:#9CDCFE">host</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Real-IP $</span><span style="color:#9CDCFE">remote_addr</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-For $</span><span style="color:#9CDCFE">proxy_add_x_forwarded_for</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-Proto $</span><span style="color:#9CDCFE">scheme</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#D4D4D4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">    location</span><span style="color:#D4D4D4"> /live/websocket {</span></span>
<span class="line"><span style="color:#569CD6">        proxy_pass </span><span style="color:#D4D4D4">http://plausible;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_http_version </span><span style="color:#B5CEA8">1.1</span><span style="color:#D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Host $</span><span style="color:#9CDCFE">host</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-For $</span><span style="color:#9CDCFE">proxy_add_x_forwarded_for</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-Proto $</span><span style="color:#9CDCFE">scheme</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Upgrade $</span><span style="color:#9CDCFE">http_upgrade</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Connection </span><span style="color:#CE9178">&quot;Upgrade&quot;</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#D4D4D4">    }</span></span>
<span class="line"><span style="color:#D4D4D4">}</span></span></code></pre>
<p>The <code>/live/websocket</code> block is easy to miss, but the live dashboard needs it. The other headers pass the original hostname, client chain, and request scheme to Plausible. This setup follows Plausible&#39;s <a href="https://github.com/plausible/community-edition/wiki/Reverse-Proxy">reverse proxy guidance</a> and adds the usual forwarded headers.</p>
<p>On Debian or Ubuntu, enable the site:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> ln</span><span style="color:#569CD6"> -s</span><span style="color:#CE9178"> /etc/nginx/sites-available/plausible.example.com.conf</span><span style="color:#CE9178"> /etc/nginx/sites-enabled/</span></span></code></pre>
<p>If that symlink already exists, leave it alone.</p>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux with SELinux enforcing, Nginx also needs permission to reach the local upstream:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> setsebool</span><span style="color:#569CD6"> -P</span><span style="color:#CE9178"> httpd_can_network_connect</span><span style="color:#B5CEA8"> 1</span></span></code></pre>
<p>Test the configuration, enable Nginx at boot, and reload it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> nginx</span><span style="color:#569CD6"> -t</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> enable</span><span style="color:#569CD6"> --now</span><span style="color:#CE9178"> nginx</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> reload</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>Treat <code>nginx -t</code> as a gate. Fix every reported error before requesting a certificate.</p>
<h2 id="8-add-https-with-certbot">8. Add HTTPS with Certbot<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#8-add-https-with-certbot"><span></span></a></h2>
<p>With DNS resolving and ports 80 and 443 reachable, let Certbot request the certificate and update the Nginx virtual host:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> certbot</span><span style="color:#569CD6"> --nginx</span><span style="color:#569CD6"> -d</span><span style="color:#CE9178"> plausible.example.com</span></span></code></pre>
<p>Run one more configuration test before reloading Nginx:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> nginx</span><span style="color:#569CD6"> -t</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> reload</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>Check the public endpoint from the command line:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> --head</span><span style="color:#CE9178"> https://plausible.example.com</span></span></code></pre>
<p>Test certificate renewal now, while the setup is still fresh:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> renew</span><span style="color:#569CD6"> --dry-run</span></span></code></pre>
<h2 id="9-create-the-first-user-and-restrict-registration">9. Create the first user and restrict registration<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#9-create-the-first-user-and-restrict-registration"><span></span></a></h2>
<p>Open <code>https://plausible.example.com</code> and register the first user. Add your website in the dashboard, then copy Plausible&#39;s tracking snippet into the site&#39;s <code>&lt;head&gt;</code>.</p>
<p>Plausible defaults to invitation-only registration after the first account is set up. We still write the value to <code>.env</code>, so the intended behavior is obvious the next time someone reads the file:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;DISABLE_REGISTRATION=invite_only&quot;</span><span style="color:#D4D4D4"> &gt;&gt; </span><span style="color:#CE9178">.env</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>Invited users can still register with this setting. Use <code>DISABLE_REGISTRATION=true</code> only when you want to block every new account, invitations included.</p>
<p>Take one final look at the stack:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> ps</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> logs</span><span style="color:#569CD6"> --tail=100</span><span style="color:#CE9178"> plausible</span></span></code></pre>
<h2 id="update-plausible">Update Plausible<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#update-plausible"><span></span></a></h2>
<p>Plausible&#39;s release model is easy to miss. Every release gets its own version branch, and security fixes are not backported to old versions. A plain <code>git pull</code> stays on the branch you already have; <code>docker compose pull</code> then reads the image tags from that same branch. Both commands can finish successfully while Plausible remains on the old release.</p>
<p>Before upgrading, read the project&#39;s <a href="https://github.com/plausible/analytics/releases">release page</a> and <a href="https://github.com/plausible/community-edition/wiki/Upgrade">upgrade guide</a>. Some releases have extra steps for PostgreSQL or ClickHouse. Take a backup first, then replace <code>vX.Y.Z</code> below with the exact target branch from the release notes:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> plausible</span></span>
<span class="line"><span style="color:#DCDCAA">git</span><span style="color:#CE9178"> status</span><span style="color:#569CD6"> --short</span></span>
<span class="line"><span style="color:#DCDCAA">git</span><span style="color:#CE9178"> pull</span><span style="color:#CE9178"> origin</span><span style="color:#CE9178"> vX.Y.Z</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> pull</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p><code>docker compose pull</code> is optional here. It refreshes every image in the new Compose file, but <code>git pull origin vX.Y.Z</code> is the command that selects the Plausible release by updating the pinned image. If Git reports a conflict, stop and resolve it. The same goes for any extra migration step in the release notes.</p>
<p>Check the containers and the Plausible log after the upgrade:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> ps</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> logs</span><span style="color:#569CD6"> --tail=100</span><span style="color:#CE9178"> plausible</span></span></code></pre>
<p>Because the local port binding lives in <code>compose.override.yml</code>, the tracked <code>compose.yml</code> stays clean and is less likely to conflict during <code>git pull origin vX.Y.Z</code>.</p>
<h2 id="keep-application-level-backups">Keep application-level backups<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#keep-application-level-backups"><span></span></a></h2>
<p>A server snapshot is useful, but Plausible keeps important state in both PostgreSQL and ClickHouse volumes. Back up both databases, keep a copy outside the VPS, and run at least one test restore. Discovering an incomplete backup after a failure is too late.</p>
<p>QDE includes daily offsite VPS backups, giving you another recovery point for server-wide mistakes. Treat them as an extra layer underneath your database backups, not a replacement for them.</p>
<p>Once those checks pass, add the tracking snippet and wait for the first visits to appear. From then on, it is ordinary server care: read the release notes, apply updates, watch storage, and make sure the backups still restore.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Plausible" term="Plausible"/>
        <category label="Self-Hosting" term="Self-Hosting"/>
        <category label="Web Analytics" term="Web Analytics"/>
        <category label="Docker" term="Docker"/>
        <category label="Privacy" term="Privacy"/>
        <category label="VPS" term="VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Shared Hosting vs VPS Hosting: Which One Do You Need?]]></title>
        <id>https://qde.com/blog/shared-hosting-vs-vps-hosting/</id>
        <link href="https://qde.com/blog/shared-hosting-vs-vps-hosting/"/>
        <updated>2026-07-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Shared hosting or VPS? Compare resources, control, maintenance, email, and pricing to choose the right QDE plan, starting at €2.95/month.]]></summary>
        <content type="html"><![CDATA[<p>Start with the work you want to do. If you want to maintain a website, shared hosting is usually enough. If you need to control the operating system and the services running on it, you need a VPS.</p>
<p>The €1 difference between QDE&#39;s entry plans should not decide this. Your software, your need for email, and your willingness to maintain Linux matter far more.</p>
<p>QDE has just added <a href="https://qde.com/shared-hosting/">cPanel Shared Hosting</a> alongside our existing <a href="https://qde.com/vps/">KVM VPS plans</a>. We sell both. That gives us an obvious commercial interest, but very little reason to steer a WordPress blog onto a server its owner does not want to maintain. A Docker application, meanwhile, will not fit into shared hosting just because cPanel is convenient.</p>
<h2 id="shared-hosting-leaves-the-server-to-the-provider">Shared hosting leaves the server to the provider<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#shared-hosting-leaves-the-server-to-the-provider"><span></span></a></h2>
<p>Shared hosting puts several customer accounts on one server and one operating system. The provider&#39;s system administrators maintain that operating system, apply security patches, tune the services, monitor the host, and deal with hardware or network faults. You look after the website.</p>
<p>Day-to-day work happens in a browser. cPanel covers files, FTP accounts, domains, email accounts, databases, SSL certificates, and common site tasks. <a href="https://docs.cpanel.net/cpanel/">cPanel&#39;s documentation</a> gives a good picture of what sits behind that dashboard. You do not need SSH to create a mailbox or install WordPress.</p>
<p>QDE <a href="https://qde.com/shared-hosting/">Shared Hosting</a> starts at €2.95/month. Starter includes 10 GB of NVMe storage, up to 512 MB of RAM per hosting account, 4 TB of monthly transfer, a 10 Gbps shared uplink, a dedicated IPv4 address, 10 email accounts, 10 SQL databases, and daily offsite backups. It supports PHP 8.2 through 8.5 and static HTML, with MariaDB available through cPanel.</p>
<h2 id="a-vps-makes-you-the-sysadmin">A VPS makes you the sysadmin<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#a-vps-makes-you-the-sysadmin"><span></span></a></h2>
<p>A virtual private server is a virtual machine with its own operating system. QDE uses KVM, the virtualization system built into the Linux kernel. The <a href="https://docs.kernel.org/virt/kvm/index.html">Linux KVM documentation</a> covers the virtual machine and vCPU interfaces behind it. In ordinary use, the important part is simpler: the VPS boots its own Linux installation and gives you full root access.</p>
<p>You choose the packages, runtime, web server, database, firewall rules, and update schedule. Node.js, Python, Go, Docker, PostgreSQL, Redis, WireGuard, background workers, and custom systemd services are all reasonable VPS workloads.</p>
<p>QDE <a href="https://qde.com/vps/">VPS Hosting</a> starts at €3.95/month. Ryzen Mini includes one AMD Ryzen 7950X CPU core, 1 GB RAM, 15 GB of pure NVMe storage, 4 TB of monthly transfer, one dedicated IPv4 address, a /64 IPv6 subnet, daily offsite backups, and a 10 Gbps shared uplink. RAM and storage are allocated to the VPS and are not oversold. CPU time still comes from a physical host. The word &quot;private&quot; describes the virtual machine&#39;s isolation, not ownership of a bare-metal server.</p>
<h2 id="the-good-and-bad-of-shared-hosting">The good and bad of shared hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-good-and-bad-of-shared-hosting"><span></span></a></h2>
<p>The strongest case for shared hosting is all the maintenance you never see. You are not responsible for kernel updates, web server patches, the mail stack, PHP packaging, or the host firewall. For a WordPress blog, company website, portfolio, or small PHP application, those jobs add risk without making the site any better.</p>
<p>Email is easy to underestimate. On shared hosting, you can create <code>info@example.com</code>, connect it over IMAP, set up forwarding, and get back to the website. Running mail on a VPS means maintaining an MTA, spam filtering, DKIM, SPF, DMARC, reverse DNS, queues, reputation, and deliverability. It can be done. It is also a separate operations project.</p>
<p>cPanel helps when more than one person works on a site. A colleague can add a domain, restore a file, or create a database user without sudo access and without knowing where a particular service keeps its configuration.</p>
<p>The tradeoff is that CPU, memory, and the underlying services are shared with other accounts. A well-run platform applies resource controls, but another busy account can still compete for host resources. That is the noisy-neighbor problem. It matters less to a modest brochure site than to a job that regularly keeps every CPU core busy.</p>
<p>You also stay within the software stack supplied by the host. QDE Shared Hosting runs PHP, MariaDB, and static sites. It does not provide long-running Node.js or Python daemons, Docker, a custom database server, or root access. No cPanel setting changes that boundary.</p>
<h2 id="the-good-and-bad-of-a-vps">The good and bad of a VPS<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-good-and-bad-of-a-vps"><span></span></a></h2>
<p>Root access removes the provider&#39;s application list as a constraint. You can choose a Linux distribution, pin runtime versions, run containers, configure a reverse proxy, or install a database that is not available on a shared plan. One VPS can host a website, API, queue worker, scheduled jobs, and monitoring agent if the plan has enough resources.</p>
<p>The isolation is clearer too. Your allocated RAM and NVMe storage belong to your virtual machine, and another customer cannot read your filesystem or change your packages. A /64 IPv6 subnet gives you address space for services that can use it.</p>
<p>This is also why an inexpensive VPS can create more work than an inexpensive website. QDE VPS plans are unmanaged. You must apply operating system updates, secure SSH, configure the firewall, maintain your services, and investigate failures. If an update breaks Nginx at 02:00, the invoice does not include someone logging in to repair your configuration.</p>
<p>Treat a public VPS as exposed from its first boot. Internet-wide scanners do not wait for you to finish setting up the application. Keep internet-facing services patched, limit management access where possible, and disable anything you do not need. Use SSH keys, disable password login when practical, and apply the first round of updates before deploying the application.</p>
<p>A server management panel or one-click stack can reduce the amount of configuration you do by hand. It does not turn an unmanaged VPS into a managed service. Daily backups give QDE customers a recovery path after a bad change, but last night&#39;s backup will not contain data written this morning. Keep application-level backups for data you cannot recreate.</p>
<h2 id="starter-and-ryzen-mini-side-by-side">Starter and Ryzen Mini side by side<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#starter-and-ryzen-mini-side-by-side"><span></span></a></h2>
<p>The entry price differs by €1/month. The products are still built for different jobs.</p>
















































































<div class="cs-content-table-wrap"><table><thead><tr><th></th><th>Starter: Shared Hosting</th><th>Ryzen Mini: VPS</th></tr></thead><tbody><tr><td>Price</td><td>From €2.95/month</td><td>From €3.95/month</td></tr><tr><td>Storage</td><td>10 GB NVMe</td><td>15 GB pure NVMe</td></tr><tr><td>Monthly transfer</td><td>4 TB</td><td>4 TB</td></tr><tr><td>Uplink</td><td>10 Gbps shared uplink</td><td>10 Gbps shared uplink</td></tr><tr><td>CPU</td><td>Shared</td><td>1 AMD Ryzen 7950X CPU core</td></tr><tr><td>RAM</td><td>Up to 512 MB per account</td><td>1 GB allocated RAM</td></tr><tr><td>IPv4</td><td>1 dedicated address</td><td>1 dedicated address</td></tr><tr><td>IPv6</td><td>1 address on request</td><td>/64 subnet</td></tr><tr><td>Email</td><td>10 accounts and 10 mailing lists</td><td>Self-managed; port 25 is blocked by default and exceptions require review</td></tr><tr><td>Databases</td><td>10 SQL databases</td><td>Self-installed, limited by server resources</td></tr><tr><td>FTP</td><td>10 accounts</td><td>Self-configured</td></tr><tr><td>Domains</td><td>10 subdomains, 10 parked domains, 10 addon domains</td><td>Self-configured</td></tr><tr><td>Management</td><td>cPanel included</td><td>SSH and full root access</td></tr><tr><td>Daily offsite backups</td><td>Included</td><td>Included</td></tr></tbody></table></div>
<p>Paying €1 more for a VPS does not make server maintenance disappear. Saving €1 on shared hosting does not give you Docker or root access. Price is the least useful distinction between these two plans.</p>
<p>Daily offsite backups are standard on both. That gives you a way back when a WordPress update goes wrong or you damage a VPS configuration. Provider backups are still a safety net, not the only copy of important data.</p>
<h2 id="common-projects-and-the-sensible-default">Common projects and the sensible default<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#common-projects-and-the-sensible-default"><span></span></a></h2>
<p>A WordPress blog, small business site, portfolio, or PHP application belongs on shared hosting unless it has an unusual requirement. Shared hosting is also the straightforward choice when you need email on your own domain and have no interest in operating a mail server. You manage sites, files, domains, and mailboxes in cPanel. The host manages the server.</p>
<p>A developer who needs Node.js, Python, Go, Docker, or a custom database should choose a VPS. The same applies to APIs, bots, game servers, VPNs, self-hosted applications, development environments, and anything that must run continuously in the background. You get the control, along with the maintenance bill measured in time rather than euros.</p>
<p>Starting on shared hosting and moving to a VPS later is normal. The move is a migration rather than a one-click plan upgrade because the server layout and mail setup are different. Both products can live under the same QDE account, and our team can help with the handoff when your requirements change.</p>
<h2 id="which-one-should-you-order">Which one should you order?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-one-should-you-order"><span></span></a></h2>
<p>Choose the product that fits today&#39;s job. A website owner who never wants to open a terminal will usually be happier on shared hosting. A developer who needs to control packages, services, and networking will reach shared-hosting limits quickly.</p>
<p>Compare <a href="https://qde.com/shared-hosting/">cPanel Shared Hosting from €2.95/month</a> and <a href="https://qde.com/vps/">Ryzen VPS Hosting from €3.95/month</a> without treating the VPS as an automatic upgrade. Shared hosting buys convenience. A VPS buys control. You can change course later.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Shared Hosting" term="Shared Hosting"/>
        <category label="VPS" term="VPS"/>
        <category label="cPanel" term="cPanel"/>
        <category label="Web Hosting" term="Web Hosting"/>
        <category label="WordPress" term="WordPress"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to Self-Host Umami: Privacy-Friendly Web Analytics With Docker]]></title>
        <id>https://qde.com/blog/how-to-self-host-umami/</id>
        <link href="https://qde.com/blog/how-to-self-host-umami/"/>
        <updated>2026-07-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Umami gives you useful website analytics without sending visitor data to Google. Run it with Docker, PostgreSQL, Nginx, HTTPS, backups, and updates on your own VPS.]]></summary>
        <content type="html"><![CDATA[<p>Google Analytics takes minutes to add. Living with it is the harder part. On a small site, you may be loading a heavy third-party script and sending visitor data off your server just to check a weekly traffic chart.</p>
<p><a href="https://umami.is/">Umami</a> is a smaller, cleaner option. It is an open-source, privacy-focused analytics platform for page views, referrers, devices, countries, events, and campaign data. You can run it on your own server with PostgreSQL, and the official Docker setup is short enough to understand before you paste it.</p>
<p><a href="https://cdn.qde.com/2026/07/02/k776g/image.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/07/02/k776g/image.webp" alt="Umami dashboard preview" title="Umami dashboard preview"/></a></p>
<p>Below is a full VPS setup: Docker Compose for Umami and PostgreSQL, Nginx as the public reverse proxy, Let&#39;s Encrypt certificates through Certbot, plus the two maintenance jobs people tend to forget: backups and updates.</p>
<h2 id="why-keep-analytics-data-local">Why keep analytics data local<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-keep-analytics-data-local"><span></span></a></h2>
<p>Website analytics can look harmless because the dashboard is clean. The data behind it is still behavioral data: visited URLs, timestamps, referrers, device information, country-level location, and any event names you define. With a third-party analytics service, that stream leaves your infrastructure by design.</p>
<p>Self-hosting Umami keeps that data on your side. Traffic records land in your PostgreSQL database, on your server, under your backup policy. You still need a privacy policy, and you still need to understand the consent rules that apply to your site. The difference is that you are not sending analytics into a large advertising ecosystem just to learn which blog post is getting traffic.</p>
<p>The server requirements are modest. A small <a href="https://qde.com/vps/">KVM VPS</a> is enough for a personal site or a few low-traffic projects. A larger instance gives PostgreSQL more room if you track several websites or keep data for a long time. Fast storage helps more than people expect because analytics is mostly database reads and writes.</p>
<h2 id="what-you-need-before-installing-umami">What you need before installing Umami<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-you-need-before-installing-umami"><span></span></a></h2>
<p>You need:</p>
<ul>
<li>A Linux server with root or sudo access</li>
<li>A domain or subdomain for Umami, such as <code>stat.example.com</code></li>
<li>DNS already pointing that hostname to your server&#39;s IPv4 address</li>
<li>Ports 80 and 443 open on the server firewall</li>
<li>A shell session as either <code>root</code> or a sudo-capable user</li>
</ul>
<p>The Compose file below binds Umami to <code>127.0.0.1:3000</code>, so the app port is not exposed directly to the public internet. Nginx accepts public HTTP/HTTPS traffic and proxies it to the local container.</p>
<h2 id="install-docker-and-docker-compose">Install Docker and Docker Compose<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#install-docker-and-docker-compose"><span></span></a></h2>
<p>On Debian, one short path is to use <code>extrepo</code> if your release includes the Docker CE repository entry:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> extrepo</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> extrepo</span><span style="color:#CE9178"> enable</span><span style="color:#CE9178"> docker-ce</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> docker-ce</span><span style="color:#CE9178"> docker-ce-cli</span><span style="color:#CE9178"> containerd.io</span><span style="color:#CE9178"> docker-buildx-plugin</span><span style="color:#CE9178"> docker-compose-plugin</span></span></code></pre>
<p>For other Linux systems, Docker provides a convenience script:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> -fsSL</span><span style="color:#CE9178"> https://get.docker.com</span><span style="color:#569CD6"> -o</span><span style="color:#CE9178"> get-docker.sh</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> bash</span><span style="color:#CE9178"> get-docker.sh</span></span></code></pre>
<p><a href="https://docs.docker.com/engine/install/debian/">Docker documentation</a> describes that script as useful for testing and development, so inspect it first if this is a production server. On Debian or Ubuntu, make sure the Compose plugin is present:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> docker-ce</span><span style="color:#CE9178"> docker-ce-cli</span><span style="color:#CE9178"> containerd.io</span><span style="color:#CE9178"> docker-buildx-plugin</span><span style="color:#CE9178"> docker-compose-plugin</span></span></code></pre>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux, install the same packages through <code>dnf</code> after the Docker repository has been configured:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> docker-ce</span><span style="color:#CE9178"> docker-ce-cli</span><span style="color:#CE9178"> containerd.io</span><span style="color:#CE9178"> docker-buildx-plugin</span><span style="color:#CE9178"> docker-compose-plugin</span></span></code></pre>
<p>If you are not running as <code>root</code>, add your current user to the <code>docker</code> group:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> usermod</span><span style="color:#569CD6"> -aG</span><span style="color:#CE9178"> docker</span><span style="color:#9CDCFE"> $USER</span></span></code></pre>
<p>Before testing, log out and back in, or run <code>newgrp docker</code>. The <a href="https://docs.docker.com/engine/install/linux-postinstall/">Docker Linux post-installation guide</a> warns that membership in the <code>docker</code> group grants root-level privileges, so only add users who should have that level of access.</p>
<p>Enable Docker and confirm both Docker and the Compose plugin work:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> enable</span><span style="color:#569CD6"> --now</span><span style="color:#CE9178"> docker</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> version</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> version</span></span></code></pre>
<h2 id="create-the-umami-compose-file">Create the Umami Compose file<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#create-the-umami-compose-file"><span></span></a></h2>
<p>Create a dedicated directory for Umami:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">mkdir</span><span style="color:#569CD6"> -p</span><span style="color:#CE9178"> ~/services/umami</span></span>
<span class="line"><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> ~/services/umami</span></span></code></pre>
<p>Generate two random values before writing the file: one for Umami authentication tokens and one for PostgreSQL:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">openssl</span><span style="color:#CE9178"> rand</span><span style="color:#569CD6"> -hex</span><span style="color:#B5CEA8"> 32</span></span>
<span class="line"><span style="color:#DCDCAA">openssl</span><span style="color:#CE9178"> rand</span><span style="color:#569CD6"> -hex</span><span style="color:#B5CEA8"> 32</span></span></code></pre>
<p>Create <code>compose.yaml</code>:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="yaml"><code><span class="line"><span style="color:#569CD6">name</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">umami</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">services</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">  umami</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">    container_name</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">umami</span></span>
<span class="line"><span style="color:#569CD6">    image</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">docker.umami.is/umami-software/umami:latest</span></span>
<span class="line"><span style="color:#569CD6">    ports</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#D4D4D4">      - </span><span style="color:#CE9178">&quot;127.0.0.1:3000:3000&quot;</span></span>
<span class="line"><span style="color:#569CD6">    environment</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">      DATABASE_URL</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">postgresql://umami:CHANGE_ME_DB_PASSWORD@umami-db:5432/umami</span></span>
<span class="line"><span style="color:#569CD6">      DATABASE_TYPE</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">postgresql</span></span>
<span class="line"><span style="color:#569CD6">      APP_SECRET</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">CHANGE_ME_APP_SECRET</span></span>
<span class="line"><span style="color:#569CD6">    depends_on</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">      umami-db</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">        condition</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">service_healthy</span></span>
<span class="line"><span style="color:#569CD6">    init</span><span style="color:#D4D4D4">: </span><span style="color:#569CD6">true</span></span>
<span class="line"><span style="color:#569CD6">    restart</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">always</span></span>
<span class="line"><span style="color:#569CD6">    healthcheck</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">      test</span><span style="color:#D4D4D4">: [</span><span style="color:#CE9178">&quot;CMD-SHELL&quot;</span><span style="color:#D4D4D4">, </span><span style="color:#CE9178">&quot;curl http://localhost:3000/api/heartbeat&quot;</span><span style="color:#D4D4D4">]</span></span>
<span class="line"><span style="color:#569CD6">      interval</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">5s</span></span>
<span class="line"><span style="color:#569CD6">      timeout</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">5s</span></span>
<span class="line"><span style="color:#569CD6">      retries</span><span style="color:#D4D4D4">: </span><span style="color:#B5CEA8">5</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">  umami-db</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">    container_name</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">umami-db</span></span>
<span class="line"><span style="color:#569CD6">    image</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">postgres:18-alpine</span></span>
<span class="line"><span style="color:#569CD6">    environment</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">      POSTGRES_DB</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">umami</span></span>
<span class="line"><span style="color:#569CD6">      POSTGRES_USER</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">umami</span></span>
<span class="line"><span style="color:#569CD6">      POSTGRES_PASSWORD</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">CHANGE_ME_DB_PASSWORD</span></span>
<span class="line"><span style="color:#569CD6">    volumes</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#D4D4D4">      - </span><span style="color:#CE9178">./data:/var/lib/postgresql</span></span>
<span class="line"><span style="color:#569CD6">    restart</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">always</span></span>
<span class="line"><span style="color:#569CD6">    healthcheck</span><span style="color:#D4D4D4">:</span></span>
<span class="line"><span style="color:#569CD6">      test</span><span style="color:#D4D4D4">: [</span><span style="color:#CE9178">&quot;CMD-SHELL&quot;</span><span style="color:#D4D4D4">, </span><span style="color:#CE9178">&quot;pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}&quot;</span><span style="color:#D4D4D4">]</span></span>
<span class="line"><span style="color:#569CD6">      interval</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">5s</span></span>
<span class="line"><span style="color:#569CD6">      timeout</span><span style="color:#D4D4D4">: </span><span style="color:#CE9178">5s</span></span>
<span class="line"><span style="color:#569CD6">      retries</span><span style="color:#D4D4D4">: </span><span style="color:#B5CEA8">5</span></span></code></pre>
<p>Replace both <code>CHANGE_ME_DB_PASSWORD</code> values with the same PostgreSQL password. Replace <code>CHANGE_ME_APP_SECRET</code> with a different random string. The <a href="https://docs.umami.is/docs/environment-variables">Umami environment variable docs</a> describe <code>APP_SECRET</code> as the value used to secure authentication tokens, so do not reuse it elsewhere.</p>
<p>Checked on July 2, 2026, Docker Hub lists <a href="https://hub.docker.com/_/postgres/tags?name=18-alpine"><code>postgres:18-alpine</code></a> as an active official Postgres image tag. It is a reasonable choice for a fresh Umami install. For an existing install, treat database major versions carefully: make a <code>pg_dump</code>, test a restore, and only then change the image tag.</p>
<h2 id="start-umami">Start Umami<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#start-umami"><span></span></a></h2>
<p>Pull the images and start the stack:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> pull</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>Check the containers:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> ps</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> logs</span><span style="color:#569CD6"> -f</span><span style="color:#CE9178"> umami</span></span></code></pre>
<p>Umami listens on <code>http://127.0.0.1:3000</code> from the host. Because the container is bound to localhost, you will not open it directly from your browser yet. Nginx will be the public entry point.</p>
<p>The default administrator account is:</p>
<ul>
<li>Username: <code>admin</code></li>
<li>Password: <code>umami</code></li>
</ul>
<p>The <a href="https://docs.umami.is/docs/login">Umami login guide</a> says to change that password immediately after your first login. Do it before adding websites or sharing the URL.</p>
<h2 id="configure-nginx-as-a-reverse-proxy">Configure Nginx as a reverse proxy<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#configure-nginx-as-a-reverse-proxy"><span></span></a></h2>
<p>Install Nginx:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#6A9955"># Debian or Ubuntu</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> nginx</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955"># CentOS Stream, Rocky Linux, or AlmaLinux</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> update</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>For this example, the analytics hostname is <code>stat.example.com</code>. Replace it with your real hostname.</p>
<p>On Debian or Ubuntu, create <code>/etc/nginx/sites-available/stat.example.com.conf</code>:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="nginx"><code><span class="line"><span style="color:#569CD6">upstream</span><span style="color:#D4D4D4"> umami_backend {</span></span>
<span class="line"><span style="color:#569CD6">    server</span><span style="color:#D4D4D4"> 127.0.0.1:3000;</span></span>
<span class="line"><span style="color:#D4D4D4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">server</span><span style="color:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#569CD6">    listen </span><span style="color:#B5CEA8">80</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">    listen </span><span style="color:#D4D4D4">[::]:80;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">    server_name </span><span style="color:#D4D4D4">stat.example.com;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">    location</span><span style="color:#D4D4D4"> / {</span></span>
<span class="line"><span style="color:#569CD6">        proxy_pass </span><span style="color:#D4D4D4">http://umami_backend;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_http_version </span><span style="color:#B5CEA8">1.1</span><span style="color:#D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Host $</span><span style="color:#9CDCFE">host</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Real-IP $</span><span style="color:#9CDCFE">remote_addr</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-For $</span><span style="color:#9CDCFE">proxy_add_x_forwarded_for</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">X-Forwarded-Proto $</span><span style="color:#9CDCFE">scheme</span><span style="color:#D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Upgrade $</span><span style="color:#9CDCFE">http_upgrade</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#569CD6">        proxy_set_header </span><span style="color:#D4D4D4">Connection </span><span style="color:#CE9178">&quot;upgrade&quot;</span><span style="color:#D4D4D4">;</span></span>
<span class="line"><span style="color:#D4D4D4">    }</span></span>
<span class="line"><span style="color:#D4D4D4">}</span></span></code></pre>
<p>Enable it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> ln</span><span style="color:#569CD6"> -s</span><span style="color:#CE9178"> /etc/nginx/sites-available/stat.example.com.conf</span><span style="color:#CE9178"> /etc/nginx/sites-enabled/</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> nginx</span><span style="color:#569CD6"> -t</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> reload</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>On CentOS Stream, Rocky Linux, or AlmaLinux, put the same server block in:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="text"><code><span class="line"><span>/etc/nginx/conf.d/stat.example.com.conf</span></span></code></pre>
<p>Then test and start or reload Nginx:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> nginx</span><span style="color:#569CD6"> -t</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> enable</span><span style="color:#569CD6"> --now</span><span style="color:#CE9178"> nginx</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> reload</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>Nginx configuration files under <code>/etc/nginx/</code> require root privileges. If <code>nginx -t</code> fails, fix that before touching Certbot.</p>
<h2 id="add-https-with-certbot">Add HTTPS with Certbot<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#add-https-with-certbot"><span></span></a></h2>
<p>Install Certbot and the Nginx plugin:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#6A9955"># Debian or Ubuntu</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> apt</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> python3-certbot-nginx</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A9955"># CentOS Stream, Rocky Linux, or AlmaLinux</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> epel-release</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> dnf</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> python3-certbot-nginx</span></span></code></pre>
<p>Issue the certificate:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> certbot</span><span style="color:#569CD6"> --nginx</span><span style="color:#569CD6"> -d</span><span style="color:#CE9178"> stat.example.com</span></span></code></pre>
<p>After Certbot edits the Nginx config, check the site:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> nginx</span><span style="color:#569CD6"> -t</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> systemctl</span><span style="color:#CE9178"> reload</span><span style="color:#CE9178"> nginx</span></span></code></pre>
<p>Now open:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="text"><code><span class="line"><span>https://stat.example.com/</span></span></code></pre>
<p>Log in with <code>admin</code> and <code>umami</code>, then change the password from Settings before doing anything else. A public analytics dashboard with default credentials will not stay yours for long.</p>
<p>Certbot packages often install a systemd timer for renewals. Check it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">systemctl</span><span style="color:#CE9178"> list-timers</span><span style="color:#D4D4D4"> | </span><span style="color:#DCDCAA">grep</span><span style="color:#CE9178"> certbot</span></span>
<span class="line"><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> certbot</span><span style="color:#CE9178"> renew</span><span style="color:#569CD6"> --dry-run</span></span></code></pre>
<p>If your install does not create a timer and you are following Certbot&#39;s pip/virtualenv method, the <a href="https://certbot.eff.org/instructions?ws=nginx&amp;os=pip">EFF Certbot instructions</a> use a cron job like this:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">echo</span><span style="color:#CE9178"> &quot;0 0,12 * * * root /opt/certbot/bin/python -c &#39;import random; import time; time.sleep(random.random() * 3600)&#39; &amp;&amp; sudo certbot renew -q&quot;</span><span style="color:#D4D4D4"> | </span><span style="color:#DCDCAA">sudo</span><span style="color:#CE9178"> tee</span><span style="color:#569CD6"> -a</span><span style="color:#CE9178"> /etc/crontab</span><span style="color:#D4D4D4"> &gt; </span><span style="color:#CE9178">/dev/null</span></span></code></pre>
<p>For distro packages, prefer the package&#39;s timer when it exists. Run <code>sudo certbot renew --dry-run</code> either way, so you know renewal works before the certificate is close to expiry.</p>
<h2 id="add-a-website-and-install-the-tracking-script">Add a website and install the tracking script<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#add-a-website-and-install-the-tracking-script"><span></span></a></h2>
<p>Once you are logged in, go to Websites and click Add website. The <a href="https://docs.umami.is/docs/add-a-website">Umami add-a-website guide</a> covers the two fields that matter: the name can be anything, and the domain should be the actual website domain so Umami can filter your own site correctly.</p>
<p>After saving the website, open its edit screen and copy the tracking code. The <a href="https://docs.umami.is/docs/collect-data">Umami collect data guide</a> says to place that code in the <code>&lt;head&gt;</code> section of the site you want to track.</p>
<p>The snippet looks roughly like this:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="html"><code><span class="line"><span style="color:#808080">&lt;</span><span style="color:#569CD6">script</span><span style="color:#9CDCFE"> defer</span><span style="color:#9CDCFE"> src</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">&quot;https://stat.example.com/script.js&quot;</span><span style="color:#9CDCFE"> data-website-id</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">&quot;YOUR-WEBSITE-ID&quot;</span><span style="color:#808080">&gt;&lt;/</span><span style="color:#569CD6">script</span><span style="color:#808080">&gt;</span></span></code></pre>
<p>Visit your site, then return to the Umami dashboard. If no data appears, open the browser developer tools and check whether <code>script.js</code> and <code>/api/send</code> requests reach <code>stat.example.com</code>. Browser extensions and aggressive content blockers can block analytics scripts, even self-hosted ones.</p>
<h2 id="back-up-umami">Back up Umami<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#back-up-umami"><span></span></a></h2>
<p>The data that matters lives in PostgreSQL. Create a backup directory and dump the database:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">mkdir</span><span style="color:#569CD6"> -p</span><span style="color:#CE9178"> ~/services/umami/backups</span></span>
<span class="line"><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> ~/services/umami</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> exec</span><span style="color:#CE9178"> umami-db</span><span style="color:#CE9178"> pg_dump</span><span style="color:#569CD6"> -U</span><span style="color:#CE9178"> umami</span><span style="color:#569CD6"> -d</span><span style="color:#CE9178"> umami</span><span style="color:#D4D4D4"> | </span><span style="color:#DCDCAA">gzip</span><span style="color:#D4D4D4"> &gt; </span><span style="color:#CE9178">backups/umami_</span><span style="color:#D4D4D4">$(</span><span style="color:#DCDCAA">date</span><span style="color:#CE9178"> +%F</span><span style="color:#D4D4D4">)</span><span style="color:#CE9178">.sql.gz</span></span></code></pre>
<p>Copy that <code>.sql.gz</code> file somewhere outside the VPS. Also keep a copy of <code>compose.yaml</code>, because it records the image, ports, and environment variable shape you need for a clean restore.</p>
<p>If you host Umami on QDE, the platform-level daily backups are a useful second layer, but they are not a replacement for an application-level database dump. A dump is portable. A server snapshot is convenient. Keep both.</p>
<h2 id="update-umami">Update Umami<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#update-umami"><span></span></a></h2>
<p>Back up first, then update from the Umami directory:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> ~/services/umami</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> pull</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>Watch the logs after the update:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> logs</span><span style="color:#569CD6"> -f</span><span style="color:#CE9178"> umami</span></span></code></pre>
<p>The <a href="https://github.com/umami-software/umami">Umami README</a> recommends pulling the new Docker image and recreating the container for Docker-based updates. For major releases, read the release notes before you pull. Analytics data is small compared with a photo library, but losing it because you treated the database casually is still annoying.</p>
<h2 id="keep-the-analytics-close-to-the-app">Keep the analytics close to the app<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#keep-the-analytics-close-to-the-app"><span></span></a></h2>
<p>Self-hosting Umami gives you useful traffic numbers without routing visitor data through Google Analytics. The moving parts are ordinary: Docker for the app and PostgreSQL, Nginx for the public hostname, Certbot for HTTPS, and a small backup routine you can run from cron.</p>
<p>The privacy benefit is strongest when the rest of the stack matches it. Run Umami on infrastructure you control, keep the database in a jurisdiction you understand, and avoid adding more third-party scripts than you removed.</p>
<p>QDE provides <a href="https://qde.com/vps/">privacy-focused VPS hosting in the Netherlands</a> with KVM virtualization, NVMe storage, 10 Gbps uplinks, full root access, and daily offsite backups. That is a practical place to run Umami while keeping analytics data under your own administration.</p>
<h2 id="frequently-asked-questions-about-self-hosting-umami">Frequently asked questions about self-hosting Umami<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-self-hosting-umami"><span></span></a></h2>
<h3 id="is-umami-free-to-self-host">Is Umami free to self-host?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-umami-free-to-self-host"><span></span></a></h3>
<p>Yes. Umami is open source, and you can run it on your own server. Your cost is the VPS, domain, and the time you spend maintaining the service.</p>
<h3 id="does-umami-replace-google-analytics">Does Umami replace Google Analytics?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-umami-replace-google-analytics"><span></span></a></h3>
<p>For most small and medium websites, yes. Umami gives you page views, referrers, countries, devices, events, and campaign tracking. It does not replace every advanced Google Analytics workflow, but it covers the numbers many site owners actually use.</p>
<h3 id="do-i-need-a-big-vps-for-umami">Do I need a big VPS for Umami?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-a-big-vps-for-umami"><span></span></a></h3>
<p>No. A small VPS is enough for a personal site or a few low-traffic websites. If you track many domains, keep a long retention window, or run other services on the same machine, give PostgreSQL more RAM and disk headroom.</p>
<h3 id="why-bind-umami-to-127001">Why bind Umami to 127.0.0.1?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-bind-umami-to-127001"><span></span></a></h3>
<p>Binding the container to <code>127.0.0.1:3000</code> keeps the app port private. Only Nginx is exposed publicly on ports 80 and 443, which gives you one public entry point for TLS, headers, and access control.</p>
<h3 id="where-does-umami-store-data">Where does Umami store data?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#where-does-umami-store-data"><span></span></a></h3>
<p>In the Compose file above, Umami stores analytics data in PostgreSQL, and PostgreSQL writes its files under <code>~/services/umami/data</code> on the host. The portable backup is the <code>pg_dump</code> output rather than the raw database directory.</p>
<h3 id="what-should-i-do-right-after-the-first-login">What should I do right after the first login?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-should-i-do-right-after-the-first-login"><span></span></a></h3>
<p>Change the default <code>admin</code> password. The official Umami docs state that the default account is <code>admin</code> with password <code>umami</code>, and the first task after logging in is to change it.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Umami" term="Umami"/>
        <category label="Self-Hosting" term="Self-Hosting"/>
        <category label="Web Analytics" term="Web Analytics"/>
        <category label="Docker" term="Docker"/>
        <category label="Privacy" term="Privacy"/>
        <category label="VPS" term="VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Ubuntu 26.04 LTS Templates Now Available on QDE]]></title>
        <id>https://qde.com/blog/ubuntu-26-04-kvm-vps-templates/</id>
        <link href="https://qde.com/blog/ubuntu-26-04-kvm-vps-templates/"/>
        <updated>2026-07-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Ubuntu 26.04 LTS (Resolute Raccoon) templates are now live on all QDE VPS and dedicated servers. Linux 7.0, PostgreSQL 18, post-quantum SSH, and 5 years of support.]]></summary>
        <content type="html"><![CDATA[<p>Ubuntu 26.04 LTS templates are now available across QDE VPS and dedicated server deployments. New customers can select Ubuntu 26.04 LTS during ordering, and existing customers can reinstall from the control panel when they are ready to rebuild.</p>
<p>For server operators, the useful parts are the new kernel, package-management behavior, OpenSSH defaults, database versions, and upgrade work around older cgroup, PostgreSQL, MySQL, and SSH setups.</p>
<h2 id="release-overview">Release overview<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#release-overview"><span></span></a></h2>
<p>Ubuntu published <a href="https://documentation.ubuntu.com/release-notes/26.04/">Ubuntu 26.04 LTS &quot;Resolute Raccoon&quot;</a> on April 23, 2026. Canonical lists it as a long-term support release with standard security updates and critical bug fixes until April 2031. With Ubuntu Pro ESM, that support window can extend to April 2036.</p>
<p>For small VPS plans, the baseline remains practical. Ubuntu&#39;s release notes state that Server 26.04 LTS requirements start at 1.5 GB RAM and 4 GB of storage, depending on workload. QDE&#39;s template includes cloud-init support and Fail2Ban for SSH protection.</p>
<h2 id="what-is-new-for-servers">What is new for servers<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-new-for-servers"><span></span></a></h2>
<h3 id="kernel-init-and-package-management">Kernel, init, and package management<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#kernel-init-and-package-management"><span></span></a></h3>
<p>Ubuntu 26.04 ships with Linux kernel 7.0 for the GA generic stack and HWE stack, according to the <a href="https://documentation.ubuntu.com/release-notes/26.04/summary-for-lts-users/">LTS user summary</a>. The same summary notes that the real-time Linux kernel is now available in the main archive, outside Ubuntu Pro.</p>
<p><code>systemd</code> moves to 259, and the important compatibility change is cgroup v1 removal. Legacy and hybrid cgroup hierarchies are gone. If you still run old LXC hosts, monitoring agents, or custom service units that assume cgroup v1 paths, test before doing an in-place upgrade.</p>
<p>APT moves to the 3.x line. Ubuntu&#39;s notes list APT 3.1 and call out two server-relevant changes: TLS and file hashing now use OpenSSL, and <code>apt-key</code> has been removed. Repository signing should use keyrings and <code>signed-by</code>, not scripts that still pipe keys into <code>apt-key add</code>.</p>
<p>Dracut is now the default initial ramdisk infrastructure, replacing <code>initramfs-tools</code>. <code>initramfs-tools</code> remains available, but the default boot plumbing has changed. Custom kernels, storage drivers, remote unlock setups, and recovery playbooks need checking.</p>
<h3 id="memory-safety-and-cryptography">Memory safety and cryptography<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#memory-safety-and-cryptography"><span></span></a></h3>
<p>Ubuntu 26.04 continues Canonical&#39;s memory-safety work. <code>sudo-rs</code> is now the default <code>sudo</code> provider, while the original C sudo remains available as <code>sudo.ws</code>. The core utilities are provided by <code>rust-coreutils</code>; Ubuntu still provides GNU fallbacks, and <code>cp</code>, <code>mv</code>, and <code>rm</code> remain GNU implementations because of unresolved compatibility issues.</p>
<p>The cryptography stack also changes. OpenSSL 3.5 includes post-quantum cryptography support for ML-KEM and ML-DSA. OpenSSH 10.2 is included, and Ubuntu&#39;s OpenSSH notes list the hybrid post-quantum key exchange <code>mlkem768x25519-sha256</code> as available by default. DSA support is removed, and host DSA keys are no longer generated.</p>
<p>For operators, the short version is simple: rotate any remaining DSA SSH keys before you upgrade. Modern clients should negotiate post-quantum hybrid key exchange without extra configuration.</p>
<h3 id="virtualization-identity-and-compute">Virtualization, identity, and compute<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#virtualization-identity-and-compute"><span></span></a></h3>
<p>The 26.04 virtualization stack includes QEMU 10.2 and libvirt 12.0. Ubuntu also documents confidential-computing support around Intel TDX and AMD SEV-SNP in its virtualization notes. Platform operators and dedicated server users building their own virtualization hosts should notice this first.</p>
<p>For identity, <code>authd</code> is available from the Ubuntu archive and supports OpenID Connect workflows, including Google IAM and Microsoft Entra ID device registration. Teams standardizing Linux login through an identity provider should evaluate it in staging before using it on production access paths.</p>
<h2 id="updated-server-stack">Updated server stack<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#updated-server-stack"><span></span></a></h2>
<p>Ubuntu 26.04 brings a large server stack refresh. The versions below are the ones administrators will notice first when selecting the QDE template.</p>





























































































<div class="cs-content-table-wrap"><table><thead><tr><th>Component</th><th>Version</th></tr></thead><tbody><tr><td>GCC</td><td>15.2</td></tr><tr><td>glibc</td><td>2.43</td></tr><tr><td>Python</td><td>3.14</td></tr><tr><td>PHP</td><td>8.5</td></tr><tr><td>Go</td><td>1.25</td></tr><tr><td>Rust</td><td>1.93</td></tr><tr><td>LLVM</td><td>21</td></tr><tr><td>OpenJDK</td><td>25</td></tr><tr><td>.NET</td><td>10</td></tr><tr><td>PostgreSQL</td><td>18</td></tr><tr><td>MySQL</td><td>8.4</td></tr><tr><td>MariaDB</td><td>11.8</td></tr><tr><td>Valkey</td><td>9.0</td></tr><tr><td>containerd</td><td>2.2</td></tr><tr><td>Nginx</td><td>1.28</td></tr><tr><td>Apache</td><td>2.4.65</td></tr><tr><td>HAProxy</td><td>3.2</td></tr><tr><td>QEMU</td><td>10.2</td></tr><tr><td>libvirt</td><td>12.0</td></tr><tr><td>cloud-init</td><td>26.1</td></tr><tr><td>OpenSSH</td><td>10.2</td></tr></tbody></table></div>
<p>PostgreSQL 18 is one of the more important server updates. Ubuntu highlights the new PostgreSQL I/O subsystem, with storage-read improvements measured at up to 3x in upstream testing, and the database-friendly <code>uuidv7()</code> function. The upstream <a href="https://www.postgresql.org/docs/18/upgrading.html">PostgreSQL 18 upgrade documentation</a> is still required reading for existing database hosts.</p>
<h2 id="upgrade-considerations">Upgrade considerations<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#upgrade-considerations"><span></span></a></h2>
<p>New deployments are straightforward. In-place upgrades need more care.</p>
<ul>
<li>cgroup v1 removal can break old container and service-management assumptions. Check old LXC hosts and custom service units before upgrading.</li>
<li>PostgreSQL major upgrades are data migrations, not ordinary package updates. Plan <code>pg_upgrade</code>, dump and restore, or logical replication.</li>
<li>Ubuntu documents a known PostgreSQL throughput and latency regression triggered by a Linux 7.0 change when huge pages are not enabled. For PostgreSQL on 26.04, turn huge pages on and set PostgreSQL <code>huge_pages</code> to <code>on</code>.</li>
<li>MySQL 8.0 to 8.4 includes configuration and default changes. Oracle&#39;s <a href="https://dev.mysql.com/doc/refman/8.4/en/upgrading-from-previous-series.html">MySQL 8.4 upgrade notes</a> list incompatible changes and changed server defaults, so review custom <code>mysqld.cnf</code> before moving production databases.</li>
<li>DSA SSH keys should be removed before the upgrade. OpenSSH 10.2 no longer supports the weak DSA signature algorithm.</li>
</ul>
<p>For new servers, use Ubuntu 26.04 LTS now. For production migrations from Ubuntu 24.04 LTS, especially database or container hosts, waiting for the <a href="https://documentation.ubuntu.com/release-notes/26.04/schedule/">26.04.1 point release scheduled for August 27, 2026</a> is a reasonable default.</p>
<h2 id="current-qde-linux-templates">Current QDE Linux templates<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#current-qde-linux-templates"><span></span></a></h2>
<p>The current QDE Linux template set is:</p>
<ul>
<li>Debian 12 and 13. Debian 11 is approaching <a href="https://www.debian.org/releases/">the end of LTS on August 31, 2026</a>, so use 12 or 13 for new deployments.</li>
<li>Ubuntu 22.04, 24.04, and 26.04.</li>
<li>Rocky Linux 8, 9, and 10.</li>
<li>AlmaLinux 8, 9, and 10.</li>
<li>CentOS Stream 9 and 10.</li>
</ul>
<p>All QDE Linux templates include Fail2Ban for SSH protection, and cloud-init is supported on all templates.</p>
<p>QDE also provides <a href="https://netboot.xyz/docs/"><code>netboot.xyz.iso</code></a> for customers who prefer to install an operating system manually. Use it for a custom partition layout, installer-driven setup, or a system image outside the standard template list.</p>
<h2 id="how-to-deploy-on-qde">How to deploy on QDE<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-deploy-on-qde"><span></span></a></h2>
<p>For a new server, select the Ubuntu 26.04 LTS template during checkout. For an existing VPS or dedicated server, use OS reinstall in the control panel after taking backups.</p>
<p>If you are building a fresh service today, Ubuntu 26.04 LTS is the right default. If you are moving a running 24.04 system, treat it as an upgrade project: test your containers, database engines, SSH keys, boot tooling, and monitoring agents first.</p>
<p>Start from the <a href="https://qde.com/vps/">QDE VPS page</a> when you are ready to deploy Ubuntu 26.04 LTS.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Linux" term="Linux"/>
        <category label="VPS" term="VPS"/>
        <category label="KVM" term="KVM"/>
        <category label="Virtualization" term="Virtualization"/>
        <category label="Templates" term="Templates"/>
        <category label="Ubuntu" term="Ubuntu"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Best European Domain Registrars for 2026]]></title>
        <id>https://qde.com/blog/best-european-domain-registrars/</id>
        <link href="https://qde.com/blog/best-european-domain-registrars/"/>
        <updated>2026-06-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Looking for the best European domain registrar? We compare six EU and Swiss options on pricing, privacy, and DNS control, and show where each one actually fits.]]></summary>
        <content type="html"><![CDATA[<p>Most &quot;best domain registrar&quot; lists are dominated by the same two or three American giants, complete with the upsells, teaser pricing, and renewal surprises they&#39;re known for. If you&#39;d rather register your domain with a company that operates under EU privacy law, redacts your personal data by default, and tells you the renewal price up front, the best European domain registrar for you is going to look very different.</p>
<p>This guide compares six registrars based in or operating from Europe, including one Swiss option. We&#39;ll cover what actually makes a registrar &quot;European,&quot; what to look for before you hand over your details, and where each provider fits depending on whether you want broad TLD coverage, the lowest bulk pricing, or a single account for both your domain and your hosting.</p>
<h2 id="what-european-actually-means-here">What &quot;European&quot; actually means here<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-european-actually-means-here"><span></span></a></h2>
<p>A registrar is European if the company behind it is headquartered and operates in Europe, not just if it happens to sell you a .eu domain. That distinction matters because the jurisdiction your registrar sits in determines which laws govern your account data, your billing records, and how your registrant details are published.</p>
<p>There&#39;s a useful split worth understanding. EU-based registrars fall squarely under the <a href="https://gdpr.eu/">GDPR</a>, which is why they redact personal information from public WHOIS by default rather than charging for it as a privacy add-on. Switzerland sits outside the EU but maintains its own strict data protection laws and is recognized as offering adequate protection, so a Swiss registrar can give you a slightly different legal footing while still working fine for EU customers.</p>
<p>One more detail: the .eu extension itself is managed by the registry <a href="https://eurid.eu/">EURid</a>, and it can only be registered by residents or organizations within the EU, Iceland, Liechtenstein, or Norway. Most European registrars offer it, but it&#39;s not something a US-resident customer can pick up.</p>
<h2 id="what-to-look-for-in-a-european-domain-registrar">What to look for in a European domain registrar<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-to-look-for-in-a-european-domain-registrar"><span></span></a></h2>
<p>Before the list, here&#39;s what separates a registrar worth keeping a domain with from one you&#39;ll want to transfer away from in a year.</p>
<p>Flat, honest pricing is the big one. Plenty of registrars advertise a low first-year price that quadruples on renewal. The better European providers show you the same number for registration and renewal, so there&#39;s no second-year shock.</p>
<p>Free WHOIS privacy should be the default, not a paid line item. EU registrars redact registrant data automatically under GDPR, so if a provider is trying to sell you privacy protection separately, that&#39;s a sign it isn&#39;t really built around European norms.</p>
<p>Beyond that, look for free DNS management with full record control (A, AAAA, CNAME, MX, TXT), the freedom to use your own nameservers, no lock-in when you want to transfer out, support during hours that match your time zone, and payment methods that suit you, whether that&#39;s SEPA, iDEAL, cards, or crypto.</p>
<h2 id="the-best-european-domain-registrars">The best European domain registrars<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-best-european-domain-registrars"><span></span></a></h2>
<h3 id="qde-best-for-keeping-your-domain-and-hosting-together">QDE: best for keeping your domain and hosting together<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#qde-best-for-keeping-your-domain-and-hosting-together"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/7vunj/hero-qde.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/7vunj/hero-qde.webp" alt="QDE homepage showing the headline &quot;High-Performance VPS in Europe&quot; with pricing from €3.95 per month and a navigation bar including Domains, Products, Features, Solutions, About, Contact, and Blog" title="QDE homepage showing the headline &quot;High-Performance VPS in Europe&quot; with pricing from €3.95 per month and a navigation bar including Domains, Products, Features, Solutions, About, Contact, and Blog"/></a></p>
<p><a href="https://qde.com/domains/">QDE</a> keeps its registrar offering deliberately narrow, focusing on the three extensions most teams actually use: .com, .net, and .org. Each is €10.95 per year, and that&#39;s the price for both registration and renewal, so there&#39;s no teaser rate that climbs later. Every domain includes free DNS management, WHOIS privacy redaction by default, the option to use any nameservers you like, and no lock-in when you want to move on.</p>
<p>Where QDE stands out isn&#39;t TLD breadth, it&#39;s consolidation. The company is a Netherlands-based host first, so you can register a domain and point it at a QDE VPS or shared hosting from the same account, with one set of billing and one dashboard. Payments include PayPal, cards, iDEAL, and cryptocurrency, which is rare among traditional registrars. If you want hundreds of obscure extensions, look further down this list. If you want your domain, DNS, and server living in one EU account, QDE is the cleanest fit.</p>
<h3 id="gandi-best-for-transparent-registration-with-broad-tld-coverage">Gandi: best for transparent registration with broad TLD coverage<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#gandi-best-for-transparent-registration-with-broad-tld-coverage"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/u39ts/hero-gandi.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/u39ts/hero-gandi.webp" alt="Gandi homepage with the headline &quot;A domain name for a secure online space&quot; above a domain name search bar, with a note that SSL certificate, 2 custom mailboxes, and Anycast with DNSSEC are included free for the first year" title="Gandi homepage with the headline &quot;A domain name for a secure online space&quot; above a domain name search bar, with a note that SSL certificate, 2 custom mailboxes, and Anycast with DNSSEC are included free for the first year"/></a></p>
<p><a href="https://www.gandi.net/">Gandi</a> is the French registrar that built its reputation on a &quot;no bullshit&quot; approach long before transparency became a selling point. It carries a large catalog of TLDs, includes WHOIS privacy at no cost, and runs an interface designed to help you manage domains rather than push add-ons at every step.</p>
<p>Pricing isn&#39;t the cheapest in this list, and a round of increases a few years back annoyed some long-time users, but you always know what you&#39;re paying. For a French company processing your data under GDPR with a genuinely wide extension lineup, Gandi remains the default recommendation for most people who just want a solid, honest registrar.</p>
<h3 id="ovhcloud-best-for-scale-and-low-bulk-pricing">OVHcloud: best for scale and low bulk pricing<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#ovhcloud-best-for-scale-and-low-bulk-pricing"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/78m7w/hero-ovhcloud.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/78m7w/hero-ovhcloud.webp" alt="OVHcloud homepage featuring a banner for the Auckland Local Zone and three product columns: VPS, Dedicated Servers Rise-SL/XL, and Dedicated Servers Scale-A1 with AMD EPYC 9135, each with a call-to-action button" title="OVHcloud homepage featuring a banner for the Auckland Local Zone and three product columns: VPS, Dedicated Servers Rise-SL/XL, and Dedicated Servers Scale-A1 with AMD EPYC 9135, each with a call-to-action button"/></a></p>
<p><a href="https://www.ovhcloud.com/">OVHcloud</a> is Europe&#39;s largest cloud and hosting provider, and its domain pricing reflects that scale. If you&#39;re registering or managing a large portfolio, or you want domains, DNS, hosting, and cloud infrastructure under one French, GDPR-compliant roof, OVHcloud is hard to beat on cost.</p>
<p>The trade-off is polish. The platform is sprawling and the interface can feel more enterprise than friendly, so it suits teams comfortable navigating a larger control panel more than someone registering their first domain.</p>
<h3 id="infomaniak-best-for-privacy-and-sustainability">Infomaniak: best for privacy and sustainability<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#infomaniak-best-for-privacy-and-sustainability"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/4bhb5/hero-infomaniak.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/4bhb5/hero-infomaniak.webp" alt="Infomaniak homepage with the headline &quot;Check the availability of your domain&quot; overlaid on a scenic forest and mountain background, with a domain search bar and pricing shown for .com, .dev, and .uk extensions" title="Infomaniak homepage with the headline &quot;Check the availability of your domain&quot; overlaid on a scenic forest and mountain background, with a domain search bar and pricing shown for .com, .dev, and .uk extensions"/></a></p>
<p><a href="https://www.infomaniak.com/">Infomaniak</a> is the Swiss option, and it&#39;s the one to look at if data protection and environmental footprint both matter to you. Because it operates from Switzerland, your data benefits from some of the strictest privacy laws around while the company still meets the requirements for doing business across the EU.</p>
<p>It&#39;s also one of the more environmentally serious providers in this space, running on renewable energy and offsetting well beyond its own emissions. Service quality is consistently well regarded. If a Swiss jurisdiction and a clear sustainability record appeal to you, Infomaniak earns its place.</p>
<h3 id="eurodns-best-for-european-country-code-domains">EuroDNS: best for European country-code domains<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#eurodns-best-for-european-country-code-domains"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/wkexk/hero-eurodns.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/wkexk/hero-eurodns.webp" alt="EuroDNS homepage with the headline &quot;Every success story begins with a domain name&quot; alongside a domain search bar with TLD filter tabs, and pricing shown for .eu, .com, .net, .org, and .be domains" title="EuroDNS homepage with the headline &quot;Every success story begins with a domain name&quot; alongside a domain search bar with TLD filter tabs, and pricing shown for .eu, .com, .net, .org, and .be domains"/></a></p>
<p><a href="https://www.eurodns.com/">EuroDNS</a>, based in Luxembourg, specializes in exactly what its name suggests. If you need European ccTLDs like .eu, .de, .fr, .nl, or .no, or you manage a portfolio of country-specific domains and want bulk tools and knowledgeable support during European business hours, this is the specialist pick.</p>
<p>It&#39;s less suited to people who mainly want cheap .com domains, where a budget registrar will undercut it, and WHOIS privacy isn&#39;t always free here. But for niche European extensions that the big US registrars don&#39;t even carry, EuroDNS does one job and does it well.</p>
<h3 id="inwx-best-for-developers-and-resellers">INWX: best for developers and resellers<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#inwx-best-for-developers-and-resellers"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/06/24/9t8a4/hero-inwx.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/9t8a4/hero-inwx.webp" alt="INWX homepage with the headline &quot;INWX: Sparkling top level for your domain!&quot; on a dark blue background, featuring a domain search bar and a row of popular TLD extensions" title="INWX homepage with the headline &quot;INWX: Sparkling top level for your domain!&quot; on a dark blue background, featuring a domain search bar and a row of popular TLD extensions"/></a></p>
<p><a href="https://www.inwx.com/">INWX</a> is a German registrar popular with power users, agencies, and resellers. It supports a broad range of TLDs, offers competitive pricing, and is known for a capable API that makes automating registrations and DNS changes straightforward.</p>
<p>The interface is functional rather than flashy, which is the point. If you&#39;re managing domains programmatically or running them as part of a larger operation, INWX gives you the control and tooling to do it without fuss.</p>
<h3 id="honorable-mentions">Honorable mentions<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#honorable-mentions"><span></span></a></h3>
<p>A couple of others are worth a look depending on your setup. <a href="https://www.hetzner.com/">Hetzner</a> offers very competitive domain pricing alongside its well-known German hosting, which makes it convenient if your servers already live there.</p>
<p><a href="https://cdn.qde.com/2026/06/24/yeksd/hero-hetzner.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/yeksd/hero-hetzner.webp" alt="Hetzner homepage featuring a hero banner for Dell's new enterprise servers with the headline &quot;MORE POWER: DELL'S NEW ENTERPRISE SERVERS&quot; against a purple gradient background, with a &quot;Go to new Dell Servers&quot; call-to-action button" title="Hetzner homepage featuring a hero banner for Dell's new enterprise servers with the headline &quot;MORE POWER: DELL'S NEW ENTERPRISE SERVERS&quot; against a purple gradient background, with a &quot;Go to new Dell Servers&quot; call-to-action button"/></a></p>
<p><a href="https://www.openprovider.com/">Openprovider</a> in the Netherlands runs a wholesale, membership-style model that&#39;s aimed at resellers managing domains at volume rather than individuals registering one or two.</p>
<p><a href="https://cdn.qde.com/2026/06/24/vqqk5/hero-openprovider.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/vqqk5/hero-openprovider.webp" alt="Openprovider homepage with the headline &quot;Buy domains at cost price. Increase your margins.&quot; alongside a promotional banner offering membership for $4.99 for the first year and unlimited .com domains at $7.30 each" title="Openprovider homepage with the headline &quot;Buy domains at cost price. Increase your margins.&quot; alongside a promotional banner offering membership for $4.99 for the first year and unlimited .com domains at $7.30 each"/></a></p>
<h2 id="how-to-move-a-domain-to-a-european-registrar">How to move a domain to a European registrar<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-move-a-domain-to-a-european-registrar"><span></span></a></h2>
<p>Switching is more routine than people expect, and it usually takes a few minutes of active work plus some waiting.</p>
<p>Start by unlocking the domain at your current registrar and requesting the authorization code, sometimes called an EPP or transfer code. Make sure WHOIS privacy isn&#39;t blocking the transfer confirmation email, and check that the domain isn&#39;t inside the 60-day lock that applies right after registration or a previous transfer.</p>
<p>Then start the transfer at your new registrar, enter the auth code, and approve the confirmation email when it arrives. The transfer typically completes within five to seven days, and most registrars add a year to your registration as part of the move, so you don&#39;t lose the time you&#39;d already paid for. Point your DNS records before you switch if you want zero downtime.</p>
<h2 id="so-which-european-registrar-is-best">So which European registrar is best?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#so-which-european-registrar-is-best"><span></span></a></h2>
<p>There isn&#39;t a single winner, and any list that claims one is selling you something. Gandi is the safe all-rounder for transparent registration across a wide range of extensions. OVHcloud wins on scale and bulk cost. Infomaniak is the pick for Swiss-grade privacy and sustainability. EuroDNS owns the European country-code niche, and INWX is built for developers and resellers.</p>
<p>If your priority is keeping a domain in the same place as the server it points to, with flat pricing and privacy switched on by default, <a href="https://qde.com/domains/">QDE</a> registers .com, .net, and .org at €10.95 a year, renewal included, with free DNS management and no lock-in. It&#39;s a European provider operated from the Netherlands, with <a href="https://qde.com/features/privacy/">data handling aligned to EU privacy law</a> and <a href="https://qde.com/features/crypto-payments/">cryptocurrency among its payment options</a>.</p>
<p>Thanks for reading! If you&#39;re also deciding where to host the site behind that domain, <a href="https://qde.com/vps/">QDE runs high-performance KVM VPS in the Netherlands</a> on pure NVMe storage with 10 Gbps uplinks, so you can register and deploy from one account.</p>
<p><em><strong>Ready to register a domain or spin up a server? <a href="https://qde.com/contact/">Contact our team</a> and we&#39;ll help you find the right fit.</strong></em></p>
<h2 id="frequently-asked-questions-about-european-domain-registrars">Frequently asked questions about European domain registrars<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-european-domain-registrars"><span></span></a></h2>
<h3 id="why-choose-a-european-domain-registrar-over-a-us-one">Why choose a European domain registrar over a US one?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-choose-a-european-domain-registrar-over-a-us-one"><span></span></a></h3>
<p>A European registrar processes your account and registrant data under EU law, redacts your personal details from public WHOIS by default, and typically avoids the aggressive upselling and renewal price jumps common with the large American providers. For EU customers it also means support and billing aligned to your time zone and payment methods.</p>
<h3 id="are-european-registrars-gdpr-compliant">Are European registrars GDPR compliant?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#are-european-registrars-gdpr-compliant"><span></span></a></h3>
<p>EU-based registrars operate directly under the GDPR, which is why WHOIS privacy is automatic rather than a paid extra. Swiss registrars like Infomaniak fall under Switzerland&#39;s own strict data protection laws while still meeting EU requirements.</p>
<h3 id="can-anyone-register-a-eu-domain">Can anyone register a .eu domain?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-anyone-register-a-eu-domain"><span></span></a></h3>
<p>No. The .eu extension is restricted to residents and organizations in the EU, Iceland, Liechtenstein, or Norway. Most European registrars offer it, but you&#39;ll need to meet the residency requirement.</p>
<h3 id="does-whois-privacy-cost-extra-at-european-registrars">Does WHOIS privacy cost extra at European registrars?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-whois-privacy-cost-extra-at-european-registrars"><span></span></a></h3>
<p>Usually not. Under GDPR, EU registrars redact registrant personal data from public WHOIS, RDAP, and RDDS output by default, so it&#39;s included rather than sold separately. A few registrars still treat it as an add-on, so it&#39;s worth checking.</p>
<h3 id="which-registrar-is-cheapest-for-com-domains">Which registrar is cheapest for .com domains?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-registrar-is-cheapest-for-com-domains"><span></span></a></h3>
<p>Large-scale providers like OVHcloud tend to have the lowest bulk pricing, while flat-rate registrars like QDE keep registration and renewal at the same €10.95 so there&#39;s no second-year increase. The cheapest first-year price isn&#39;t always the cheapest over several years.</p>
<h3 id="can-i-transfer-my-existing-domain-to-a-european-registrar">Can I transfer my existing domain to a European registrar?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-transfer-my-existing-domain-to-a-european-registrar"><span></span></a></h3>
<p>Yes, as long as the domain is at least 60 days past its last registration or transfer and isn&#39;t locked. You&#39;ll unlock it, get the authorization code from your current registrar, and approve the transfer at the new one, which usually completes within a week and adds a year to your registration.</p>
<h3 id="can-i-register-a-domain-without-buying-hosting">Can I register a domain without buying hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-register-a-domain-without-buying-hosting"><span></span></a></h3>
<p>Yes. Registrars sell domains as a standalone product, and you&#39;re free to point yours at any host or use your own nameservers. With a provider like QDE you can keep the domain and hosting together if you want, but it isn&#39;t required.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Domains" term="Domains"/>
        <category label="Domain Registration" term="Domain Registration"/>
        <category label="GDPR" term="GDPR"/>
        <category label="Privacy" term="Privacy"/>
        <category label="European Hosting" term="European Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to Self-Host Linkwarden: Your Own Wayback Machine and Bookmark Manager]]></title>
        <id>https://qde.com/blog/how-to-self-host-linkwarden/</id>
        <link href="https://qde.com/blog/how-to-self-host-linkwarden/"/>
        <updated>2026-06-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Linkwarden is a self-hosted bookmark manager that saves a full copy of every page you bookmark, acting like a private Wayback Machine. This guide walks through deploying it with Docker and setting up archiving, search, AI tagging, and backups on your own server.]]></summary>
        <content type="html"><![CDATA[<p>Bookmarks have a quiet failure mode. You save a page, come back a year later, and the link is dead, redirected, or rewritten into something unrecognizable. The web rots, and your carefully curated reading list rots right along with it.</p>
<p>That&#39;s the problem Linkwarden was built to solve, and it&#39;s why a lot of people choose to self-host Linkwarden instead of handing their reference library to a third-party service. It&#39;s an open-source bookmark manager that saves a full copy of every page you bookmark, a screenshot, a PDF, a single HTML file, and a clean readable version, so the content stays accessible even after the original goes offline. Think of it as a private <a href="https://web.archive.org/">Wayback Machine</a> you own end to end, with collections, tags, search, and a few AI tricks layered on top.</p>
<p>This guide covers what Linkwarden does, what you need to run it, and how to deploy it with Docker on your own server. We&#39;ll also set up the parts most quick-start guides skip: full-text search, AI tagging, backups, and a reverse proxy so you can reach it over a real domain.</p>
<h2 id="what-linkwarden-actually-does">What Linkwarden actually does<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-linkwarden-actually-does"><span></span></a></h2>
<p>At its core, <a href="https://github.com/linkwarden/linkwarden">Linkwarden</a> is a bookmark manager. You save a link, drop it into a collection, and add some tags. The part that sets it apart is preservation. The team behind it built the whole app around the reality of <a href="https://en.wikipedia.org/wiki/Link_rot">link rot</a>, so saving a bookmark also means saving the page itself.</p>
<p><a href="https://cdn.qde.com/2026/06/24/f7zwd/lwimg.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/f7zwd/lwimg.webp" alt="Linkwarden image" title="Linkwarden image"/></a></p>
<p>When you add a link, Linkwarden fetches the page and stores several formats locally: a full-page screenshot, a PDF, a single self-contained HTML file, and a stripped-down readable view for distraction-free reading. If you&#39;d rather lean on a public archive too, it can optionally push a snapshot to the Internet Archive&#39;s Wayback Machine on your behalf. Either way, you keep your own copy.</p>
<p>The &quot;and more&quot; is where it earns a permanent spot in a self-hosted stack:</p>
<ul>
<li>Collections and nested sub-collections, plus multiple tags per link, for organizing a large library</li>
<li>Full-text search across everything you&#39;ve saved, powered by Meilisearch</li>
<li>Local AI tagging that reads a page&#39;s content and suggests tags automatically</li>
<li>RSS subscriptions that pull new articles into a collection on their own</li>
<li>Shared collections with per-member permissions, handy for team research</li>
<li>Reader view with text highlighting and annotation</li>
<li>Chrome and Firefox extensions, a documented API, and bulk import or export</li>
</ul>
<p>So it sits somewhere between a read-it-later app and a real web archive, which is a useful combination if you do research, write, or just hate losing good links.</p>
<h2 id="why-run-your-own-instance">Why run your own instance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-run-your-own-instance"><span></span></a></h2>
<p>Linkwarden offers a hosted Cloud plan, and it&#39;s a fair option if you don&#39;t want to manage anything. But self-hosting makes sense for a few reasons.</p>
<p>You own the data. Every screenshot, PDF, and HTML capture lives on your storage, not someone else&#39;s, which matters if you&#39;re archiving sensitive research, internal documentation, or anything you can&#39;t afford to lose access to. There are no per-seat fees either, so adding teammates to a <a href="https://qde.com/use-cases/self-hosted-apps/">self-hosted instance</a> doesn&#39;t change your bill.</p>
<p>Privacy is the other half of it. A self-hosted Linkwarden instance only talks to the sites you&#39;re saving and, optionally, an AI provider you choose. Nothing about your reading habits gets shared with a third party. If <a href="https://qde.com/features/privacy/">data privacy</a> is part of why you&#39;re self-hosting in the first place, keeping your bookmark archive in-house fits that goal.</p>
<h2 id="what-youll-need">What you&#39;ll need<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-youll-need"><span></span></a></h2>
<p>Linkwarden&#39;s requirements are modest. The developers tested it on a server with 4 GB of memory and it ran smoothly; the heaviest moment is the initial build, and after that it&#39;s fairly light. That said, archiving generates real work, since every saved link spins up a headless browser to capture the page, so giving it a little headroom helps if you save in bulk.</p>
<p>For a clean Docker deployment you&#39;ll want:</p>
<ul>
<li>A Linux server with root access, ideally 4 GB of RAM or more</li>
<li>Docker and Docker Compose installed</li>
<li><code>curl</code> and a text editor like <code>nano</code></li>
</ul>
<p>A small VPS handles a single-user instance comfortably. If you plan to archive heavily or run it for a team, a plan with <a href="https://qde.com/features/performance/">solid CPU and NVMe storage</a> makes the capture process noticeably faster, since screenshot and PDF generation is disk and CPU bound. You&#39;ll also need <a href="https://qde.com/features/root-access/">full root access</a> to install Docker and manage the stack, which rules out most shared hosting.</p>
<h2 id="how-to-self-host-linkwarden-with-docker">How to self-host Linkwarden with Docker<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-self-host-linkwarden-with-docker"><span></span></a></h2>
<p>The official Docker setup is the fastest path, and the project keeps it well documented. The compose file brings up three services together: Linkwarden itself, a PostgreSQL database, and Meilisearch for search.</p>
<h3 id="1-download-the-compose-and-environment-files">1. Download the compose and environment files<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#1-download-the-compose-and-environment-files"><span></span></a></h3>
<p>SSH into your server, then create a folder and pull down the two files you need:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">mkdir</span><span style="color:#CE9178"> linkwarden</span><span style="color:#D4D4D4"> &amp;&amp; </span><span style="color:#DCDCAA">cd</span><span style="color:#CE9178"> linkwarden</span></span>
<span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> -O</span><span style="color:#CE9178"> https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/docker-compose.yml</span></span>
<span class="line"><span style="color:#DCDCAA">curl</span><span style="color:#569CD6"> -L</span><span style="color:#CE9178"> https://raw.githubusercontent.com/linkwarden/linkwarden/refs/heads/main/.env.sample</span><span style="color:#569CD6"> -o</span><span style="color:#CE9178"> &quot;.env&quot;</span></span></code></pre>
<h3 id="2-set-your-secrets">2. Set your secrets<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#2-set-your-secrets"><span></span></a></h3>
<p>Open the <code>.env</code> file:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">nano</span><span style="color:#CE9178"> .env</span></span></code></pre>
<p>You&#39;ll see something like this:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#9CDCFE">NEXTAUTH_URL</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">http://localhost:3000/api/v1/auth</span></span>
<span class="line"><span style="color:#9CDCFE">NEXTAUTH_SECRET</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">VERY_SENSITIVE_SECRET</span></span>
<span class="line"><span style="color:#9CDCFE">MEILI_MASTER_KEY</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">VERY_SENSITIVE_MEILI_MASTER_KEY</span></span>
<span class="line"><span style="color:#9CDCFE">POSTGRES_PASSWORD</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">CUSTOM_POSTGRES_PASSWORD</span></span></code></pre>
<p>You must change three of these to your own secret values: <code>NEXTAUTH_SECRET</code>, <code>MEILI_MASTER_KEY</code>, and <code>POSTGRES_PASSWORD</code>. Each should be a different long, random string. An easy way to generate them is:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">openssl</span><span style="color:#CE9178"> rand</span><span style="color:#569CD6"> -base64</span><span style="color:#B5CEA8"> 32</span></span></code></pre>
<p>Run that three times and paste in a fresh value for each. If a value contains special characters, wrap it in single or double quotes.</p>
<p>Leave <code>NEXTAUTH_URL</code> alone for now if you&#39;re testing locally. You&#39;ll only change it once you put the instance behind a domain, which we&#39;ll cover in a moment.</p>
<h3 id="3-start-the-stack">3. Start the stack<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#3-start-the-stack"><span></span></a></h3>
<p>From inside the same folder, bring everything up:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>The first run pulls the images and builds the app, so give it a few minutes. Once it settles, Linkwarden is listening on port 3000.</p>
<h3 id="4-create-your-account">4. Create your account<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#4-create-your-account"><span></span></a></h3>
<p>Open <code>http://your-server-ip:3000</code> in a browser and you&#39;ll land on the login screen. Click Sign Up to create the first user, using a password of at least eight characters. The first account you make is yours to manage; if this is a single-user setup, you&#39;ll likely want to disable open registration afterward in the settings so strangers can&#39;t create accounts on your instance.</p>
<p>At this point you have a working Linkwarden. Save a link and watch it generate the screenshot, PDF, and readable view automatically.</p>
<h3 id="putting-it-behind-a-domain">Putting it behind a domain<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#putting-it-behind-a-domain"><span></span></a></h3>
<p>Reaching your instance by IP and port is fine for testing, but for daily use you&#39;ll want a real hostname with HTTPS. Run a reverse proxy like Caddy, Nginx, or Traefik in front of Linkwarden, point it at port 3000, and handle TLS there.</p>
<p>Once that&#39;s in place, update <code>NEXTAUTH_URL</code> in your <code>.env</code> to match your domain, for example <code>https://links.yourdomain.com/api/v1/auth</code>, then restart with <code>docker compose up -d</code>. If you don&#39;t already have a domain for this, you can <a href="https://qde.com/domains/">register one</a> and point an A record at your server. The official <a href="https://docs.linkwarden.app/self-hosting/reverse-proxy">reverse proxy docs</a> cover sample configs for the common proxies.</p>
<h2 id="setting-up-search-and-ai-tagging">Setting up search and AI tagging<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#setting-up-search-and-ai-tagging"><span></span></a></h2>
<p>Search works out of the box because Meilisearch ships in the default compose file. As long as your <code>MEILI_MASTER_KEY</code> is set, full-text search across your saved pages just works, including the page content Linkwarden captured, not only titles and tags.</p>
<p>AI tagging is optional and turned off by default. When enabled, it reads the content of a page and suggests or auto-applies tags, which saves a lot of manual sorting once your library grows. You set it up by connecting an AI provider; Linkwarden supports hosted options like OpenAI and Anthropic, or a local model through <a href="https://ollama.com/">Ollama</a> if you&#39;d rather keep everything on your own hardware. Running the model locally is the privacy-friendly choice and pairs naturally with a self-hosted setup. The <a href="https://docs.linkwarden.app/self-hosting/ai-worker">AI tagging guide</a> walks through the environment variables for each provider.</p>
<h2 id="backing-up-and-updating-your-instance">Backing up and updating your instance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#backing-up-and-updating-your-instance"><span></span></a></h2>
<p>Self-hosting means you&#39;re responsible for your own safety net, and Linkwarden stores its data in two places: the PostgreSQL database and a data volume holding all the screenshots, PDFs, and HTML captures. A complete backup needs both.</p>
<p>Dump the database with a one-liner you can drop into a cron job:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> exec</span><span style="color:#569CD6"> -t</span><span style="color:#CE9178"> linkwarden-postgres</span><span style="color:#CE9178"> pg_dump</span><span style="color:#569CD6"> -U</span><span style="color:#CE9178"> postgres</span><span style="color:#CE9178"> postgres</span><span style="color:#D4D4D4"> | </span><span style="color:#DCDCAA">gzip</span><span style="color:#D4D4D4"> &gt; </span><span style="color:#CE9178">linkwarden_</span><span style="color:#D4D4D4">$(</span><span style="color:#DCDCAA">date</span><span style="color:#CE9178"> +%F</span><span style="color:#D4D4D4">)</span><span style="color:#CE9178">.sql.gz</span></span></code></pre>
<p>Then back up the Docker volume that holds the captured files, since the database alone won&#39;t restore your archives. If your captures grow large, copying that volume offsite on a schedule is worth setting up early. Running on infrastructure with <a href="https://qde.com/features/daily-backups/">daily backups</a> gives you a second layer underneath your own dumps, which is reassuring for an archive you don&#39;t want to rebuild from scratch.</p>
<p>Updating is straightforward. From your Linkwarden folder, pull the latest image and recreate the containers:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> pull</span></span>
<span class="line"><span style="color:#DCDCAA">docker</span><span style="color:#CE9178"> compose</span><span style="color:#CE9178"> up</span><span style="color:#569CD6"> -d</span></span></code></pre>
<p>Check the release notes before a major version jump, but minor updates are usually painless.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>Linkwarden turns a fragile pile of bookmarks into a durable, searchable archive you fully control. With Docker, getting it running is a short job: pull two files, set three secrets, and start the stack. From there, adding search, AI tagging, a reverse proxy, and a backup routine rounds it out into something you can trust with years of saved reading.</p>
<p>The main thing self-hosting asks of you is a reliable server with root access and enough resources to handle the archiving work, which is exactly where the right VPS makes the difference.</p>
<p>Thanks for reading! If you&#39;re looking for somewhere to host it, QDE offers <a href="https://qde.com/vps/">high-performance VPS hosting</a> in the Netherlands with NVMe storage, 10 Gbps uplinks, and full root access, which suits a self-hosted archiving app like Linkwarden well.</p>
<p><em><strong>Ready to start or want advice on the right plan? <a href="https://qde.com/contact/">Contact our team</a> and we&#39;ll help you find the best fit for your project.</strong></em></p>
<h2 id="frequently-asked-questions-about-self-hosting-linkwarden">Frequently asked questions about self-hosting Linkwarden<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-self-hosting-linkwarden"><span></span></a></h2>
<h3 id="is-linkwarden-free-to-self-host">Is Linkwarden free to self-host?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-linkwarden-free-to-self-host"><span></span></a></h3>
<p>Yes. Linkwarden is open-source, and self-hosting gives you every feature found in the Cloud plan at no license cost. Your only expenses are the server it runs on and, if you use a hosted AI provider, that provider&#39;s usage fees.</p>
<h3 id="how-much-server-power-do-i-need">How much server power do I need?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-much-server-power-do-i-need"><span></span></a></h3>
<p>A VPS with 4 GB of RAM runs a personal instance comfortably. The build step and on-demand page archiving are the most demanding moments, so more CPU and fast NVMe storage speed up screenshot and PDF capture if you save links in volume or run it for a team.</p>
<h3 id="is-linkwarden-a-real-alternative-to-the-wayback-machine">Is Linkwarden a real alternative to the Wayback Machine?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-linkwarden-a-real-alternative-to-the-wayback-machine"><span></span></a></h3>
<p>For personal use, yes. It saves full local copies of every page you bookmark as a screenshot, PDF, HTML file, and readable view, so your captures survive even if the original site disappears. It can also push snapshots to the public Wayback Machine, but the local copies are yours regardless.</p>
<h3 id="do-i-need-meilisearch-for-search-to-work">Do I need Meilisearch for search to work?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-meilisearch-for-search-to-work"><span></span></a></h3>
<p>The default Docker setup includes Meilisearch, so full-text search works as soon as you set the <code>MEILI_MASTER_KEY</code> value. If search returns nothing, confirm the Meilisearch container is running and the key matches.</p>
<h3 id="can-i-keep-the-ai-tagging-fully-private">Can I keep the AI tagging fully private?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-keep-the-ai-tagging-fully-private"><span></span></a></h3>
<p>Yes. Instead of a hosted provider, point Linkwarden at a local model running through Ollama on your own server. Page content never leaves your infrastructure, which fits a privacy-focused self-hosted setup.</p>
<h3 id="how-do-i-back-up-everything">How do I back up everything?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-do-i-back-up-everything"><span></span></a></h3>
<p>Back up both the PostgreSQL database, using <code>pg_dump</code>, and the Docker volume that stores the captured screenshots, PDFs, and HTML. The database alone won&#39;t restore your archived pages, so you need both for a complete recovery.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Linkwarden" term="Linkwarden"/>
        <category label="Self-Hosting" term="Self-Hosting"/>
        <category label="Bookmark Manager" term="Bookmark Manager"/>
        <category label="Docker" term="Docker"/>
        <category label="Web Archiving" term="Web Archiving"/>
        <category label="Link Rot" term="Link Rot"/>
        <category label="VPS" term="VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Netherlands vs. Germany for Hosting: Which Should You Choose?]]></title>
        <id>https://qde.com/blog/netherlands-vs-germany-hosting/</id>
        <link href="https://qde.com/blog/netherlands-vs-germany-hosting/"/>
        <updated>2026-06-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The Netherlands and Germany are two of Europe's strongest hosting destinations, but they differ on connectivity, jurisdiction, and content rules. This guide breaks down how they compare so you can pick the right home for your servers.]]></summary>
        <content type="html"><![CDATA[<p>If you&#39;re shopping for European hosting, two countries keep coming up: the Netherlands and Germany. Both sit at the center of the continent&#39;s network map, both fall under GDPR, and both run on dense fiber and serious data center capacity. So when it comes to Netherlands vs. Germany hosting, the honest answer is that you can&#39;t really go wrong with either; the differences are in the details.</p>
<p>Those details matter more than people expect. Where your server physically lives affects latency to your users, which legal framework governs your data, how takedown requests get handled, and what you&#39;ll pay each month. This article walks through how Amsterdam and Frankfurt compare on the things that actually move the needle, then helps you decide which one fits your project.</p>
<h2 id="why-these-two-countries-dominate-european-hosting">Why these two countries dominate European hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-these-two-countries-dominate-european-hosting"><span></span></a></h2>
<p>Amsterdam and Frankfurt are both part of the &quot;FLAP-D&quot; group, the cluster of cities (Frankfurt, London, Amsterdam, Paris, Dublin) that anchors most of Europe&#39;s internet infrastructure. They have the most data centers, the most network operators, and the most interconnection capacity on the continent.</p>
<p>That concentration creates a feedback loop. More networks in one place means lower-latency peering, which attracts more networks, which pulls in more hosting providers and cloud regions. Both cities have been riding that loop for nearly three decades, and it&#39;s the main reason a VPS in Amsterdam or Frankfurt tends to outperform one in a less-connected location.</p>
<p>The practical upshot for you: whichever you pick, you&#39;re getting access to world-class connectivity. The real question is which flavor of &quot;world-class&quot; suits your audience and your workload.</p>
<h2 id="network-connectivity-and-peering">Network connectivity and peering<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#network-connectivity-and-peering"><span></span></a></h2>
<p>This is where the two diverge in an interesting way, and it comes down to their flagship internet exchanges.</p>
<p>Germany&#39;s <a href="https://www.de-cix.net/">DE-CIX in Frankfurt</a> is the largest internet exchange in the world by peak traffic. Its Frankfurt platform regularly pushes past 18 Tb/s at peak, with roughly 1,100 networks connected at that single metro. Frankfurt is also the gateway for traffic heading into Eastern Europe and a magnet for cloud on-ramps and financial networks, which is part of why DE-CIX named it the world&#39;s leading digital hub in 2025.</p>
<p>The Netherlands runs on <a href="https://www.ams-ix.net/">AMS-IX in Amsterdam</a>, one of the oldest and most respected exchanges anywhere. AMS-IX hit a traffic peak of 14.2 Tb/s in early 2025 and moved more than 35 exabytes of data across the year, with around 900 connected parties. Amsterdam leans heavily toward content delivery, streaming, and gaming traffic, and it sits at the European landing point for several transatlantic cables.</p>
<p>Both exchanges are carrier-neutral and deliver low-latency reach across Europe, North America, and Asia. If you want to dig deeper into how Amsterdam earned its place, we covered it in detail in <a href="https://qde.com/blog/what-is-ams-ix/">what AMS-IX is and why it matters</a>.</p>
<h2 id="latency-and-geographic-reach">Latency and geographic reach<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#latency-and-geographic-reach"><span></span></a></h2>
<p>Geography is subtle here because both cities are central, but they tilt in different directions.</p>
<p>Frankfurt&#39;s strength is reach into the DACH region (Germany, Austria, Switzerland) and onward into Central and Eastern Europe. If most of your users are German-speaking or sit east of the Rhine, Frankfurt usually shaves a few milliseconds off the round trip. It&#39;s also the default choice for anything latency-sensitive that touches European financial markets.</p>
<p>Amsterdam tends to win for transatlantic traffic, the UK, the Nordics, and Western Europe generally. The transatlantic cable landings make it a strong base if you serve a mixed European and North American audience from a single location.</p>
<p>In real terms, the gap between them across most of Western and Central Europe is small, often a single-digit millisecond difference. Unless you&#39;re running something where every millisecond counts, your audience map matters more than the raw numbers. You can always test real-world latency to a Dutch location yourself using QDE&#39;s <a href="https://lg-ams.qde.com/">network looking glass</a>.</p>
<h2 id="data-privacy-and-legal-jurisdiction">Data privacy and legal jurisdiction<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#data-privacy-and-legal-jurisdiction"><span></span></a></h2>
<p>Here&#39;s where a lot of buyers make their decision, and where the nuance is easy to miss.</p>
<p>Both countries enforce the <a href="https://gdpr.eu/">GDPR</a>, so the baseline for data protection is the same high European standard. Each also has its own national layer on top: Germany has the Federal Data Protection Act backed by a federal authority and 16 separate state-level data protection agencies, while the Netherlands implements GDPR through its own act overseen by the Dutch Data Protection Authority.</p>
<p>Germany has a particularly strong privacy reputation, rooted in a constitutional right to &quot;informational self-determination.&quot; German courts have historically pushed back hard on government data collection; the Federal Constitutional Court struck down the country&#39;s transposition of the EU data retention directive for being disproportionate. That history gives Germany real credibility with privacy-conscious users.</p>
<p>The Netherlands holds an equally solid GDPR posture with a pragmatic, business-friendly regulator. One detail worth knowing: both Germany and the Netherlands are members of the 14 Eyes intelligence-sharing alliance.</p>
<h2 id="content-rules-and-takedown-culture">Content rules and takedown culture<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#content-rules-and-takedown-culture"><span></span></a></h2>
<p>This is the difference people feel most in day-to-day operations.</p>
<p>Germany runs a stricter content environment. Its Network Enforcement Act (NetzDG) imposes fast takedown obligations and fines reaching €50 million, though it targets large social platforms rather than hosting providers directly. More relevant to most site owners is Germany&#39;s aggressive copyright enforcement and its &quot;Abmahnung&quot; warning-letter culture, where rights holders send formal cease-and-desist notices that can carry real legal cost. Germany also enforces strict rules around certain categories of speech and imagery.</p>
<p>The Netherlands takes a more measured approach. It operates under a well-established notice-and-takedown code of conduct, and Dutch hosts generally have a reputation for being even-handed about handling complaints rather than reflexively pulling content. For projects that need predictable, proportionate handling of abuse reports, that culture is a meaningful advantage.</p>
<p>Neither approach is &quot;better&quot; in the abstract. If your content is mainstream and you value Germany&#39;s privacy pedigree, the stricter regime may not affect you at all. If you want a host that won&#39;t overreact to a single complaint, the Dutch model tends to be the gentler one.</p>
<h2 id="pricing-and-market-dynamics">Pricing and market dynamics<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#pricing-and-market-dynamics"><span></span></a></h2>
<p>Germany has long been associated with budget-friendly hosting, thanks partly to large domestic providers competing on price and the sheer scale of capacity around Frankfurt. If raw cost-per-gigabyte is your only metric, German bargain tiers can be hard to beat.</p>
<p>The Netherlands competes on a slightly different axis. Dutch hosting is priced competitively, but the country has carved out a strong identity around privacy-focused, crypto-friendly, and unmetered or high-bandwidth offerings. Providers there are more likely to accept anonymous-leaning payment methods and to position around data sovereignty rather than rock-bottom pricing alone.</p>
<p>So the trade-off often looks like this: Germany for maximum capacity at low cost, the Netherlands for a balance of performance, privacy positioning, and flexible payment. For most serious projects, the monthly difference between comparable specs is small enough that connectivity and jurisdiction should outweigh a few euros.</p>
<h2 id="how-to-choose-between-the-netherlands-and-germany">How to choose between the Netherlands and Germany<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-choose-between-the-netherlands-and-germany"><span></span></a></h2>
<p>A few quick decision rules cover most situations.</p>
<p>Pick Germany if your audience is concentrated in the DACH region or Eastern Europe, you want the deepest interconnection at DE-CIX, or you&#39;re optimizing purely for the lowest possible cost on large capacity. It&#39;s also a natural fit if Germany&#39;s constitutional privacy reputation is a selling point for your users.</p>
<p>Pick the Netherlands if you serve a mixed European and transatlantic audience, you run content-heavy, streaming, or gaming workloads that benefit from Amsterdam&#39;s peering profile, or you want flexible and privacy-respecting payment options. The lighter-touch content culture is a bonus for anyone who wants predictable handling of complaints.</p>
<p>When the two are close, default to the Netherlands for general-purpose hosting and Germany only when its specific strengths (cost at scale, DACH latency, DE-CIX depth) clearly apply to you. And remember you can always run a short test on a monthly plan before committing, since neither choice locks you in.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>The Netherlands and Germany are both excellent places to host, and the right pick depends on your audience, your workload, and how much weight you put on content culture versus raw cost. Germany leans toward unmatched interconnection and budget capacity; the Netherlands leans toward balanced performance, transatlantic reach, and a more flexible, privacy-minded environment.</p>
<p>If the Dutch side of that comparison fits your project, <a href="https://qde.com/vps/">QDE runs unmanaged KVM VPS hosting from a Tier III data center in Amsterdam</a>, with pure NVMe storage, 10 Gbps uplinks, direct AMS-IX peering, and crypto payment options for anyone who values privacy. RAM and storage are never oversold, so you get exactly what your VPS plan lists.</p>
<p><em><strong>Not sure which location or spec fits best? <a href="https://qde.com/contact/">Contact our team</a> and we&#39;ll help you find the right setup for your project.</strong></em></p>
<h2 id="frequently-asked-questions-about-netherlands-vs-germany-hosting">Frequently asked questions about Netherlands vs. Germany hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-netherlands-vs-germany-hosting"><span></span></a></h2>
<h3 id="is-the-netherlands-or-germany-better-for-privacy">Is the Netherlands or Germany better for privacy?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-the-netherlands-or-germany-better-for-privacy"><span></span></a></h3>
<p>Both enforce GDPR and have strong national data protection laws, so the baseline is equally high. Germany carries a stronger privacy reputation thanks to its constitutional protections, while the Netherlands pairs solid GDPR compliance with a pragmatic regulator and flexible, privacy-friendly payment options. Note that both countries belong to the 14 Eyes alliance.</p>
<h3 id="which-has-better-network-connectivity">Which has better network connectivity?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-has-better-network-connectivity"><span></span></a></h3>
<p>Germany&#39;s DE-CIX in Frankfurt is the world&#39;s largest internet exchange by peak traffic and the strongest gateway into Eastern Europe. The Netherlands&#39; AMS-IX in Amsterdam is one of the largest globally and excels for transatlantic, streaming, and content delivery traffic. Both offer low-latency reach across Europe.</p>
<h3 id="is-german-hosting-cheaper-than-dutch-hosting">Is German hosting cheaper than Dutch hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-german-hosting-cheaper-than-dutch-hosting"><span></span></a></h3>
<p>German hosting is often associated with lower budget pricing due to large domestic providers and heavy capacity around Frankfurt. Dutch hosting is competitively priced but tends to emphasize performance, privacy, and flexible payment rather than the absolute lowest cost.</p>
<h3 id="does-germany-censor-hosted-content-more-than-the-netherlands">Does Germany censor hosted content more than the Netherlands?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-germany-censor-hosted-content-more-than-the-netherlands"><span></span></a></h3>
<p>Germany has a stricter content environment, including fast takedown rules for large platforms and aggressive copyright enforcement. The Netherlands uses a notice-and-takedown code of conduct and is generally known for proportionate, even-handed handling of complaints.</p>
<h3 id="which-should-i-choose-for-a-european-and-us-audience">Which should I choose for a European and US audience?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-should-i-choose-for-a-european-and-us-audience"><span></span></a></h3>
<p>The Netherlands is usually the better default for a mixed European and transatlantic audience because of Amsterdam&#39;s transatlantic cable connections and content-friendly peering. Choose Germany if your users are concentrated in the DACH region or Eastern Europe.</p>
<h3 id="can-i-test-latency-before-committing">Can I test latency before committing?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-test-latency-before-committing"><span></span></a></h3>
<p>Yes. You can check real-world latency to a Dutch location using <a href="https://lg-ams.qde.com/">QDE&#39;s network looking glass</a>, and since QDE bills monthly with no long-term contract, you can run a short trial before deciding.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS hosting" term="VPS hosting"/>
        <category label="Netherlands" term="Netherlands"/>
        <category label="Germany" term="Germany"/>
        <category label="data centers" term="data centers"/>
        <category label="hosting jurisdiction" term="hosting jurisdiction"/>
        <category label="AMS-IX" term="AMS-IX"/>
        <category label="DE-CIX" term="DE-CIX"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to Self-Host Immich: The Best Google Photos Alternative]]></title>
        <id>https://qde.com/blog/self-host-immich-google-photos-alternative/</id>
        <link href="https://qde.com/blog/self-host-immich-google-photos-alternative/"/>
        <updated>2026-06-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Immich gives you a private, ad-free Google Photos replacement that runs entirely on your own server. This guide covers deploying it with Docker Compose, setting up mobile backup, and keeping your photo library safe.]]></summary>
        <content type="html"><![CDATA[<p>Google Photos is convenient right up until it isn&#39;t. The free tier filled up years ago, the storage tiers keep getting more expensive, and every photo you upload gets scanned, analyzed, and folded into someone else&#39;s training data. If you&#39;ve been looking for a way out, the good news is that the self-hosted alternative has finally caught up. This guide shows you how to self-host Immich, the closest thing to a drop-in Google Photos replacement that runs entirely on hardware you control.</p>
<p>By the end you&#39;ll have Immich running with Docker Compose, your phone backing up automatically in the background, and a plan for keeping the whole thing backed up properly. None of it is complicated, but a couple of steps are easy to get wrong, so it&#39;s worth following along carefully.</p>
<h2 id="why-immich-is-the-best-google-photos-alternative">Why Immich is the best Google Photos alternative<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-immich-is-the-best-google-photos-alternative"><span></span></a></h2>
<p>Self-hosted photo managers have existed for years, but most asked you to give up the features that made Google Photos worth using. Immich doesn&#39;t. It ships polished iOS and Android apps with automatic background backup of your camera roll, a fast scrolling timeline, shared albums, a map view, and on-device machine learning for face grouping and natural-language search. You can type &quot;dog on the beach&quot; and actually get the right photos back, with all of that processing happening on your own server rather than in a data center you don&#39;t own.</p>
<p><a href="https://cdn.qde.com/2026/06/24/gh5cr/imich2.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/06/24/gh5cr/imich2.webp" alt="Immich screenshot" title="Immich screenshot"/></a></p>
<p>The project is also one of the fastest-moving in the self-hosting world. <a href="https://github.com/immich-app/immich">It crossed 100,000 stars on GitHub</a>, reached a stable 2.0 release in late 2025, and continues to ship regular updates. That pace is a feature, but it comes with one important caveat: things can change between versions, so pinning a release and reading the release notes before upgrading is part of the deal. More on that later.</p>
<p>The privacy math is the real draw. When you self-host, your photos never touch a third party. There&#39;s no scanning, no quotas beyond your own disk, and no policy change that can lock you out of a decade of memories. For anyone in the EU, you also become both the data controller and processor for your own library, which sidesteps a lot of the GDPR complexity that comes with handing personal media to a cloud provider.</p>
<h2 id="what-youll-need-before-you-start">What you&#39;ll need before you start<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-youll-need-before-you-start"><span></span></a></h2>
<p>Immich runs on Linux only, and it expects a few things to be in place:</p>
<ul>
<li>A Linux server (Ubuntu 22.04/24.04, Debian, or Rocky all work fine) with Docker Engine and the Docker Compose plugin installed.</li>
<li>At least 2 CPU cores and enough RAM that the machine learning container is comfortable. 4 GB is a workable floor, 6 GB is a better starting point, and 8 GB or more is sensible once your library grows.</li>
<li>Storage with room to grow. Plan for the size of your raw photo library, plus 10 to 20% overhead for thumbnails and transcoded video, plus 1 to 3 GB for the PostgreSQL database.</li>
</ul>
<p>NVMe storage makes a real difference here, since Immich does a lot of thumbnail generation and database work that benefits from fast random I/O. A VPS is a natural fit for Immich if you want your photos reachable from anywhere without leaving a machine running at home, which is exactly the kind of workload covered in our <a href="https://qde.com/use-cases/self-hosted-apps/">self-hosted apps use cases</a>.</p>
<h2 id="whats-inside-the-immich-stack">What&#39;s inside the Immich stack<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-inside-the-immich-stack"><span></span></a></h2>
<p>Immich isn&#39;t a single container. The official Docker Compose file defines four services that work together, and it helps to know what each one does:</p>
<ul>
<li><strong>immich-server</strong> handles the web interface, the API, and the endpoint your mobile apps talk to. It publishes port 2283.</li>
<li><strong>immich-machine-learning</strong> runs the face recognition and smart search models. It&#39;s a separate container so you can give it more resources or hardware acceleration independently.</li>
<li><strong>redis</strong> (actually a Valkey image) is the in-memory store for job queues and caching.</li>
<li><strong>database</strong> is a PostgreSQL image built by the Immich team with the VectorChord and pgvector extensions that power similarity search. Immich needs this specific image; a stock Postgres won&#39;t work.</li>
</ul>
<p>You don&#39;t write any of these definitions yourself. You download a maintained Compose file from the project, which keeps everything wired together correctly even as the stack changes.</p>
<h2 id="step-1-prepare-a-directory">Step 1: Prepare a directory<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-1-prepare-a-directory"><span></span></a></h2>
<p>Assuming Docker and the Compose plugin are already installed, make a dedicated directory for Immich and move into it:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span>mkdir -p ~/services/immich</span></span>
<span class="line"><span>cd ~/services/immich</span></span></code></pre>
<p>Keeping each self-hosted service in its own directory makes backups and updates much easier to reason about later.</p>
<h2 id="step-2-download-the-official-compose-file">Step 2: Download the official compose file<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-2-download-the-official-compose-file"><span></span></a></h2>
<p>Pull the two files Immich publishes with every release, the Compose file and the example environment template:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span>wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml</span></span>
<span class="line"><span>wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env</span></span></code></pre>
<p>These are the exact commands from <a href="https://docs.immich.app/install/docker-compose">Immich&#39;s official documentation</a>. Downloading the maintained file rather than copy-pasting a snippet from a random blog post is the right move, because the released file is always internally consistent with the image versions it references.</p>
<h2 id="step-3-configure-your-environment-file">Step 3: Configure your environment file<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-3-configure-your-environment-file"><span></span></a></h2>
<p>Open <code>.env</code> in your editor of choice and set the variables that matter:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span># Where your uploaded photos and videos live on the host</span></span>
<span class="line"><span>UPLOAD_LOCATION=./library</span></span>
<span class="line"><span></span></span>
<span class="line"><span># Where the Postgres database files live on the host</span></span>
<span class="line"><span>DB_DATA_LOCATION=./postgres</span></span>
<span class="line"><span></span></span>
<span class="line"><span># Your timezone</span></span>
<span class="line"><span>TZ=America/Chicago</span></span>
<span class="line"><span></span></span>
<span class="line"><span># Pin a specific version instead of tracking &quot;release&quot;</span></span>
<span class="line"><span>IMMICH_VERSION=release</span></span>
<span class="line"><span></span></span>
<span class="line"><span># Database credentials, change the password to something random</span></span>
<span class="line"><span>DB_PASSWORD=postgres</span></span>
<span class="line"><span>DB_USERNAME=postgres</span></span>
<span class="line"><span>DB_DATABASE_NAME=immich</span></span></code></pre>
<p>Two things deserve attention here. First, change <code>DB_PASSWORD</code> to a long random string before you ever start the stack. Changing it after the database is initialized means migrating data, which is a headache you can avoid entirely with thirty seconds of planning.</p>
<p>Second, pin <code>IMMICH_VERSION</code> to a specific tag, for example a value like <code>v2.7.5</code>, rather than leaving it on <code>release</code>. Immich moves quickly, and a major version such as the upcoming v3.0 can remove older features. Pinning means an update only happens when you decide it should, after you&#39;ve read what changed.</p>
<p><code>UPLOAD_LOCATION</code> is the single most important setting in the file. It&#39;s the directory that holds every photo you back up, so put it on a disk with plenty of headroom and make sure it&#39;s part of your backup plan from day one.</p>
<h2 id="step-4-start-immich">Step 4: Start Immich<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-4-start-immich"><span></span></a></h2>
<p>From inside <code>~/services/immich</code>, bring the stack up:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span>docker compose up -d</span></span></code></pre>
<p>Docker pulls the four images and starts them in order. The first launch takes a few minutes while the database initializes, so don&#39;t panic if the web interface isn&#39;t immediately available. You can watch progress with:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span>docker compose logs -f immich-server</span></span></code></pre>
<p>Once the server reports it&#39;s ready, open <code>http://your-server-ip:2283</code> in a browser. You&#39;ll land on the admin registration page. The first account you create is the administrator, so set it up, log in, and you&#39;ll be looking at an empty timeline waiting for photos.</p>
<h2 id="step-5-set-up-mobile-backup">Step 5: Set up mobile backup<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-5-set-up-mobile-backup"><span></span></a></h2>
<p>This is the feature that actually replaces Google Photos. Install the Immich app from the App Store or Google Play, then point it at your server.</p>
<p>On the login screen, enter your server URL. On your local network that&#39;s <code>http://your-server-ip:2283</code>. Once you&#39;ve set up a reverse proxy with a real domain (covered below), you&#39;ll use the HTTPS address instead. Log in with the account you created, open the app&#39;s backup settings, choose the albums you want backed up (usually your camera roll), and enable background backup.</p>
<p>The app keeps track of which photos are already uploaded, so it&#39;s safe to let it run continuously. It uploads new photos in the background as you take them, which is exactly the behavior you&#39;re used to from Google Photos.</p>
<h2 id="step-6-migrate-your-existing-library">Step 6: Migrate your existing library<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-6-migrate-your-existing-library"><span></span></a></h2>
<p>New photos are handled by the app, but you&#39;ll also want to bring over everything already sitting in Google&#39;s cloud. Use <a href="https://takeout.google.com/">Google Takeout</a> to export your existing library, then upload the export through the Immich web interface or the <code>immich-cli</code> bulk uploader. For large archives the command-line uploader is faster and easier to resume if it gets interrupted.</p>
<h2 id="step-7-hardware-acceleration-optional">Step 7: Hardware acceleration (optional)<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-7-hardware-acceleration-optional"><span></span></a></h2>
<p>Two parts of Immich speed up with hardware acceleration: the machine learning container that handles face recognition and search, and the video transcoding that happens on the server container. Immich ships separate Compose override files for this, which you download alongside the main file. The exact configuration depends on whether you have Intel QuickSync, an NVIDIA GPU, or another accelerator, and it&#39;s documented in detail on the <a href="https://docs.immich.app/features/ml-hardware-acceleration">Immich hardware acceleration page</a>.</p>
<p>If you&#39;re running on CPU only, Immich still works perfectly well. Machine learning jobs simply take longer to process, which matters during the initial import and then barely at all once your library is indexed and only keeping up with new photos.</p>
<h2 id="step-8-put-immich-behind-a-reverse-proxy">Step 8: Put Immich behind a reverse proxy<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-8-put-immich-behind-a-reverse-proxy"><span></span></a></h2>
<p>To reach Immich from outside your network and to let the mobile app connect over HTTPS, put it behind a reverse proxy pointed at the server container&#39;s port 2283. Caddy, Traefik, and Nginx all handle this well. Photo and video uploads can be large, so make sure your proxy doesn&#39;t impose a small request-size limit; with Nginx you&#39;ll want to raise <code>client_max_body_size</code>, while Traefik has no default cap.</p>
<p>Because your entire photo history is sensitive, think carefully about exposure. If you don&#39;t actually need public access, keeping Immich reachable only over a VPN like WireGuard or Tailscale is the safer posture, and the mobile app connects to a private hostname just as happily as a public one. Either way, running it on infrastructure with strong <a href="https://qde.com/features/privacy/">privacy and data protection</a> practices matters when the data in question is your family photos.</p>
<h2 id="step-9-back-up-your-library-and-database">Step 9: Back up your library and database<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#step-9-back-up-your-library-and-database"><span></span></a></h2>
<p>This is the step you cannot skip. A complete Immich backup is two things, and you need both:</p>
<ul>
<li><strong>The upload library</strong>, your <code>UPLOAD_LOCATION</code> directory, which holds the actual photo and video files.</li>
<li><strong>The database</strong>, which stores your faces, albums, metadata, and the mapping that makes the library navigable. Dump it on a schedule with <code>pg_dump</code> from the database container.</li>
</ul>
<p>A library backup without the database leaves you with a folder of files and no organization. A database backup without the files leaves you with metadata pointing at nothing. Apply a real 3-2-1 backup strategy here above any other service you run, because the cost of getting it wrong is irreplaceable. Server-level <a href="https://qde.com/features/daily-backups/">daily backups</a> are a good safety net, but they don&#39;t replace your own off-site copies of something this important.</p>
<h2 id="keeping-immich-updated">Keeping Immich updated<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#keeping-immich-updated"><span></span></a></h2>
<p>Because you pinned <code>IMMICH_VERSION</code>, upgrading is a deliberate act rather than something that happens by surprise. Read the release notes for the version you&#39;re moving to, confirm your backup just ran, bump the version tag in <code>.env</code>, then pull and recreate:</p>
<pre class="astro-code dark-plus" style="background-color:#1E1E1E;color:#D4D4D4;overflow-x:auto" tabindex="0" data-language="plaintext"><code><span class="line"><span>docker compose pull</span></span>
<span class="line"><span>docker compose up -d</span></span></code></pre>
<p>Database migrations run automatically on start. Reading the release notes and keeping the version pinned is what keeps Immich&#39;s fast development pace from catching you off guard.</p>
<h2 id="closing-thoughts">Closing thoughts<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#closing-thoughts"><span></span></a></h2>
<p>Self-hosting Immich gives you a faster, private, ad-free photo timeline that does face recognition and smart search locally, backs up your phone automatically, and stores everything on disks you control. It&#39;s one of the most satisfying self-hosted swaps you can make, and also the one where good backups matter most.</p>
<p>Thanks for reading! If you&#39;re looking for somewhere to run it, QDE provides high-performance <a href="https://qde.com/vps/">VPS hosting in the Netherlands</a> with pure NVMe storage, 10 Gbps uplinks, and EU-based infrastructure, which is a solid match for a privacy-focused photo server. RAM and storage are never oversold, so the resources Immich needs are the resources you actually get, and crypto payment options make it easy to keep the whole setup private.</p>
<p><em><strong>Ready to get started or want advice on sizing a VPS for Immich? <a href="https://qde.com/contact/">Contact our team</a> to find the best fit for your project.</strong></em></p>
<h2 id="frequently-asked-questions-about-self-hosting-immich">Frequently asked questions about self-hosting Immich<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-self-hosting-immich"><span></span></a></h2>
<h3 id="is-immich-a-good-replacement-for-google-photos">Is Immich a good replacement for Google Photos?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-immich-a-good-replacement-for-google-photos"><span></span></a></h3>
<p>Yes, for most people it&#39;s the closest self-hosted equivalent available. It offers automatic mobile backup, face recognition, natural-language search, shared albums, and a map view, all running on your own hardware with no scanning and no storage quotas beyond your own disk.</p>
<h3 id="what-are-the-system-requirements-for-immich">What are the system requirements for Immich?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-are-the-system-requirements-for-immich"><span></span></a></h3>
<p>Immich runs on Linux with Docker. Plan for at least 2 CPU cores and 4 GB of RAM as a floor, with 6 to 8 GB recommended once your library grows. Storage should cover your raw library plus 10 to 20% overhead for thumbnails and transcodes, plus 1 to 3 GB for the database.</p>
<h3 id="can-i-run-immich-on-a-vps">Can I run Immich on a VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-run-immich-on-a-vps"><span></span></a></h3>
<p>Absolutely, and a VPS is a great fit if you want your photos reachable from anywhere without keeping hardware running at home. A plan with NVMe storage and enough RAM for the machine learning container will give you a smooth experience.</p>
<h3 id="do-i-need-a-gpu-for-immich">Do I need a GPU for Immich?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-a-gpu-for-immich"><span></span></a></h3>
<p>No. A GPU speeds up the initial machine learning indexing and video transcoding, but Immich works fine on CPU-only servers. The ML jobs just run more slowly, which mainly affects the first import rather than day-to-day use.</p>
<h3 id="how-do-i-back-up-immich-properly">How do I back up Immich properly?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-do-i-back-up-immich-properly"><span></span></a></h3>
<p>Back up two things: your upload library directory and the PostgreSQL database. The files are your photos, and the database holds the albums, faces, and metadata that organize them. You need both, plus off-site copies, following a 3-2-1 backup approach.</p>
<h3 id="how-do-i-move-my-existing-google-photos-library-into-immich">How do I move my existing Google Photos library into Immich?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-do-i-move-my-existing-google-photos-library-into-immich"><span></span></a></h3>
<p>Use Google Takeout to export your library, then upload it through the Immich web interface or the command-line bulk uploader. The CLI uploader is the better option for large archives because it&#39;s faster and easy to resume.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Self-Hosting" term="Self-Hosting"/>
        <category label="Immich" term="Immich"/>
        <category label="Google Photos Alternative" term="Google Photos Alternative"/>
        <category label="Docker" term="Docker"/>
        <category label="Privacy" term="Privacy"/>
        <category label="VPS" term="VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Why .com, .net, and .org Are Still the Safest Domain Choices]]></title>
        <id>https://qde.com/blog/why-com-net-org-domains/</id>
        <link href="https://qde.com/blog/why-com-net-org-domains/"/>
        <updated>2026-06-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Learn why .com, .net, and .org remain trusted domain extensions for businesses, infrastructure projects, and communities, and why QDE now offers classic domain registration.]]></summary>
        <content type="html"><![CDATA[<p>A domain name is often the first thing someone sees from your project, before they ever load a page. It appears in email addresses, invoices, login links, support tickets, and the URL a customer types from memory. By the time someone reaches your website, they may already have formed a small judgment based on the domain alone.</p>
<p>The part after the final dot, the top-level domain or TLD, does more work than it looks. .com, .net, and .org carry expectations that have built up over decades. This article explains why those classic extensions are still the safest default for most businesses and long-term projects, when an alternative makes sense, and why QDE protects its own brand across all three.</p>
<h2 id="why-the-classic-extensions-still-matter">Why the classic extensions still matter<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-the-classic-extensions-still-matter"><span></span></a></h2>
<p>People trust what they recognize. .com, .net, and .org have been in front of users since the early commercial internet, so most people read them without a second thought. Someone who sees a .com address rarely stops to wonder whether it belongs to a real company or a disposable site. That absence of friction is the point.</p>
<p>The scale of these extensions reflects how established they are. According to the <a href="https://www.dnib.com/articles/the-domain-name-industry-brief-q1-2026">Domain Name Industry Brief for Q1 2026</a>, .com and .net together held 176.1 million domain name registrations at the end of Q1 2026. That number matters for a practical reason beyond popularity: the infrastructure behind these TLDs is among the most mature and heavily operated parts of the global DNS system.</p>
<p>The authoritative name servers for .com and .net have operated at global scale for decades and sit close to the core of the internet. We will not call them the most reliable DNS on earth, because no one can prove that. But they are backed by long-running infrastructure that has handled enormous query volumes for a very long time. For projects where DNS stability matters, that track record counts.</p>
<p>This is where the choice stops being cosmetic for infrastructure teams. If you run hosting, a VPS fleet, an email service, a SaaS platform, a billing portal, or a support system, your domain is part of the service path. If it fails to resolve, customers cannot reach the app, mail does not deliver, invoices do not load, and tickets do not get opened.</p>
<p>There are two good reasons to take the classic extensions seriously: users trust what they recognize, and operators should care about the operational maturity behind the name.</p>
<h2 id="com-the-default-for-businesses">.com: the default for businesses<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#com-the-default-for-businesses"><span></span></a></h2>
<p>For a company, .com is still the most natural choice. It is what people expect from a commercial site, a SaaS product, an online store, a hosting provider, or business email. When someone remembers your brand but not your exact address, <code>example.com</code> is the pattern they are likely to try first.</p>
<p>If you can only secure one extension for a serious business, .com is usually the safest. It is the version customers will guess, type, and trust by default.</p>
<h2 id="the-hidden-cost-of-not-owning-your-com">The hidden cost of not owning your .com<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-hidden-cost-of-not-owning-your-com"><span></span></a></h2>
<p>This part is easy to underestimate. Because .com is so common, many people assume a brand lives at <code>example.com</code> whether or not that&#39;s true. If your business runs on another extension and someone else holds the .com, some of your traffic quietly goes to them.</p>
<p>There are two versions of this, and both are bad.</p>
<p>In the first, the .com belongs to another company in your industry. This is the clearest risk: a potential customer trying to find you lands on a competitor instead. You paid to build the recognition, and someone else receives the visit.</p>
<p>In the second, the .com belongs to an unrelated business. That sounds harmless, but it still costs you. Customers wonder whether they typed the wrong thing, whether your site is the real one, or why the obvious address points somewhere else. For anyone handling accounts, billing, servers, DNS, or support, that hesitation chips away at trust at the wrong moment.</p>
<p>Not owning the .com version of your brand means someone else may control the most obvious destination for your name. Even when you build on a different extension by choice, registering the matching .com is cheap insurance.</p>
<h2 id="net-a-natural-fit-for-networks-and-infrastructure">.net: a natural fit for networks and infrastructure<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#net-a-natural-fit-for-networks-and-infrastructure"><span></span></a></h2>
<p>.net is not only a fallback when the .com is taken. It has its own meaning. The extension grew up around networks, and it is still widely read as a technical, infrastructure-oriented choice.</p>
<p>It fits hosting providers, VPS services, DNS platforms, network and monitoring tools, API services, and developer-facing projects. If your product lives close to the wire, a .net can read as credible rather than second-best. Plenty of well-known infrastructure companies use .net for exactly that reason.</p>
<h2 id="org-trusted-for-communities-and-organizations">.org: trusted for communities and organizations<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#org-trusted-for-communities-and-organizations"><span></span></a></h2>
<p>.org carries a different association. People connect it with organizations, communities, open-source projects, documentation, foundations, and public-interest work.</p>
<p>Technically, .org is open to anyone. There is no requirement to be a nonprofit. But the perception is sticky, and that can work in your favor. If you run an open-source project, a community forum, a documentation site, a public knowledge base, or an industry group, .org signals the kind of project people already expect it to be.</p>
<h2 id="where-unusual-extensions-create-friction">Where unusual extensions create friction<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#where-unusual-extensions-create-friction"><span></span></a></h2>
<p>New TLDs are not bad as a category. Some are genuinely useful, and we will get to where they fit. But a few practical risks are worth knowing before you put one on your main site.</p>
<p>Some users simply don&#39;t recognize the extension, and unfamiliarity invites doubt. A handful of TLDs have picked up a reputation for spam, throwaway sites, or aggressive advertising — unfair to legitimate users, but real. Pricing can also surprise you: a cheap first year sometimes hides a much higher renewal, and some registries carry premium fees or change their policies over time.</p>
<p>There is an operational angle too. A domain used for email, billing, or login pages should avoid anything that creates confusion. An address that looks strange can generate support tickets and lower conversion, and some corporate networks, mail filters, and anti-abuse systems treat unfamiliar or heavily abused TLDs more cautiously.</p>
<p>The simple test: a domain that needs extra explanation usually isn&#39;t the right domain for a main business website.</p>
<h2 id="when-an-alternative-extension-is-the-right-call">When an alternative extension is the right call<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#when-an-alternative-extension-is-the-right-call"><span></span></a></h2>
<p>There are good reasons to pick something other than the classics, as long as it is a deliberate choice.</p>
<p>.ai has become a sensible fit for AI products. .io is well understood among developer audiences and works when that is who you are trying to reach. Country-code domains like .de, .nl, .jp, or .uk are often the right move when you serve a specific local market. Short extensions can be useful for URL shorteners, while campaign domains, landing-page domains, brand-protection registrations, and internal or secondary projects all have their place.</p>
<p>The deciding factor is strategy. Choose an alternative because it fits your audience and your plan, not only because the .com was unavailable or the first year was cheap.</p>
<h2 id="why-we-acquired-qdecom-qdenet-and-qdeorg">Why we acquired <code>qde.com</code>, <code>qde.net</code>, and <code>qde.org</code><a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-we-acquired-qdecom-qdenet-and-qdeorg"><span></span></a></h2>
<p>This is also why we acquired and protect our own brand across all three classic extensions. For us, it is not about collecting domain names. It is about making sure customers can find the real QDE.</p>
<p>Owning <code>qde.com</code>, <code>qde.net</code>, and <code>qde.org</code> reduces confusion, keeps the brand consistent across the extensions people are most likely to try, and protects against traffic leakage, impersonation, and misuse. It is the same advice we would give any customer running a brand they care about.</p>
<h2 id="qde-now-offers-com-net-and-org-registration">QDE now offers .com, .net, and .org registration<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#qde-now-offers-com-net-and-org-registration"><span></span></a></h2>
<p>With that in mind, QDE now offers .com, .net, and .org domain registration directly.</p>
<p>The practical benefit is keeping your domains and hosting in one place. You can register a name, point it at your VPS or website, manage DNS, and handle renewals from the same account you already use for your servers, without juggling a separate registrar login. It suits business sites, infrastructure projects, communities, and anything you plan to run for the long term.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>A domain extension won&#39;t turn a weak project into a strong one. But the right one makes a good project easier to trust, remember, and find — and the wrong one quietly adds friction every time someone reads your address.</p>
<p>Unless you have a clear reason to choose something else, start with .com, .net, or .org. For most serious projects, the safest domain choice is still the one customers already understand.</p>
<p>If you are ready to register a name, <a href="https://qde.com/domains/">QDE now offers .com, .net, and .org domains</a> for €10.95 per year, managed from the same account as your VPS and hosting.</p>
<p><em><strong>Have questions about domains, DNS, or pointing a name at your server? <a href="https://qde.com/contact/">Reach out to our team</a> and we will help you choose a practical setup.</strong></em></p>
<h2 id="frequently-asked-questions-about-domain-extensions">Frequently asked questions about domain extensions<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-domain-extensions"><span></span></a></h2>
<h3 id="is-com-still-the-best-domain-extension-for-a-business">Is .com still the best domain extension for a business?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-com-still-the-best-domain-extension-for-a-business"><span></span></a></h3>
<p>For most businesses, yes. .com is the extension people recognize, remember, and type by default, which makes it the safest choice for a commercial site, SaaS product, or business email. If you can only register one extension, .com is usually the one to secure first.</p>
<h3 id="whats-the-difference-between-com-net-and-org">What&#39;s the difference between .com, .net, and .org?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-the-difference-between-com-net-and-org"><span></span></a></h3>
<p>All three are open for anyone to register, but they carry different associations. .com reads as commercial and is the general-purpose default. .net is widely read as technical and infrastructure-oriented. .org is associated with organizations, communities, and open-source or public-interest projects. The technical behavior is broadly the same; the difference is in how users perceive them.</p>
<h3 id="should-i-register-more-than-one-extension-for-my-brand">Should I register more than one extension for my brand?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#should-i-register-more-than-one-extension-for-my-brand"><span></span></a></h3>
<p>It&#39;s worth considering. Owning the .com version of your brand prevents traffic from leaking to whoever else holds it, even if you build on a different extension by choice. Many businesses register .com, .net, and .org together as basic brand protection.</p>
<h3 id="are-new-domain-extensions-like-io-or-ai-a-bad-idea">Are new domain extensions like .io or .ai a bad idea?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#are-new-domain-extensions-like-io-or-ai-a-bad-idea"><span></span></a></h3>
<p>No. Extensions like .io and .ai can be good choices when they fit your audience and strategy: .ai for AI products, .io for developer-facing tools. The caution is against choosing an unfamiliar extension only because the .com was taken or the first year was cheap, especially for a main business site.</p>
<h3 id="can-i-manage-a-domain-and-hosting-in-the-same-place">Can I manage a domain and hosting in the same place?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-manage-a-domain-and-hosting-in-the-same-place"><span></span></a></h3>
<p>Yes. QDE now offers .com, .net, and .org registration alongside its VPS and hosting, so you can register a domain, manage DNS, point it at your server, and handle renewals from one account. You can read more on the <a href="https://qde.com/domains/">domains page</a>.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="Domain Registration" term="Domain Registration"/>
        <category label="Domain Names" term="Domain Names"/>
        <category label="Brand Protection" term="Brand Protection"/>
        <category label="DNS" term="DNS"/>
        <category label="Web Hosting" term="Web Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Amsterdam vs. Frankfurt vs. London: Best EU Location for Hosting]]></title>
        <id>https://qde.com/blog/amsterdam-vs-frankfurt-vs-london-best-eu-hosting-location/</id>
        <link href="https://qde.com/blog/amsterdam-vs-frankfurt-vs-london-best-eu-hosting-location/"/>
        <updated>2026-05-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Choosing between Amsterdam, Frankfurt, and London for your server can have a real impact on latency, legal compliance, and connectivity. Here's how the three compare for hosting workloads in 2026.]]></summary>
        <content type="html"><![CDATA[<p>If you&#39;re deploying a server in Europe, three cities come up more than any others: Amsterdam, Frankfurt, and London. They&#39;re home to some of the world&#39;s largest data centers and internet exchanges, but they&#39;re not interchangeable. Depending on your target audience, compliance requirements, and budget, one will suit your workload considerably better than the others.</p>
<p>This article breaks down each location across the factors that actually matter for hosting: network connectivity, latency profiles, legal and regulatory environment, and overall ecosystem maturity.</p>
<h2 id="why-location-matters-more-than-most-people-think">Why location matters more than most people think<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-location-matters-more-than-most-people-think"><span></span></a></h2>
<p>Choosing a data center location isn&#39;t just about ping times, though those matter. It also determines which jurisdiction governs your data, which peering agreements your traffic benefits from, and how resilient your infrastructure is to regional events. Getting this right at the start saves a lot of headache later.</p>
<h2 id="amsterdam-the-connectivity-hub-of-europe">Amsterdam: the connectivity hub of Europe<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#amsterdam-the-connectivity-hub-of-europe"><span></span></a></h2>
<p>Amsterdam has built its reputation on network infrastructure. AMS-IX, the Amsterdam Internet Exchange, consistently ranks among the top two or three internet exchanges in the world by traffic volume. What this means practically is that traffic originating in Amsterdam reaches most of Europe, North America, and large parts of Asia through very short paths, with minimal intermediate hops.</p>
<p>For hosting providers and their customers, this translates to consistently low latency across a wide geographic area, not just within the Netherlands. A server in Amsterdam often performs comparably to local servers for users across much of Western and Central Europe.</p>
<p>Amsterdam also has a strong history as a neutral, carrier-dense location. Dozens of major ISPs and cloud providers maintain a presence at AMS-IX, which makes it easy to find diverse connectivity options and competitive pricing on transit.</p>
<p>From a legal standpoint, the Netherlands is firmly within the EU and falls under GDPR. Dutch privacy law is generally considered robust, and the country has a track record of supporting digital rights. For businesses handling EU user data, Amsterdam is a clean, defensible choice.</p>
<h2 id="frankfurt-the-financial-and-backbone-hub">Frankfurt: the financial and backbone hub<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frankfurt-the-financial-and-backbone-hub"><span></span></a></h2>
<p>Frankfurt is Germany&#39;s network heart, anchored by DE-CIX, the Deutsche Commercial Internet Exchange. DE-CIX regularly competes with AMS-IX for the title of the world&#39;s highest-traffic internet exchange. The city is the primary interconnection point for much of Central and Eastern Europe, and it has deep redundancy thanks to Germany&#39;s extensive domestic fiber infrastructure.</p>
<p>For latency into Germany itself and neighboring countries like Austria, Switzerland, Poland, and Czech Republic, Frankfurt generally wins. If your primary user base is in the DACH region or Central Europe more broadly, it&#39;s hard to argue against Frankfurt as the anchor location.</p>
<p>Germany also benefits from some of the strictest data protection regulations in the EU. The combination of federal GDPR compliance and additional German state-level data protection laws (such as the BDSG) gives Frankfurt an edge for enterprises in regulated industries like finance, healthcare, and legal services. German courts and regulators have historically been aggressive about enforcing data protection, which is both a reassurance and an obligation depending on your perspective.</p>
<p>One consideration worth noting: German hosting providers tend to operate on stricter abuse policies, which can affect certain types of content. It&#39;s generally a non-issue for standard business and technical workloads, but worth knowing.</p>
<h2 id="london-post-brexit-complexity-with-strong-infrastructure">London: post-Brexit complexity with strong infrastructure<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#london-post-brexit-complexity-with-strong-infrastructure"><span></span></a></h2>
<p>London&#39;s Docklands area, particularly the Equinix LD4/LD5 campus in Slough and the broader cluster in East London, is one of the most dense concentrations of hosting and financial infrastructure anywhere in the world. LINX (London Internet Exchange) is itself a major exchange with very high capacity and strong peering across UK and international networks.</p>
<p>The infrastructure quality in London is genuinely excellent. If your workload is primarily serving UK users, or if you need to be physically close to London&#39;s financial district for latency-sensitive trading or fintech applications, London delivers.</p>
<p>The complication is Brexit. Since the UK left the EU in 2020, it is no longer part of the European Economic Area. Data transfers between the UK and EU now rely on an adequacy decision granted by the European Commission, which provides a legal basis for transfers but introduces regulatory uncertainty that wasn&#39;t there before. The adequacy decision can, in principle, be challenged or revised. For businesses that need long-term certainty about EU data handling, this is a real risk to model.</p>
<p>UK data protection law (UK GDPR, derived from the EU original) is largely equivalent in practice today, but the divergence risk over time is real. London works well for UK-centric operations. For EU data sovereignty, it requires more care.</p>
<h2 id="how-the-three-compare-side-by-side">How the three compare side by side<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-the-three-compare-side-by-side"><span></span></a></h2>
<p><strong>Network performance</strong> across a broad European audience slightly favors Amsterdam, with Frankfurt a close second for Central and Eastern Europe. London leads for UK-specific traffic.</p>
<p><strong>Latency to North America</strong> is broadly similar across all three, though Amsterdam&#39;s transatlantic cable connections and Frankfurt&#39;s backbone position both offer strong options.</p>
<p><strong>Regulatory simplicity for EU operations</strong> goes to Amsterdam and Frankfurt, both of which sit squarely within EU jurisdiction without qualification. London requires additional legal structuring for strict EU data compliance.</p>
<p><strong>Data center density and choice</strong> is very high in all three, though London&#39;s ecosystem is particularly deep in financial services infrastructure.</p>
<p><strong>Cost</strong> varies by provider and configuration more than by city, but London tends to be somewhat more expensive on average due to real estate and power costs. Amsterdam and Frankfurt are competitive with each other.</p>
<h2 id="which-one-should-you-choose">Which one should you choose?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-one-should-you-choose"><span></span></a></h2>
<p>For most general-purpose hosting serving a broad European audience, Amsterdam is the strongest default. The combination of AMS-IX peering, straightforward EU legal standing, and competitive pricing covers the majority of use cases well.</p>
<p>If your workload is specifically targeting Germany, Austria, Switzerland, or Central Europe, Frankfurt&#39;s geography and DE-CIX connectivity make it the right call. It&#39;s also the better pick if you&#39;re in a regulated industry that benefits from Germany&#39;s rigorous data protection posture.</p>
<p>London is the right choice when your primary audience is in the UK, or when you&#39;re building something that needs to be adjacent to UK financial infrastructure. Just make sure your legal and compliance team has reviewed the post-Brexit data transfer implications before committing.</p>
<p>For teams that need low-latency access to multiple European regions from a single location, Amsterdam remains the most consistently strong choice. Its position at AMS-IX means fewer tradeoffs when you&#39;re trying to serve users across multiple countries from one server.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>Amsterdam, Frankfurt, and London are all world-class hosting locations, but each has a distinct profile. Amsterdam wins on breadth of European connectivity and regulatory simplicity. Frankfurt is the right pick for Central Europe and regulated enterprise use cases. London is powerful for UK-focused infrastructure but adds legal complexity for EU data handling.</p>
<p>Thanks for reading! If you&#39;re looking for a well-connected European base for your server, <a href="https://qde.com/vps/">QDE offers high-performance VPS in Amsterdam</a>, hosted in a Tier III data center with direct peering at AMS-IX, NVMe storage, and 10 Gbps uplinks.</p>
<p><em><strong>Ready to get started or want to talk through your setup? <a href="https://qde.com/contact/">Contact our team</a> and we&#39;ll help you find the right fit.</strong></em></p>
<h2 id="frequently-asked-questions-about-eu-hosting-locations">Frequently asked questions about EU hosting locations<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-eu-hosting-locations"><span></span></a></h2>
<h3 id="why-is-amsterdam-so-popular-for-hosting">Why is Amsterdam so popular for hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-is-amsterdam-so-popular-for-hosting"><span></span></a></h3>
<p>Amsterdam sits at AMS-IX, one of the world&#39;s largest internet exchanges. This gives servers there low-latency access to a huge portion of European, North American, and Asian traffic through well-peered routes. The Netherlands also has a stable regulatory environment and a long history of neutral, carrier-diverse hosting infrastructure.</p>
<h3 id="is-london-still-a-good-hosting-location-after-brexit">Is London still a good hosting location after Brexit?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-london-still-a-good-hosting-location-after-brexit"><span></span></a></h3>
<p>London remains excellent infrastructure, particularly for UK-facing workloads and fintech applications. However, the UK is no longer part of the EU, so data transfers between UK-hosted servers and EU users now rely on an adequacy decision rather than automatic GDPR compliance. For businesses with strict EU data sovereignty requirements, Amsterdam or Frankfurt are cleaner options.</p>
<h3 id="how-does-frankfurt-compare-to-amsterdam-for-latency">How does Frankfurt compare to Amsterdam for latency?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-does-frankfurt-compare-to-amsterdam-for-latency"><span></span></a></h3>
<p>For users in Germany, Austria, Switzerland, and Central or Eastern Europe, Frankfurt often has an edge due to its geographic position and DE-CIX peering. For broader pan-European coverage, including Southern Europe and the UK, Amsterdam tends to be more consistently low-latency. The difference for most workloads is measured in single-digit milliseconds.</p>
<h3 id="does-data-center-location-affect-gdpr-compliance">Does data center location affect GDPR compliance?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-data-center-location-affect-gdpr-compliance"><span></span></a></h3>
<p>Yes, meaningfully. Servers in Amsterdam and Frankfurt are both within EU jurisdiction, meaning GDPR applies directly and there&#39;s no need for additional data transfer mechanisms. London, post-Brexit, requires a separate legal basis (currently an EU adequacy decision) for transferring personal data from EU users to UK infrastructure. The adequacy decision is valid for now but could change.</p>
<h3 id="what-should-i-prioritize-when-choosing-a-european-hosting-location">What should I prioritize when choosing a European hosting location?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-should-i-prioritize-when-choosing-a-european-hosting-location"><span></span></a></h3>
<p>Start with your primary user base. Match the server location to where the majority of your traffic comes from, since geographic proximity reduces latency. Then consider regulatory requirements: if EU data sovereignty is non-negotiable, stay within the EU. Finally, look at the connectivity profile of the specific data center and provider, not just the city.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS Hosting" term="VPS Hosting"/>
        <category label="Data Center Location" term="Data Center Location"/>
        <category label="EU Hosting" term="EU Hosting"/>
        <category label="Amsterdam" term="Amsterdam"/>
        <category label="Frankfurt" term="Frankfurt"/>
        <category label="London" term="London"/>
        <category label="Latency" term="Latency"/>
        <category label="GDPR" term="GDPR"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Netherlands Data Privacy Laws Explained for Hosting Customers]]></title>
        <id>https://qde.com/blog/netherlands-data-privacy-laws-explained/</id>
        <link href="https://qde.com/blog/netherlands-data-privacy-laws-explained/"/>
        <updated>2026-05-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The Netherlands operates under a layered data privacy framework combining EU-wide GDPR rules with Dutch-specific legislation. Here's what hosting customers need to know.]]></summary>
        <content type="html"><![CDATA[<p>If you&#39;re hosting a website, application, or service on servers in the Netherlands, data privacy law isn&#39;t just a background concern — it&#39;s something that affects how you collect data, who you can share it with, and what happens if something goes wrong. The Dutch legal framework is thorough, and while it&#39;s rooted in EU-wide regulation, there are local layers worth understanding before you deploy.</p>
<p>This article walks through the key laws that apply, what they mean in practice for hosting customers, and how to think about your obligations whether you&#39;re running a SaaS product, a community forum, an internal business tool, or beyond.</p>
<h2 id="the-gdpr-the-foundation-everything-builds-on">The GDPR: the foundation everything builds on<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-gdpr-the-foundation-everything-builds-on"><span></span></a></h2>
<p>The <a href="https://qde.com/blog/what-is-gdpr-data-privacy-hosting/">General Data Protection Regulation</a> (GDPR) — known in the Netherlands as the AVG, short for <em>Algemene Verordening Gegevensbescherming</em> — is the baseline. It&#39;s an EU regulation, which means it applies directly in all member states without needing to be translated into local law. If you process personal data of EU residents, it applies to you, regardless of where your business is registered.</p>
<p>The GDPR rests on a handful of core principles: you need a lawful basis to process personal data, you should only collect what&#39;s necessary, you must store it securely, and you can&#39;t keep it indefinitely. It also grants individuals a set of rights — access, correction, deletion, portability — that you&#39;re obligated to support.</p>
<p>For hosting customers, the most relevant piece is the controller-processor relationship. If your hosting provider touches personal data on your behalf (which is common), you need a Data Processing Agreement (DPA) in place. This agreement must set out the subject matter and duration of the processing, the nature and purpose of the processing, the type of personal data involved, and the obligations and rights of the controller.</p>
<h2 id="the-uavg-where-dutch-law-adds-its-own-layer">The UAVG: where Dutch law adds its own layer<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-uavg-where-dutch-law-adds-its-own-layer"><span></span></a></h2>
<p>The Dutch GDPR Implementation Act (Uitvoeringswet AVG, or UAVG) constitutes the local implementation of the GDPR in the Netherlands. It follows a policy-neutral approach, meaning the requirements of the previous Dutch Data Protection Act are maintained insofar as possible under the GDPR.</p>
<p>In practical terms, the UAVG fills in the gaps where the GDPR intentionally leaves room for member states to legislate. Among other things, the UAVG sets the age of digital consent at 16, refines GDPR provisions governing employment relationships, and adds further safeguards for processing special categories of personal data.</p>
<p>If your application processes data from Dutch users — especially minors — that age-of-consent rule matters. You can&#39;t rely on parental consent workarounds that might be acceptable in other jurisdictions.</p>
<h2 id="the-autoriteit-persoonsgegevens-who-enforces-it">The Autoriteit Persoonsgegevens: who enforces it<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-autoriteit-persoonsgegevens-who-enforces-it"><span></span></a></h2>
<p>The Dutch Data Protection Authority (Autoriteit Persoonsgegevens, or AP) is the national regulatory authority on all things data protection. It handles enforcement, investigates complaints, and has the power to issue fines.</p>
<p>Those fines follow the GDPR&#39;s two-tier structure. Violations of organizational obligations — such as failing to appoint a Data Protection Officer, failing to maintain records of processing activities, or failing to conduct a Data Protection Impact Assessment — can result in fines up to EUR 10 million or 2% of global annual turnover. Violations of core data protection principles, such as processing data without a legal basis or violating data subject rights, can go up to EUR 20 million or 4% of global annual turnover.</p>
<p>The AP doesn&#39;t just sit idle. For 2024 and 2025, the AP identified four strategic enforcement priorities, including algorithms and artificial intelligence, addressing automated decision-making risks. That&#39;s worth noting if your application uses any form of profiling or automated decisions that affect users.</p>
<h2 id="what-counts-as-personal-data">What counts as personal data<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-counts-as-personal-data"><span></span></a></h2>
<p>This is where a lot of hosting customers trip up. Personal data isn&#39;t just names and email addresses. It includes customer and personnel numbers, internet purchasing behaviour, trade union membership, religion, medical information, and video and sound recordings on which a person can be recognised.</p>
<p>IP addresses stored in server logs are also generally considered personal data under GDPR, which means your standard web server access logs could put you in scope if you&#39;re not careful about retention periods and access controls.</p>
<h2 id="lawful-bases-for-processing">Lawful bases for processing<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#lawful-bases-for-processing"><span></span></a></h2>
<p>You cannot just process personal data — you must have at least one of six recognized reasons: it is necessary to carry out an agreement, it is necessary to fulfill a legal obligation, there is a legitimate interest, you have permission from the person in question, it is necessary to protect someone&#39;s life or health, or it is necessary to perform a task in the public interest.</p>
<p>For most commercial applications, the relevant bases are contract (processing data to deliver a service the user signed up for) and consent (for anything beyond that, like marketing). Legitimate interest can apply in some cases, but it requires a balancing test and can&#39;t be used as a catch-all.</p>
<h2 id="data-breach-notification-rules">Data breach notification rules<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#data-breach-notification-rules"><span></span></a></h2>
<p>If something goes wrong — a breach, unauthorized access, accidental exposure — you have limited time to act. Under the GDPR, you must notify the AP within 72 hours of becoming aware of a breach that poses a risk to individuals. Depending on the severity, you may also need to notify the affected users directly.</p>
<p>This is one area where your hosting setup matters. If you&#39;re on an unmanaged VPS, you control the stack, which means breach response is your responsibility. Having monitoring in place, maintaining access logs, and knowing who can reach your data are all part of being prepared.</p>
<h2 id="transferring-data-outside-the-netherlands">Transferring data outside the Netherlands<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#transferring-data-outside-the-netherlands"><span></span></a></h2>
<p>Transferring personal data outside the European Economic Area requires adequate safeguards under Chapter V of the GDPR. Data may flow freely to countries the European Commission has recognized as providing adequate protection, including Japan, the United Kingdom, and the United States under the EU-US Data Privacy Framework.</p>
<p>For any country without an adequacy decision, you&#39;ll typically need Standard Contractual Clauses (SCCs). If your application uses third-party services — analytics, CDN providers, email delivery — check whether those vendors process EU personal data and what transfer mechanisms they rely on. Many hosting customers overlook this when integrating external APIs.</p>
<h2 id="what-this-means-for-your-hosting-setup">What this means for your hosting setup<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-this-means-for-your-hosting-setup"><span></span></a></h2>
<p>Choosing to host in the Netherlands carries a few practical advantages from a compliance standpoint. Your data stays in the EU, you&#39;re subject to well-defined GDPR enforcement, and there&#39;s no ambiguity about jurisdiction for most use cases. You don&#39;t need to worry about cross-border transfers for EU users as long as processing stays within the EEA.</p>
<p>That said, the server location doesn&#39;t do the compliance work for you. You still need to:</p>
<ul>
<li>Have a privacy policy that clearly states what you collect and why</li>
<li>Implement a Data Processing Agreement with any processor handling personal data on your behalf</li>
<li>Only collect data that&#39;s actually necessary for your service</li>
<li>Have a process for handling data subject requests (access, deletion, correction)</li>
<li>Maintain records of your processing activities if you&#39;re not a small business operating below GDPR thresholds</li>
</ul>
<p>You should not keep personal data for longer than necessary. Only a very limited number of people in your company should have access to this data, and you may have to carry out a Data Protection Impact Assessment (DPIA) to assess the risks of data processing.</p>
<h2 id="a-note-on-the-dutch-telecommunications-act">A note on the Dutch Telecommunications Act<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#a-note-on-the-dutch-telecommunications-act"><span></span></a></h2>
<p>Chapter 11 of the Dutch Telecommunications Act implements the requirements of the ePrivacy Directive, which provides a specific set of privacy rules for the processing of personal data in electronic communications. This is primarily relevant if you&#39;re operating a communications platform or if your site uses tracking technologies like cookies.</p>
<p>In November 2025, the Dutch Data Protection Authority updated Dutch cookie banner guidelines. Opt-in consent is required for non-essential cookies such as tracking or marketing cookies. Prior consent is mandatory. If your application or website runs any non-essential analytics or advertising, you need a properly structured consent mechanism — a banner that pre-checks consent boxes or makes refusal harder than acceptance won&#39;t cut it.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>Hosting in the Netherlands means operating under one of the more clearly defined privacy frameworks in the world. GDPR provides the foundation, the UAVG adds Dutch-specific requirements, and the AP enforces both with real consequence. Understanding where your obligations lie — particularly around lawful bases, data processing agreements, breach notification, and cross-border transfers — is what keeps you on the right side of it.</p>
<p>Whether you&#39;re building a customer-facing product or running internal infrastructure, the fundamentals apply: collect less, document more, secure everything, and know how to respond when something goes wrong.</p>
<p>Thanks for reading! If you&#39;re looking for a compliant, privacy-conscious hosting base in the Netherlands, <a href="https://qde.com/vps/">QDE provides high-performance VPS hosting</a> in Amsterdam, backed by NVMe storage, 10 Gbps uplinks, and a GDPR-compliant infrastructure with minimal data collection and no third-party data sharing.</p>
<p><em><strong>Ready to get started or have questions about your setup? <a href="https://qde.com/contact/">Contact our team</a> — we&#39;re happy to help you find the right plan for your project.</strong></em></p>
<h2 id="frequently-asked-questions-about-netherlands-data-privacy-laws-and-hosting">Frequently asked questions about Netherlands data privacy laws and hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-netherlands-data-privacy-laws-and-hosting"><span></span></a></h2>
<h3 id="does-netherlands-hosting-automatically-make-me-gdpr-compliant">Does Netherlands hosting automatically make me GDPR compliant?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-netherlands-hosting-automatically-make-me-gdpr-compliant"><span></span></a></h3>
<p>No. Hosting your data in the Netherlands means it stays within the EU and avoids cross-border transfer issues for most use cases, but compliance is determined by how you collect, process, and manage personal data — not where the server sits. You still need lawful bases, processing agreements, a privacy policy, and breach response procedures in place.</p>
<h3 id="what-is-the-uavg-and-how-is-it-different-from-gdpr">What is the UAVG and how is it different from GDPR?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-the-uavg-and-how-is-it-different-from-gdpr"><span></span></a></h3>
<p>The UAVG (Uitvoeringswet AVG) is the Dutch law that implements and supplements the GDPR locally. The GDPR applies directly across all EU member states, but it leaves certain areas open to national legislation. The UAVG fills those gaps, including setting digital consent age at 16 and adding extra rules for special categories of data and employment contexts.</p>
<h3 id="who-enforces-data-privacy-law-in-the-netherlands">Who enforces data privacy law in the Netherlands?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#who-enforces-data-privacy-law-in-the-netherlands"><span></span></a></h3>
<p>The Autoriteit Persoonsgegevens (AP) is the Dutch Data Protection Authority. It handles enforcement of both the GDPR and the UAVG, investigates complaints, and can issue fines up to EUR 20 million or 4% of global annual turnover for serious violations.</p>
<h3 id="do-i-need-a-data-processing-agreement-with-my-vps-provider">Do I need a Data Processing Agreement with my VPS provider?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-a-data-processing-agreement-with-my-vps-provider"><span></span></a></h3>
<p>If your VPS provider processes personal data on your behalf — even incidentally, such as through log access or backup systems — yes, a DPA is required under GDPR Article 28. Check your provider&#39;s terms or ask them directly whether they offer a DPA. QDE can provide this.</p>
<h3 id="what-is-a-data-protection-impact-assessment-dpia-and-when-do-i-need-one">What is a Data Protection Impact Assessment (DPIA) and when do I need one?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-a-data-protection-impact-assessment-dpia-and-when-do-i-need-one"><span></span></a></h3>
<p>A DPIA is a formal risk assessment for processing activities that are likely to result in high risk to individuals — such as large-scale profiling, processing special categories of data, or systematic monitoring. If your application does any of these things, a DPIA may be mandatory before you go live.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="GDPR" term="GDPR"/>
        <category label="Data Privacy" term="Data Privacy"/>
        <category label="Netherlands" term="Netherlands"/>
        <category label="Hosting" term="Hosting"/>
        <category label="UAVG" term="UAVG"/>
        <category label="Compliance" term="Compliance"/>
        <category label="VPS" term="VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How VPS Overselling Works (and How It Affects Your Performance)]]></title>
        <id>https://qde.com/blog/vps-overselling-explained/</id>
        <link href="https://qde.com/blog/vps-overselling-explained/"/>
        <updated>2026-05-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Overselling is a common practice among VPS providers that quietly degrades your server's performance. Here's how it works and what to look for when choosing a host.]]></summary>
        <content type="html"><![CDATA[<p>If your VPS feels sluggish despite specs that look fine on paper, overselling might be the culprit. It&#39;s one of the most widespread practices in the hosting industry, and most providers don&#39;t advertise it. Understanding how it works helps you make a better purchasing decision and avoid paying for resources you&#39;re not actually getting.</p>
<h2 id="what-overselling-means-in-vps-hosting">What overselling means in VPS hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-overselling-means-in-vps-hosting"><span></span></a></h2>
<p>Overselling is when a hosting provider allocates more resources than the physical hardware actually has. The logic behind it is borrowed from the airline industry: not every passenger will show up, so you sell more seats than the plane holds. Applied to hosting, not every customer will use their full allocation at the same time, so you can theoretically fit more VPS instances on a single server than the specs would otherwise allow.</p>
<p>With traditional shared hosting, this is almost universally accepted. But with VPS hosting, the premise is different. Customers pay for dedicated, isolated resources, and overselling undermines that expectation entirely.</p>
<h2 id="how-ram-overselling-works">How RAM overselling works<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-ram-overselling-works"><span></span></a></h2>
<p>RAM is the easiest resource to oversell, and it&#39;s extremely common. A provider might have a physical host with 256 GB of RAM but provision VPS instances that collectively add up to 512 GB or more. When usage is low, this works fine. When multiple tenants start consuming their allocated RAM simultaneously, the host runs out of physical memory and starts swapping to disk, or worse, starts killing processes via the OOM (out-of-memory) killer.</p>
<p>What this looks like on your end: your application suddenly crashes, services restart unexpectedly, or everything grinds to a near halt. These events can look like bugs in your software when the real cause is the host running out of physical memory.</p>
<p>Some providers use memory ballooning techniques in their hypervisors to dynamically reclaim unused RAM from idle VMs. This is slightly more honest than raw overselling, but it still means your allocated memory isn&#39;t guaranteed.</p>
<h2 id="how-cpu-overselling-works">How CPU overselling works<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-cpu-overselling-works"><span></span></a></h2>
<p>CPU is a bit more nuanced. Modern hypervisors let providers assign more vCPUs to virtual machines than the physical host has logical cores. A server with 64 physical threads might have 200 vCPUs allocated across its VMs. As long as most VMs are idle, the scheduler can handle it.</p>
<p>The problem surfaces under load. If several tenants start running CPU-intensive workloads simultaneously, they&#39;re all competing for the same physical threads. The hypervisor scheduler has to time-slice aggressively, and your tasks get queued. This shows up as CPU steal time, which is the percentage of time your vCPU is waiting for physical CPU access that the hypervisor isn&#39;t giving it.</p>
<p>High steal time is a reliable signal that your host is overselling CPU. Tools like <code>top</code>, <code>vmstat</code>, or <code>sar</code> expose the &quot;st&quot; column in Linux, which shows steal directly. If you&#39;re seeing consistent steal above 5-10%, your VPS is sharing more than it should.</p>
<h2 id="how-storage-overselling-works">How storage overselling works<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-storage-overselling-works"><span></span></a></h2>
<p>Storage overselling follows the same pattern. Providers provision more total disk space across VMs than their storage arrays physically hold, assuming that most customers won&#39;t fill their disks. This can work for a while, but when the underlying storage fills up, writes start failing or slow dramatically. With spinning disks this was historically common; with NVMe arrays it&#39;s less forgiving because the performance cliff is steep and usually unexpected.</p>
<p>Beyond raw capacity, storage performance can also be degraded through IOPS throttling or contention on shared arrays. Even if you have physically provisioned space, multiple VMs hammering the same SSD can saturate its write throughput.</p>
<h2 id="the-noisy-neighbor-problem">The &quot;noisy neighbor&quot; problem<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-noisy-neighbor-problem"><span></span></a></h2>
<p>Whether it&#39;s RAM, CPU, or disk, overselling leads to what&#39;s commonly called the noisy neighbor problem. Your VPS shares a physical host with other tenants. If one of them starts running a backup job, compiling a large codebase, or serving a traffic spike, it can consume disproportionate resources and affect every other VM on the same host.</p>
<p>On an oversold host, a single heavy tenant can destabilize the entire machine. This is why VPS performance can seem wildly inconsistent, fast at 2am, sluggish at noon. The variability isn&#39;t random; it tracks how busy your neighbors are.</p>
<h2 id="how-to-detect-if-your-vps-is-oversold">How to detect if your VPS is oversold<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-detect-if-your-vps-is-oversold"><span></span></a></h2>
<p>There are a few practical ways to check.</p>
<p><strong>Watch CPU steal time.</strong> As mentioned, the <code>st</code> column in <code>top</code> is your clearest signal. Run a CPU-intensive task and monitor whether steal climbs.</p>
<p><strong>Run memory pressure tests.</strong> Tools like <code>stress-ng</code> can allocate memory and expose whether your system starts swapping under the load you&#39;d expect to handle easily.</p>
<p><strong>Benchmark disk throughput consistently.</strong> Use <code>fio</code> to test sequential and random read/write speeds at different times of day. Wide variance between results suggests contention on a shared storage pool.</p>
<p><strong>Monitor baseline latency.</strong> Unexplained latency spikes, especially under light load, often come from hypervisor scheduling delays on a busy host.</p>
<h2 id="what-a-non-oversold-vps-looks-like">What a non-oversold VPS looks like<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-a-non-oversold-vps-looks-like"><span></span></a></h2>
<p>Providers who don&#39;t oversell guarantee that the resources you pay for are physically reserved for your instance. Your RAM is allocated exclusively to your VM, not shared from a pool. Your vCPUs map to actual threads that aren&#39;t being handed off to fifty other VMs. Your NVMe storage is provisioned from capacity that actually exists on the disk.</p>
<p>The practical difference shows up in consistency. Benchmarks taken at different times of day should return similar results. CPU steal stays low or at zero. Memory-intensive applications don&#39;t crash randomly. Disk throughput is predictable.</p>
<p>This also matters for sizing. If you&#39;re running a database or caching layer, oversold RAM means you can&#39;t trust your memory limits. You might tune your MySQL buffer pool to 80% of allocated RAM and find it&#39;s competing with other VMs for physical memory that was never actually yours.</p>
<h2 id="why-providers-do-it">Why providers do it<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-providers-do-it"><span></span></a></h2>
<p>The honest answer is margin. Physical hardware is expensive, and a provider that provisions resources 1:1 has to charge more to cover costs than one that sells the same spec at a 2:1 or 3:1 overcommit ratio. For many workloads, especially low-traffic websites or development environments, overselling genuinely doesn&#39;t matter day to day. The problem is that customers buying oversold VPS for production workloads often don&#39;t find out until something goes wrong.</p>
<p>Some providers advertise &quot;no overselling&quot; or &quot;guaranteed resources&quot; explicitly. That&#39;s worth looking for. Others don&#39;t mention it at all, which is usually a sign to dig deeper before committing.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>Overselling is a real performance risk, particularly for anyone running production services on a VPS. If your workload depends on predictable memory, CPU access, or disk throughput, understanding what your provider actually guarantees matters more than the listed specs.</p>
<p>Thanks for reading! If you&#39;re looking for a hosting environment where resources are never oversold, <a href="https://qde.com/vps/">QDE offers unmanaged KVM VPS hosting</a> with dedicated RAM, pure NVMe storage, and AMD EPYC and Ryzen processors — none of it shared from an overcommitted pool.</p>
<p><em><strong>Ready to start or have questions? <a href="https://qde.com/contact/">Contact our team</a> and we&#39;ll help you find the right plan for your workload.</strong></em></p>
<h2 id="frequently-asked-questions-about-vps-overselling">Frequently asked questions about VPS overselling<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-vps-overselling"><span></span></a></h2>
<h3 id="what-is-overselling-in-vps-hosting">What is overselling in VPS hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-overselling-in-vps-hosting"><span></span></a></h3>
<p>Overselling is when a hosting provider allocates more resources across its VMs than the underlying physical server actually has. This can affect RAM, CPU, and storage, and often results in inconsistent or degraded performance during peak usage.</p>
<h3 id="how-can-i-tell-if-my-vps-is-oversold">How can I tell if my VPS is oversold?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-can-i-tell-if-my-vps-is-oversold"><span></span></a></h3>
<p>The most direct signal is CPU steal time, visible in Linux via the <code>st</code> column in <code>top</code> or <code>vmstat</code>. Consistent steal above 5% under moderate load suggests your host is overcommitted. You can also benchmark disk throughput and memory at different times of day; wide variance is a red flag.</p>
<h3 id="does-overselling-always-cause-problems">Does overselling always cause problems?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-overselling-always-cause-problems"><span></span></a></h3>
<p>Not always. For light workloads like low-traffic sites or dev environments, an oversold VPS may perform fine most of the time. Problems become more visible under sustained load or when multiple tenants are active simultaneously.</p>
<h3 id="whats-the-noisy-neighbor-problem">What&#39;s the noisy neighbor problem?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-the-noisy-neighbor-problem"><span></span></a></h3>
<p>It refers to the situation where one tenant on a shared physical host consumes a disproportionate share of resources, degrading performance for everyone else on the same machine. It&#39;s a direct consequence of overselling.</p>
<h3 id="how-do-i-avoid-oversold-vps-hosting">How do I avoid oversold VPS hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-do-i-avoid-oversold-vps-hosting"><span></span></a></h3>
<p>Look for providers that explicitly state they don&#39;t oversell RAM or CPU. Check for benchmarks and independent reviews. Ask the provider directly about their overcommit ratios. Providers that refuse to answer or deflect are often overselling.</p>
<h3 id="what-resources-are-most-commonly-oversold">What resources are most commonly oversold?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-resources-are-most-commonly-oversold"><span></span></a></h3>
<p>RAM is the most commonly oversold resource, followed by CPU. Storage can also be oversold, though some providers use thin-provisioned storage pools which behave similarly in practice.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS Hosting" term="VPS Hosting"/>
        <category label="Overselling" term="Overselling"/>
        <category label="Performance" term="Performance"/>
        <category label="RAM" term="RAM"/>
        <category label="CPU" term="CPU"/>
        <category label="Shared Hosting" term="Shared Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[KVM VPS Explained: Is It Right for Your Workload?]]></title>
        <id>https://qde.com/blog/will-a-kvm-vps-work-for-you/</id>
        <link href="https://qde.com/blog/will-a-kvm-vps-work-for-you/"/>
        <updated>2026-05-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[KVM is the most capable virtualization technology available in VPS hosting today. Here's what it actually means for your workloads, and whether it fits what you're building.]]></summary>
        <content type="html"><![CDATA[<p>If you&#39;ve been shopping for a VPS, you&#39;ve almost certainly run into the term KVM. Some providers list it prominently; others bury it in a spec table. Either way, it&#39;s worth understanding what it means before you commit to a plan, because the virtualization layer underneath your server affects a surprising number of things: what OS you can run, how your kernel behaves, what hardware features you can access, and how predictably your resources are actually allocated.</p>
<p>This article explains what KVM is, how it compares to alternatives, and whether it covers what you&#39;re trying to do.</p>
<h2 id="what-kvm-actually-is">What KVM actually is<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-kvm-actually-is"><span></span></a></h2>
<p>KVM stands for Kernel-based Virtual Machine. It&#39;s a virtualization module built directly into the Linux kernel, and it turns the host machine into a hypervisor by taking advantage of hardware virtualization extensions built into modern CPUs (Intel VT-x and AMD-V).</p>
<p>Each KVM instance gets its own virtualized hardware: CPU cores, RAM, network interfaces, and storage controllers. From your VPS&#39;s perspective, it looks and behaves like a real physical machine. Your kernel runs directly on virtualized hardware rather than being abstracted away by a software layer.</p>
<p>This is different from container-based approaches like OpenVZ or LXC, where all containers share the host&#39;s kernel. With KVM, your VPS has its own kernel entirely.</p>
<h2 id="kvm-vs-openvz-why-the-distinction-matters">KVM vs. OpenVZ: why the distinction matters<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#kvm-vs-openvz-why-the-distinction-matters"><span></span></a></h2>
<p>OpenVZ is the other common VPS virtualization technology, and it&#39;s worth understanding the tradeoff directly.</p>
<p>OpenVZ containers share the host kernel. This makes them lightweight and efficient, but it puts real constraints on what you can do. You can&#39;t run a different kernel, you can&#39;t load custom kernel modules, and some system calls are filtered or unavailable. Docker inside an OpenVZ VPS is often broken or restricted. Certain network configurations don&#39;t work. TUN/TAP support (required for VPNs) may or may not be available depending on the provider.</p>
<p>KVM has none of these limitations. Because you have a full virtualized machine with your own kernel, you can:</p>
<ul>
<li>Run any Linux distribution or kernel version</li>
<li>Use Docker, Podman, or any other container runtime without restrictions</li>
<li>Load custom kernel modules</li>
<li>Configure TUN/TAP for VPN servers (WireGuard, OpenVPN)</li>
<li>Use iptables and nftables with full functionality</li>
<li>Run nested virtualization if the host CPU supports it</li>
</ul>
<p>If you&#39;ve ever had a workload fail or behave oddly on a cheap VPS and couldn&#39;t figure out why, there&#39;s a reasonable chance OpenVZ was the underlying cause.</p>
<h2 id="what-you-can-run-on-a-kvm-vps">What you can run on a KVM VPS<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-you-can-run-on-a-kvm-vps"><span></span></a></h2>
<p>The short answer is: almost anything you&#39;d run on a physical Linux server.</p>
<p><strong>Linux distributions.</strong> Any standard distro works — Debian, Ubuntu, Rocky Linux, AlmaLinux, Fedora, Arch, Gentoo. You can also install your own custom ISO if the provider supports it.</p>
<p><strong>Docker and containers.</strong> Docker runs natively without workarounds. You can run Docker Compose stacks, build images, use multi-stage builds, and expose container networks without fighting the host kernel.</p>
<p><strong>VPN servers.</strong> WireGuard, OpenVPN, and other VPN software rely on TUN/TAP kernel support. This works on KVM out of the box.</p>
<p><strong>Custom kernels.</strong> If you need a specific kernel version for a driver, a patch, or a performance configuration, you can compile and boot it. This isn&#39;t something most people need, but it&#39;s available.</p>
<p><strong>Game servers.</strong> KVM gives game server software the consistent CPU scheduling and dedicated RAM it needs. Source engine servers, Minecraft, Valheim dedicated servers — all work without the resource contention issues that can occur in container-based environments.</p>
<p><strong>Development environments.</strong> Full-stack dev environments, CI runners, build servers, and database clusters all benefit from predictable resource allocation and kernel-level access.</p>
<h2 id="resource-allocation-and-what-dedicated-actually-means">Resource allocation and what &quot;dedicated&quot; actually means<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#resource-allocation-and-what-dedicated-actually-means"><span></span></a></h2>
<p>One of the most important properties of KVM is how resources are allocated. Because each VM is a fully isolated environment, RAM is reserved, not shared. If your plan says 8 GB RAM, those 8 GB are committed to your instance and unavailable to others on the host.</p>
<p>This is meaningfully different from OpenVZ providers who oversell RAM based on the assumption that most tenants won&#39;t use their full allocation simultaneously. On an oversold host, a spike in neighbor activity can compress your available memory or degrade your CPU performance.</p>
<p>On KVM, vCPU allocations are also more predictable, though the host&#39;s physical CPU scheduler still determines how time is distributed across VMs. The degree of CPU contention depends on the provider&#39;s overcommit ratio; reputable hosts keep this conservative.</p>
<p>Storage on KVM is typically backed by dedicated disk partitions or logical volumes rather than shared filesystems. Combined with NVMe drives, this means your disk I/O isn&#39;t competing with neighbor reads and writes in the same way it can on container-based hosts.</p>
<h2 id="limitations-worth-knowing-about">Limitations worth knowing about<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#limitations-worth-knowing-about"><span></span></a></h2>
<p>KVM is excellent, but it&#39;s not the right fit for everything.</p>
<p><strong>Overhead compared to containers.</strong> A KVM VM uses more memory and CPU at baseline than an equivalent OpenVZ container, because it&#39;s emulating a complete hardware environment and running a full kernel. If you&#39;re trying to pack a large number of minimal workloads onto cheap hardware, containers are more efficient. For most serious workloads, this overhead is irrelevant.</p>
<p><strong>No Windows support from all providers.</strong> KVM supports Windows as a guest OS in principle, but most Linux VPS providers don&#39;t license or offer it. If you specifically need Windows Server, you&#39;ll need a provider that explicitly supports it.</p>
<p><strong>Not magic hardware.</strong> KVM guarantees your allocated resources and removes kernel-level restrictions, but it doesn&#39;t change the underlying physical hardware. If the host machine has aging CPUs or HDDs instead of NVMe, that will still affect your performance.</p>
<h2 id="who-kvm-is-right-for">Who KVM is right for<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#who-kvm-is-right-for"><span></span></a></h2>
<p>KVM works well for essentially any serious hosting workload. If you&#39;re running a web app, a database, a self-hosted service, a VPN, a game server, or a CI environment — KVM will handle it cleanly.</p>
<p>It&#39;s particularly the right call if you:</p>
<ul>
<li>Need to run Docker or container runtimes</li>
<li>Are setting up a VPN server (WireGuard, OpenVPN)</li>
<li>Want to install or update the kernel independently</li>
<li>Are moving workloads from a physical server or cloud VM</li>
<li>Have had unexplained issues on OpenVZ in the past</li>
<li>Need reliable, non-oversold resource guarantees</li>
</ul>
<p>If you&#39;re building something minimal — a tiny static site, a single cron job, a lightweight proxy — a container-based VPS might technically cost less. But for anything beyond the simplest use case, the predictability and flexibility of KVM is worth it.</p>
<h2 id="choosing-a-kvm-provider">Choosing a KVM provider<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#choosing-a-kvm-provider"><span></span></a></h2>
<p>Not all KVM VPS offerings are equivalent. The virtualization layer is only one part of the equation. When comparing providers, it&#39;s worth checking:</p>
<ul>
<li><strong>CPU generation.</strong> AMD EPYC and Ryzen processors have excellent single-thread performance and are common in modern VPS infrastructure. Older Intel Xeon generations can be slower per core.</li>
<li><strong>Storage type.</strong> NVMe makes a significant difference for database workloads and anything with frequent reads and writes. SATA SSDs are acceptable; HDDs are not worth it for a primary VPS in most cases.</li>
<li><strong>RAM overselling policy.</strong> Ask directly or check the docs. &quot;Guaranteed RAM&quot; should mean the allocation is reserved, not that it&#39;s your maximum in a shared pool.</li>
<li><strong>Network throughput.</strong> A 10 Gbps uplink means your VPS can fully utilize burst bandwidth without the host being a bottleneck.</li>
<li><strong>Control panel features.</strong> OS reinstalls, snapshot management, VNC console access, and rDNS configuration are the baseline you should expect.</li>
</ul>
<h2 id="summary">Summary<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#summary"><span></span></a></h2>
<p>KVM is the right virtualization choice for any workload that requires real kernel access, consistent resource allocation, or Docker compatibility. It removes the constraints that make OpenVZ frustrating for serious work, and it behaves like a proper Linux machine rather than a restricted container environment.</p>
<p>For the vast majority of developers, sysadmins, and self-hosters, a KVM VPS covers everything they need without the cost or complexity of bare metal.</p>
<p>Thanks for reading! If you&#39;re looking for a KVM VPS that doesn&#39;t oversell RAM or storage, <a href="https://qde.com/vps/">QDE offers unmanaged KVM VPS hosting</a> in Amsterdam on AMD EPYC and Ryzen 7950X hardware, with pure NVMe storage, 10 Gbps uplinks, and daily remote backups on every plan.</p>
<p><em><strong>Ready to get started or have questions about which plan fits your setup? <a href="https://qde.com/contact/">Reach out to our team</a> — we&#39;re happy to help.</strong></em></p>
<h2 id="frequently-asked-questions-about-kvm-vps-hosting">Frequently asked questions about KVM VPS hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-kvm-vps-hosting"><span></span></a></h2>
<h3 id="what-does-kvm-mean-in-vps-hosting">What does KVM mean in VPS hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-does-kvm-mean-in-vps-hosting"><span></span></a></h3>
<p>KVM stands for Kernel-based Virtual Machine. It&#39;s a Linux kernel module that enables full hardware virtualization, giving each VPS its own isolated kernel, CPU, RAM, and storage — rather than sharing the host kernel with other tenants.</p>
<h3 id="is-kvm-better-than-openvz">Is KVM better than OpenVZ?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-kvm-better-than-openvz"><span></span></a></h3>
<p>For most workloads, yes. KVM gives you a full virtualized machine with no kernel-level restrictions, which means Docker, VPNs, custom kernels, and most system-level tools work without issues. OpenVZ is lighter but heavily restricts what you can run.</p>
<h3 id="can-i-run-docker-on-a-kvm-vps">Can I run Docker on a KVM VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-run-docker-on-a-kvm-vps"><span></span></a></h3>
<p>Yes, Docker runs natively on KVM without any workarounds. You get full access to Docker&#39;s networking, volume management, and build system just as you would on a physical machine.</p>
<h3 id="can-i-set-up-a-vpn-server-on-a-kvm-vps">Can I set up a VPN server on a KVM VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-set-up-a-vpn-server-on-a-kvm-vps"><span></span></a></h3>
<p>Yes. WireGuard and OpenVPN both require TUN/TAP kernel support, which is available on KVM. Container-based VPS providers sometimes restrict or disable this.</p>
<h3 id="does-qde-oversell-ram">Does QDE oversell RAM?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-qde-oversell-ram"><span></span></a></h3>
<p>No. QDE&#39;s KVM VPS plans use dedicated RAM allocations — what your plan lists is what&#39;s reserved for your instance. Storage is also never oversold.</p>
<h3 id="what-operating-systems-can-i-run-on-a-kvm-vps">What operating systems can I run on a KVM VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-operating-systems-can-i-run-on-a-kvm-vps"><span></span></a></h3>
<p>Any standard Linux distribution works, including Debian, Ubuntu, Rocky Linux, AlmaLinux, and more. QDE supports one-click reinstalls across the most common distros from the control panel.</p>
<h3 id="whats-included-with-every-qde-vps-plan">What&#39;s included with every QDE VPS plan?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-included-with-every-qde-vps-plan"><span></span></a></h3>
<p>Every plan includes pure NVMe storage, a 10 Gbps uplink, a dedicated IPv4 address, a /64 IPv6 subnet, daily automatic offsite backups via Proxmox Backup Server, and on-demand manual backups you can trigger from the control panel.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="KVM VPS" term="KVM VPS"/>
        <category label="Virtual Private Server" term="Virtual Private Server"/>
        <category label="KVM Virtualization" term="KVM Virtualization"/>
        <category label="VPS Hosting" term="VPS Hosting"/>
        <category label="Unmanaged VPS" term="Unmanaged VPS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[AMD Ryzen vs. EPYC for VPS, Web Hosting, and Servers]]></title>
        <id>https://qde.com/blog/amd-ryzen-vs-epyc-vps-hosting-servers/</id>
        <link href="https://qde.com/blog/amd-ryzen-vs-epyc-vps-hosting-servers/"/>
        <updated>2026-05-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[AMD makes two very different processor lines, Ryzen, and EPYC. Both frequently show up in hosting environments. Here's how they compare and when each makes sense.]]></summary>
        <content type="html"><![CDATA[<p>AMD Ryzen and EPYC both carry the AMD name, but they&#39;re built for different jobs. If you&#39;ve been shopping for a VPS or dedicated server and seen both listed as options, it&#39;s worth understanding what separates them, because the gap is bigger than the branding suggests.</p>
<p>This article breaks down the architectural differences between Ryzen and EPYC, how those differences play out in hosting environments, and which processor class is likely the better fit depending on your workload.</p>
<h2 id="background-what-ryzen-and-epyc-actually-are">Background: what Ryzen and EPYC actually are<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#background-what-ryzen-and-epyc-actually-are"><span></span></a></h2>
<p>AMD Ryzen is a consumer and prosumer processor line. It spans desktop chips, laptop CPUs, and some workstation-class hardware. Ryzen processors are built around the Zen architecture and are designed with a balance of single-threaded performance, power efficiency, and price in mind. They&#39;re the chips in gaming PCs and enthusiast workstations.</p>
<p>AMD EPYC is AMD&#39;s server processor line, also built on Zen but designed from the ground up for data center workloads. EPYC chips prioritize core count, memory bandwidth, PCIe lane availability, and reliability features that consumer chips simply don&#39;t have — like support for registered ECC RAM, more NUMA nodes, and multi-socket configurations.</p>
<p>Both are competitive AMD silicon, but they target completely different markets.</p>
<h2 id="core-count-and-threading">Core count and threading<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#core-count-and-threading"><span></span></a></h2>
<p>EPYC processors offer substantially higher core counts than Ryzen. Current-generation EPYC chips go up to 96 cores per socket, while Ryzen tops out in the 16-core range for desktop chips and around 24 cores on higher-end Ryzen Threadripper Pro models (which are themselves more server-oriented).</p>
<p>For VPS hosting, core count matters because a physical host server needs to support dozens of virtual machines simultaneously. A server running 40 or 50 VPS instances needs raw parallelism — more cores means more tenants can be served without contention.</p>
<p>Ryzen&#39;s lower core count doesn&#39;t disqualify it from hosting use, but it&#39;s better suited to smaller node deployments or environments where single-threaded performance is the priority.</p>
<h2 id="single-threaded-performance">Single-threaded performance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#single-threaded-performance"><span></span></a></h2>
<p>This is where Ryzen can have an edge. Consumer-grade Ryzen chips — particularly the Ryzen 9 7950X and similar — boost to very high clock speeds compared to EPYC. EPYC is built to sustain performance across many cores simultaneously, so individual core clock speeds tend to be more conservative.</p>
<p>For workloads that are heavily single-threaded — like certain PHP applications, game servers, or older software that doesn&#39;t parallelize well — a high-clock Ryzen chip can outperform an EPYC on a per-core basis in burst workloads.</p>
<p>This is part of why some hosting providers offer Ryzen-based VPS plans specifically for latency-sensitive or single-threaded workloads, while using EPYC for general-purpose hosting fleets.</p>
<h2 id="memory-ecc-bandwidth-and-channel-count">Memory: ECC, bandwidth, and channel count<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#memory-ecc-bandwidth-and-channel-count"><span></span></a></h2>
<p>EPYC supports registered ECC (Error-Correcting Code) memory across all configurations. ECC RAM detects and corrects single-bit memory errors in real time, which matters for servers running continuously under load. A memory error on a desktop chip might cause a crash or data corruption; on a server, that&#39;s unacceptable.</p>
<p>Consumer Ryzen chips have inconsistent ECC support — some support it in a limited capacity, but it&#39;s not a first-class feature the way it is on EPYC. Ryzen Threadripper Pro is an exception, with full ECC support, but standard Ryzen desktop chips aren&#39;t reliable for ECC-dependent workloads.</p>
<p>EPYC also supports significantly more memory channels and higher total RAM capacity per socket. A current EPYC server can be configured with terabytes of RAM; a Ryzen system is limited to far less.</p>
<h2 id="pcie-lanes-and-io">PCIe lanes and I/O<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#pcie-lanes-and-io"><span></span></a></h2>
<p>EPYC provides an enormous number of PCIe lanes per socket — often 128 or more on current-generation chips. This matters for servers with multiple NVMe drives, high-speed NICs, or GPU accelerators.</p>
<p>Ryzen provides enough PCIe lanes for a desktop or a small workstation, but not nearly enough for a densely-configured server. If a storage node needs 8 NVMe drives and a 25 GbE network card, Ryzen will run out of lanes.</p>
<p>For NVMe-heavy VPS hosting — where fast storage is a key selling point — EPYC&#39;s I/O capacity is a significant practical advantage.</p>
<h2 id="reliability-and-server-class-features">Reliability and server-class features<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#reliability-and-server-class-features"><span></span></a></h2>
<p>EPYC includes a range of features that don&#39;t exist on consumer chips: multi-socket support, Secure Memory Encryption (SME), Secure Encrypted Virtualization (SEV), and hardware-level virtualization isolation. SEV in particular is relevant for VPS environments — it allows each VM&#39;s memory to be encrypted independently so that even a compromised hypervisor can&#39;t read guest VM memory.</p>
<p>Ryzen lacks most of these features outside of the Threadripper Pro tier. This isn&#39;t a knock on Ryzen as a product category; consumer CPUs aren&#39;t designed for these use cases.</p>
<h2 id="virtualization-performance">Virtualization performance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#virtualization-performance"><span></span></a></h2>
<p>Both Ryzen and EPYC support AMD-V (AMD Virtualization), so hypervisors like KVM run well on either. The difference shows up at scale.</p>
<p>EPYC&#39;s NUMA (Non-Uniform Memory Access) topology, higher core count, and memory architecture make it more predictable under high VM density. When dozens of VMs are competing for CPU time and memory bandwidth, EPYC&#39;s design handles that workload more gracefully.</p>
<p>For small-scale or single-purpose hosts — a home lab, a private server, or a VPS node running a handful of VMs — Ryzen can work well and cost less to build.</p>
<h2 id="power-efficiency">Power efficiency<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#power-efficiency"><span></span></a></h2>
<p>Ryzen chips generally consume less power than EPYC at equivalent loads, which matters for smaller deployments where electricity cost is a factor. EPYC&#39;s higher TDP is a tradeoff for its expanded feature set and core count.</p>
<p>At data center scale, power is always a concern, but the cost per core on EPYC usually justifies the power draw when running high-density workloads.</p>
<h2 id="which-is-better-for-vps-hosting">Which is better for VPS hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-is-better-for-vps-hosting"><span></span></a></h2>
<p>For large-scale commercial VPS hosting — the kind a provider runs with dozens of nodes and hundreds of customers — EPYC is the right choice. The combination of core count, ECC memory, PCIe bandwidth, SEV support, and sustained multi-threaded performance is hard to beat.</p>
<p>For use cases where single-threaded burst performance is the priority — such as a high-frequency game server, a low-latency trading application, or software that simply doesn&#39;t parallelize well — a high-clock Ryzen node can be a deliberate and sensible choice. Some providers offer Ryzen-based VPS specifically for this segment.</p>
<p>For self-hosted environments or home labs where budget matters and workloads are lighter, Ryzen is often the more practical option. You get strong performance at a lower hardware cost, with the understanding that you&#39;re trading away ECC reliability, core density, and some server-class features.</p>
<h2 id="how-qde-approaches-processor-selection">How QDE approaches processor selection<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-qde-approaches-processor-selection"><span></span></a></h2>
<p>QDE uses both AMD EPYC and AMD Ryzen 7950X hardware across its VPS fleet. The processor varies by plan tier. EPYC handles the workloads where memory reliability, core density, and VM isolation are priorities; Ryzen 7950X covers scenarios where high single-threaded performance is the better fit.</p>
<p>RAM and storage are never oversold on any configuration — every plan reflects actual allocated resources, not oversubscribed pools.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>Ryzen and EPYC are both excellent AMD processors, but they solve different problems. EPYC is built for the data center: high core counts, ECC memory, deep I/O, and reliability features designed for always-on server workloads. Ryzen is built for performance at a price point, with strong single-threaded speed that can make it the right fit for specific hosting use cases.</p>
<p>Knowing which one you&#39;re running on — and why — helps you match your workload to the right environment.</p>
<p>Thanks for reading! If you need reliable VPS hosting backed by AMD EPYC and Ryzen 7950X hardware, <a href="https://qde.com/vps/">QDE offers high-performance VPS in the Netherlands</a> with pure NVMe storage, 10 Gbps uplinks, and no resource overselling.</p>
<p><em><strong>Ready to get started or have questions? <a href="https://qde.com/contact/">Reach out to our team</a>.</strong></em></p>
<h2 id="frequently-asked-questions-about-amd-ryzen-vs-epyc-for-vps-and-servers">Frequently asked questions about AMD Ryzen vs. EPYC for VPS and servers<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-amd-ryzen-vs-epyc-for-vps-and-servers"><span></span></a></h2>
<h3 id="whats-the-main-difference-between-amd-ryzen-and-epyc">What&#39;s the main difference between AMD Ryzen and EPYC?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-the-main-difference-between-amd-ryzen-and-epyc"><span></span></a></h3>
<p>Ryzen is a consumer and prosumer processor line optimized for single-threaded performance and cost efficiency. EPYC is AMD&#39;s server-grade line, built for high core counts, ECC memory support, more PCIe lanes, and reliability features suited to data center workloads.</p>
<h3 id="is-amd-epyc-better-than-ryzen-for-vps-hosting">Is AMD EPYC better than Ryzen for VPS hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-amd-epyc-better-than-ryzen-for-vps-hosting"><span></span></a></h3>
<p>For large-scale, high-density VPS hosting, EPYC is generally the better choice. It supports more simultaneous virtual machines, provides ECC memory, and includes hardware virtualization isolation features like AMD SEV. Ryzen can be a valid choice where high single-threaded performance matters more than density.</p>
<h3 id="does-ryzen-support-ecc-memory">Does Ryzen support ECC memory?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#does-ryzen-support-ecc-memory"><span></span></a></h3>
<p>Standard consumer Ryzen chips have limited or no ECC support. Ryzen Threadripper Pro supports ECC, but mainstream Ryzen desktop CPUs aren&#39;t reliable for ECC-dependent server workloads. EPYC supports full registered ECC across all configurations.</p>
<h3 id="what-is-amd-sev-and-why-does-it-matter-for-vps">What is AMD SEV and why does it matter for VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-is-amd-sev-and-why-does-it-matter-for-vps"><span></span></a></h3>
<p>AMD Secure Encrypted Virtualization (SEV) encrypts each virtual machine&#39;s memory independently using unique keys. This means even if a hypervisor were compromised, it couldn&#39;t read the memory of guest VMs. It&#39;s a hardware-level isolation feature available on EPYC, not standard Ryzen.</p>
<h3 id="can-ryzen-be-used-in-a-server-or-vps-environment">Can Ryzen be used in a server or VPS environment?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-ryzen-be-used-in-a-server-or-vps-environment"><span></span></a></h3>
<p>Yes, and it is — some providers deploy Ryzen hardware specifically for workloads that benefit from high single-core clock speeds. It&#39;s not the ideal general-purpose hosting chip due to lower core counts, limited ECC, and fewer PCIe lanes, but for the right workload it&#39;s a deliberate and reasonable choice.</p>
<h3 id="what-processors-does-qde-use-for-its-vps-plans">What processors does QDE use for its VPS plans?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-processors-does-qde-use-for-its-vps-plans"><span></span></a></h3>
<p>QDE&#39;s VPS infrastructure uses AMD EPYC and AMD Ryzen 7950X processors depending on the plan. All configurations use pure NVMe storage with no RAM or storage overselling.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS" term="VPS"/>
        <category label="Hardware" term="Hardware"/>
        <category label="AMD" term="AMD"/>
        <category label="Server" term="Server"/>
        <category label="Web Hosting" term="Web Hosting"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The 11 Best VPS Providers for Adult Content Hosting]]></title>
        <id>https://qde.com/blog/best-vps-adult-content-hosting/</id>
        <link href="https://qde.com/blog/best-vps-adult-content-hosting/"/>
        <updated>2026-05-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Not every hosting provider allows adult content, and the ones that do vary wildly in performance, privacy, and price. Here's a breakdown of the 11 best VPS options for porn and adult content sites.]]></summary>
        <content type="html"><![CDATA[<p>Running an adult content site means dealing with a very short list of hosting providers willing to take your business, and an even shorter list worth trusting.</p>
<p>Most mainstream hosts either prohibit adult content outright or bury vague restrictions in their terms of service that leave you one complaint away from a suspension.</p>
<p>What you actually need is a provider that explicitly permits adult content, respects your privacy, accepts crypto payments, delivers the performance to handle bandwidth-heavy media, and takes abuse handling seriously.</p>
<p>That last point matters more than most operators realize: a host with a real abuse process protects both you and them, and signals they&#39;re running a legitimate operation built for the long term. This guide covers 11 providers that check enough of those boxes to be worth considering.</p>
<h2 id="what-to-look-for-in-an-adult-friendly-vps">What to look for in an adult-friendly VPS<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-to-look-for-in-an-adult-friendly-vps"><span></span></a></h2>
<p>Before jumping into the list, it helps to know what separates a genuinely useful provider from one that just technically &quot;allows&quot; adult content:</p>
<ul>
<li><strong>TOS clarity</strong> — Does the provider explicitly permit adult content, or are you reading between the lines?</li>
<li><strong>Legal content only</strong> — Any reputable host will require that content involves consenting adults and complies with applicable law. This isn&#39;t a restriction — it&#39;s a baseline that protects everyone.</li>
<li><strong>Abuse handling</strong> — A provider with a proper abuse response process is a good sign. It means they&#39;re serious about operating cleanly, and it reduces the risk of your server being caught up in someone else&#39;s problems.</li>
<li><strong>Privacy and anonymity</strong> — Minimal data collection, no ID verification, crypto payment options.</li>
<li><strong>Performance</strong> — Adult sites are bandwidth-heavy. NVMe storage and fast uplinks matter.</li>
<li><strong>Location</strong> — US-based hosting is a perfectly valid choice; adult content is legal there. EU and offshore providers offer different jurisdictional profiles, but legality isn&#39;t the differentiator — TOS permissiveness and infrastructure quality are.</li>
<li><strong>Payment flexibility</strong> — Crypto/Monero acceptance is a strong signal of a privacy-respecting provider.</li>
</ul>
<h2 id="the-11-best-vps-providers-for-adult-content-hosting">The 11 best VPS providers for adult content hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#the-11-best-vps-providers-for-adult-content-hosting"><span></span></a></h2>
<h3 id="1-qde">1. QDE<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#1-qde"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/d5bu9/qde.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/d5bu9/qde.webp" alt="QDE homepage hero showing high-performance VPS hosting in Europe with a Privacy-First EU callout and €3.95 starting price" title="QDE homepage hero showing high-performance VPS hosting in Europe with a Privacy-First EU callout and €3.95 starting price"/></a></p>
<p><a href="https://qde.com/">QDE</a> is a Netherlands-based unmanaged KVM VPS provider that checks every box for adult content operators: explicit TOS support, privacy-respecting practices, crypto payment acceptance (Bitcoin, Litecoin, USDT, and Monero), and infrastructure that can handle bandwidth-heavy workloads. Plans start at just €3.95 with pure NVMe storage, 10 Gbps uplinks, and daily automatic offsite backups via Proxmox Backup Server with on-demand manual backups from the control panel. The Amsterdam data center peers directly at AMS-IX, delivering low-latency connectivity across Europe, North America, and Asia. RAM and storage are never oversold, which matters when your site traffic spikes.</p>
<p>QDE permits adult content involving consenting adults in compliance with applicable law, and operates a proper abuse handling process — both of which matter if you want a host that&#39;s built for sustainable, long-term operation rather than looking the other way until a complaint forces their hand. For adult content operators who want a privacy-first, high-performance Netherlands host with no surprises, QDE is the strongest all-around option on this list.</p>
<h3 id="2-ovhcloud">2. OVHcloud<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#2-ovhcloud"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/9jb3n/ovhcloud.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/9jb3n/ovhcloud.webp" alt="OVHcloud homepage hero promoting the New Generation of Advance Servers with AMD EPYC 4005 and Intel Xeon 6 processors" title="OVHcloud homepage hero promoting the New Generation of Advance Servers with AMD EPYC 4005 and Intel Xeon 6 processors"/></a></p>
<p><a href="https://www.ovhcloud.com/">OVHcloud</a> is a large European provider based in France with a permissive TOS, massive infrastructure, and entry-level VPS plans starting at $6.46/month. It accepts crypto payments, offers high traffic allowances, and delivers consistent performance across its global network. For operators who want scale and the backing of a major provider, OVHcloud is a reliable choice.</p>
<h3 id="3-hostsailor">3. HostSailor<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#3-hostsailor"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/hu8zx/hostsailor.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/hu8zx/hostsailor.webp" alt="HostSailor homepage hero with the tagline Tailored Hosting Solutions for Your Business Website and a 30-second deployment callout" title="HostSailor homepage hero with the tagline Tailored Hosting Solutions for Your Business Website and a 30-second deployment callout"/></a></p>
<p><a href="https://www.hostsailor.com/">HostSailor</a> is one of the few providers that actively markets itself toward privacy-focused and adult content users. Based in the Netherlands, it doesn&#39;t require ID verification and accepts Bitcoin alongside other crypto. Plans start at $5/month. It&#39;s purpose-built for this use case, which makes it a strong pick if you want a provider that won&#39;t suddenly get skittish about your content category.</p>
<h3 id="4-ultahost">4. Ultahost<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#4-ultahost"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/jvk2h/ultahost.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/jvk2h/ultahost.webp" alt="Ultahost homepage hero with the Hosting Without Limits tagline, a Flash Sale banner, and an Introducing UltaAI chat widget preview" title="Ultahost homepage hero with the Hosting Without Limits tagline, a Flash Sale banner, and an Introducing UltaAI chat widget preview"/></a></p>
<p><a href="https://ultahost.com/">Ultahost</a> offers a solid combination of NVMe storage, DDoS protection, and crypto payment support. Plans start at $5/month across US and EU locations. It scores well for privacy and performance, and its TOS is permissive toward adult content. Good for operators who want a capable technical stack without paying a premium.</p>
<h3 id="5-dmzhostco">5. dmzhost.co<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#5-dmzhostco"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/bc4qv/dmzhost.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/bc4qv/dmzhost.webp" alt="DMZHost homepage hero headlined Your Datacenter Infrastructure Services with connectivity and offshore KVM private server callouts" title="DMZHost homepage hero headlined Your Datacenter Infrastructure Services with connectivity and offshore KVM private server callouts"/></a></p>
<p><a href="https://dmzhost.co/">dmzhost.co</a> is specifically built for privacy and anonymity use cases, including adult content. Prices start at €5/month with crypto-only payments accepted, and it positions itself as an offshore option for operators who want minimal exposure. Good for those prioritizing anonymity over brand recognition.</p>
<h3 id="6-abelohost">6. AbeloHost<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#6-abelohost"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/baku4/abelohost.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/baku4/abelohost.webp" alt="AbeloHost homepage hero on a dark background with the headline Offshore hosting, a Get Started button, and 99.99% uptime and sub-30-minute ticket response stats" title="AbeloHost homepage hero on a dark background with the headline Offshore hosting, a Get Started button, and 99.99% uptime and sub-30-minute ticket response stats"/></a></p>
<p><a href="https://abelohost.com/">AbeloHost</a> operates out of the Netherlands with explicit adult content support, no ID checks required, and Bitcoin/crypto acceptance. Plans start at €10/month. It&#39;s in a similar tier to HostSailor — offshore Netherlands, privacy-first, no unnecessary friction.</p>
<h3 id="7-racknerd">7. RackNerd<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#7-racknerd"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/ya63b/racknerd.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/ya63b/racknerd.webp" alt="RackNerd homepage hero with the tagline Racks full of dedicated servers for nerds, by nerds and a starting price of $139 per month" title="RackNerd homepage hero with the tagline Racks full of dedicated servers for nerds, by nerds and a starting price of $139 per month"/></a></p>
<p><a href="https://www.racknerd.com/">RackNerd</a> covers US and EU locations starting at $5/month with crypto payment support and an explicitly adult-friendly TOS. It&#39;s a solid budget-tier pick for operators who need flexible US-accessible infrastructure at a competitive price point.</p>
<h3 id="8-owrbit-adult-hosting">8. Owrbit Adult Hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#8-owrbit-adult-hosting"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/mj9v3/owrbit.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/mj9v3/owrbit.webp" alt="Owrbit homepage hero with the headline Powerful Hosting Solutions, Trustpilot and Google review callouts, and a domain search bar" title="Owrbit homepage hero with the headline Powerful Hosting Solutions, Trustpilot and Google review callouts, and a domain search bar"/></a></p>
<p><a href="https://www.owrbit.com/">Owrbit</a> is purpose-built for adult hosting, based in the Netherlands, with Bitcoin payment support and plans starting at $12/month. The branding leaves no ambiguity about the target market, and the Netherlands location provides a solid jurisdictional base for European operators.</p>
<h3 id="9-hostingb2b">9. HostingB2B<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#9-hostingb2b"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/xf42r/hostingb2b.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/xf42r/hostingb2b.webp" alt="HostingB2B homepage hero with the headline Welcome to the Future of Hosting, a Trustpilot rating, and a 25% Easter discount callout" title="HostingB2B homepage hero with the headline Welcome to the Future of Hosting, a Trustpilot rating, and a 25% Easter discount callout"/></a></p>
<p>Bulgaria-based <a href="https://www.hostingb2b.com/">HostingB2B</a> offers budget-friendly plans starting at €11/month with crypto acceptance and adult-friendly TOS. Offshore Eastern European hosting offers a different jurisdictional profile for operators who want geographic diversity.</p>
<h3 id="10-interserver">10. InterServer<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#10-interserver"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/2ru2f/interserver.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/2ru2f/interserver.webp" alt="InterServer homepage hero with the 24/7 support headline We're Always Here To Help and a 4.8 satisfaction rating callout" title="InterServer homepage hero with the 24/7 support headline We're Always Here To Help and a 4.8 satisfaction rating callout"/></a></p>
<p><a href="https://www.interserver.net/">InterServer</a> is a US-based provider offering VPS starting at $3/month with customizable plans, and Bitcoin acceptance. It&#39;s explicitly adult-friendly with no TOS ambiguity, making it a straightforward budget option for operators who need US infrastructure without the guesswork of checking fine print.</p>
<h3 id="11-ssd-nodes">11. SSD Nodes<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#11-ssd-nodes"><span></span></a></h3>
<p><a href="https://cdn.qde.com/2026/05/08/tb9re/ssdnodes.webp" class="mdx-image-link"><img src="https://cdn.qde.com/2026/05/08/tb9re/ssdnodes.webp" alt="SSD Nodes homepage hero with the tagline Significantly Reducing Linux VPS Hosting Bills For The Past 14 Years and a Show me the Deals button" title="SSD Nodes homepage hero with the tagline Significantly Reducing Linux VPS Hosting Bills For The Past 14 Years and a Show me the Deals button"/></a></p>
<p><a href="https://www.ssdnodes.com/">SSD Nodes</a> is geared toward technical users comfortable managing their own stack. US/EU locations, starting at around $6/month (only annual billing available, though), crypto payments, and an adult-friendly TOS. A solid pick for developers and sysadmins who want capable infrastructure at a budget price point without paying for hand-holding they don&#39;t need.</p>
<h2 id="picking-the-right-fit">Picking the right fit<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#picking-the-right-fit"><span></span></a></h2>
<p>Your best choice comes down to a few factors:</p>
<ul>
<li><strong>Best overall pick</strong>: QDE — Netherlands-based, crypto payments including Monero, NVMe + 10 Gbps, no overselling</li>
<li><strong>Budget-focused</strong>: Ultahost, or RackNerd at $5–$10/month</li>
<li><strong>Maximum privacy</strong>: QDE (Monero accepted), AbeloHost (Monero accepted), or dmzhost.co</li>
<li><strong>Purpose-built adult hosting</strong>: HostSailor, Owrbit, or AbeloHost</li>
<li><strong>Best large-scale infrastructure</strong>: OVHcloud</li>
<li><strong>Netherlands jurisdiction</strong>: QDE, HostSailor, AbeloHost, or Owrbit</li>
</ul>
<p>For most operators, the Netherlands is the sweet spot — permissive legal environment, high-quality infrastructure, and several providers explicitly built for this use case.</p>
<h2 id="provider-comparison-at-a-glance">Provider comparison at a glance<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#provider-comparison-at-a-glance"><span></span></a></h2>

















































































































<div class="cs-content-table-wrap"><table><thead><tr><th>Provider</th><th>Location</th><th>Starting price</th><th>Adult TOS</th><th>Crypto</th><th>Monero</th><th>No ID check</th></tr></thead><tbody><tr><td>QDE</td><td>Netherlands</td><td>€3.95</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>OVHcloud</td><td>NA/EU</td><td>$6.46/mo</td><td>✅</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>HostSailor</td><td>Netherlands</td><td>~$5/mo</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Ultahost</td><td>US/EU</td><td>~$5/mo</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>dmzhost.co</td><td>EU</td><td>€5/mo</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>AbeloHost</td><td>Netherlands</td><td>€10/mo</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>RackNerd</td><td>US/EU</td><td>~$5/mo</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>Owrbit</td><td>Netherlands</td><td>~€11/mo</td><td>✅</td><td>✅</td><td>❌</td><td>❌</td></tr><tr><td>HostingB2B</td><td>Bulgaria</td><td>~$8/mo</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>InterServer</td><td>US</td><td>$3/mo</td><td>✅</td><td>✅</td><td>✅</td><td>❌</td></tr><tr><td>SSD Nodes</td><td>US/EU</td><td>~$6/mo</td><td>✅</td><td>✅</td><td>❌</td><td>❌</td></tr></tbody></table></div>
<h2 id="thanks-for-reading">Thanks for reading!<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#thanks-for-reading"><span></span></a></h2>
<p>If you&#39;re looking for a high-performance VPS with privacy-respecting practices and crypto payment support, <a href="https://qde.com/vps/">QDE offers unmanaged KVM VPS hosting</a> in the Netherlands with NVMe storage, 10 Gbps uplinks, and daily backups — backed by direct peering at AMS-IX.</p>
<p><em><strong>Ready to get started or have questions? <a href="https://qde.com/contact/">Contact the QDE team</a> to find the right plan for your project.</strong></em></p>
<h2 id="frequently-asked-questions-about-vps-hosting-for-adult-content">Frequently asked questions about VPS hosting for adult content<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-vps-hosting-for-adult-content"><span></span></a></h2>
<h3 id="is-adult-content-actually-legal-to-host">Is adult content actually legal to host?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-adult-content-actually-legal-to-host"><span></span></a></h3>
<p>Yes — adult content involving consenting adults is legal in the United States, the Netherlands, and most EU countries. The legal question is usually settled; the practical question is finding a host whose TOS reflects that. Always ensure your content meets applicable regulations in both your jurisdiction and your host&#39;s.</p>
<h3 id="which-countries-are-best-for-adult-content-hosting">Which countries are best for adult content hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#which-countries-are-best-for-adult-content-hosting"><span></span></a></h3>
<p>The Netherlands and the US are both strong choices with well-established legal frameworks for adult content. Romania and other EU jurisdictions are also used. The location decision is less about legality and more about infrastructure quality, network performance, and TOS permissiveness.</p>
<h3 id="why-does-abuse-handling-matter-for-adult-hosting">Why does abuse handling matter for adult hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#why-does-abuse-handling-matter-for-adult-hosting"><span></span></a></h3>
<p>A host with a real abuse process — one that investigates complaints rather than just pulling the plug — is a better long-term partner. It means you&#39;re protected from bad-faith takedown requests, and it signals the provider is running a legitimate operation. Hosts that ignore abuse entirely tend to attract problematic neighbors on shared infrastructure, which creates headaches for everyone.</p>
<h3 id="do-i-need-to-verify-my-identity-with-adult-friendly-vps-providers">Do I need to verify my identity with adult-friendly VPS providers?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-to-verify-my-identity-with-adult-friendly-vps-providers"><span></span></a></h3>
<p>It varies. Providers like HostSailor and AbeloHost specifically advertise no ID checks. More mainstream providers may require standard account verification. If anonymity matters to you, look for hosts that accept crypto and don&#39;t require documentation.</p>
<h3 id="can-i-pay-anonymously-for-adult-hosting">Can I pay anonymously for adult hosting?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#can-i-pay-anonymously-for-adult-hosting"><span></span></a></h3>
<p>Yes, if you choose the right provider. Bitcoin is widely accepted across almost all providers on this list. For stronger privacy, Monero is the gold standard — QDE and AbeloHost both confirm acceptance. Providers like dmzhost.co accept crypto exclusively, making them a strong option for operators who want minimal payment trails.</p>
<h3 id="what-kind-of-performance-should-i-expect-for-video-heavy-adult-sites">What kind of performance should I expect for video-heavy adult sites?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-kind-of-performance-should-i-expect-for-video-heavy-adult-sites"><span></span></a></h3>
<p>Adult sites, especially those serving video content, are bandwidth-intensive. Look for providers offering 10 Gbps uplinks, NVMe storage for fast I/O, and generous traffic allowances. QDE and OVHcloud both perform well on these metrics.</p>
<h3 id="is-offshore-hosting-necessary-for-adult-content">Is offshore hosting necessary for adult content?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-offshore-hosting-necessary-for-adult-content"><span></span></a></h3>
<p>Not necessarily. US hosting is a legitimate option — adult content is legal there and several reputable providers explicitly support it. Offshore hosting in the Netherlands or EU can offer different jurisdictional benefits, but the more important factors are TOS clarity, infrastructure quality, and whether the provider has experience handling adult content accounts professionally.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS Hosting" term="VPS Hosting"/>
        <category label="Adult Hosting" term="Adult Hosting"/>
        <category label="Offshore Hosting" term="Offshore Hosting"/>
        <category label="Privacy Hosting" term="Privacy Hosting"/>
        <category label="Crypto Payments" term="Crypto Payments"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[What Is a VPS?]]></title>
        <id>https://qde.com/blog/what-is-a-vps/</id>
        <link href="https://qde.com/blog/what-is-a-vps/"/>
        <updated>2026-05-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A virtual private server gives you dedicated resources and root access without the cost of bare metal. Here's how it works and when it makes sense.]]></summary>
        <content type="html"><![CDATA[<p>If you&#39;ve outgrown shared hosting or you&#39;re spinning up a project that needs real control over its environment, you&#39;ve probably heard the term VPS. But what exactly is it, and why does it matter?</p>
<p>This guide breaks down what a VPS is, how the technology works under the hood, and how it compares to other hosting types, so you can decide if it&#39;s the right fit for your workload.</p>
<h2 id="what-a-vps-actually-is">What a VPS actually is<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-a-vps-actually-is"><span></span></a></h2>
<p>A VPS, or virtual private server, is a virtualized environment running on a physical host machine. The host is divided into multiple isolated instances using a hypervisor — software that sits between the hardware and the virtual machines, allocating CPU, RAM, and storage to each one independently.</p>
<p>Each VPS behaves like its own server. You get root access, your own OS, your own networking stack, and resources that aren&#39;t shared with other tenants. From your perspective, it looks and feels like a dedicated machine — even though the underlying hardware is shared.</p>
<h2 id="how-virtualization-works">How virtualization works<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-virtualization-works"><span></span></a></h2>
<p>The magic behind a VPS is the hypervisor. There are two common types:</p>
<p><strong>Type 1 (bare-metal):</strong> Runs directly on the hardware with no host OS in between. Examples include KVM, VMware ESXi, and Hyper-V. These offer better performance and isolation.</p>
<p><strong>Type 2 (hosted):</strong> Runs on top of an existing OS, like VirtualBox on a desktop. You won&#39;t see this in production hosting environments — it&#39;s mostly for development and testing.</p>
<p>Most VPS providers use KVM (Kernel-based Virtual Machine), which is a Type 1 hypervisor built into the Linux kernel. KVM gives each VM its own virtualized CPU and memory, making it one of the most performant and well-supported options available. It&#39;s the industry standard for a reason.</p>
<h2 id="vps-vs-shared-hosting-vs-dedicated-servers">VPS vs. shared hosting vs. dedicated servers<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#vps-vs-shared-hosting-vs-dedicated-servers"><span></span></a></h2>
<p>Understanding the tradeoffs helps you pick the right tool.</p>
<p>Shared hosting puts multiple customers on the same server with the same OS, using software like cPanel or Plesk to carve out isolated spaces. It&#39;s cheap, but noisy neighbors are a real problem — if another account on the box spikes CPU, your site slows down too. You also have no root access, so you&#39;re limited to what the host allows.</p>
<p>VPS hosting gives you guaranteed resources and a fully isolated environment. Your RAM is your RAM, your CPU allocation is yours, and you&#39;re running your own OS. You can install packages, configure the kernel, run Docker, set up custom firewall rules — anything a root user can do.</p>
<p>Dedicated servers hand you the entire physical machine. No virtualization overhead, maximum raw performance. The tradeoff is cost and provisioning time. For many workloads, a well-resourced VPS is indistinguishable from a dedicated server in practice.</p>
<h2 id="what-unmanaged-means">What &quot;unmanaged&quot; means<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-unmanaged-means"><span></span></a></h2>
<p>VPS plans are typically sold as either managed or unmanaged.</p>
<p>With a managed VPS, the provider handles OS updates, security patches, monitoring, and sometimes application-level configuration. You pay a premium for that hands-off experience.</p>
<p>With an unmanaged VPS, the provider is responsible for the hardware and hypervisor layer — you handle everything above that. This means you&#39;re installing your own OS, managing your own updates, and configuring your own security. It&#39;s more work, but you get complete control and typically a better price-to-resource ratio.</p>
<p>Most developers and sysadmins prefer unmanaged, since the whole appeal of a VPS is doing things your way.</p>
<h2 id="what-you-can-run-on-a-vps">What you can run on a VPS<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-you-can-run-on-a-vps"><span></span></a></h2>
<p>The short answer: anything that runs on Linux (or Windows, if you go that route). Common use cases include:</p>
<ul>
<li>Web servers (Nginx, Apache, Caddy)</li>
<li>Application backends (Node.js, Python, PHP, Go, Rust)</li>
<li>Databases (PostgreSQL, MySQL, MongoDB, Redis)</li>
<li>Self-hosted tools (Nextcloud, Gitea, Vaultwarden, Jellyfin)</li>
<li>Game servers</li>
<li>VPN endpoints (WireGuard, OpenVPN)</li>
<li>CI/CD runners and build agents</li>
<li>DNS servers and mail servers</li>
</ul>
<p>A VPS is especially popular in the self-hosting community because it gives you the infrastructure flexibility of a home server without the uptime and connectivity concerns of running hardware at home.</p>
<h2 id="how-to-choose-a-vps">How to choose a VPS<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#how-to-choose-a-vps"><span></span></a></h2>
<p>A few things worth evaluating before you sign up:</p>
<p><strong>CPU architecture and hardware.</strong> AMD EPYC and Ryzen processors have become the default choice for VPS providers who care about performance. Avoid providers that don&#39;t disclose their hardware.</p>
<p><strong>RAM and storage guarantees.</strong> Many providers oversell resources — advertising 4 GB RAM but running dozens of VMs on a host with less total capacity than the sum of allocations. Look for providers that explicitly guarantee no overselling and use NVMe storage rather than HDDs or SATA SSDs.</p>
<p><strong>Network quality.</strong> Bandwidth caps and uplink speed matter. A 1 Gbps uplink is fine for most workloads; 10 Gbps becomes relevant for high-throughput applications or servers serving traffic across multiple regions. Peering at major internet exchanges (like AMS-IX) also affects real-world latency.</p>
<p><strong>Location.</strong> Pick a data center geographically close to your users. Latency adds up, especially for interactive applications.</p>
<p><strong>Control panel features.</strong> At minimum, you want OS reinstall, reboot controls, VNC access for emergencies, snapshot management, and rDNS configuration. These should be self-service — not a support ticket.</p>
<h2 id="kvm-vs-openvz">KVM vs. OpenVZ<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#kvm-vs-openvz"><span></span></a></h2>
<p>You&#39;ll occasionally see OpenVZ-based VPS plans, which use container-level virtualization rather than full hardware virtualization. OpenVZ VMs share the host&#39;s kernel, which limits what you can do — you can&#39;t load custom kernel modules, run Docker in some configurations, or always guarantee resource isolation.</p>
<p>KVM is almost always the better choice. Full hardware virtualization means your VM has its own kernel, complete isolation, and no restrictions on what you install.</p>
<h2 id="conclusion">Conclusion<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#conclusion"><span></span></a></h2>
<p>A VPS sits at the right intersection of control, performance, and cost for most serious workloads. Once you&#39;ve hit the limits of shared hosting or you need a proper environment for development, staging, or production — a VPS is usually the next move.</p>
<p>Thanks for reading! If you&#39;re looking for a VPS with guaranteed resources and no overselling, <a href="https://qde.com/vps/">QDE offers high-performance KVM VPS hosting</a> in Amsterdam backed by NVMe storage, 10 Gbps uplinks, and direct peering at AMS-IX.</p>
<p><em><strong>Ready to get started or have questions? <a href="https://qde.com/contact/">Contact our team</a> to find the right plan.</strong></em></p>
<h2 id="frequently-asked-questions-about-vps-hosting">Frequently asked questions about VPS hosting<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#frequently-asked-questions-about-vps-hosting"><span></span></a></h2>
<h3 id="whats-the-difference-between-a-vps-and-a-cloud-server">What&#39;s the difference between a VPS and a cloud server?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#whats-the-difference-between-a-vps-and-a-cloud-server"><span></span></a></h3>
<p>The terms are often used interchangeably, but &quot;cloud server&quot; usually implies infrastructure spread across multiple physical nodes with live migration or high-availability features. A traditional VPS runs on a fixed host. In practice, both use virtualization — the difference is mostly in the underlying architecture and how the provider manages failover.</p>
<h3 id="do-i-need-a-vps-or-a-dedicated-server">Do I need a VPS or a dedicated server?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#do-i-need-a-vps-or-a-dedicated-server"><span></span></a></h3>
<p>For most workloads — web apps, databases, game servers, self-hosted services — a well-resourced VPS is plenty. Dedicated servers make sense when you need maximum raw I/O performance, specific hardware configurations, or complete physical isolation for compliance reasons.</p>
<h3 id="what-os-can-i-install-on-a-vps">What OS can I install on a VPS?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#what-os-can-i-install-on-a-vps"><span></span></a></h3>
<p>Any OS with a supported installer image. Most providers offer Debian, Ubuntu, Rocky Linux, AlmaLinux, and CentOS Stream at minimum. QDE&#39;s control panel supports one-click reinstall across all supported distributions.</p>
<h3 id="is-a-vps-suitable-for-beginners">Is a VPS suitable for beginners?<a class="md-anchor-link" aria-label="Permalink" data-heading-anchor href="#is-a-vps-suitable-for-beginners"><span></span></a></h3>
<p>An unmanaged VPS assumes you&#39;re comfortable with Linux administration — SSH, package management, firewalls, and basic system maintenance. If that&#39;s new territory, managed hosting or a managed VPS plan is a better starting point.</p>]]></content>
        <author>
            <name>QDE</name>
            <email>sales@qde.com</email>
            <uri>https://qde.com/</uri>
        </author>
        <category label="VPS" term="VPS"/>
        <category label="Web Hosting" term="Web Hosting"/>
        <category label="Virtual Private Server" term="Virtual Private Server"/>
        <category label="Linux" term="Linux"/>
        <category label="Cloud Hosting" term="Cloud Hosting"/>
    </entry>
</feed>