{"id":51784790,"url":"https://github.com/hjosugi/learning-platform-engineering","last_synced_at":"2026-07-20T16:31:38.923Z","repository":{"id":366151115,"uuid":"1275229621","full_name":"hjosugi/learning-platform-engineering","owner":"hjosugi","description":"Platform engineering learning repo for CI/CD, security, observability, WebTransport, and operations","archived":false,"fork":false,"pushed_at":"2026-06-20T12:48:57.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-20T14:34:19.867Z","etag":null,"topics":["devops","github-actions","learning","opentelemetry","security","webtransport"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hjosugi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-20T12:22:25.000Z","updated_at":"2026-06-20T12:49:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hjosugi/learning-platform-engineering","commit_stats":null,"previous_names":["hjosugi/learning-platform-engineering"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/hjosugi/learning-platform-engineering","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-platform-engineering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-platform-engineering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-platform-engineering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-platform-engineering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hjosugi","download_url":"https://codeload.github.com/hjosugi/learning-platform-engineering/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjosugi%2Flearning-platform-engineering/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35693381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"ssl_error","status_checked_at":"2026-07-20T02:08:09.736Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devops","github-actions","learning","opentelemetry","security","webtransport"],"created_at":"2026-07-20T16:31:36.523Z","updated_at":"2026-07-20T16:31:38.912Z","avatar_url":"https://github.com/hjosugi.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learning Platform Engineering\n\nCI/CD, containers, Kubernetes, NGINX, observability, security, release, and operational engineering for the learning repositories.\n\nLast verified: 2026-06-21\n\n## Development Environment\n\nIf Python, Node.js, or NGINX are missing locally, enter the Nix shell:\n\n```bash\nnix develop\n```\n\n## Runnable Starter Project\n\nRun a tiny observable service before adding Docker, Kubernetes, NGINX, or OpenTelemetry:\n\n```bash\npython3 projects/healthcheck-observability/server.py --demo\npython3 projects/healthcheck-observability/test_server.py\n```\n\n## Target Hands-On Projects\n\nNetwork protocol foundations:\n\n```bash\npython3 projects/network-protocol-lab/protocol.py\npython3 projects/network-protocol-lab/test_protocol.py\n```\n\nNGINX:\n\n```bash\npython3 projects/nginx-reverse-proxy/check_config.py\n```\n\nGitHub Actions:\n\n```bash\npython3 projects/github-actions-ci/check_workflow.py\n```\n\nRealtime networking:\n\n```bash\nnode projects/realtime-transport-fallback/transport.test.mjs\nnode projects/p2p-udp-gossip/peer.test.mjs\n```\n\nThese are real config files kept under `projects/` so they can be copied into active apps when ready.\n\nTo run the local HTTP service:\n\n```bash\npython3 projects/healthcheck-observability/server.py\n```\n\n## Why This Repo Exists\n\nFrontend, backend, and AI examples all need the same platform skills:\n\n- CI that catches breakage\n- repeatable local environments\n- safe secret handling\n- dependency and supply-chain hygiene\n- observable services\n- real-time networking experiments\n- TCP/UDP/HTTP protocol fundamentals\n- reverse proxy and edge-routing basics\n- simple deployment notes\n- runbooks for failures\n\nThis repo keeps those cross-cutting skills out of app-specific repos.\n\n## How To Use This Repo\n\nUse this as the operations notebook for the other learning repositories. A good study loop is:\n\n1. pick one small application from another repo\n2. add CI so build/test/check is repeatable\n3. put a local service or reverse proxy in front of it\n4. add logs, metrics, traces, and health checks\n5. write the release, rollback, and failure notes\n\nThe point is not to build a production platform. The point is to understand the smallest useful operational layer around an application.\n\n## Learning Path\n\n1. GitHub Actions CI\n2. Docker and Compose\n3. Kubernetes concepts\n4. Network foundations: TCP framing, UDP loss, HTTP idempotency, timeouts\n5. NGINX reverse proxy, static files, TLS, load balancing, WebSocket proxying\n6. OpenTelemetry traces, metrics, logs\n7. Real-time networking: SSE, WebSocket, and WebTransport\n8. OWASP Top 10 and secure coding basics\n9. dependency security and SBOM basics\n10. release and rollback checklist\n11. runbooks and incident notes\n\n## Planned Structure\n\n```text\nexamples/\n  github-actions/\n  docker-compose-postgres/\n  kubernetes-basic-web-api/\n  nginx-reverse-proxy/\n  realtime/\ndocs/\n  2026-learning-items.md\n  networking-foundations.md\n  nginx-reverse-proxy.md\n  realtime-networking.md\n  repository-profile.md\n  security-checklist.md\n  release-checklist.md\n  runbook-template.md\n```\n\n## What Belongs Here\n\n- CI/CD workflow templates\n- Docker, Compose, and Kubernetes learning examples\n- TCP/UDP/HTTP protocol drills\n- NGINX and reverse proxy notes\n- OpenTelemetry and logging/metrics/traces notes\n- release checklists, runbooks, and operational templates\n- defensive security checklist items that apply to every repo\n\n## What Belongs Elsewhere\n\n- P2P, WebRTC, and libp2p protocol mechanics belong here under realtime networking notes\n- ethical hacking labs belong in `learning-security-labs`\n- app-specific framework code belongs in frontend/backend/AI repos\n- Bazel and Nix experiments belong in `learning-build-systems`\n\n## Repository Profile\n\nSee [docs/repository-profile.md](docs/repository-profile.md) for GitHub description, topics, public safety notes, and first milestones.\n\n## License\n\n0BSD. You can use, copy, modify, and distribute this project for almost any purpose.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjosugi%2Flearning-platform-engineering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhjosugi%2Flearning-platform-engineering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjosugi%2Flearning-platform-engineering/lists"}