Reusable, environment-agnostic infrastructure repository for deploying and operating applications across cloud, self-hosted, and homelab environments.
This repository is not a project-specific deployment repo. It is a reusable infrastructure platform meant to serve multiple applications and servers over time, supporting:
- Cloud deployments
- Self-hosted deployments
- Homelab deployments
- CI/CD
- Staging and Production environments
- Disaster Recovery
Application code and infrastructure code are always kept separate.
| Repository | Contains |
|---|---|
portfolio/ (example app repo) |
Next.js, .NET 10 |
infra/ (this repo) |
Infrastructure, Docker, Jenkins, Nginx, Bash scripts, SSL, deployment, documentation |
Infrastructure defined here must remain reusable regardless of which application consumes it.
See docs/roadmap.md for the full phase-by-phase roadmap, current status of each phase, the deployment journey (short/long term), and the history of roadmap revisions.
infra/
├── scripts/ # Host hardening + operations (harden-host.sh, backup/restore/update/cleanup/deploy)
├── docker/ # Compose stacks grouped by concern (e.g. portainer/)
├── jenkins/ # Dockerized Jenkins, configured as code (JCasC)
├── vars/ # Jenkins Shared Library (must live at repo root, see vars/README.md)
├── nginx/ # Reverse proxy, SSL termination, security headers
├── ssl/ # Certificate material (runtime only, not committed)
├── docs/ # Spec, roadmap, architecture, deployment, backup, restore, recovery docs
└── .github/ # Issue/PR templates, CI workflows
Each folder contains its own README.md describing its purpose and current status.
This project follows Semantic Versioning from the very first commit. See CHANGELOG.md for release history, docs/roadmap.md for the version-by-version roadmap (v0.1.0 → v1.0.0), and docs/project-specification.md for the full technical specification.
See CONTRIBUTING.md for commit conventions and the release process.