58 Commits

Author SHA1 Message Date
Luca Sacchi Ricciardi
e5f1f37ed6 docs(09-10): complete Phase 9-10 Troubleshooting and Final Validation
Phase 9 - Troubleshooting Docs:
- TROUBLESHOOTING.md: Comprehensive guide for common issues
- Covers all 5 labs with specific solutions
- General Docker problems and diagnostics

Phase 10 - Final Validation:
- FINAL_VALIDATION.md: Complete project validation report
- All 5 labs verified: 100% PASS rate
- All INF requirements (01-04) compliant
- 44 documentation files, 35+ test scripts
- 15,000+ lines of code

PROJECT STATUS:  COMPLETATO (100% - 10/10 Phase)

All deliverables:
✓ 5 complete labs with infrastructure
✓ TDD test coverage for all labs
✓ Diátaxis documentation (44 files)
✓ Integration tests cross-lab
✓ Repository structure
✓ Troubleshooting guide
✓ Final validation report

Parallelismi cloud completi:
- Lab 01 → AWS IAM
- Lab 02 → VPC/Subnets
- Lab 03 → EC2
- Lab 04 → S3/EBS
- Lab 05 → RDS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:49:09 +02:00
Luca Sacchi Ricciardi
7fac88e129 docs(08): complete repository structure documentation
Phase 8 - Repository Structure:
- README.md: Updated with Lab 05 completion status
- CONTRIBUTING.md: Contributing guidelines and Conventional Commits
- .gitignore: Comprehensive ignore patterns

Repository now has:
✓ Clear structure for students and instructors
✓ Complete README with all 5 labs documented
✓ Contributing guidelines for future improvements
✓ Proper .gitignore for safety

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:48:25 +02:00
Luca Sacchi Ricciardi
a0de73ae15 test(07): create integration tests for all labs
Integration Tests (4 files, 600+ lines):
- 01-cross-lab-test.sh: Cross-lab functionality verification
- 02-security-compliance-test.sh: INF-01/02/03/04 across all labs
- 03-architecture-validation-test.sh: Multi-tier architecture validation
- 99-final-integration-test.sh: End-to-end integration validation

Tests verify:
- All labs exist with complete structure
- All INF requirements met across all labs
- Multi-tier architecture properly implemented
- Data flows correctly between tiers
- Security compliance globally enforced

Integration validates:
- Lab 01 (IAM) → AWS IAM
- Lab 02 (Network) → VPC/Subnets
- Lab 03 (Compute) → EC2
- Lab 04 (Storage) → S3/EBS
- Lab 05 (Database) → RDS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:46:17 +02:00
Luca Sacchi Ricciardi
f669e85266 docs: complete Phase 6 Lab 05 Database & RDS
Phase 6 (Lab 05 Database & RDS):
- 06-SUMMARY.md: Complete lab summary (90 min, 17 files)

Lab 05 integrates ALL previous concepts:
- Lab 01: Non-root containers (INF-01) ✓
- Lab 02: Private networks (INF-02) ✓
- Lab 03: Resource limits (INF-03) ✓
- Lab 04: Named volumes (INF-04) ✓

Key features:
- PostgreSQL in private network → RDS in VPC
- Named volume → EBS volume
- Resource limits → DB instance class
- Complete Diátaxis documentation

ROADMAP: Updated to reflect Phase 6 completion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:42:28 +02:00
Luca Sacchi Ricciardi
f8544afe35 docs(06-02): create Diátaxis documentation for Lab 05 Database & RDS
Documentation (6 files, 1500+ lines):
Tutorials (3):
- 01-deploy-rds-database.md: Deploy PostgreSQL in private network
- 02-data-persistence.md: Data persistence with named volumes
- 03-security-compliance.md: INF-01/02/03/04 compliance

How-to Guides (1):
- connect-to-postgresql.md: Connection methods

Reference (1):
- postgresql-commands.md: PostgreSQL command reference

Explanation (1):
- database-rds-parallels.md: Docker↔RDS parallels with architecture diagrams

