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
- Download latest tarball from GitHub
- Make a full backup of your files and database before proceeding
- Replace all files with content from the downloaded archive
- Important: Your old configuration file (inc/config.inc.php) will not be compatible with v3.0.0
- Create a new configuration file at
inc/config.inc.php
using the providedsettings.defaults.php
as a template - Transfer your old configuration values from your previous
inc/config.inc.php
to the new format - 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
-
Configuration Format: The configuration format has changed completely. You must manually transfer your settings to the new format.
-
File Structure: The application file structure has been reorganized:
inc/
directory is mostly deprecated- New
lib/
directory contains application code - New
config/
directory holds configuration files -
Templates moved to
templates/
directory -
Password Encryption: Default encryption method changed to bcrypt. Existing passwords will continue to work but new passwords will use the new method.
-
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