The EuroVPS blog
Field notes.
From the engine room.
Decisions, investigations and lessons from running production infrastructure. Written by the people who look after it.
The archive
More from the team.
An alarm is a message to a person, not a line in a log
How to route monitoring alarms so the right engineer sees them in seconds: strict severities, dependencies, chat delivery, ownership and per-host tuning.
Numbering cables: why "highest plus one" is the wrong rule
Cable IDs only help if a number means one cable forever. How to allocate them monotonically, fail closed, label both ends and catch duplicates early.
Central logging that holds up in an incident review
How to build central logging you can trust when it matters: reliable forwarding, one clean name per device, correct clocks, role streams and alarms on silence.
Check the labels before you blame SELinux
Most SELinux denials are a wrongly labelled file, not a policy gap. How to audit labels after an install, fix them properly and enforce safely on remote hosts.
Your own RPM mirror, and building the fix before the distro ships it
How to run a consistent local RPM mirror and, when a fix is out upstream but not yet packaged, build it cleanly so the official package takes over later.
Twelve questions to ask about your host's GDPR measures
Your host's GDPR measures should answer precise questions. Twelve to ask about data location, access, encryption, backups, disk erasure and breach notice.
Rate limit the expensive path, not the crawler
Find the URLs that cost your site real work, then rate limit crawlers there with HAProxy stick tables and a 429, without hurting search or visitors.
Read the scope line: checking a host's ISO claims
A logo proves little. What to read on a host's ISO certificate: the scope line, who issued and accredited it, the dates and the Statement of Applicability.
How to read a dual-fed rack's power, and what the numbers hide
Two feeds only protect you if either can carry the whole rack. How to read A and B feed draw, plan the failover load, balance phases and move cords safely.
The first hours after a critical CVE: a working checklist
What to do between a critical vulnerability disclosure and the patch: find exposed hosts, mitigate, roll out safely, keep a timeline and review the logs.
The most privileged port in the rack is the one nobody watches
iLO and iDRAC can power off, reinstall or read any server. How to isolate management controllers on an air-gapped network, harden them and configure at scale.
Write the rollback first: a template for routine upgrades
A practical upgrade template: watch releases, pre-flight every server, verify the backup, write the way back before you start, and measure downtime in seconds.
Your inventory is a hypothesis until the network confirms it
How to keep a DCIM honest: prove an IP is free three ways, read MACs from the controller, confirm links with LLDP and the FC fabric, read back every field.
A GitLab backup you cannot restore is just a large file
The GitLab backup archive leaves out the files that make it restorable. What to copy alongside it, how to pull it safely, and how to prove a restore works.
Close these doors before your team logs into Mattermost
A fresh Mattermost install is tuned to get a team talking quickly. The settings to review before day one, and how to prove them from the outside.
Every ticket integration delivers twice. Build it for that.
Webhooks retry, partners resend, networks drop replies. How to build a ticket bridge that is signed, idempotent, loop free and scoped, with code you can reuse.
How to run DNS with a hidden primary and public secondaries
Keep the master copy of your zones off the internet and let secondaries do the answering. Two ways to feed them with PowerDNS, DNSSEC included, and the checks.
Upgrading self-hosted live chat without losing a conversation
A step-by-step method for upgrading self-hosted Chatwoot in containers: baseline counts, a quiesced dump, a written rollback and checks from the visitor's side.
One front door for every internal tool: a self-hosting pattern
How to run task boards, dashboards, a password vault and more behind one reverse proxy: wildcard DNS, containers under systemd, layered access, safe renames.
Searching decades of email: keywords first, meaning second
AI search over email fails on dirty data. How to clean, thread and index a mail archive so keyword and semantic search work together, with sources.
Why Nextcloud feels slow, and what actually fixes it
A slow Nextcloud is rarely short of hardware. Background jobs, caching, locking, indices and the office editor, checked in order, with exact settings.
Most read
The guides readers come back to- 01Top 10 Reasons Your Site Loads Slowly (And How to Fix Them)
- 02Important Linux Log Files You Must Be Monitoring on RHEL 9 and 10
- 03Configuring WordPress Multisite with Nginx and PHP-FPM on RHEL 9 and 10
- 04Archimedes and the compound pulley: how one man moved a ship
- 05Ultimate Guide to Understanding HTTP Status Codes: 300 Series
- 06Ultimate Guide to Understanding HTTP Status Codes: 400 Series
- 07How much RAM, CPU, Storage, and IOPS resources does your VPS really need?
Put the reading to work
Have a workload in mind?
Start with the numbers.
The sizing desks turn your requirements into a proposed configuration and an indicative price range. An engineer can help you review what fits.

