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.
Docker Demo
The easiest way to evaluate Poweradmin is to use the Docker image, which provides a complete environment with FrankenPHP and SQLite database.
Quick Demo
1. Get the Docker Image
docker pull poweradmin/poweradmin:latest
2. Run the Container
docker run -d --name poweradmin -p 80:80 poweradmin/poweradmin:latest
3. Access Poweradmin
- Open your browser and go to http://localhost
- Username:
admin
- Password:
testadmin
Note: This demo uses SQLite with pre-configured test data.
Architecture
The Docker image is based on FrankenPHP, providing:
- High Performance: Persistent worker mode for better performance
- Modern HTTP: Native HTTP/2 and HTTP/3 support
- Built-in Features: Automatic HTTPS, real-time capabilities
- Caddy Integration: Built on Caddy web server
Demo with External Database
MySQL Demo
docker run -d --name poweradmin -p 80:80 \
-e DB_TYPE=mysql \
-e DB_HOST=your-mysql-host \
-e DB_USER=poweradmin \
-e DB_PASS=password \
-e DB_NAME=poweradmin \
-e DNS_NS1=ns1.yourdomain.com \
-e DNS_NS2=ns2.yourdomain.com \
-e DNS_HOSTMASTER=hostmaster.yourdomain.com \
poweradmin/poweradmin:latest
PostgreSQL Demo
docker run -d --name poweradmin -p 80:80 \
-e DB_TYPE=pgsql \
-e DB_HOST=your-postgres-host \
-e DB_USER=poweradmin \
-e DB_PASS=password \
-e DB_NAME=poweradmin \
-e DNS_NS1=ns1.yourdomain.com \
-e DNS_NS2=ns2.yourdomain.com \
-e DNS_HOSTMASTER=hostmaster.yourdomain.com \
poweradmin/poweradmin:latest
Demo with Docker Compose
Basic Demo
version: '3.8'
services:
poweradmin:
image: poweradmin/poweradmin:latest
ports:
- "80:80"
Complete Demo with MySQL
version: '3.8'
services:
poweradmin:
image: poweradmin/poweradmin:latest
ports:
- "80:80"
environment:
- DB_TYPE=mysql
- DB_HOST=mysql
- DB_USER=poweradmin
- DB_PASS=password
- DB_NAME=poweradmin
- DNS_NS1=ns1.yourdomain.com
- DNS_NS2=ns2.yourdomain.com
- DNS_HOSTMASTER=hostmaster.yourdomain.com
- PA_API_ENABLED=true
- PA_API_DOCS_ENABLED=true
depends_on:
- mysql
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=poweradmin
- MYSQL_USER=poweradmin
- MYSQL_PASSWORD=password
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
Building from Source
If you want to build the Docker image from source:
# Clone the repository
git clone https://github.com/poweradmin/poweradmin.git
cd poweradmin
# Build the image
docker build --no-cache -t poweradmin .
# Run the container
docker run -d --name poweradmin -p 80:80 poweradmin
Environment Variables (Demo Examples)
Variable | Description | Example |
---|---|---|
DB_TYPE |
Database type | sqlite , mysql , pgsql |
PA_API_ENABLED |
Enable API | true |
PA_API_DOCS_ENABLED |
Enable API docs | true |
PA_APP_TITLE |
Application title | My DNS Demo |
PA_MAIL_ENABLED |
Enable email | false |
API Demo
Enable the API to test RESTful endpoints:
docker run -d --name poweradmin -p 80:80 \
-e PA_API_ENABLED=true \
-e PA_API_DOCS_ENABLED=true \
poweradmin/poweradmin:latest
Visit http://localhost/api/docs to explore the API documentation.
Next Steps
After evaluating the demo:
- Production Deployment: See Docker Deployment Guide for production configurations
- Manual Installation: Follow Manual Installation for traditional setups
- Configuration: Learn about Configuration Options
Troubleshooting
- Port conflicts: Use
-p 8080:80
if port 80 is in use - View logs:
docker logs poweradmin
- Container access:
docker exec -it poweradmin /bin/sh