Note: This documentation is still in progress, not reviewed properly, and might contain some errors or outdated images. It's intended for the upcoming 4.0.0 release, so configuration settings might be different from previous versions.

Upgrading to v3.0.0

Overview

Version 3.0.0 is a major release that introduces significant architectural changes, modernizing the Poweradmin codebase and enhancing security, usability, and performance. This upgrade requires careful attention due to substantial changes in the application structure.

Upgrade Instructions

  1. Download latest tarball from GitHub
  2. Make a full backup of your files and database before proceeding
  3. Replace all files with content from the downloaded archive
  4. Important: Your old configuration file (inc/config.inc.php) will not be compatible with v3.0.0
  5. Create a new configuration file at inc/config.inc.php using the provided settings.defaults.php as a template
  6. Transfer your old configuration values from your previous inc/config.inc.php to the new format
  7. Update database structure:

MySQL

CREATE TABLE `log_users` (
    `id`         int(11) NOT NULL AUTO_INCREMENT,
    `event`      varchar(2048) NOT NULL,
    `created_at` timestamp     NOT NULL DEFAULT current_timestamp(),
    `priority`   int(11) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB;

CREATE TABLE `log_zones` (
    `id`         int(11) NOT NULL AUTO_INCREMENT,
    `event`      varchar(2048) NOT NULL,
    `created_at` timestamp     NOT NULL DEFAULT current_timestamp(),
    `priority`   int(11) NOT NULL,
    `zone_id`    int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB;

PostgreSQL and SQLite

Similar tables need to be created for PostgreSQL and SQLite databases. See the SQL files in the sql/ directory for the exact syntax.

Major Changes

Architecture

  • Completely refactored codebase with modern MVC architecture
  • Adopted PSR-4 autoloading and PHP namespaces
  • Implemented dependency injection for better maintainability
  • Added Twig templating engine for views
  • New routing system with controller-based request handling

Configuration

  • New structured configuration format in inc/config.inc.php
  • Enhanced security options including password policies
  • Default password encryption changed to bcrypt
  • Session security improvements with token validation

Features

  • New logging system with database support
  • Two display options for index page: cards or list view
  • Improved DNSSEC support and management
  • Enhanced database logging for zone and record changes
  • Improved user interface and experience

Breaking Changes

  1. Configuration Format: The configuration format has changed completely. You must manually transfer your settings to the new format.

  2. File Structure: The application file structure has been reorganized:

  3. inc/ directory is mostly deprecated
  4. New lib/ directory contains application code
  5. New config/ directory holds configuration files
  6. Templates moved to templates/ directory

  7. Password Encryption: Default encryption method changed to bcrypt. Existing passwords will continue to work but new passwords will use the new method.

  8. Custom Themes/Templates: If you had custom templates, they need to be redone for the new templating system.

Notes

  • This is a major version upgrade that includes substantial changes to the codebase
  • Plan for adequate testing time before deploying to production
  • For complex installations, consider setting up a test environment first
  • Review all configuration options carefully to ensure secure settings