force sync from /var/www/html/panel: 2025-09-08T20:36:30Z
This commit is contained in:
commit
4f717c9ee8
18119 changed files with 2566034 additions and 0 deletions
123
.github/copilot-instructions.md
vendored
Executable file
123
.github/copilot-instructions.md
vendored
Executable file
|
|
@ -0,0 +1,123 @@
|
|||
# Open Game Panel (OGP) ControlPanel
|
||||
Open Game Panel is a PHP-based web application for managing game servers with Linux/Windows agents and Python documentation tools.
|
||||
|
||||
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
|
||||
|
||||
## Working Effectively
|
||||
- Bootstrap and test the repository:
|
||||
- `sudo apt-get update && sudo apt-get install -y php mysql-server libxml-parser-perl libpath-class-perl libarchive-extract-perl libdbi-perl libdbd-mysql-perl libxml-simpleobject-perl libproc-daemon-perl liblinux-inotify2-perl libarchive-zip-perl pandoc texlive-xetex python3 python3-yaml`
|
||||
- `sudo service mysql start`
|
||||
- `sudo mysql --defaults-file=/etc/mysql/debian.cnf -e "CREATE DATABASE IF NOT EXISTS panel; CREATE USER IF NOT EXISTS 'localuser'@'localhost' IDENTIFIED BY 'testpass'; GRANT ALL PRIVILEGES ON panel.* TO 'localuser'@'localhost'; FLUSH PRIVILEGES;"`
|
||||
- Edit `/home/runner/work/ControlPanel/ControlPanel/includes/config.inc.php` to set database password to `testpass`
|
||||
- Test Python guide generation tools:
|
||||
- `cd /home/runner/work/ControlPanel/ControlPanel && ./tools/generate_all_guides.sh` -- takes 3-10 seconds. NEVER CANCEL. Set timeout to 30+ seconds.
|
||||
- `python3 tools/validate_guides.py` -- takes under 1 second
|
||||
- Test PHP web application:
|
||||
- `cd /home/runner/work/ControlPanel/ControlPanel && php -S localhost:8080 &`
|
||||
- `curl -I http://localhost:8080` (will show 500 error due to missing database schema - this is expected)
|
||||
- `pkill -f "php -S"` to stop server
|
||||
- Test Perl agent syntax:
|
||||
- `cd /home/runner/work/ControlPanel/ControlPanel/_agent-linux && perl -c ogp_agent.pl` -- should show "syntax OK"
|
||||
|
||||
## Validation
|
||||
- Always test the Python guide generation workflow when making changes to tools/ directory
|
||||
- ALWAYS run `./tools/generate_all_guides.sh` to validate guide generation changes
|
||||
- Test PHP syntax with `php -l <file.php>` for any PHP file changes
|
||||
- Test Perl agent syntax with `perl -c ogp_agent.pl` when modifying agent files
|
||||
- The web application requires a complete database schema to run properly, but basic connectivity can be tested
|
||||
|
||||
## CRITICAL Build & Test Timing
|
||||
- **Guide generation: 3-10 seconds** - NEVER CANCEL. Set timeout to 30+ seconds minimum
|
||||
- **Guide validation: Under 1 second** - Set timeout to 15+ seconds
|
||||
- **Package installation: 5-15 minutes** - NEVER CANCEL. Set timeout to 20+ minutes
|
||||
- **PDF generation (with LaTeX): 2-5 seconds per document** - NEVER CANCEL
|
||||
- **Database setup: Under 10 seconds** - Set timeout to 30+ seconds
|
||||
|
||||
## Common Tasks
|
||||
The following are outputs from frequently run commands. Reference them instead of viewing, searching, or running bash commands to save time.
|
||||
|
||||
### Repository Structure
|
||||
```
|
||||
/home/runner/work/ControlPanel/ControlPanel/
|
||||
├── index.php # Main web application entry point
|
||||
├── includes/ # PHP includes and configuration
|
||||
│ ├── config.inc.php # Database configuration
|
||||
│ ├── database_mysqli.php # Database abstraction layer
|
||||
│ └── helpers.php # Utility functions
|
||||
├── modules/ # Web application modules
|
||||
├── themes/ # UI themes
|
||||
├── tools/ # Python guide generation tools
|
||||
│ ├── generate_all_guides.sh # Main guide generation script
|
||||
│ ├── generate_server_guides.py # Python guide generator
|
||||
│ └── validate_guides.py # Guide validation script
|
||||
├── _agent-linux/ # Linux agent (Perl)
|
||||
│ ├── ogp_agent.pl # Main agent script
|
||||
│ └── ogp_agent_run # Agent wrapper script
|
||||
├── _agent-windows/ # Windows agent
|
||||
├── data/games/ # YAML game definitions for guides
|
||||
└── dist/pdfs/ # Generated PDF guides
|
||||
```
|
||||
|
||||
### Dependencies Status
|
||||
- **PHP 8.3.6**: Available, with MySQLi extension
|
||||
- **MySQL 8.0**: Available, can be started with `sudo service mysql start`
|
||||
- **Perl 5.38**: Available, with all required OGP modules installed
|
||||
- **Python 3.12**: Available, with PyYAML installed
|
||||
- **Pandoc + XeLaTeX**: Available, for PDF generation
|
||||
|
||||
### Guide Generation Workflow
|
||||
```bash
|
||||
# Complete workflow (3-10 seconds total)
|
||||
cd /home/runner/work/ControlPanel/ControlPanel
|
||||
./tools/generate_all_guides.sh
|
||||
|
||||
# Individual steps
|
||||
python3 tools/generate_server_guides.py # Generate markdown + PDFs
|
||||
python3 tools/validate_guides.py # Validate output
|
||||
|
||||
# Expected output structure:
|
||||
# docs/games/<game-slug>/index.md # Markdown guides
|
||||
# dist/pdfs/<game-slug>__Server_Admin_Guide_v1.pdf # PDF guides
|
||||
# docs/games/_index.md # Index page
|
||||
# dist/pdfs/manifest.json # Metadata manifest
|
||||
```
|
||||
|
||||
### Agent Testing
|
||||
```bash
|
||||
# Test Perl agent syntax (agent requires special permissions to run)
|
||||
cd /home/runner/work/ControlPanel/ControlPanel/_agent-linux
|
||||
perl -c ogp_agent.pl
|
||||
# Expected: "ogp_agent.pl syntax OK"
|
||||
```
|
||||
|
||||
### Database Setup for Testing
|
||||
```bash
|
||||
# Basic database setup (already configured)
|
||||
sudo service mysql start
|
||||
mysql -u localuser -ptestpass -e "SHOW DATABASES;"
|
||||
# Should show: information_schema, panel, performance_schema
|
||||
```
|
||||
|
||||
### Web Application Testing
|
||||
```bash
|
||||
# Start development server (will show 500 errors without complete DB schema)
|
||||
cd /home/runner/work/ControlPanel/ControlPanel
|
||||
php -S localhost:8080 &
|
||||
curl -I http://localhost:8080 # Test connectivity
|
||||
pkill -f "php -S" # Stop server
|
||||
```
|
||||
|
||||
## Key Projects in Codebase
|
||||
1. **Web Panel** (`index.php`, `modules/`, `themes/`): PHP web application for game server management
|
||||
2. **Linux Agent** (`_agent-linux/`): Perl-based agent for Linux game server management
|
||||
3. **Windows Agent** (`_agent-windows/`): Windows version of server agent
|
||||
4. **Guide Tools** (`tools/`): Python scripts for generating comprehensive server admin documentation
|
||||
5. **Game Definitions** (`data/games/`): YAML files defining game server configurations for guide generation
|
||||
|
||||
## Important Notes
|
||||
- The web application requires complete database schema initialization to run fully (beyond basic connectivity testing)
|
||||
- Agents require special system permissions and users to run properly in production
|
||||
- Guide generation tools work independently and can be tested without the web application
|
||||
- PDF generation requires both pandoc and XeLaTeX (texlive-xetex package)
|
||||
- All basic syntax checking and connectivity testing works in this environment
|
||||
- Focus testing on the components that can be fully validated: guide tools, PHP syntax, Perl syntax, and basic connectivity
|
||||
Loading…
Add table
Add a link
Reference in a new issue