Lightweight server monitoring tools for a VPS
How much monitoring does one VPS really need? Compare htop, Glances, Netdata, Beszel and Prometheus by what each costs to run, and when to move up.
Keeping a service running across reboots and crashes. Units, timers, logs, and why a service that works by hand fails under systemd.
Filtering by topic #systemd · clear
How much monitoring does one VPS really need? Compare htop, Glances, Netdata, Beszel and Prometheus by what each costs to run, and when to move up.
ProtectSystem, PrivateTmp, DynamicUser and NoNewPrivileges explained: what each directive blocks, what it breaks, and how to debug a unit that stops starting.
A dnf update leaves the old kernel and old libraries running on Rocky and Alma. Use needs-restarting to see what needs a reboot and what needs a restart.
Your agent wrote the app. Now keep it running: systemd supervision, a reverse proxy with TLS, an env file for secrets, backups, and safe redeploys.
Debian ships unattended-upgrades switched off. Enable it properly, read Origins-Pattern, check the apt-daily timers, and prove it patches itself.
systemd targets replaced runlevels, and the old numbers survive only as aliases. See what a target really is, and how to change what your VPS boots into.
Which self-hosted secrets manager belongs on one VPS: OpenBao, Infisical, SOPS with age, systemd credentials, or a locked down env file, and what each costs.
Read systemctl status before anything else. What 203/EXEC and 226/NAMESPACE mean, and why a unit can start cleanly and exit one second later.
When SSH drops, the kernel sends SIGHUP and your job dies. Use nohup, disown, tmux or systemd-run to keep it alive, and know which one fits the job.
Two clones sharing one /etc/machine-id can fight over a DHCP lease. Regenerate it safely, and truncate it before you snapshot a golden image.
Requires, Wants, After, Before, ExecStartPre and the Condition family do different jobs. What each one promises, and how to debug a unit that never runs.
Deer Workflow puts agent orchestration in reviewable TypeScript. Install it on a VPS with Bun, pin the version, and run one graph headless under systemd.
Run dsh, the DeepSeek Harness, as a systemd service on a VPS: dedicated user, pinned version, Restart rules, journalctl logs, and an SSH tunnel to the UI.
Build llama-server from a pinned tag, serve GGUF models on the OpenAI-compatible API, bind it to localhost, and run it under systemd with memory limits.
Add a second restic repository without doubling your risk: separate init and password, back up twice or use restic copy, split timers, tested restores.
Run Django in production on Ubuntu 24.04: uv or venv, Gunicorn on a Unix socket, a systemd unit, Nginx for TLS and static files, plus what breaks first.
Your VPS has three clocks and only one matters. Find the drift, read chronyc and timedatectl output, and fix the sync that broke your 2FA login.
ollama pull downloads a model and stops. ollama run downloads it, then opens a chat. Where the files land, why they fill a VPS root disk, how to move them.
Run ntfy on your own VPS behind TLS with Docker Compose. Lock topics with users and ACLs, then alert from cron and systemd OnFailure units.
Your unit says active but the daemon is gone. Pick the right systemd Type= for simple, exec, forking, oneshot and notify, and find the real main PID.
Run Ollama as a rootless Podman container on a VPS: a dedicated user, lingering, a Quadlet unit that survives reboot, SELinux labels, and a closed port.
Restart= watches only the main process, so a dead child inside the same cgroup is invisible. How Type=, restart limits and the journal really work.
Configure dnf-automatic on Rocky Linux and AlmaLinux: security-only mode, the systemd timer, email alerts, and a reboot policy that avoids surprises.
Podman runs containers with no daemon and rootless by default. What that changes on a rented server: compose files, quadlets, ports and volume ownership.
What SysV init could not do, what Upstart and launchd tried first, why every distribution moved to systemd in four years, and which objections were right.
Ollama unloads your model after 5 minutes idle, so the next request pays the full load time again. Set keep_alive so it sticks, even after a reboot.
A capped process can still stall your whole VPS. Set MemoryHigh, MemoryMax, CPUQuota and TasksMax on a systemd unit, and read the OOM kill after.
Run Iva, a self-hosted Telegram AI assistant, on a small VPS: no open ports, no domain, systemd user services and an Obsidian vault you back up.
What a game server VPS really needs: fast single core speed and enough RAM. Sizing, ports, systemd restarts, backups, and why latency is about location.
Run KiroCrew as a pinned container on your own VPS so memory and schedules survive reboots. Docker, systemd, SSH access, backups and rollback.
Six server jobs Claude does well: reading a failed unit's logs, drafting systemd units, reviewing nginx and Compose files, plus what you must never paste.
Build a self-hosted stock research agent on a VPS: a market data feed, a DuckDB store, a systemd timer that fires at market close, and an LLM screen.
Make Docker Compose services come back after a reboot: restart policies, why on-failure does not survive one, and when a systemd unit is right.
Install Listmonk on Ubuntu 24.04 with Postgres, config.toml, a systemd unit and TLS, then connect SMTP and understand what deliverability really costs.
What a trading bot really needs from a VPS: restart discipline under systemd, a correct clock, safe API keys, heartbeats, and honest latency limits.
Hermes needs no GPU: the model runs elsewhere, so a small VPS is plenty. Run it as its own user with ProtectSystem=strict in systemd, and cover IPv6 in UFW.
Run Model Context Protocol servers on your own VPS so AI agents get real tools: stdio and remote HTTP transports, systemd, TLS, auth, and every failure mode.
OpenClaw runs shell commands and browses the web, so a careless setup is dangerous. Harden it on a VPS: unprivileged user, firewall, secrets, systemd.
Running a service as root turns one bug into full server access. Give each service its own unprivileged account, or let systemd do it with DynamicUser.
A systemd service keeps your program running: start on boot, restart on crash, log to the journal. How to write one, add a timer, and harden it.
On Ubuntu 24.04 a plain apt install already bans SSH brute force. The fail2ban-client status sshd output proves it, plus the fix when Total failed stays at 0.
sudo apt install certbot python3-certbot-nginx, then one certbot --nginx run for a Let's Encrypt cert. Plus apt vs snap and the port 80 renewal timeout.
Set up WireGuard on your own Linux VPS: key generation, wg0.conf, IP forwarding, NAT, AllowedIPs semantics, DNS, and the handshake failures that bite.