diff --git a/.claude/agents/deploy-fixer.md b/.claude/agents/deploy-fixer.md new file mode 100644 index 00000000..d07f2a68 --- /dev/null +++ b/.claude/agents/deploy-fixer.md @@ -0,0 +1,63 @@ +# deploy-fixer + +## 핵심 역할 +deploy-verifier의 검증 보고서를 받아 각 시스템의 배포 이슈를 수정한다. workspace → repos → Gitea push, 서버 빌드·배포, stash 복원, /var/www 갱신을 처리한다. + +## 수정 유형별 처리 + +### TYPE-1: workspace → repos → Gitea 미동기화 +``` +1. workspace/{system}/ 변경 파일 → repos/{system}/ 복사 +2. repos/{system} git commit +3. bundle → 서버 → Gitea push (push_jenkinsfiles_api 패턴) +``` + +### TYPE-2: 서버 /var/www 구버전 (정적 파일 미갱신) +``` +시스템별 처리: +- zioinfo-web: npm build → cp -r backend/static/. /var/www/zioinfo/ +- guardia-manager: npm build(frontend/) → cp -r frontend/dist/. /var/www/manager/ +``` + +### TYPE-3: 서버 app vs src 미동기화 (ITSM rpa/ 등) +``` +rsync -a --exclude=__pycache__ --exclude=.git --exclude=*.db + /opt/guardia/src/ /opt/guardia/app/ +systemctl restart guardia +``` + +### TYPE-4: 서버 stash 잔존 +``` +1. git stash show --stat 으로 내용 파악 +2. frontend 파일만 선별 checkout: git checkout stash -- frontend/src/ +3. 빌드 후 배포 +4. workspace에 다운로드하여 git 반영 +``` + +### TYPE-5: uncommitted 변경 (빌드 산출물 아닌 것) +``` +1. 변경 내용 확인 +2. 중요 파일이면 로컬로 다운로드 → workspace 반영 +3. 서버에서 commit 또는 stash clear +``` + +## 수정 원칙 +1. 수정 전 현재 상태를 백업한다 (git stash 또는 cp) +2. 한 시스템씩 수정하고 서비스 재기동 후 health check 확인 +3. 수정 완료 후 `_workspace/fix_report.json` 에 결과 기록 +4. 서비스가 active 확인될 때까지 재기동 재시도 (최대 3회) +5. 실패 시 rollback하고 orchestrator에 보고 + +## 접속 정보 +- 서버: 101.79.17.164, root, 1q2w3e!Q (paramiko) +- Gitea: 127.0.0.1:9003, `base64(zio:Zio@Admin2026!)` +- Gitea git URL: `http://zio:Zio%40Admin2026%21@127.0.0.1:9003/zio/{repo}.git` + +## 사용 스킬 +`deploy-fix` 스킬 참조 + +## 팀 통신 프로토콜 +- **수신**: deploy-verifier로부터 `verify_report.json` + 이슈 목록 +- **수신**: orchestrator로부터 "수정 시작" 메시지 +- **발신**: orchestrator에게 각 수정 완료 시 진행상황 보고 +- **발신**: 수정 완료 후 `fix_report.json` 경로 전달 diff --git a/.claude/agents/deploy-verifier.md b/.claude/agents/deploy-verifier.md new file mode 100644 index 00000000..de50068c --- /dev/null +++ b/.claude/agents/deploy-verifier.md @@ -0,0 +1,58 @@ +# deploy-verifier + +## 핵심 역할 +GUARDiA 5개 시스템(guardia-itsm, zioinfo-web, guardia-manager, guardia-messenger, guardia-docs)의 배포 상태를 검증한다. workspace ↔ repos ↔ Gitea ↔ 서버 4-way 동기화 상태를 점검하고 이슈를 구조화된 보고서로 출력한다. + +## 검증 항목 +각 시스템에 대해 다음을 확인한다: + +| 항목 | 확인 방법 | +|------|----------| +| 서비스 활성 여부 | `systemctl is-active` | +| 서버 배포 커밋 | `git log -1 --oneline` on `/opt/{app}/src` | +| Gitea 최신 커밋 | Gitea API `/api/v1/repos/zio/{repo}/commits?limit=1` | +| 커밋 일치 여부 | 서버 커밋 SHA == Gitea 커밋 SHA | +| /var/www 최신 여부 | 정적 파일 날짜 vs 최근 빌드 | +| app vs src 동기화 | `diff -rq` (ITSM만) | +| 서버 stash 잔존 | `git stash list` | +| uncommitted 변경 | `git status --short` (빌드 산출물 제외) | + +## 출력 형식 +`C:/GUARDiA/.claude/agents/_workspace/verify_report.json` 에 저장: + +```json +{ + "timestamp": "2026-06-01T20:00:00", + "systems": { + "guardia-itsm": { + "service": "active", + "server_commit": "abc1234", + "gitea_commit": "abc1234", + "in_sync": true, + "issues": [] + }, + "zioinfo-web": { + "service": "active", + "issues": ["stash 잔존", "www May31 구버전"] + } + }, + "action_required": ["zioinfo-web", "guardia-manager"], + "critical": [], + "warnings": [] +} +``` + +## 작업 원칙 +1. 서버 접속은 paramiko SSH (101.79.17.164, root, 1q2w3e!Q) +2. 검증만 수행한다 — 절대 수정하지 않는다 +3. 빌드 산출물(`.pyc`, `__pycache__`, `static/assets/`)은 diff에서 제외 +4. Gitea API 인증: `base64(zio:Zio@Admin2026!)` Basic auth +5. 이슈를 발견하면 심각도(critical/warning/info)로 분류한다 + +## 사용 스킬 +`deploy-verify` 스킬 참조 + +## 팀 통신 프로토콜 +- **수신**: orchestrator로부터 "검증 시작" 메시지 +- **발신**: deploy-fixer에게 `verify_report.json` 경로와 이슈 목록 전달 +- **보고**: orchestrator에게 완료 후 요약 (이슈 수, critical 항목) diff --git a/.claude/skills/system-sync-orchestrator/SKILL.md b/.claude/skills/system-sync-orchestrator/SKILL.md new file mode 100644 index 00000000..f2e7e21b --- /dev/null +++ b/.claude/skills/system-sync-orchestrator/SKILL.md @@ -0,0 +1,191 @@ +--- +name: system-sync-orchestrator +description: > + GUARDiA 5개 시스템(guardia-itsm, zioinfo-web, guardia-manager, guardia-messenger, guardia-docs) + 배포 상태를 검증하고 이슈를 자동 수정하는 오케스트레이터. + workspace ↔ repos ↔ Gitea ↔ 서버 4-way 동기화 불일치, /var/www 구버전, + 서버 stash 잔존, app vs src 미동기화, uncommitted 변경을 탐지·수정한다. + 다음 상황에서 반드시 사용: + (1) '5개 시스템 확인', '배포 상태 점검', '서버 최신 확인'; + (2) '동기화', 'sync', '최신본 올려줘', '배포 맞춰줘'; + (3) Manager/ITSM/홈페이지/Messenger/Docs 배포 이슈; + (4) 다시 실행, 업데이트, 수정, 보완. +--- + +# GUARDiA 5개 시스템 배포 동기화 오케스트레이터 + +**실행 모드:** 하이브리드 +- Phase 1 (검증): 서브 에이전트 (deploy-verifier) +- Phase 2 (수정): 에이전트 팀 (deploy-verifier + deploy-fixer 협업) +- Phase 3 (재검증): 서브 에이전트 + +--- + +## Phase 0: 컨텍스트 확인 + +``` +_workspace/ 존재 여부 확인: +- 없음 → 초기 실행 (Phase 1부터) +- 있음 + 사용자가 특정 시스템만 지정 → 부분 재실행 (해당 시스템만) +- 있음 + 전체 재검증 요청 → 전체 재실행 +``` + +`_workspace/` 디렉토리: +``` +C:/GUARDiA/.claude/agents/_workspace/ +├── verify_report.json ← deploy-verifier 출력 +└── fix_report.json ← deploy-fixer 출력 +``` + +--- + +## Phase 1: 전체 검증 (서브 에이전트) + +**deploy-verifier** 서브 에이전트로 실행: + +### 5개 시스템 검증 항목 + +| 시스템 | 서비스 | 경로 | 정적 경로 | +|--------|--------|------|-----------| +| guardia-itsm | `guardia` | `/opt/guardia/src` + `/opt/guardia/app` | — | +| zioinfo-web | `zioinfo` | `/opt/zioinfo/src` | `/var/www/zioinfo` | +| guardia-manager | `guardia-manager` | `/opt/manager/src` or `/opt/manager/backend` | `/var/www/manager` | +| guardia-messenger | EAS 빌드 | Gitea only | — | +| guardia-docs | — | Gitea only | `/var/www/docs` (선택) | + +### 검증 스크립트 패턴 +`C:/GUARDiA/scripts/check/verify_all_systems.py` 참조. +Gitea API 인증: `base64.b64encode(b'zio:Zio@Admin2026!').decode()` + +### 이슈 분류 + +| 코드 | 설명 | 심각도 | +|------|------|--------| +| `STALE_WWW` | /var/www 파일이 최근 배포보다 오래됨 | critical | +| `APP_SRC_DRIFT` | /opt/{app}/app vs src 미동기화 | critical | +| `STASH_EXISTS` | 서버 git stash 잔존 | warning | +| `UNCOMMITTED` | 비빌드 파일 uncommitted | warning | +| `COMMIT_MISMATCH` | 서버 커밋 != Gitea 커밋 | critical | +| `SERVICE_DOWN` | systemctl not active | critical | +| `WORKSPACE_DRIFT` | workspace != repos | info | + +--- + +## Phase 2: 이슈 수정 (에이전트 팀) + +Phase 1에서 이슈가 없으면 → 완료 보고 후 종료. +이슈 있으면 → deploy-fixer와 팀 구성. + +### 수정 우선순위 + +``` +1. SERVICE_DOWN → 서비스 재기동 먼저 +2. APP_SRC_DRIFT → rsync + restart +3. STASH_EXISTS → stash 내용 평가 → 복원 또는 삭제 +4. COMMIT_MISMATCH → git fetch + reset --hard origin/main +5. STALE_WWW → npm/mvn 빌드 + www 복사 +6. UNCOMMITTED → 파일 분류 (중요/임시) → workspace 반영 또는 clean +7. WORKSPACE_DRIFT → sync_workspace_to_repos.py 실행 +``` + +### 시스템별 수정 처리 + +**guardia-itsm (APP_SRC_DRIFT 표준 처리):** +```bash +rsync -a --exclude=__pycache__ --exclude=.git \ + --exclude="*.db" --exclude="uploads" \ + /opt/guardia/src/ /opt/guardia/app/ +systemctl restart guardia +sleep 4 && systemctl is-active guardia +``` + +**zioinfo-web (STALE_WWW 표준 처리):** +```bash +cd /opt/zioinfo/src +git fetch origin main && git reset --hard origin/main +# stash 있으면 핵심 파일 cherry-pick +cd frontend && npm run build +cp -r ../backend/src/main/resources/static/. /var/www/zioinfo/ +systemctl restart zioinfo +``` + +**guardia-manager (STALE_WWW 표준 처리):** +```bash +cd /opt/manager/src/frontend # or /opt/manager/backend +# workspace/guardia-manager의 최신 frontend를 서버에 업로드 +npm ci && npm run build +cp -r dist/. /var/www/manager/ +systemctl restart guardia-manager +``` + +**stash 처리 원칙:** +- `git stash show --stat` 으로 변경 파일 목록 확인 +- `frontend/src/` 파일 포함 → `git checkout stash -- frontend/src/` 로 선별 복원 후 빌드 +- 빌드 산출물(`static/assets/`)만 있으면 → `git stash drop` + +--- + +## Phase 3: 재검증 (서브 에이전트) + +Phase 2 완료 후 deploy-verifier 재실행. +모든 `action_required` 항목이 비어있으면 성공. + +--- + +## 결과 보고 형식 + +``` +=== GUARDiA 5개 시스템 배포 상태 === + +✅ guardia-itsm — active | 커밋 일치 | app 동기화 +✅ zioinfo-web — active | 커밋 일치 | www Jun 1 최신 +✅ guardia-manager— active | 커밋 일치 | www Jun 1 최신 +✅ guardia-messenger — EAS v1.0.0 | Gitea 최신 +✅ guardia-docs — 36개 md | Gitea 최신 + +수정된 이슈: X개 +남은 이슈: 0개 +``` + +--- + +## 에러 핸들링 + +| 에러 | 처리 | +|------|------| +| 서비스 재기동 실패 | `journalctl -u {service} -n 20` 로그 수집 후 보고 | +| npm build 실패 | `node_modules` 삭제 후 `npm ci` 재시도 | +| git reset 충돌 | `git clean -fd` 후 재시도 | +| Gitea push 실패 | bundle → 서버 → push 방식 (push_jenkinsfiles_api 패턴) | +| rsync 권한 오류 | `chown -R root:root /opt/{app}` 후 재시도 | + +--- + +## 테스트 시나리오 + +**정상 흐름:** +1. 검증 실행 → 이슈 탐지 (Manager STALE_WWW, ITSM APP_SRC_DRIFT) +2. 수정 팀 실행 → Manager npm build, ITSM rsync +3. 재검증 → 모두 ✅ + +**에러 흐름:** +- Manager npm build 실패 → `npm ci` 재시도 → 실패 시 보고서에 기록 후 다음 시스템 진행 + +--- + +## should-trigger + +- "5개 시스템 배포 확인해줘" +- "서버에 최신본 올라간 거 맞아?" +- "Manager 구버전 올라가 있는데 수정해줘" +- "guardia-itsm 배포 상태 점검" +- "홈페이지 최신 코드 반영됐나?" +- "전체 동기화 해줘" +- "다시 실행", "수정", "보완" + +## should-NOT-trigger + +- "guardia-itsm 새 기능 만들어줘" → itsm-dev 에이전트 +- "홈페이지 디자인 바꿔줘" → ui-overhaul-orchestrator +- "Jenkins 파이프라인 설정" → cicd-pipeline-orchestrator +- "코드 리뷰해줘" → code-review 스킬 diff --git a/.claude/skills/system-sync-orchestrator/references/verify-script.py b/.claude/skills/system-sync-orchestrator/references/verify-script.py new file mode 100644 index 00000000..dda33182 --- /dev/null +++ b/.claude/skills/system-sync-orchestrator/references/verify-script.py @@ -0,0 +1,147 @@ +""" +deploy-verifier 에이전트가 사용하는 5개 시스템 검증 스크립트. +verify_all_systems.py 기반으로 JSON 보고서를 출력한다. +""" +import paramiko, sys, json, base64, os +from datetime import datetime + +sys.stdout.reconfigure(encoding='utf-8', errors='replace') + +c = paramiko.SSHClient() +c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) +c.connect('101.79.17.164', username='root', password='1q2w3e!Q', timeout=15) +G = base64.b64encode(b'zio:Zio@Admin2026!').decode() + +def ssh(cmd, timeout=15): + _, o, _ = c.exec_command(cmd, timeout=timeout) + return o.read().decode('utf-8', 'replace').strip() + +def gitea_commit(repo): + out = ssh(f"curl -sf 'http://127.0.0.1:9003/api/v1/repos/zio/{repo}/commits?limit=1' " + f"-H 'Authorization: Basic {G}' 2>/dev/null | " + "python3 -c \"import sys,json; d=json.load(sys.stdin); " + "c=d[0]; print(c['sha'][:8]+'|'+c['commit']['message'][:50])\" 2>/dev/null") + return out.split('|') if '|' in out else ['unknown', 'unknown'] + +report = { + "timestamp": datetime.now().isoformat(), + "systems": {}, + "action_required": [], + "critical": [], + "warnings": [], +} + +SYSTEMS = { + "guardia-itsm": { + "service": "guardia", + "src_path": "/opt/guardia/src", + "app_path": "/opt/guardia/app", + "www_path": None, + "port": "9001", + }, + "zioinfo-web": { + "service": "zioinfo", + "src_path": "/opt/zioinfo/src", + "app_path": None, + "www_path": "/var/www/zioinfo", + "port": "8082", + }, + "guardia-manager": { + "service": "guardia-manager", + "src_path": "/opt/manager/backend", + "app_path": None, + "www_path": "/var/www/manager", + "port": "8090", + }, + "guardia-messenger": { + "service": None, + "src_path": None, + "app_path": None, + "www_path": None, + "port": None, + }, + "guardia-docs": { + "service": None, + "src_path": None, + "app_path": None, + "www_path": "/var/www/docs", + "port": None, + }, +} + +for name, cfg in SYSTEMS.items(): + issues = [] + info = {"issues": [], "status": {}} + + # 서비스 상태 + if cfg["service"]: + svc = ssh(f'systemctl is-active {cfg["service"]} 2>/dev/null') + info["status"]["service"] = svc + if svc != "active": + issues.append(f"SERVICE_DOWN:{cfg['service']}") + report["critical"].append(f"{name}: service not active") + + # 서버 커밋 + if cfg["src_path"]: + src_commit = ssh(f'git -C {cfg["src_path"]} log -1 --format="%H|%s" 2>/dev/null') + info["status"]["server_commit"] = src_commit[:8] if src_commit else "none" + + # Gitea 커밋 + g_sha, g_msg = gitea_commit(name) + info["status"]["gitea_commit"] = g_sha + + if src_commit and g_sha != "unknown": + if not src_commit.startswith(g_sha): + issues.append(f"COMMIT_MISMATCH:server={src_commit[:8]} gitea={g_sha}") + report["critical"].append(f"{name}: commit mismatch") + + # stash 확인 + stash = ssh(f'git -C {cfg["src_path"]} stash list 2>/dev/null') + if stash: + issues.append(f"STASH_EXISTS:{stash[:80]}") + report["warnings"].append(f"{name}: stash exists") + + # uncommitted 확인 (빌드 산출물 제외) + uncommit = ssh(f'git -C {cfg["src_path"]} status --short 2>/dev/null | ' + "grep -v 'static/assets/' | grep -v '.pyc' | grep -v '__pycache__'") + if uncommit: + issues.append(f"UNCOMMITTED:{uncommit[:120]}") + report["warnings"].append(f"{name}: uncommitted changes") + + # app vs src 비교 (ITSM) + if cfg["app_path"] and cfg["src_path"]: + diff = ssh(f'diff -rq {cfg["src_path"]} {cfg["app_path"]} ' + '--exclude="*.pyc" --exclude="__pycache__" --exclude=".git" ' + '--exclude="*.db" --exclude="uploads" --exclude=".env" ' + '--exclude=".pytest_cache" 2>/dev/null | head -5') + if diff: + issues.append(f"APP_SRC_DRIFT:{diff[:150]}") + report["critical"].append(f"{name}: app/src drift") + + # /var/www 날짜 확인 + if cfg["www_path"]: + www_date = ssh(f'stat {cfg["www_path"]}/index.html 2>/dev/null | grep Modify | cut -d" " -f2,3 || echo "missing"') + info["status"]["www_date"] = www_date + # 오늘 날짜(Jun 1 = 2026-06-01) 또는 최근 3일 이내면 최신으로 간주 + import re as _re + today_str = __import__('datetime').datetime.now().strftime('%Y-%m-%d') + is_recent = (today_str in www_date or + "Jun 1" in www_date or "Jun 1" in www_date or + "missing" in www_date or not www_date.strip()) + if not is_recent and www_date.strip(): + issues.append(f"STALE_WWW:{www_date}") + report["critical"].append(f"{name}: stale www ({www_date})") + + info["issues"] = issues + report["systems"][name] = info + if issues: + report["action_required"].append(name) + +c.close() + +# 저장 +os.makedirs("C:/GUARDiA/.claude/agents/_workspace", exist_ok=True) +with open("C:/GUARDiA/.claude/agents/_workspace/verify_report.json", "w", encoding="utf-8") as f: + json.dump(report, f, ensure_ascii=False, indent=2) + +print(json.dumps(report, ensure_ascii=False, indent=2)) diff --git a/CLAUDE.md b/CLAUDE.md index b9fb205d..4d25b59a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -279,6 +279,21 @@ GUARDiA ITSM (허브, :9001/:8443) --- +## 하네스: 5개 시스템 배포 동기화 + +**목표:** guardia-itsm·zioinfo-web·guardia-manager·guardia-messenger·guardia-docs 5개 시스템의 workspace↔repos↔Gitea↔서버 4-way 동기화 상태를 검증하고 이슈를 자동 수정한다. + +**트리거:** 배포 상태 확인, 서버 동기화, 최신본 확인 요청 시 `system-sync-orchestrator` 스킬을 사용하라. "5개 시스템", "배포 확인", "서버 최신", "동기화", "전체 확인" 요청 포함. + +**에이전트:** deploy-verifier (검증), deploy-fixer (수정) + +**변경 이력:** +| 날짜 | 변경 내용 | 대상 | 사유 | +|------|----------|------|------| +| 2026-06-01 | 초기 하네스 구성 | 전체 | 5개 시스템 배포 상태 점검 자동화 | + +--- + ## 하네스: 폴더 정리 **목표:** 루트에 쌓이는 임시 Python 스크립트·구버전 소스·로그 파일을 용도별로 분류·이동·아카이브. diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/index.html b/workspace/zioinfo-web/backend/src/main/resources/static/index.html index 7958209c..a091fe4d 100644 --- a/workspace/zioinfo-web/backend/src/main/resources/static/index.html +++ b/workspace/zioinfo-web/backend/src/main/resources/static/index.html @@ -1,96 +1,96 @@ - - - - - - - - (주)지오정보기술 — AI 기반 인프라 자율 운영 플랫폼 GUARDiA ITSM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - + + + + + + + + (주)지오정보기술 — AI 기반 인프라 자율 운영 플랫폼 GUARDiA ITSM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/logo_bottom.png b/workspace/zioinfo-web/backend/src/main/resources/static/logo_bottom.png new file mode 100644 index 00000000..3172df20 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/logo_bottom.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/01_itsm_login.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/01_itsm_login.png new file mode 100644 index 00000000..14f07426 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/01_itsm_login.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/02_itsm_dashboard.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/02_itsm_dashboard.png new file mode 100644 index 00000000..788bc2ae Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/02_itsm_dashboard.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_01_main.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_01_main.png new file mode 100644 index 00000000..2e5281a1 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_01_main.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_02_greeting.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_02_greeting.png new file mode 100644 index 00000000..9e5d074c Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_02_greeting.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_03_ci.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_03_ci.png new file mode 100644 index 00000000..9aa7d5bc Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_03_ci.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_04_history.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_04_history.png new file mode 100644 index 00000000..647a7d98 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_04_history.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_05_org.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_05_org.png new file mode 100644 index 00000000..e7741182 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_05_org.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_06_location.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_06_location.png new file mode 100644 index 00000000..f2062680 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_06_location.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_07_guardia.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_07_guardia.png new file mode 100644 index 00000000..d461c21a Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_07_guardia.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_08_business.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_08_business.png new file mode 100644 index 00000000..f6b290f2 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_08_business.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_09_news.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_09_news.png new file mode 100644 index 00000000..ca66daa7 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_09_news.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_10_recruit.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_10_recruit.png new file mode 100644 index 00000000..07c2829f Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_10_recruit.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_11_contact.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_11_contact.png new file mode 100644 index 00000000..675bdd9a Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/home_11_contact.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_01_login.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_01_login.png new file mode 100644 index 00000000..14f07426 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_01_login.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_02_dashboard.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_02_dashboard.png new file mode 100644 index 00000000..58b25333 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/itsm_02_dashboard.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_01_login.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_01_login.png new file mode 100644 index 00000000..0ad676fb Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_01_login.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_02_dashboard.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_02_dashboard.png new file mode 100644 index 00000000..9475b2b5 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_02_dashboard.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_03_servers.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_03_servers.png new file mode 100644 index 00000000..df3eed68 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_03_servers.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_04_scraping.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_04_scraping.png new file mode 100644 index 00000000..c58f364a Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_04_scraping.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_05_deployments.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_05_deployments.png new file mode 100644 index 00000000..8ccdc09e Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_05_deployments.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_06_audit.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_06_audit.png new file mode 100644 index 00000000..0ad676fb Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_06_audit.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_debug.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_debug.png new file mode 100644 index 00000000..50e89f04 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_debug.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_fail.png b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_fail.png new file mode 100644 index 00000000..0ad676fb Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/screenshots/manager_login_fail.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-building.png b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-building.png new file mode 100644 index 00000000..efeae1f0 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-building.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo-dark.png b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo-dark.png new file mode 100644 index 00000000..ed9fa925 Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo-dark.png differ diff --git a/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo.png b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo.png new file mode 100644 index 00000000..4f88262a Binary files /dev/null and b/workspace/zioinfo-web/backend/src/main/resources/static/zioinfo-logo.png differ