Run WordPress on your own server with Once. One container, no subscriptions.
This packages WordPress with MariaDB, WP-CLI, and automatic SMTP configuration into a single Docker image that meets Once's requirements.
curl https://get.once.com | shThis installs the Once CLI and launches the setup dashboard.
once deploy ghcr.io/hallmatt/once_wordpress --host yourdomain.comImage: ghcr.io/hallmatt/once_wordpress
That's it. Once will:
- Pull the image
- Start the container with persistent storage at
/storage - Set up TLS via its built-in reverse proxy
- Verify the
/uphealthcheck
Visit your domain to complete the WordPress setup wizard.
Press s in the Once dashboard to configure SMTP settings. WordPress will automatically pick up the credentials — no plugin needed.
Once handles backups automatically via the background service. You can also run manual backups:
once backup wordpress backup-2024-01-15.tarThis triggers a database dump (via the pre-backup hook) before archiving everything in /storage.
To restore:
once restore backup-2024-01-15.tarTo deploy a new version of the image:
once deploy ghcr.io/hallmatt/once_wordpress --host yourdomain.comOnce also supports automatic image updates via its background service.
once stop wordpress
once start wordpress
once remove wordpress # keeps data
once remove wordpress --remove-data # deletes everythingAll persistent data lives in /storage:
/storage/
├── wordpress/ # WordPress core + wp-content (auto-updates in place)
│ ├── wp-admin/
│ ├── wp-includes/
│ └── wp-content/
│ ├── themes/
│ ├── plugins/
│ ├── uploads/
│ └── mu-plugins/
├── db/
│ ├── mysql/ # MariaDB data files
│ └── database.sql # backup dump (created by pre-backup hook)
└── config/
├── wp-config.php # generated on first run
└── .db_password # MariaDB credentials
- wordpress.md — WP-CLI commands and WordPress admin reference