Skip to content

Weather App Repository Operations

Weather App is the application workload used to validate secure delivery, container hardening, GitOps promotion, Kubernetes controls and observability practices. The repository keeps the application code close to its tests and image definitions while platform automation moves into dedicated project boundaries.

  • Directorypackages/
    • Directorybackend/ Backend API, validation, tests and Dockerfile
    • Directoryfrontend/ React UI, Nginx proxy configuration and Dockerfile
  • Directorytests/ Cypress and local E2E compose setup
  • Directoryansible/ VPS deployment automation retained for comparison and migration evidence
  • REPORT.md Detailed engineering report
  • Makefile Local bootstrap commands
Repository Responsibility
homelab-platform Platform automation, substrate evaluation, OPNsense, GitOps, observability and GOAD
gitlab-ci-templates Reusable GitLab CI components, templates and pipeline policy checks
portfolio-docs Documentation-as-code site, ADRs, runbooks, postmortems and freshness data
  1. Initialize the workstation tooling with make init.
  2. Install workspace dependencies with bun install.
  3. Run unit tests with bun run unit-test:all.
  4. Run backend integration tests with bun run integration-test:backend.

  5. Run local E2E tests with bun run e2e:local.
Terminal window
cd packages/backend
bun run start

Health endpoint:

http://localhost:3001/health

The repository contains the first Kubernetes implementation with Flux, Helm, Kyverno, NetworkPolicies, Traefik, WAF and monitoring. The current operating model standardizes new platform work around Argo CD while keeping the earlier implementation as migration evidence.

The Kubernetes distribution is intentionally not locked in this document. Talos, K3s and other options must be compared in an ADR before the platform baseline is finalized.

Operational pages live in this documentation site so service behavior, platform constraints and incident procedures stay close to the code they describe. README files stay concise and point to the structured documentation when a topic needs diagrams, runbooks or decision history.