Stan Runge

Setting up the server you're reading this article on

Mon Aug 31 2026

If you are a netizen, you should really have your own corner of the internet: your own personal website. When you google "how do I build a website?" you will usually get immediately redirected to website builders or CMS solutions like WordPress or Wix. For most this is fine, but if you are a software engineer (or just curious), it's important to understand how you can do all this yourself. **Ingredients** To reduce complexity and the attack surface area, we will be using as few components as needed: - A client computer to SSH into the server - A Ubuntu server VM to SSH into - Caddy - Docker - NodeJS (with Vite and SvelteKit) - GitHub **Getting a VM** Hetzner :) or Google Cloud or Azure or AWS or DigitalOcean **Users and SSH** If you use a desktop, you will usually only have 1 user account set up. You might not even know that computers support multiple users, like in a shared home computer. - Root user - Daily driver - App user The app user will be running most of the time, and the web server could have vulnerabilities where attackers could access the account and run any code they wish (aka RCE). It's therefore important to set the permissions on this app user properly so that even if this happens, the damage can only be minimal. **Web server** **Accessing the web server** **Attaching a domain** Cloudflare domain Cloudflare DNS IPv4 vs IPv6? Backups !!!