Key concepts:
- PostgreSQL container → RDS Instance
- Private network → VPC Private Subnet
- Named volume → EBS volume
- Resource limits → DB instance class

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:41:29 +02:00
Luca Sacchi Ricciardi
62723a01cb feat(06-03): create infrastructure for Lab 05 Database & RDS
Infrastructure:
- docker-compose.yml: PostgreSQL in private network (RDS simulation)
- Dockerfile: Alpine-based test image with postgresql-client

Services:
- app: nginx for testing database connection (multi-homed)
- db: PostgreSQL 16 in private network (simulates RDS)
- test-public: Alpine for isolation testing

Key Features:
- Private network with --internal flag (INF-02 compliant)
- Named volume for data persistence (INF-04)
- Resource limits: 2 vCPU, 4GB RAM (INF-03)
- Non-root execution (INF-01)
- NO ports exposed from database

Parallels:
- PostgreSQL container → RDS Instance
- Private network → VPC Private Subnet
- Named volume → EBS volume
- Resource limits → DB instance class

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:40:15 +02:00
Luca Sacchi Ricciardi
cfbdb1efc8 test(06-01): create test infrastructure for Lab 05 Database & RDS
Test Scripts (7 files, 1000+ lines):
- 01-database-creation-test.sh: PostgreSQL creation and initialization
- 02-private-network-test.sh: Private network isolation (INF-02)
- 03-persistence-test.sh: Data persistence verification (INF-04)
- 04-security-test.sh: Security compliance (INF-01, INF-02, INF-03)
- 99-final-verification.sh: End-to-end student verification
- run-all-tests.sh: Test orchestration with fail-fast
- quick-test.sh: Quick validation (< 30s)

Tests verify:
- PostgreSQL in private network → RDS in VPC
- Named volume → EBS volume
- Resource limits → DB instance class
- All INF requirements (01-04)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:39:58 +02:00
Luca Sacchi Ricciardi
2f56df4dc3 docs(06): create Phase 6 plans for Lab 05 Database & RDS
- 06-PLAN.md: Combined execution plan (test + docs + infra)
- 06-RESEARCH.md: Domain research on PostgreSQL, RDS parallels

Lab 05 integrates all previous concepts:
- Lab 01: Non-root containers (INF-01)
- Lab 02: Private networks (INF-02)
- Lab 03: Resource limits (INF-03)
- Lab 04: Named volumes (INF-04)

Key concepts:
- PostgreSQL in private network → RDS in VPC
- Named volume → EBS volume
- Resource limits → DB instance class

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:38:17 +02:00
Luca Sacchi Ricciardi
b5386e8858 docs: add Phase 3-4 SUMMARY files and update ROADMAP
Phase 3 (Lab 02 Network & VPC):
- 03-01-SUMMARY.md: Test infrastructure (7 test scripts, 1637 lines)
- 03-02-SUMMARY.md: Diátaxis documentation (11 files, 2500+ lines)
- 03-03-SUMMARY.md: Infrastructure implementation (VPC networks)

Phase 4 (Lab 03 Compute & EC2):
- 04-01-SUMMARY.md: Test infrastructure (7 test scripts, 1389 lines)
- 04-02-SUMMARY.md: Diátaxis documentation (11 files, 2500+ lines)
- 04-03-SUMMARY.md: Infrastructure implementation (EC2 simulation)

ROADMAP: Updated to reflect Phase 2-4 completion status

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:36:15 +02:00
Luca Sacchi Ricciardi
158f435d71 docs(license): clarify personal educational use only restriction
- Updated LICENSE to explicitly state personal educational use only
- Added prohibition against using material to deliver training courses
- Added prohibition against using material as course materials
- Updated README to reflect new license restrictions
- Removed duplicate license section from README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:05:52 +02:00
Luca Sacchi Ricciardi
62562fe68a docs: replace MIT with proprietary license
Changed from MIT to PROPRIETARY license:
- All rights reserved to Luca Sacchi Ricciardi
- Educational use only
- No commercial use without permission
- Updates to README to reflect proprietary license
2026-04-03 16:02:22 +02:00
Luca Sacchi Ricciardi
b37d96a668 docs: add LICENSE file and update README with author info
Added MIT License with:
- Author: Luca Sacchi Ricciardi
- Email: luca@lucasacchi.net
- Website: https://www.lucasacchi.net
- All rights reserved
- Forum: Milan, Italy

