Bennett Purdy

Full Stack Web Developer

YuruPath

YuruPath is Earth Walker’s pleasant, performant and private web portal. It features a search engine, cloud storage and productivity suite, livestreaming service, collaborative cookbook, and a list of recommended software and websites.

Homepage for Yurupath, showing a variety of services available on the site.

Design Process

YuruPath was created as a way for me to control my own digital life, by deploying and managing the types of systems that I use every day on my own infrastructure. It started as a NextCloud deployment, and grew over time into a fully-featured web portal in the style of Google.

After deploying NextCloud, the next step was to create a homepage with a search engine. I chose SearxNG for the search engine, and created a simple homepage with a search box and links to the other services. I also added a resources page with links to some of the websites and channels that helped me learn how to build YuruPath and other tech projects.

When adding services to YuruPath, I always thought about what I and my family and friends using YuruPath would use on a regular basis. A search engine, a productivity suite, a private streaming service, and a cookbook emerged as the most in-demand services.

Technology

The technology underlying YuruPath is Docker, specifically Docker compose. YuruPath as a codebase is simply a set of Docker compose files that I update as new versions of the software I’m deploying are released. Self-hosting is how I was introduced to Docker and became familiar with its operation, and now I feel very comfortable deploying my own web apps through Docker.

I started YuruPath on a home server, but as family members and friends started using and depending on YuruPath, I decided that the infrastructure needed to be more reliable and robust, so I moved the system to a VPS. This has proven very reliable with minimal issues and good network speeds. Subsequently, I found a better hosting option and migrated the system again, relying on Docker volumes and Borg Backup to restore everything. I planned out the migration ahead of time and tested certain parts of it that I needed practice with. The migration went smoothly, with only a minor configuration setting in NextCloud needing to be tweaked to get everything working.

I used to use Nginx Proxy Manager as a reverse proxy to manage all the subdomains of YuruPath, but I switched to Traefik to take advantage of its declarative, configuration file-based setup. Being able to define my configuration as code in a repo is much better than managing everything in a GUI in this instance.

Visit website

View source code

Copyright © Bennett Purdy 2025