Blame
|
1 | # AzerothCore WoW Realm (CT 119) |
||||||
| 2 | ||||||||
| 3 | ## Übersicht |
|||||||
| 4 | ||||||||
| 5 | | Parameter | Wert | |
|||||||
| 6 | |-----------|------| |
|||||||
| 7 | | CT-ID | 119 | |
|||||||
| 8 | | Hostname | azeroth | |
|||||||
| 9 | | IP | 192.168.178.89 | |
|||||||
| 10 | | OS | Debian 12 Bookworm | |
|||||||
| 11 | | CPU / RAM / Disk | 4 vCPU / 8 GB / 40 GB SSD | |
|||||||
| 12 | | Realm | lscloud (WotLK 3.3.5a) | |
|||||||
| 13 | | Installiert | April 2026 | |
|||||||
| 14 | ||||||||
| 15 | ## Ports & Dienste |
|||||||
| 16 | ||||||||
| 17 | | Port | Dienst | Sichtbar | |
|||||||
| 18 | |------|--------|----------| |
|||||||
| 19 | | 3724 TCP | AzerothCore Authserver | extern (DNAT) | |
|||||||
| 20 | | 8085 TCP | AzerothCore Worldserver | extern (DNAT) | |
|||||||
| 21 | | 7878 TCP | SOAP-Interface (Worldserver) | nur intern | |
|||||||
| 22 | | 80 TCP | nginx + FusionCMS | intern → Caddy | |
|||||||
| 23 | | 3306 TCP | MySQL 8.0 | nur intern | |
|||||||
| 24 | ||||||||
| 25 | ## Dateipfade |
|||||||
| 26 | ||||||||
| 27 | | Pfad | Inhalt | |
|||||||
| 28 | |------|--------| |
|||||||
| 29 | | `/opt/azerothcore/bin/` | authserver, worldserver Binaries | |
|||||||
| 30 | | `/opt/azerothcore/etc/` | authserver.conf, worldserver.conf | |
|||||||
| 31 | | `/opt/azerothcore/logs/` | Server-Logs (SSD, logrotate täglich) | |
|||||||
| 32 | | `/opt/azerothcore/data/` | Client-Daten (bind mount, read-only) | |
|||||||
| 33 | | `/var/lib/mysql/` | MySQL Daten (SSD) | |
|||||||
| 34 | | `/var/www/fusioncms/` | FusionCMS Web-Panel | |
|||||||
| 35 | | `/root/acore-credentials.txt` | Credentials (DB-Pass, Admin-Pass) | |
|||||||
| 36 | ||||||||
| 37 | **Wichtig:** `/mnt/storage` (externe HDD) ist ausschließlich als read-only bind mount eingebunden. |
|||||||
| 38 | Alle schreibenden Dienste (MySQL, Logs) laufen auf lokaler SSD. |
|||||||
| 39 | ||||||||
| 40 | ## Credentials (Platzhalter) |
|||||||
| 41 | ||||||||
| 42 | ``` |
|||||||
| 43 | ACORE_DB_USER : acore |
|||||||
| 44 | ACORE_DB_PASS : → /root/acore-credentials.txt |
|||||||
| 45 | ADMIN_USER : admin (GM Level 3) |
|||||||
| 46 | ADMIN_PASS : → /root/acore-credentials.txt |
|||||||
| 47 | FUSIONCMS URL : https://panel.ls-cloud.biz |
|||||||
| 48 | ``` |
|||||||
| 49 | ||||||||
| 50 | ## Systemd Services |
|||||||
| 51 | ||||||||
| 52 | ```bash |
|||||||
| 53 | systemctl status acore-auth # Authserver (Port 3724) |
|||||||
| 54 | systemctl status acore-world # Worldserver (Port 8085 + SOAP 7878) |
|||||||
| 55 | systemctl status mysql # MySQL 8.0 |
|||||||
| 56 | systemctl status nginx # nginx + FusionCMS |
|||||||
| 57 | ``` |
|||||||
| 58 | ||||||||
| 59 | ## WoW Client verbinden |
|||||||
| 60 | ||||||||
| 61 | ``` |
|||||||
| 62 | SET REALMLIST realm.ls-cloud.biz |
|||||||
| 63 | ``` |
|||||||
| 64 | → Dann normaler Login-Screen. Realm "lscloud" auswählen. |
|||||||
| 65 | ||||||||
| 66 | **Externe DNS-Einträge (Cloudflare):** |
|||||||
| 67 | - `realm.ls-cloud.biz` → Proxmox-Host-IP (TCP 3724 via DNAT) |
|||||||
| 68 | - `wow.ls-cloud.biz` → Proxmox-Host-IP (TCP 8085 via DNAT) |
|||||||
| 69 | - `panel.ls-cloud.biz` → Caddy auf Proxmox-Host → CT119:80 |
|||||||
| 70 | ||||||||
| 71 | **Fritz!Box:** Ports 3724 + 8085 müssen auf Proxmox-Host (192.168.178.46) weitergeleitet sein. |
|||||||
| 72 | ||||||||
| 73 | ## Admin-Commands (Worldserver-Console oder SOAP) |
|||||||
| 74 | ||||||||
| 75 | ``` |
|||||||
| 76 | # GM-Level vergeben |
|||||||
| 77 | account set gmlevel <user> 3 -1 |
|||||||
| 78 | ||||||||
| 79 | # Neuen Account erstellen |
|||||||
| 80 | account create <user> <pass> |
|||||||
| 81 | ||||||||
| 82 | # Server-Info |
|||||||
| 83 | server info |
|||||||
| 84 | ||||||||
| 85 | # Online-Spieler |
|||||||
| 86 | online list |
|||||||
| 87 | ``` |
|||||||
| 88 | ||||||||
| 89 | ## SOAP via FusionCMS |
|||||||
| 90 | ||||||||
| 91 | FusionCMS schickt GM-Commands über SOAP an `127.0.0.1:7878`. |
|||||||
| 92 | Die Verbindung ist in der DB konfiguriert: |
|||||||
| 93 | ```sql |
|||||||
| 94 | mysql -u root fusioncms -e "SELECT console_username, console_port FROM realms;" |
|||||||
| 95 | ``` |
|||||||
| 96 | ||||||||
| 97 | ## Update-Prozedur |
|||||||
| 98 | ||||||||
| 99 | ```bash |
|||||||
| 100 | # 1. In CT119 als root |
|||||||
| 101 | cd /root/azerothcore |
|||||||
| 102 | ||||||||
| 103 | # 2. Neue Commits holen |
|||||||
| 104 | git pull |
|||||||
| 105 | ||||||||
| 106 | # 3. Neu kompilieren |
|||||||
| 107 | cd build |
|||||||
| 108 | cmake .. -DCMAKE_INSTALL_PREFIX=/opt/azerothcore -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ |
|||||||
| 109 | make -j$(nproc) && make install |
|||||||
| 110 | ||||||||
| 111 | # 4. Services neustarten |
|||||||
| 112 | systemctl restart acore-auth acore-world |
|||||||
| 113 | ||||||||
| 114 | # DB-Updates werden beim nächsten Worldserver-Start automatisch importiert |
|||||||
| 115 | ``` |
|||||||
| 116 | ||||||||
| 117 | ## MySQL-Tuning (HDD-Schutz) |
|||||||
| 118 | ||||||||
| 119 | Konfiguration in `/etc/mysql/mysql.conf.d/99-acore.cnf`: |
|||||||
| 120 | - `expire_logs_days = 3` — Binary Logs automatisch rotieren |
|||||||
| 121 | - `general_log = 0` — Query-Log deaktiviert |
|||||||
| 122 | - `slow_query_log = 0` — Slow-Log deaktiviert |
|||||||
| 123 | - `innodb_buffer_pool_size = 2G` |
|||||||
| 124 | ||||||||
| 125 | ## Datenbanken |
|||||||
| 126 | ||||||||
| 127 | | DB | Inhalt | |
|||||||
| 128 | |----|--------| |
|||||||
| 129 | | `acore_auth` | Accounts, Realmliste, GM-Rechte | |
|||||||
| 130 | | `acore_characters` | Charakterdaten | |
|||||||
| 131 | | `acore_world` | Weltdaten, Quests, NPCs | |
|||||||
| 132 | | `fusioncms` | Web-Panel Daten | |
|||||||