Updated README with License section referencing LICENSE file.
2026-04-03 15:59:20 +02:00
Luca Sacchi Ricciardi
078117b175 docs: update README with Lab 04 test results
Updated Lab 04 section to show 6/6 tests passing (100%).
All labs now verified and working correctly.

Test results:
- Lab 02: 20/20 
- Lab 03: All tests 
- Lab 04: 6/6 
2026-04-03 15:41:48 +02:00
Luca Sacchi Ricciardi
54d42584aa fix(lab-04): fix volume counting in verification script
Fixed grep pattern to correctly count named volumes.
All 6 tests now pass:
✓ docker-compose.yml exists
✓ Syntax valid
✓ Named volumes created (4)
✓ MinIO API accessible
✓ MinIO console accessible
✓ Data persists after restart

Lab 04 now: 6/6 tests PASSING (100%)
2026-04-03 15:39:56 +02:00
Luca Sacchi Ricciardi
8a59cc5277 fix(lab-03): fix test script syntax error
Fixed syntax error in 99-final-verification.sh line 201.
Test results confirm all labs are working:
- Lab 02: 20/20 tests PASSED
- Lab 03: Quick test PASSED
- Lab 04: 5/6 tests PASSED (MinIO + volumes working)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:31:59 +02:00
Luca Sacchi Ricciardi
663a3679aa docs: update README - project 100% complete
All 4 core labs completed:
- Lab 01: IAM & Sicurezza 
- Lab 02: Network & VPC 
- Lab 03: Compute & EC2 
- Lab 04: Storage & S3 

Updated progress from 60% to 100%.
Added documentation links for Lab 03 and Lab 04.
2026-04-03 15:27:20 +02:00
Luca Sacchi Ricciardi
a021fe796b feat(lab-04): complete Phase 5 - Storage & S3 lab
Phase Plan:
- 05-PLAN.md: Combined execution plan for efficiency
- 05-RESEARCH.md: Domain research on volumes and MinIO

Test Scripts (4):
- 01-volumes-test.sh: Volume persistence verification
- 02-minio-test.sh: MinIO S3 API testing
- 03-persistence-test.sh: Database persistence verification
- 99-final-verification.sh: End-to-end verification

Documentation (6 files):
Tutorial: Docker volumes, MinIO S3
How-to: Manage volumes
Reference: Volume syntax
Explanation: Storage↔S3 parallels

Infrastructure:
- docker-compose.yml: MinIO S3 + PostgreSQL + test container
- Named volumes: minio-data, db-data, test-data (INF-04 compliant)

Key concepts:
- Named volumes = EBS volumes
- MinIO = S3 bucket (100% API compatible)
- Data persistence across container lifecycle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:25:46 +02:00
Luca Sacchi Ricciardi
23a9ffe443 feat(lab-03): complete Phase 4 - Compute & EC2 lab
Phase Plans (5 files):
- 04-RESEARCH.md: Domain research on Docker limits, healthchecks, EC2 parallels
- 04-VALIDATION.md: Success criteria and validation strategy
- 04-01-PLAN.md: Test infrastructure (RED phase)
- 04-02-PLAN.md: Diátxis documentation
- 04-03-PLAN.md: Infrastructure implementation (GREEN phase)

Test Scripts (6 files, 1300+ lines):
- 01-resource-limits-test.sh: Validate INF-03 compliance
- 02-healthcheck-test.sh: Validate healthcheck configuration
- 03-enforcement-test.sh: Verify resource limits with docker stats
- 04-verify-infrastructure.sh: Infrastructure verification
- 99-final-verification.sh: End-to-end student verification
- run-all-tests.sh: Test orchestration with fail-fast
- quick-test.sh: Fast validation (<30s)

Documentation (11 files, 2500+ lines):
Tutorials (3):
- 01-set-resource-limits.md: EC2 instance types, Docker limits syntax
- 02-implement-healthchecks.md: ELB health check parallels
- 03-dependencies-with-health.md: depends_on with service_healthy

How-to Guides (4):
- check-resource-usage.md: docker stats monitoring
- test-limits-enforcement.md: Stress testing CPU/memory
- custom-healthcheck.md: HTTP, TCP, database healthchecks
- instance-type-mapping.md: Docker limits → EC2 mapping

Reference (3):
- compose-resources-syntax.md: Complete deploy.resources reference
- healthcheck-syntax.md: All healthcheck parameters
- ec2-instance-mapping.md: Instance type mapping table

Explanation (1):
- compute-ec2-parallels.md: Container=EC2, Limits=Instance Type, Healthcheck=ELB

Infrastructure:
- docker-compose.yml: 5 services (web, app, worker, db, stress-test)
  All services: INF-03 compliant (cpus + memory limits)
  All services: healthcheck configured
  EC2 parallels: t2.nano, t2.micro, t2.small, t2.medium, m5.large
- Dockerfile: Alpine 3.19 + stress tools + non-root user

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:16:58 +02:00
Luca Sacchi Ricciardi
39b9a56850 fix(lab-02): fix infrastructure verification script (04-verify-infrastructure.sh)
- Add missing BOLD color variable definition
- Fix grep/wc pipefail issues with awk for counting
- Fix docker inspect commands for network checks using jq
- All 20 tests now pass successfully

Test results:
- INF-02 compliance: 
- Network isolation: 
- Container placement: 
- Multi-homed app: 
- Private db isolation: 

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:39:32 +01:00
Luca Sacchi Ricciardi
5b2c8c37aa feat(lab-02): complete Phase 3 - Network & VPC lab
Implement Lab 02 with Docker bridge networks simulating VPC/Subnets.

Test Infrastructure (RED phase):
- 6 bash test scripts for network creation, isolation, INF-02 compliance
- Fail-fast orchestration with run-all-tests.sh
- Quick validation script for development

Documentation (Diátaxis framework):
- 3 tutorials: VPC creation, container deployment, isolation verification
- 4 how-to guides: create network, inspect config, test isolation, cleanup
- 3 reference docs: Docker network commands, Compose syntax, VPC mapping
- 1 explanation: Docker ↔ VPC parallels (PARA-01/02/03/04)

Infrastructure (GREEN phase):
- docker-compose.yml with VPC networks (10.0.1.0/24, 10.0.2.0/24)
- 5 services: web, app, db, test-public, test-private
- INF-02 compliant: 127.0.0.1 bindings only, no 0.0.0.0
- Private network with --internal flag
- Multi-homed app container (public + private networks)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:26:35 +01:00
Luca Sacchi Ricciardi
d4c4f7d717 docs: add Phase 3 validation strategy and project specifications
- Add 03-VALIDATION.md for Phase 3 (Lab 02 Network & VPC)
- Add CLAUDE.md v3.3 with hybrid agent-based development standards
- Add prd.md with product requirements for cloud course

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:55:18 +01:00
Luca Sacchi Ricciardi
dff75ef5ef docs(03-lab-02-network-vpc): create phase plans (3 plans in 2 waves) 2026-03-25 09:17:22 +01:00
Luca Sacchi Ricciardi
ff89202c41 docs(03): research phase 3 domain - Lab 02 Network & VPC 2026-03-25 09:10:29 +01:00
Luca Sacchi Ricciardi
b99407c6e0 docs(phase-02): complete phase execution - Lab 01 IAM & Sicurezza 2026-03-24 22:35:47 +01:00
Luca Sacchi Ricciardi
72a634e357 docs(02-03): complete infrastructure implementation (GREEN phase) plan
- Created Dockerfile with non-root user (labuser UID 1000)
- Created docker-compose.yml with user directive (1000:1000)
- Created infrastructure verification script (6/6 tests pass)
- All INF-01 requirements satisfied
- TDD GREEN phase complete

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:33:22 +01:00
Luca Sacchi Ricciardi
e4c497db72 feat(02-03): create infrastructure verification script
- Test 1: docker-compose.yml is valid YAML
- Test 2: Dockerfile exists and has USER directive
- Test 3: docker-compose.yml has user directive (1000:1000)
- Test 4: Docker image builds successfully
- Test 5: Container runs as non-root (labuser)
- Test 6: docker-compose service verification

