Skip to content

Develop#11

Merged
jorikfon merged 6 commits into
masterfrom
develop
Feb 18, 2026
Merged

Develop#11
jorikfon merged 6 commits into
masterfrom
develop

Conversation

@jorikfon
Copy link
Copy Markdown
Contributor

No description provided.

jorikfon and others added 6 commits June 5, 2025 14:48
Replace template readme with module description for sysadmins.
Add English README.md with cross-link to Russian version.
Add CLAUDE.md with architecture and build instructions for Claude Code.
Add AcmeHttpPort class that creates a dedicated nginx server block on
port 80 serving only /.well-known/acme-challenge/ (returns 444 for
everything else) and adds iptables rules when firewall is managed.

Port 80 is opened before certificate request and guaranteed closed
after via try/finally in all code paths: REST API GET-CERT handler,
updateCert.php, and new cronRenewCert.php wrapper for cron renewal.

Safety mechanisms:
- Lock file with PID+timestamp in /var/run (tmpfs, survives no crash)
- Watchdog cron (every minute) cleans up stale state after 5min/dead PID
- Cleanup on PBX startup via onAfterPbxStarted

Also adds timestamp wrapper for getssl output (ISO format matching
syslog) and phpstan.neon config for the module.
- Disable submit button and show ACE editor immediately on cert request
- Re-enable button on success/failure
- Call run() after cert process to install existing cert files into
  PbxSettings (fixes case when cert exists on disk but was cleared
  from system settings)
- Load last log into ACE editor on page open
- Add link to system diagnostic for full log
- Add timestamped logging for port 80 open/close and cert installation
- Add translation keys for log link (en, ru)
@jorikfon jorikfon merged commit a59b9a1 into master Feb 18, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants