Production-ready Docker setup for phpMyAdmin with MariaDB, Nginx Reverse Proxy and automatic Let's Encrypt SSL certificates.
- ✅ MariaDB - Latest version
- ✅ phpMyAdmin - Web-based MySQL management
- ✅ Automatic SSL - Let's Encrypt with auto-renewal
- ✅ Nginx Reverse Proxy - With SSL termination
- ✅ 1000MB Upload Limit - For large database imports
- ✅ No Logs - Optimized for performance
- ✅ Persistent Data - Docker volumes
- Docker & Docker Compose installed
- A domain pointing to your server
- Ports 80 and 443 must be available
git clone https://github.com/HerrSammyDE/phpmyadmin-mysql-docker.git
cd phpmyadmin-mysql-dockercp .env.example .env
nano .envAdjust the following values:
MARIADB_ROOT_PASSWORD=YourSuperSecurePassword123!
DOMAIN=your-domain.comdocker compose up -dAfter startup, phpMyAdmin is available at:
- URL:
https://your-domain.com - Username:
root - Password: From
.envfile
The SSL certificate is automatically created and renews every 60 days.
| Service | Description | Port |
|---|---|---|
db |
MariaDB | 3306 (internal) |
phpmyadmin |
phpMyAdmin Web Interface | 80 (internal) |
nginx-proxy |
Nginx Reverse Proxy | 80, 443 |
letsencrypt |
SSL Certificate Manager | - |
docker compose logs -fdocker compose psdocker compose restartdocker compose downdocker compose down -vEdit proxy.conf file:
client_max_body_size 2000M; # Change value as neededThen restart container:
docker compose restart nginx-proxy- Domain must point correctly to server
- Ports 80 and 443 must be accessible
- Check DNS records
docker compose logs phpmyadmin
docker compose logs nginx-proxydocker compose logs db
docker compose restart db