diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..107dcf8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,116 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +ROMFASTSQL is an infrastructure and database management project for ROMFAST, featuring: +- Proxmox virtualization cluster (3 nodes: pve1, pvemini, pveelite) +- Oracle Database XE 21c with migration support from Oracle 10g +- AI chatbot system (Flowise + Claude) +- Disaster recovery infrastructure + +## Repository Structure + +``` +proxmox/ # Main infrastructure documentation +├── README.md # Master index - START HERE +├── cluster/ # Proxmox cluster, UPS, storage management +├── lxc104-flowise/ # AI Chatbot (Flowise on port 3000) +├── lxc108-oracle/ # Oracle XE 21c/18c Database (port 1521/1522) +├── lxc171-claude-agent/ # Claude Code development environment +├── vm109-windows-dr/ # Windows Disaster Recovery VM +└── vm201-windows/ # Windows 11 (IIS reverse proxy) + +system_instructions/ # SQL migration guidelines and knowledge base +├── system_prompt.md # SQL migration rules - READ BEFORE WRITING SQL +└── knowledge_base/ # Example scripts and PACK_MIGRARE.pck + +scripts/ # Python utilities +├── generare_proces_verbal.py # Generate assembly minutes (DOCX) +└── verificare_voturi_AG.py # Verify assembly votes + +input/ # Oracle DMP files for import +``` + +## Key Documentation Entry Points + +- **Infrastructure overview**: `proxmox/README.md` +- **SQL migration guidelines**: `system_instructions/system_prompt.md` (always read before generating migration SQL) +- **Oracle database setup**: `proxmox/lxc108-oracle/README.md` +- **Migration orchestration**: `proxmox/lxc108-oracle/migration/00-MASTER-MIGRATION.sh` +- **Chatbot architecture**: `proxmox/lxc104-flowise/docs/prd.md` +- **Disaster recovery**: `proxmox/vm109-windows-dr/README.md` + +## Infrastructure Commands + +### Proxmox Cluster +```bash +ssh root@10.0.20.201 "pvecm status" # Cluster status +ssh root@10.0.20.201 "pct list" # List LXC containers +ssh root@10.0.20.201 "qm list" # List VMs +``` + +### Oracle Database (LXC 108) +```bash +pct exec 108 -- docker exec -it oracle-xe sqlplus / as sysdba +pct exec 108 -- docker restart oracle-xe +``` + +### Flowise Chatbot (LXC 104) +```bash +pct exec 104 -- systemctl status flowise +pct exec 104 -- systemctl restart flowise +pct exec 104 -- journalctl -u flowise -f +``` + +### Validation Scripts +```bash +# UPS monthly test +proxmox/cluster/ups/scripts/ups-monthly-test.sh + +# SSL certificate monitoring +proxmox/vm201-windows/scripts/monitor-ssl-certificates.sh + +# Oracle backup monitoring +proxmox/vm109-windows-dr/scripts/oracle-backup-monitor-proxmox.sh +``` + +## Network Layout + +| Service | IP Address | Port | Purpose | +|---------|-----------|------|---------| +| pvemini (main host) | 10.0.20.201 | 8006 | Proxmox GUI | +| Oracle XE 21c | 10.0.20.121 | 1521 | Production database | +| Oracle XE 18c | 10.0.20.121 | 1522 | Export compatibility (TSTZ 31) | +| Flowise | 10.0.20.161 | 3000 | Chatbot UI | +| Gitea | 10.0.20.165 | 3000 | Git server | +| Claude Agent | 10.0.20.171 | 22 | Development (also via Tailscale: 100.95.55.51) | +| Primary Oracle | 10.0.20.36 | 1521 | Windows production | +| DR Oracle | 10.0.20.37 | 1521 | Disaster recovery | + +## SQL Migration Conventions + +When writing Oracle migration scripts, follow the naming convention: +``` +ff_YYYY_MM_DD_##_TYPE.sql +``` +Where TYPE is: DDL, DML, VIEW, PACK, TRIG, etc. + +Always reference `system_instructions/system_prompt.md` for: +- Oracle 10g compatibility requirements +- PACK_MIGRARE package usage +- Migration script patterns and examples + +## Custom Claude Code Commands + +- `/ultimate_validate_command` - Generate comprehensive validation commands +- `/plan-handover` - Save implementation plan for session handover +- `/branch-plan-handover` - Create branch and save plan +- `/context-handover` - Save context for next session + +## Git Workflow + +- Remote: `http://gitea:3000/romfast/ROMFASTSQL.git` +- Main branch: `master` +- Feature branches merged directly to master