This documentation covers Poweradmin 4.x. Some sections are still being expanded.
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 Installation Guide for production configurations
- Manual Installation: Follow Manual Installation for traditional setups
- Configuration: Learn about Configuration Options
Troubleshooting
- Port conflicts: Use
-p 8080:80if port 80 is in use - View logs:
docker logs poweradmin - Container access:
docker exec -it poweradmin /bin/sh