The Problem
Finding self-hosted alternatives to everyday SaaS tools usually means scattered GitHub searches, stale blog posts, and manual upkeep of project links. A developer or small team evaluating self-hosting options needs a consolidated, current list of "only yours" cloud services without wading through outdated or abandoned projects.
What This Does
deploy-your-own-saas is a curated directory of self-hostable services, organized by category (VPN, music streaming, photo hosting, eBooks, office suites). The README.md renders the catalog as markdown tables with project names, descriptions, GitHub star counts, and last-update status indicators.
The repo includes automation to keep the list fresh: readme-gen.py generates the README tables, keep-alive.py performs scheduled maintenance, and dyos-db.json stores the structured product data. A GitHub Actions workflow in .github/workflows/maintenance.yml likely triggers these scripts on a schedule.
How It Is Wired
This is a documentation repo with light automation. The wiring has not been fully mapped for this repository yet—no internal call graph, entry points, or external-touch analysis is available from the provided structure.
readme-gen.py— readsdyos-db.jsonand regenerates the markdown tables inREADME.md. This is the primary content pipeline.keep-alive.py— likely performs repository maintenance tasks (e.g., checking link validity or updating timestamps).dyos-db.json— the source-of-truth data store for all listed services..github/workflows/maintenance.yml— CI/CD trigger for the Python scripts.MostWanted.md— additional content, likely a wishlist or high-demand services section..github/ISSUE_TEMPLATE/submit-new-product.md— structured template for community submissions.
The main content flow: dyos-db.json → readme-gen.py → README.md. A change to the JSON data propagates to the human-readable catalog through the generator script.
How To Use It
Setup: No build step exists. The repo is Python-based; running the scripts requires a Python interpreter.
Configuration: No environment variables or config files are documented. The data lives in dyos-db.json.
Running it:
# Regenerate README tables from the JSON data source
python readme-gen.py
# Run maintenance tasks
python keep-alive.py
The README itself is the primary deliverable—most users will consume it directly rather than run the scripts.
Real-World Use
A systems administrator evaluating self-hosted alternatives for a small business could use this catalog as a starting point. For example, to replace Google Photos:
- Open
README.md, find the "Photo hosting" section. - Review
Immich(112k stars, updated 4 minutes ago) andPhotoPrism(40k stars, updated 4 minutes ago). - Check the GitHub links, verify the update status indicators, and pick a candidate.
- Submit new tools via the issue template in
.github/ISSUE_TEMPLATE/submit-new-product.md.
Code Health & Issues
Deep analysis has not run for this repo yet. Based on the file structure:
- Med/SDLC — No test files detected — untested code paths across
readme-gen.pyandkeep-alive.py. - Med/SDLC — No LICENSE file — unclear usage and redistribution rights for the catalog content.
- Low — No CI pipeline beyond the maintenance workflow; no PR checks for data quality or script correctness.
The Bottom Line
This is a useful reference catalog, not a software product. The value sits in the curated data, not the thin Python automation around it. Anyone evaluating self-hosted services will find it practical; contributors should expect a simple JSON-edit workflow with minimal guardrails.