Skip to content

Commit d8e912e

Browse files
committed
docs: Phase 2 Lab 04 complete -- 50/120 labs (41.7%), CHANGELOG v1.6.0, Sprint 10 done
1 parent b7bff03 commit d8e912e

File tree

2 files changed

+79
-12
lines changed

2 files changed

+79
-12
lines changed

CHANGELOG.md

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,77 @@ This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
88

99
## [Unreleased]
1010

11-
### Planned — Next Up (Phase 2 Lab 03 Sprint)
12-
- Phase 2 Lab 03 (Advanced Features) for: Nextcloud, Mattermost, Jitsi, iRedMail, Zammad
11+
### Planned — Next Up (Phase 2 Lab 05 Sprint)
12+
- Phase 2 Lab 05 (Advanced Integration) for: Nextcloud, Mattermost, Jitsi, iRedMail, Zammad
1313
- `it-stack-installer` operational scripts (`clone-all-repos.ps1`, `update-all-repos.ps1`, `install-tools.ps1`)
1414

1515
---
1616

17+
## [1.6.0] — 2026-03-01
18+
19+
### Added — Phase 2 Lab 04: SSO Integration (all 5 Phase 2 modules)
20+
21+
Lab progress: 45/120 → 50/120 (37.5% → 41.7%). Phase 2 Lab 04 (SSO Integration) complete for all 5 Phase 2 modules.
22+
23+
| Module | Keycloak Port | SSO Protocol | Key OIDC / JWT Config |
24+
|--------|--------------|--------------|----------------------|
25+
| Nextcloud (06) | 8084 | OIDC (user_oidc) | `NC_oidc_login_provider_url`, client `nextcloud`, secret `nextcloud-secret-04` |
26+
| Mattermost (07) | 8085 | OIDC | `MM_OPENIDSETTINGS_ENABLE=true`, `MM_OPENIDSETTINGS_ID=mattermost-client` |
27+
| Jitsi (08) | 8086 | JWT / JWKS | `JWT_ASAP_KEYSERVER` → Keycloak JWKS, `TOKEN_AUTH_URL` → Keycloak auth endpoint |
28+
| iRedMail (09) | 8087 | LDAP Federation | Keycloak LDAP user-federation provider registered via components API |
29+
| Zammad (11) | 8088 | OIDC | Zammad OIDC channel created via `/api/v1/channels`, client `zammad` |
30+
31+
#### Architecture Notes (Lab 04)
32+
33+
```
34+
Theme: Embedded Keycloak container per module (quay.io/keycloak/keycloak:24.0, start-dev)
35+
Realm: it-stack (created per test script via Keycloak admin API)
36+
Credentials: admin / Lab04Admin! | DB: Lab04Password! | Redis: Lab04Redis!
37+
Nextcloud: 5-container stack; user_oidc env vars; OIDC discovery endpoint verified
38+
Mattermost: 4-container stack; MM_OPENIDSETTINGS_* env; API config verified
39+
Jitsi: 6-container stack; JWT_ASAP_KEYSERVER → Keycloak JWKS certs endpoint
40+
iRedMail: 4-container stack; Keycloak on mail-app-net + mail-dir-net; LDAP federation
41+
Zammad: 10-container stack; Zammad OIDC channel configured via Rails API
42+
```
43+
44+
#### CI Workflow Updates
45+
46+
All 5 Phase 2 CI workflows updated — `lab-04-smoke` job appended to each (after `lab-03-smoke`), with Keycloak health wait (`/health/ready`) and module-specific service wait conditions. `continue-on-error: true` on all smoke jobs.
47+
48+
---
49+
50+
## [1.5.0] — 2026-03-01
51+
52+
### Added — Phase 2 Lab 03: Advanced Features (all 5 Phase 2 modules)
53+
54+
Lab progress: 40/120 → 45/120 (33.3% → 37.5%). Phase 2 Lab 03 (Advanced Features) complete for all 5 Phase 2 modules.
55+
56+
| Module | Key Advanced Features | Key Lab 03 Tests |
57+
|--------|----------------------|------------------|
58+
| Nextcloud (06) | cron worker container, PHP tuning (512M), Redis `allkeys-lru`, trusted proxies | `backgroundjobs_mode=cron` via occ, `PHP_MEMORY_LIMIT=512M` in env, memory limit 1G |
59+
| Mattermost (07) | MinIO S3 storage, `MaxFileSize=524288000` (500MB), read/write timeout 300s, login retry limit | `MM_FILESETTINGS_MAXFILESIZE` in env + API, `DriverName=amazons3` in config |
60+
| Jitsi (08) | JWT authentication (`APP_SECRET=JitsiJWT03!`), coturn TURN server, guest access | `ENABLE_AUTH=1`, `AUTH_TYPE=jwt`, `APP_ID=jitsi` in web+prosody env, TURN :3478 |
61+
| iRedMail (09) | DKIM signing (`ENABLE_DKIM=1`, selector=lab), LDAP readonly bind, SMTP STARTTLS | DKIM keys in `/opt/dkim/`, STARTTLS in EHLO response, resource limit 1G |
62+
| Zammad (11) | `RAILS_MAX_THREADS=5`, `WEB_CONCURRENCY=2`, ES indices, Redis `allkeys-lru` | `RAILS_MAX_THREADS=5` in railsserver env, `zammad_*` indices in ES, resource limit 2G |
63+
64+
#### Architecture Notes (Lab 03)
65+
66+
```
67+
Theme: Resource limits on all containers + module-specific advanced production features
68+
Nextcloud: 4-container stack: db+redis+app+cron; cron replaces ajax background jobs
69+
Mattermost: 5-container stack adds MinIO S3; MM_FILESETTINGS_DRIVERNAME=amazons3
70+
Jitsi: 5-container stack adds JWT auth layer; ENABLE_GUESTS=1 allows anonymous after auth
71+
iRedMail: 3-container stack; DKIM keys generated at /opt/dkim/; POSTFIX relays via mailhog
72+
Zammad: 7-container stack (init+railsserver+scheduler+websocket+nginx+pg+es+redis+smtp)
73+
RAILS_MAX_THREADS=5, WEB_CONCURRENCY=2 tune Ruby concurrency
74+
```
75+
76+
#### CI Workflow Updates
77+
78+
All 5 Phase 2 CI workflows updated — `lab-03-smoke` job appended to each (after `lab-02-smoke`), with compose-specific wait conditions and `continue-on-error: true`.
79+
80+
---
81+
1782
## [1.4.0] — 2026-02-28
1883

1984
### Added — Phase 2 Lab 02: External Dependencies (all 5 Phase 2 modules)

docs/IT-STACK-TODO.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -306,17 +306,17 @@ All 5 repos have:
306306

307307
| Module | Lab 01 | Lab 02 | Lab 03 | Lab 04 | Lab 05 | Lab 06 |
308308
|--------|--------|--------|--------|--------|--------|--------|
309-
| 06 · Nextcloud | [x] | [x] | [ ] | [ ] | [ ] | [ ] |
310-
| 07 · Mattermost | [x] | [x] | [ ] | [ ] | [ ] | [ ] |
311-
| 08 · Jitsi | [x] | [x] | [ ] | [ ] | [ ] | [ ] |
309+
| 06 · Nextcloud | [x] | [x] | [x] | [x] | [ ] | [ ] |
310+
| 07 · Mattermost | [x] | [x] | [x] | [x] | [ ] | [ ] |
311+
| 08 · Jitsi | [x] | [x] | [x] | [x] | [ ] | [ ] |
312312

313313
### Category 04: Communications
314314

315315
| Module | Lab 01 | Lab 02 | Lab 03 | Lab 04 | Lab 05 | Lab 06 |
316316
|--------|--------|--------|--------|--------|--------|--------|
317-
| 09 · iRedMail | [x] | [x] | [ ] | [ ] | [ ] | [ ] |
317+
| 09 · iRedMail | [x] | [x] | [x] | [x] | [ ] | [ ] |
318318
| 10 · FreePBX | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
319-
| 11 · Zammad | [x] | [x] | [ ] | [ ] | [ ] | [ ] |
319+
| 11 · Zammad | [x] | [x] | [x] | [x] | [ ] | [ ] |
320320

321321
### Category 05: Business Systems
322322

@@ -342,7 +342,7 @@ All 5 repos have:
342342
| 19 · Zabbix | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
343343
| 20 · Graylog | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] |
344344

345-
**Lab Progress:** 40/120 (33.3%) — Phase 1 complete (30/120) ✅ · Phase 2 Lab 01 complete ✅ · Phase 2 Lab 02 complete for Nextcloud, Mattermost, Jitsi, iRedMail, Zammad ✅
345+
**Lab Progress:** 50/120 (41.7%) — Phase 1 complete (30/120) ✅ · Phase 2 Labs 01–04 complete ✅ · Phase 2 Lab 04 (SSO Integration) complete for Nextcloud, Mattermost, Jitsi, iRedMail, Zammad ✅
346346

347347
---
348348

@@ -468,11 +468,13 @@ All 5 repos have:
468468
| ~~Sprint 6~~ | ~~Phase 1 Lab 06 (production)~~ | ~~All 5 Lab 06 → Phase 1 complete~~|
469469
| ~~Sprint 7~~ | ~~Phase 2 Lab 01 (standalone)~~ | ~~nextcloud·mattermost·jitsi·iredmail·zammad Lab 01~~|
470470
| ~~Sprint 8~~ | ~~Phase 2 Lab 02 (external deps)~~ | ~~nextcloud·mattermost·jitsi·iredmail·zammad Lab 02~~|
471-
| Next session | Phase 2 Lab 03 (advanced features) | nextcloud·mattermost·jitsi·iredmail·zammad Lab 03 |
472-
| Sprint 9+ | Phase 2 Labs 04–06 | Phase 2 full lab progression |
471+
| ~~Sprint 9~~ | ~~Phase 2 Lab 03 (advanced features)~~ | ~~nextcloud·mattermost·jitsi·iredmail·zammad Lab 03~~|
472+
| ~~Sprint 10~~ | ~~Phase 2 Lab 04 (SSO integration)~~ | ~~nextcloud·mattermost·jitsi·iredmail·zammad Lab 04~~|
473+
| Next session | Phase 2 Lab 05 (integrations) | nextcloud·mattermost·jitsi·iredmail·zammad Lab 05 |
474+
| Sprint 11+ | Phase 2 Labs 06 + Phase 3 | Phase 2 full lab progression |
473475

474476
---
475477

476-
**Document Version:** 1.3
478+
**Document Version:** 1.5
477479
**Project:** IT-Stack | **Org:** it-stack-dev
478-
**Last Updated:** 2026-02-28 — Phase 2 Lab 02 complete (40/120 labs, 33.3%) — Sprint 8 done 🚀
480+
**Last Updated:** 2026-03-01 — Phase 2 Lab 04 complete (50/120 labs, 41.7%) — Sprint 10 done 🚀

0 commit comments

Comments
 (0)