Self hosted

Welcome to the Self-Hosted section of PHP Systems Blog. Here, I share how I run my own infrastructure - from hosting web apps and game servers to managing automation, backups, and security. Whether you’re looking to reclaim control from the cloud or just enjoy the challenge of running your own services, you’ll find tutorials, walkthroughs, and real-world setups here.

Setting Up Oxidized for Router Backups with Docker Compose and Git

Learn how to set up Oxidized for automated router backups using Docker Compose and Git. This guide walks you through configuring Oxidized on a Raspberry Pi with SSD storage, making it easy to manage network device backups and version control with minimal setup.

Enhancing Firefly III Transaction Categorization Using SearxNG and Node-RED

Enhance Firefly III transaction categorization with Node-RED and SearxNG. Learn how to integrate AI with external search results to automatically assign budgets and categories, improving accuracy for unusual merchants. Step-by-step workflow and SearxNG setup included.

🧩 Setting Up VLANs in Your Home Lab with UniFi Switches and Access Points

Learn how to set up VLANs in your home lab using UniFi switches and AC Pro access points. Improve network security, organize your IoT and lab devices, and even automate configurations with Ansible and Terraform — all on your existing UniFi gear.

How to Renew GitLab SSL Certificates in a Proxmox LXC with Certbot and Cloudflare DNS

Learn how to renew your GitLab SSL certificate in a Proxmox LXC using Certbot and Cloudflare DNS validation. This guide covers TurnKey Linux, deploy hooks, and automated HTTPS renewal.

📸 Breaking Up with Google: Importing Your Google Photos into Immich

Now that we’ve installed Immich in our “Breaking Up with Google” series, it’s time to fill it with your photos. Learn how to export your Google Photos Takeout and import everything into Immich—albums, dates, and all.

📸 Breaking up with Google: Installing Immich and ImmichFrame with Docker Compose

Learn how to install Immich and ImmichFrame using Docker Compose to self-host your photos. This guide covers server setup, Redis, PostgreSQL, machine learning container, and a photo frame display — part of our Breaking Up with Google series.

Running Containers on a Synology DS1821+: How to Install Firefly III with Portainer

Take control of your personal finances with Firefly III on Synology. Learn how to deploy Firefly III via Portainer and manage your money securely at home.

Running Containers on a Synology DS1821+: Install Paperless-ngx with Portainer

Turn your Synology NAS into a powerful document management system with Paperless-ngx. Learn how to install and configure Paperless-ngx using Portainer and Docker.

Running Containers on a Synology DS1821+: Getting Started with Portainer

Turn your Synology DS1821+ into more than just a file server - run Docker containers with ease! Learn how to set up Docker, install Portainer as your first container, and unlock the full power of self-hosted applications.

Zen and the art of IPv6

Running Zen Internet with a Cisco router? You get a native /64 IPv6 by default—but request a /48 for proper subnetting. Enable IPv6, add Google’s DNS, and configure DHCPv6 PD with ipv6 dhcp client pd ZEN-PD. Test with ipv6.google.com. Clean, native IPv6—no tunnels, no hacks.

About the author

Tim Wilkes is a UK-based security architect with over 15 years of experience in electronics, Linux, and Unix systems administration. Since 2021, he's been designing secure systems for a telecom company while indulging his passions for programming, automation, and 3D printing. Tim shares his projects, tinkering adventures, and tech insights here - partly as a personal log, and partly in the hopes that others will find them useful.

Want to connect or follow along?

LinkedIn: [phpsytems]
Twitter / X: [@timmehwimmy]
Mastodon: [@timmehwimmy@infosec.exchange]


If you've found a post helpful, consider supporting the blog - it's a part-time passion that your support helps keep alive.