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 — reads dyos-db.json and regenerates the markdown tables in README.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.jsonreadme-gen.pyREADME.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:

  1. Open README.md, find the "Photo hosting" section.
  2. Review Immich (112k stars, updated 4 minutes ago) and PhotoPrism (40k stars, updated 4 minutes ago).
  3. Check the GitHub links, verify the update status indicators, and pick a candidate.
  4. 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.py and keep-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.