Pre-built Docker images for running osTicket with MariaDB, phpMyAdmin, and migration tools.
- ✅ Pre-built AMD64 images on Docker Hub (no building required)
- ✅ PHP 8.3 with Apache and all required osTicket extensions
- ✅ MariaDB 10.11 with optimized configuration
- ✅ phpMyAdmin for database management
- ✅ Migration container with SSH-based pull from old servers
- ✅ Portainer-ready deployment
- ✅ Free hosting on Docker Hub
📖 PORTAINER_DEPLOY_GUIDE.md - Complete deployment guide
- Copy
docker-compose.portainer.yml - Paste into Portainer → Stacks → Add Stack
- Deploy
- Access at
http://your-server:8082
- Web:
universaldilettant/osticket-web:latest - Migration:
universaldilettant/osticket-migration:latest
Both images are pre-built for AMD64 and hosted free on Docker Hub.
osticket_docker/
├── docker-compose.portainer.yml # Portainer stack (uses Docker Hub images)
├── docker-compose.yml # Local development (builds from source)
├── docker/
│ ├── web/Dockerfile # Web image source
│ └── migration/Dockerfile # Migration image source
├── build-for-portainer.sh # Build & push script for updates
└── PORTAINER_DEPLOY_GUIDE.md # Deployment instructions
- Portainer instance
- 5GB+ free disk space
- Docker Engine 20.10+
- Docker Compose 2.0+
- Docker Buildx (multi-platform support)
- Docker Hub account (free)
See PORTAINER_DEPLOY_GUIDE.md for complete instructions.
Quick steps:
- Go to Portainer → Stacks → Add Stack
- Copy contents of
docker-compose.portainer.yml - Update passwords in the compose file
- Deploy the stack
- Access osTicket at
http://your-server:8082
- Navigate to:
http://your-server:8082/setup/ - Database credentials:
- Host:
db - Database:
osticket - Username:
osticket - Password: (from your compose file)
- Host:
- Complete the wizard
- Setup directory is automatically removed
- osTicket: http://your-server:8082/
- Admin Panel: http://your-server:8082/scp/
- phpMyAdmin: http://your-server:8081/
The migration container is included but disabled by default.
To use migration:
- Deploy the stack in Portainer
- Go to Containers →
osticket-migration→ Start - Access the container console
- Run migration commands:
pull-from-server.sh # Pull data via SSH migrate.sh # Import to Docker
Features:
- ✅ SSH-based pull from remote servers
- ✅ Compressed transfers
- ✅ Progress indicators
- ✅ Automatic permission fixes
docker-compose.portainer.yml before deploying:
# Database service
MYSQL_ROOT_PASSWORD: supersecret # ← Change!
MYSQL_PASSWORD: osticketpass # ← Change!
# Web service
DB_PASS: osticketpass # ← Must match MYSQL_PASSWORD
# phpMyAdmin
PMA_PASSWORD: supersecret # ← Must match MYSQL_ROOT_PASSWORDEdit ports in docker-compose.portainer.yml:
- osTicket:
8082:80(change 8082) - phpMyAdmin:
8081:80(change 8081)
- View logs: Click container → Logs
- Console access: Click container → Console
- Restart: Click container → Restart
- Update stack: Stacks → Your Stack → Editor → Update
Database:
docker exec osticket-db mysqldump -u osticket -p osticket | gzip > backup.sql.gzVolumes: In Portainer: Volumes → Export each volume
When new images are available:
- In Portainer: Images → Pull
universaldilettant/osticket-web:latest - Stacks → Your Stack → Pull and redeploy
- Check logs in Portainer (Container → Logs)
- Verify database is healthy (should show green)
- Check port conflicts
- Verify port 8082 is not blocked by firewall
- Check container status in Portainer
- Review container logs
- Ensure
DB_PASSmatchesMYSQL_PASSWORDin compose file - Wait for database health check to pass (green status)
- Check database container logs
- Change all default passwords in compose file
- Set up SSL/TLS (reverse proxy recommended)
- Configure firewall rules
- Remove phpMyAdmin if not needed
- Set up automated backups
- Update osTicket admin password after setup
- Review and restrict container permissions
If you need to rebuild the images:
./build-for-portainer.shThis will:
- Build both images for AMD64
- Push to your Docker Hub account
- Update the compose file
- osTicket: v1.18.1 (GPL v2)
- PHP: 8.3-apache
- MariaDB: 10.11
- phpMyAdmin: Latest
- Alpine Linux: Migration container base
- Web: https://hub.docker.com/r/universaldilettant/osticket-web
- Migration: https://hub.docker.com/r/universaldilettant/osticket-migration
- osTicket Docs: https://docs.osticket.com/
- Deployment Guide: PORTAINER_DEPLOY_GUIDE.md
Docker setup provided as-is. osTicket licensed under GPL v2.