This is a quick overview. I will explain in more detail later.
- Obtain a server. This one is a virtual private server (VPS) provided by DigitalOcean.
- Buy a domain name. This one is provided by Squarespace. Set DNS records to point to the IP address of the VPS.
- Install software.
- LAMP stack: Linux, Apache, MySQL/MariaDB, and PHP.
- Your hosting provider should allow you to choose an OS during setup. This server runs Debian Linux.
- The other three should be available through your distro’s package manager.
- Firewall
- Install ufw.
- By default, deny incoming and allow outgoing.
- Allow ssh, http, https.
- WordPress
- This is a content management system (CMS). It helps you build a general purpose website or blog.
- Download the latest version and extract to a directory that’s managed by Apache.
- Configure Apache to direct traffic on the root domain name and www to the WP site.
- Set up the WP database in MariaDB.
- Copy and modify the sample wp-config.php file.
- Set ownership of the entire directory to www-data.
- Gitea
- This software can host your git repositories much like Github, but self-hosted.
- Install as another Apache site under the git subdomain.
- Create a database in MariaDB.
- Enable the system service so it runs automatically.
- Owncast
- This is free, open source, self-hosted livestreaming server software.
- Download and extract.
- Install ffmpeg through your package manager.
- Manually add to Apache configuration under the live subdomain.
- Manually create a system service.
- Open port 1935/tcp.
- Install OBS on your home PC.
- Optional: Mail Server
- While it’s difficult to send emails without being blocked by spam filters, at least it’s easy to receive mail on your VPS. This enables you to register yourself on your WordPress and Gitea instances with a self-hosted email address.
- Install postfix.
- Open port 25/tcp.
- Create a Linux user. Each user can receive mail at username@yourdomain.com.
- LAMP stack: Linux, Apache, MySQL/MariaDB, and PHP.
- Obtain a free TLS certificate from LetsEncrypt. Use Certbot to install it and automatically modify your Apache config.
- Finish configuring the installed software.
- Visit the WordPress site to do initial setup and create an account.
- Same thing on the Gitea site.
- Try pushing code to Gitea.
- Visit the /admin page on the Owncast site. Change the admin password, do customization, etc.
- Get the stream key and try livestreaming with OBS.
- Edit /etc/postfix/main.cf. Add TLS certificate info. Set “home_mailbox=Maildir/”. Restart postfix.

