9 Commits

Author SHA1 Message Date
Malin
1a07c11c4b fix: nginx real IP, pf open HTTP, homepage cache purge on publish
- nginx real_ip_header X-Real-IP: access log and PHP now see true client IPs
- pf: HTTP open to all (WAF on NPM handles filtering)
- sibiu-independent-tweaks: si_purge_nginx_homepage_cache() hook deletes
  homepage fastcgi cache file on post publish/unpublish — fixes stale
  content for anonymous (mobile) users
- SSH config: updated to direct Tailscale IPs, removed old migration proxy
- sibiuindependent.ro.MD: documented issues 9-11 and fixes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 16:21:29 +02:00
Malin
258d7b2219 docs: migration complete — rename README to sibiuindependent.ro.MD, full post-cutover update
- Renamed README.md to sibiuindependent.ro.MD
- Status updated to LIVE as of 2026-05-31
- All open items resolved and documented
- Added post-cutover issues & fixes section (8 issues):
  SimpleXML/WPS3Media, Perfmatters login URL, InformatiQ-Toolkit
  301→example.com, empty permalink_structure, Redis plugin inactive,
  backup cron wrong format, Redis maxmemory unbounded, nginx missing webp
- Updated pf rules (zamolxis HTTP locked to NPM 100.89.238.4)
- Corrected decebal crontab format (no user field in user crontab)
- Current performance metrics from 2026-05-31 health check
- Deployment status table with all items checked

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:33:22 +02:00
Malin
e04ac02fa2 feat: phase 2 complete — zamolxis ready for cutover
- rsync: 7.1GB transferred from dracula (exit 0), all years 2012-2026
- wp-config.php: DB_HOST=100.67.166.29, new DB password, Redis constants
- W3TC: removed (plugin + all drop-ins: db.php, advanced-cache.php)
- W3TC db.php drop-in was W3TC module, not index-wp-mysql-for-speed
- Redis Object Cache: plugin installed, object-cache.php drop-in active
- .user.ini: open_basedir updated from AApanel path to /var/www/...
- WP-CLI: installed (required php85-phar, php85-ctype, php85-filter,
  php85-tokenizer which were not in the base php85 package)
- Kernel tuning: sysctl.conf on both nodes for 1000+ concurrent users
  - zamolxis: kern.maxfiles=200k, somaxconn=4096, tcp buffers 256KB
  - decebal: vfs.zfs.arc_max=2GB (critical — prevents ZFS evicting InnoDB)
- PHP-FPM: pm.max_children 40→80, start_servers 8→16, spare 16→32
- nginx: worker_connections 4096→8192, worker_rlimit_nofile=65536
- MySQL: max_connections 150→300 (live SET GLOBAL + my.cnf updated)
- Pre-cutover checklist items 1-8: all passed
- Cutover sequence updated with correct rsync excludes and post-rsync-fixup.sh

Pending at cutover: DB import, checklist steps 9-11, NPM upstream switch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 17:10:28 +02:00
Malin
288b79d8eb feat: complete decebal deployment, update README with actual IPs and configs
- decebal fully deployed: MySQL 8.4.9 running, app user created
  (sql_sibiuindepen@100.115.128.41), backup cron installed
- ZFS pool 'data' ONLINE on /dev/da1, data/mysql at /var/db/mysql
- pf active: 3306 allowed from 100.115.128.41 only
- zamolxis -> decebal MySQL connectivity verified
- README: replace all Tailscale IP placeholders with actuals
  (zamolxis 100.115.128.41, decebal 100.67.166.29)
- README: fix PHP extension package names (pecl-imagick, pecl-redis;
  opcache bundled in base php85)
- README: fix nginx if operator (no != support in nginx if blocks)
- README: update my.cnf to deployed config (innodb_redo_log_capacity,
  innodb_buffer_pool_instances, slow query log, sql_mode)
- README: update pf configs to deployed rulesets (both nodes)
- README: update backup script to deployed version with .my.cnf auth
- README: add deployment status table, resolve open items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 10:19:38 +02:00
Malin
795e84d438 feat: rename VMs to zamolxis(900)/decebal(901), raise RAM to 24GB/30GB, decebal to 6vCPU, innodb_buffer_pool 26G 2026-05-29 08:45:19 +02:00
Malin
b1047817e3 fix: upgrade to FreeBSD 15.0, PHP 8.5 as binary pkg, Redis 8.6, MySQL 8.4.9 LTS, document MySQL 9.x EOL 2026-05-29 08:25:02 +02:00
Malin
3c4bdae145 fix: adjust transilvan-new disk to 20+100GB for 130GB constraint, drop Beszel/Telegraf, document Redis stays local 2026-05-29 08:13:55 +02:00
Malin
68f69c30ea feat: add VM sizing, host hardware specs and Proxmox provisioning steps 2026-05-29 08:00:52 +02:00
Malin
4295bec6c0 feat: add Sibiu Independent stack migration plan (Debian/AApanel → FreeBSD 14.x) 2026-05-29 07:45:10 +02:00