Skip to content

feat: DNS management, Mail server, Compose backup cronjob#12263

Open
jakub961241 wants to merge 3 commits into1Panel-dev:dev-v2from
jakub961241:feature/dns-zone-management
Open

feat: DNS management, Mail server, Compose backup cronjob#12263
jakub961241 wants to merge 3 commits into1Panel-dev:dev-v2from
jakub961241:feature/dns-zone-management

Conversation

@jakub961241
Copy link

@jakub961241 jakub961241 commented Mar 21, 2026

Summary

Three features for hosting providers:

1. DNS Zone Management (PowerDNS)

  • DNS zones CRUD (Native/Slave)
  • DNS records: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
  • Auto A-record on website creation
  • One-click PowerDNS container deployment
  • 12 API endpoints under /api/v2/dns/

2. Mail Server Management (docker-mailserver + Roundcube)

  • Mail domains with auto MX/SPF/DKIM/DMARC DNS records
  • Mail accounts (create, delete, password, quota)
  • Aliases and forwarding
  • Roundcube webmail integration
  • 12 API endpoints under /api/v2/mail/

3. Compose Backup Scheduled Task

  • New compose cronjob type for automatic Docker Compose backups
  • Select specific compose projects or "all"
  • Uses existing backup account/retention system

Test plan

  • Enable DNS → create zone → add records → verify with dig
  • Enable Mail → add domain → create account → login via Roundcube
  • Create compose backup cronjob → verify backup executes on schedule
feat: Add DNS zone management (PowerDNS), Mail server management (docker-mailserver + Roundcube), and Compose backup scheduled task type

Integrate PowerDNS as a Docker container with full panel UI for DNS
zone and record management. This completes the hosting automation
chain: Website + SSL + Database + DNS.

Features:
- DNS zones CRUD (Native/Primary and Slave/Secondary)
- DNS records management (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
- Auto-populate A record when creating a website
- SOA and TTL configuration per zone
- Sync records from PowerDNS
- One-click PowerDNS container deployment
- Full API for automation (12 endpoints under /api/v2/dns/)
- English and Chinese translations

Backend: model, repo, service, API handler, router (Go/Gin/GORM)
Frontend: Vue 3 views under Websites > DNS menu
Integrate docker-mailserver (Postfix+Dovecot+Rspamd) and Roundcube
webmail as Docker containers with full panel UI for email hosting.

Features:
- Mail domains CRUD with auto DNS record creation (MX/SPF/DKIM/DMARC)
- Mail accounts management (create, delete, change password, set quota)
- Mail aliases and forwarding rules
- Roundcube webmail integration
- Spam filtering via Rspamd
- One-click mail stack deployment
- Full API for automation (12 endpoints under /api/v2/mail/)
- English and Chinese translations

Backend: model, repo, service, API handler, router (Go/Gin/GORM)
Frontend: Vue 3 views under Websites > Mail Server menu
Docker: mailserver/docker-mailserver + roundcube/roundcubemail
Add "compose" as a new cronjob type that supports automatic backup of
Docker Compose deployments on a schedule. Users can select specific
compose projects or "all" for backup, with the same backup account,
retention, and retry options available for other backup types.

Changes:
- Add handleCompose() in cronjob_backup.go using existing ComposeBackup
- Add "compose" case to loadTask() dispatch in cronjob_helper.go
- Update hasBackup() to include "compose"
- Add compose type to frontend cronjob type list and create form
- Add compose selection dropdown populated from existing composes
- Add English and Chinese translations for the new type
@f2c-ci-robot
Copy link

f2c-ci-robot bot commented Mar 21, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign wanghe-fit2cloud for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant