Overview
WooCommerce on Infralane
Build an online store with WooCommerce, the open-source ecommerce plugin for WordPress.
Included
- WooCommerce 11.2.1 plugin files, preinstalled during initial startup.
- WordPress 7.1.4 with PHP 8.3 and Apache.
- A private MariaDB 11.4 database.
- Generated database passwords.
- Persistent storage for website files, product images, plugins, and database data.
- WordPress memory limits of 256 MB for normal requests and 512 MB for administration, with PHP configured for up to 512 MB per process.
Setup after deployment
Complete WordPress installation, activate the preinstalled WooCommerce plugin, and follow its store setup wizard.
Choose your store location, currency, products, shipping options, taxes, and payment methods during setup.
External services
Email delivery and online payment processing require separate configuration. Premium themes, extensions, and external services are not included.
Deployment model
This template runs one website service and one database service. It is a starting point for a small store; high availability, automatic backups, and a dedicated background-task scheduler are not configured.
Getting started
Deploy your store
- Select a resource pool with enough available CPU, memory, and storage.
- Deploy the template. Database passwords are generated automatically.
- Wait for initial startup to download and verify the WooCommerce package.
- Open the website's HTTPS address immediately and complete WordPress installation before sharing the address.
Choose your site title, administrator username, strong password, and administrator email address. Database access is already configured.
Activate WooCommerce
- Sign in at
/wp-admin/. - Open Plugins, then Installed Plugins.
- Find WooCommerce and select Activate.
- Follow the WooCommerce setup wizard.
Enter your business location, currency, product details, shipping destinations, and relevant store settings. Select only the optional services and extensions you intend to use.
Prepare for launch
- Connect your final domain and confirm that HTTPS works.
- Configure your email provider and test order emails and password resets.
- Choose a payment gateway available in your country and currency.
- Configure shipping and tax settings for your store.
- Add a product and complete a test checkout using your payment provider's sandbox.
- Verify the resulting order, stock changes, emails, and payment notifications.
- Configure and test backups.
- Keep the store in Coming soon mode until setup and checkout testing are complete.
If WooCommerce is missing
Check the website service's startup logs for download, checksum, or extraction failures. The first installation needs HTTPS access to downloads.wordpress.org.
Operations and maintenance
Persistent data and backups
The wordpress-data volume contains WordPress, WooCommerce, themes, plugins, uploaded product images, and site configuration.
The database-data volume contains MariaDB data, including store records.
Back up a consistent database export and the matching WordPress files. Store backups outside this stack, protect customer data and credentials, and test restoration into an isolated installation.
Choose backup frequency according to how much order data you can afford to lose. Restoring an older database can remove newer orders and inventory changes.
Persistent storage is not a backup. Automatic backups are not configured by this template.
Updates
The initial WordPress and MariaDB images are pinned to exact digests. The initial WooCommerce ZIP is pinned to version 11.2.1 and verified using SHA-256.
WordPress and plugin updates follow their own configured policies. Initial artifact pinning does not freeze files stored in the persistent volume.
Back up and test WordPress, WooCommerce, theme, extension, PHP, and database updates before applying them to a live store.
A normal restart does not reset WooCommerce to the original version. The first-install marker prevents the bootstrap from overwriting or reinstalling the plugin on normal restarts.
Changing a container image does not roll back the persistent website files or database.
Background tasks
This template retains WordPress's default traffic-triggered WP-Cron behavior.
Monitor WooCommerce scheduled actions and investigate failed or overdue tasks. For dependable processing on a low-traffic store, configure a regular WP-Cron trigger.
Do not disable WP-Cron until a replacement scheduler is working.
Payments and email
Use payment-provider test mode while preparing the store. Confirm that payment notifications reach the correct HTTPS address and update orders as expected.
Configure and monitor transactional email delivery for customer receipts, administrator notifications, and password resets.
Database credentials
Changing an environment value does not change an existing MariaDB account password. Rotate the database account and the website's corresponding credential together.
The database root account is separate from the WordPress administrator account.
Troubleshooting
- Startup download failure: check outbound HTTPS access and service logs.
- Database connection error: check MariaDB health and matching credentials.
- WooCommerce unavailable: confirm that the plugin is activated.
What will be deployed
2 services · amd64, arm64
View the reviewed stack configuration
{
"volumes": {
"database-data": {},
"wordpress-data": {}
},
"services": {
"store": {
"image": "docker.io/library/wordpress:7.1.4-php8.3-apache@sha256:12ec50e21cb81a5ea964669d434578b7da4a101a45aef83f5f1c2227bcd1b058",
"command": [
"printf 'memory_limit=512M\\n' > /usr/local/etc/php/conf.d/infralane-woocommerce.ini\nmarker=/var/www/html/wp-content/.infralane-woocommerce-seeded\nif [ ! -f \"$$marker\" ]; then\n if [ ! -f /var/www/html/wp-content/plugins/woocommerce/woocommerce.php ]; then\n mkdir -p /var/www/html/wp-content/plugins\n work=$$(mktemp -d /var/www/html/wp-content/.woocommerce-XXXXXX)\n trap 'rm -rf \"$$work\" /tmp/infralane-woocommerce.zip' EXIT\n curl --fail --silent --show-error --location --retry 2 --connect-timeout 15 --max-time 120 https://downloads.wordpress.org/plugin/woocommerce.11.2.1.zip -o /tmp/infralane-woocommerce.zip\n echo '5317434cb381b5fdc7c1dd6ee258324f08c390976aaf8d1199f2a0e9a3ab8586 /tmp/infralane-woocommerce.zip' | sha256sum -c -\n php -r '$$z = new ZipArchive(); if ($$z->open(\"/tmp/infralane-woocommerce.zip\") !== true || !$$z->extractTo($$argv[1])) { exit(1); } $$z->close();' \"$$work\"\n mv \"$$work/woocommerce\" /var/www/html/wp-content/plugins/woocommerce\n chown -R www-data:www-data /var/www/html/wp-content/plugins/woocommerce\n rm -rf \"$$work\" /tmp/infralane-woocommerce.zip\n trap - EXIT\n fi\n touch \"$$marker\"\n chown www-data:www-data \"$$marker\"\nfi\nexec docker-entrypoint.sh apache2-foreground\n"
],
"restart": "unless-stopped",
"volumes": [
"wordpress-data:/var/www/html"
],
"depends_on": {
"database": {
"condition": "service_healthy"
}
},
"entrypoint": [
"/bin/bash",
"-ec"
],
"environment": {
"WORDPRESS_DB_HOST": "database:3306",
"WORDPRESS_DB_NAME": "woocommerce",
"WORDPRESS_DB_USER": "woocommerce",
"WORDPRESS_DB_PASSWORD": "${DATABASE_PASSWORD}",
"WORDPRESS_CONFIG_EXTRA": "define('WP_MEMORY_LIMIT', '256M');\ndefine('WP_MAX_MEMORY_LIMIT', '512M');\n"
},
"healthcheck": {
"test": [
"CMD",
"curl",
"--fail",
"--silent",
"--max-time",
"5",
"http://127.0.0.1/wp-login.php"
],
"retries": 12,
"timeout": "10s",
"interval": "15s",
"start_period": "120s"
},
"x-infralane": {
"cpu": 1.5,
"http_port": 80,
"memory_mb": 2048,
"description": "WordPress with WooCommerce preinstalled"
}
},
"database": {
"image": "docker.io/library/mariadb:11.4.13@sha256:d1891ede5a559f1086f55053bb8cc1569b0298338c4d72d71725a7f74f6ba620",
"expose": [
"3306"
],
"restart": "unless-stopped",
"volumes": [
"database-data:/var/lib/mysql"
],
"environment": {
"MARIADB_USER": "woocommerce",
"MARIADB_DATABASE": "woocommerce",
"MARIADB_PASSWORD": "${DATABASE_PASSWORD}",
"MARIADB_ROOT_PASSWORD": "${DATABASE_ROOT_PASSWORD}"
},
"healthcheck": {
"test": [
"CMD",
"healthcheck.sh",
"--connect",
"--innodb_initialized"
],
"retries": 12,
"timeout": "5s",
"interval": "10s",
"start_period": "30s"
},
"x-infralane": {
"cpu": 0.5,
"memory_mb": 1024,
"description": "Private MariaDB database for the store"
}
}
}
}Release history
1.0.0
available · Oct 30, 2026
1.0.0
Initial WooCommerce template for Infralane.
- WooCommerce 11.2.1 plugin files preinstalled with SHA-256 verification.
- WordPress 7.1.4 with PHP 8.3 and Apache.
- MariaDB 11.4.13 on a private connection.
- Container images pinned to exact digests.
- Generated database passwords.
- Persistent website and database storage.
- WordPress and PHP memory settings for a starter store.
- Setup, backup, payment, email, and maintenance documentation.
WordPress installation, WooCommerce activation, and store setup are completed after deployment.