About this project

This is a personal learning lab designed to learn the entire cycle of Linux server "construction → operation verification → anomaly investigation → recovery." It is not intended to demonstrate professional operational experience; instead, it follows a policy of clearly separating what the author has executed from what remains unimplemented. The license is MIT, and the author is Noriyuki Shimada. The core configuration consists of an authenticated Flask app (returning status using psutil within a container) and nginx as the entry point, launched via Docker Compose. Access is via 127.0.0.1:8080 to verify health responses and the difference between 200 and 401 status codes based on Basic authentication. The monitoring system includes a detailed configuration where Prometheus periodically collects data from the app and node-exporter, Grafana handles visualization, and log aggregation (Alloy / Loki) and notifications via Alertmanager are included. It is explicitly noted that host-wide metrics should be viewed via node-exporter. Ansible is used for construction automation, with foundation.yml (infrastructure construction) containing roles such as common / docker, and site.yml (full stack) including monitoring. Records of idempotency verification and infrastructure application to both Ubuntu and AlmaLinux are maintained. Additionally, operational topics such as recovery procedures, change management, SLOs, and error budgets are covered. Verification is automated via GitHub Actions with python-check and full-stack-e2e workflows, with a record of 167 pytest cases. The evidence ledger (docs/evidence) manages execution date, environment, target commit, results, and unimplemented scopes. On 2026-08-22, the full-stack E2E saw 23 IDs PASS for bulk construction, idempotency, recovery, and restoration. On 2026-09-04, infrastructure construction measurements for Ubuntu and AlmaLinux were recorded, and from 2026-09-07 to 08, manual construction on Ubuntu via Hyper-V (static IP, SSH key authentication, sudo, UFW, time synchronization, automatic updates) and the launch of a minimal Docker configuration were recorded. Results are disclosed in detail, such as PASS 14 / PASS-ADAPTED 4 / PARTIAL 2 / NOT RUN 1. Conversely, actual application and deletion on AWS, actual delivery to Slack, long-term operation of the monitoring lab, and restoration from host failure (D-2) are explicitly marked as NOT RUN, with separate measurement plans provided. Regarding manual records, it is noted that these are OS-only exercises not using Ansible or the repository's code and are not for specific project acceptance. It is also noted that AI assisted with procedure guidance, image reading, and record editing, and that independent reproduction or long-term operation is outside the scope. The documentation is extensive for learners, including a beginner's learning guide (5 steps starting from a minimum of 2 services), a linear learning path from Level 0 to 5, a 408-word server basic glossary, a server construction keyword list, a beginner's practice record template, project packs (Requirements → Design values → Construction → Testing → Evidence → Operation → Change), design decisions, case studies learned from failure, and an operational kit for independent progress. The scope of AI usage is also disclosed, explaining the policy of leaving records of what the author can execute/explain themselves, the AI-assisted scope, and the unverified scope.