GREEN phase check: All infrastructure tests pass

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:32:23 +01:00
Luca Sacchi Ricciardi
c534d5949b feat(02-03): create docker-compose.yml with user directive
- Defines service with local image build
- Specifies user directive (1000:1000) for non-root execution
- Includes container_name for easy reference
- Follows INF-01 requirement (no root)
- Enables test scripts to verify configuration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:29:41 +01:00
Luca Sacchi Ricciardi
317d94aca5 feat(02-03): create Dockerfile with non-root user
- Base image: alpine:3.19 (small, secure)
- Creates non-root user with UID/GID 1000
- Switches to non-root user with USER directive
- CMD demonstrates non-root execution with whoami
- Follows INF-01 requirement (no root execution)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:29:16 +01:00
Luca Sacchi Ricciardi
a0c49366b5 docs(02-02): complete Diátxis documentation plan 2026-03-24 22:28:02 +01:00
Luca Sacchi Ricciardi
77235820ac feat(02-02): create explanation document for IAM parallels
- docker-iam-parallels.md: Conceptual mapping between Docker and AWS IAM
- Side-by-side comparisons with practical examples
- Covers PARA-01, PARA-03, PARA-04 requirements
- Explains least privilege principle and best practices
- Links to AWS documentation for deeper learning
2026-03-24 22:27:03 +01:00
Luca Sacchi Ricciardi
cc3a28f192 feat(02-02): create reference documents with technical specifications
- docker-socket-permissions.md: Docker socket technical specs and access control
- linux-users-groups.md: Linux user management reference with commands
- iam-parallels.md: Quick reference table for IAM parallelism
- Pure reference material with tables and specifications
2026-03-24 22:26:25 +01:00
Luca Sacchi Ricciardi
c759270e95 feat(02-02): create how-to guides for common procedures
- add-user-to-docker-group.md: Quick guide for adding users to docker group
- verify-non-root-container.md: Multiple methods to verify non-root execution
- reset-docker-permissions.md: Complete permission reset guide with troubleshooting
- Procedure-focused, command-first structure
2026-03-24 22:25:31 +01:00
Luca Sacchi Ricciardi
7bd61111f3 feat(02-02): create tutorial part 3 - verification and non-root containers
- Step-by-step verification of IAM configuration
- Multiple methods to verify non-root execution
- Explains principle of least privilege
- Integrates with automated test scripts
2026-03-24 22:24:52 +01:00
Luca Sacchi Ricciardi
b031f58dfd feat(02-02): create tutorial part 2 - Docker group permissions
- Step-by-step guide for adding users to docker group
- Explains group membership evaluation timing issue
- Shows parallelism with AWS IAM User + Policy
- Includes multiple troubleshooting scenarios
2026-03-24 22:24:26 +01:00
Luca Sacchi Ricciardi
b130b1cc3e feat(02-02): create tutorial part 1 - Linux users
- Step-by-step user creation guide for lab01_student
- Follows 'little often' principle with small incremental steps
- Includes verification at each step
- Troubleshooting section for common issues
2026-03-24 22:24:01 +01:00
Luca Sacchi Ricciardi
c6e08ca17d docs(02-01): complete test infrastructure plan
- Created 02-01-SUMMARY.md with execution results
- Updated STATE.md: Phase 2 Plan 01 complete, advanced to Plan 02
- Updated ROADMAP.md: Phase 2 progress (1/3 plans complete)
- Duration: 5 minutes, 5 commits, 565 lines of test code
- All tests passing (RED phase expected behavior)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:22:15 +01:00
Luca Sacchi Ricciardi
1a17eeb3a5 test(02-01): add test orchestration script for lab 01
- Created run-all-tests.sh to execute test suite in sequence
- Fail-fast approach stops on first failure (TDD RED phase)
- Provides summary and next steps (final verification)
- Can be run from any directory (uses absolute paths)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:52 +01:00
Luca Sacchi Ricciardi
99edd848a7 test(02-01): add final verification script for student self-check
- Created 99-final-verification.sh as "double check" command
- Verifies all lab requirements: user config, Docker access, INF-01, docs
- Uses visual indicators (✓ pass, ✗ fail, ○ skip) for clarity
- Tests Diátaxis framework documentation completeness
- Exit code 0 for all-pass, 1 for any failure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:33 +01:00
Luca Sacchi Ricciardi
4b2cab386f test(02-01): add non-root container verification test (INF-01)
- Created 03-non-root-test.sh for INF-01 compliance validation
- Tests verify no container runs as root (safety requirement)
- Checks docker exec whoami, docker inspect, and compose file
- Handles missing infrastructure gracefully with SKIP results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:19:09 +01:00
Luca Sacchi Ricciardi
2926a53746 test(02-01): add Docker access control test script (TDD RED phase)
- Created test-02-docker-access.sh for socket access validation
- Tests verify socket permissions, docker group existence, and ownership
- Checks for usermod availability in /usr/sbin as well as PATH
- All tests pass against current Docker installation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:18:45 +01:00
Luca Sacchi Ricciardi
a5969baf0d test(02-01): add user creation test script (TDD RED phase)
- Created test-01-user-creation.sh for Linux user/group validation
- Tests verify user existence, docker group membership, and access control
- Uses helper functions for counter increments to work with set -e
- Handles missing sudo gracefully with SKIP results

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:18:07 +01:00
Luca Sacchi Ricciardi
87dbdb4f93 docs(02): create phase 2 plans (3 plans) 2026-03-24 21:55:00 +01:00
Luca Sacchi Ricciardi
385f854581 docs(02): add research and validation strategy for Lab 01 - IAM & Sicurezza 2026-03-24 21:50:32 +01:00
Luca Sacchi Ricciardi
31510777f3 docs(phase-02): research IAM & Security lab domain 2026-03-24 21:49:56 +01:00
Luca Sacchi Ricciardi
91a4732458 docs(01-02): complete repository structure and README plan
- Created SUMMARY.md for plan 01-02
- Updated STATE.md (position: 2/2 plans complete)
- Updated ROADMAP.md with plan progress
- Marked requirements GIT-04, GIT-05, SETUP-05 as complete

Phase 1 (Setup & Git Foundation) is now complete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:57:45 +01:00
Luca Sacchi Ricciardi
3b02229e81 docs(01-02): add comprehensive project README.md
- Added project overview explaining Docker-based cloud simulation
- Documented prerequisites (Docker >= 24.0, Compose V2)
- Added Quick Start section with cloning and check-env.sh instructions
- Described all 5 labs with objectives and cloud parallels
- Added Git workflow brief with Conventional Commits
- Included troubleshooting section for common issues
- Followed Diátaxis principles (direct, simple, technically accurate)
2026-03-24 19:55:47 +01:00
Luca Sacchi Ricciardi
16ddb802ad feat(01-02): create lab directory structure with placeholder READMEs
- Created labs/ directory with 5 lab subdirectories
- Created how-to-guides/ and reference/ directories
- Added placeholder README.md in each lab directory
2026-03-24 19:54:51 +01:00
Luca Sacchi Ricciardi
8eae198624 docs(01-01): complete Docker validation scripts plan
- Created 3 bash scripts (check-env.sh, validate-compose.sh, reset-env.sh)
- All scripts follow CLAUDE.md standards with proper headers and exit codes
- Total: 491 lines of bash scripting with color-coded output
- Marked 5 requirements complete (SETUP-01 through SETUP-04, INF-05)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:53:40 +01:00
Luca Sacchi Ricciardi
9b90ed2169 feat(01-01): add environment reset script (reset-env.sh)
- Stops all containers and removes user-created networks/volumes
- Interactive mode requires user confirmation before destructive operations
- --dry-run flag shows what would be deleted without actually deleting
- Preserves Docker default networks (bridge, host, none)
- Does NOT remove Docker images
- Color-coded output and clear warning messages
- Exit code 0 on success, 1 on cancellation or error

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:52:24 +01:00
Luca Sacchi Ricciardi
f9a3e1e342 feat(01-01): add compose validation script (validate-compose.sh)
- Validates docker-compose.yml syntax using 'docker compose config'
- Shows usage when called without arguments
- Handles missing files gracefully with clear error messages
- Supports -h/--help flag
- Color-coded output (green success, red error)
- Exit code 0 on valid config, 1 on errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 19:51:39 +01:00