WooCommerce - Getting Started Guide
WooCommerce is the most popular e-commerce plugin for WordPress, powering millions of online stores. This server comes with WordPress, WooCommerce, payment gateways (Stripe, PayPal) and the Storefront theme fully installed and configured with the admin account and store name you specified during the order. The store works by IP address right away; the domain you entered when ordering starts working once you point it to the server (Steps 2-4). Add your products, connect a payment gateway and launch the store when you are ready.
Step 1 – Verify Your Store Works
Your server’s IP address and root password are shown in the Server Information section on the Overview tab of your server in the client portal. The application settings you entered when ordering, passwords included, are shown in the WooCommerce Credentials card on the same tab. The store is already accessible by IP address – open https://your.server.ip in a browser to verify it works. You should see the default WooCommerce storefront.
The admin panel is available at https://your.server.ip/wp-admin. Log in with the username and password you entered during the order.
The store starts in “Coming soon” mode. Until you launch it, visitors see a “Great things are on the horizon” page instead of the Shop, Cart and Checkout pages, while you see the full store when logged in. When the store is ready, go to WooCommerce → Settings → Site visibility, select Live and save.
HTTPS without a domain. Since January 2026 Let’s Encrypt issues certificates for IP addresses (official announcement), so your server gets a real, browser-trusted certificate on first boot – before you connect any domain. Certificates of this kind are short-lived (about six days) and renew automatically. If your server is not reachable from the internet on port 80 (for example, it sits behind a router), the certificate cannot be issued – in that case open http://your.server.ip instead. Payment gateways need HTTPS, so for a working store make sure the server is reachable from the internet.
If the server’s IP address changes, the store moves to the new address automatically at the next start of the server (as long as no domain is connected).
If you placed the server behind a VyOS router on a private network, the server has only a private address, so it does not get the IP certificate, and WooCommerce is set up for that private address. You can open the store over http:// on the private address through a VPN on the router (WireGuard or OpenVPN, on the router’s Configuration tab). To make the store reachable from the internet, forward ports 80 and 443 to the server on the router’s Configuration tab (Port forwarding), point your domain to the router’s public address and connect the domain (Steps 2-4): until then, the store’s links point to the private address. WooCommerce is a public-facing store, so it must be reachable from the internet for customers to buy. Forward port 22 as well if you need SSH from the internet.
Firewall. If you turn on the Firewall for this server in the client portal, allow incoming TCP port 80 in its rules, along with 443 (HTTPS). Certificates renew over port 80 – the IP certificate every few days – and without that rule the certificate expires and the browser starts showing a warning.
Step 2 – Point Your Domain to the Server (Optional)
Skip Steps 2-4 if you want to keep using the IP address. To use your own domain, go to your domain registrar’s DNS settings and create A records pointing to your server’s IP address:
| Type | Name | Value |
|---|---|---|
| A | @ | your.server.ip |
| A | www | your.server.ip |
DNS changes usually take a few minutes, but can take up to 24 hours. You can check the status at dnschecker.org.
Step 3 – Connect the Domain and Enable SSL
Until you run the script below, WordPress keeps using the IP address in its links, even when a page is opened by domain. Once the DNS records point to your server, connect via SSH and run the script with your domain and, optionally, an email for certificate notices:
ssh root@your.server.ip
/opt/setup/get-ssl.sh yourdomain.com you@example.com
The domain you entered when ordering is already saved on the server, so you can simply run /opt/setup/get-ssl.sh without arguments.
The script checks DNS, obtains a free Let’s Encrypt certificate for the domain and switches the store to https://yourdomain.com, including links inside your posts and products. Automatic renewal is already configured.
Step 4 – Access Your Store
After the script completes, your store is available on the domain:
- Your store:
https://yourdomain.com - Admin panel:
https://yourdomain.com/wp-admin
Log in with the username and password you entered during the order.
Step 5 – Configure Payment Gateways
Important: payment gateways require HTTPS. Stripe and PayPal will not work over plain HTTP.
Go to WooCommerce → Settings → Payments in wp-admin. Stripe and PayPal are already installed and marked Action needed:
- Click Complete setup next to Stripe or PayPal
- Follow the prompts to sign in to your Stripe or PayPal business account, or create one
- Authorize the connection and return to your store
You can enable both Stripe and PayPal at the same time – let customers choose their preferred payment method. To test purchases before connecting a gateway, use Take offline payments on the same page.
Post-Installation
SSL Certificate Renewal
The certificate for the IP address is valid for about six days, a certificate for your domain for 90 days. Both renew automatically. You can test renewal with:
/snap/bin/certbot renew --dry-run
Fail2Ban – Brute-Force Protection
Your server comes with Fail2Ban pre-configured to protect both SSH and WordPress from brute-force attacks.
| Rule | Max Attempts | Ban Duration |
|---|---|---|
| SSH | 5 failed logins | 10 minutes |
| WordPress (hard) | 3 failed logins | 1 hour |
| WordPress (soft) | 5 failed logins | 10 minutes |
Useful commands:
# Check banned IPs
fail2ban-client status wordpress-hard
fail2ban-client status sshd
# Unban an IP
fail2ban-client set wordpress-hard unbanip 1.2.3.4
If you accidentally lock yourself out, open the Console on your server’s Overview tab in the client portal and unban your IP.
Service Management
Web stack services are managed via systemd:
# Check service status
systemctl status apache2
systemctl status mysql
# Restart services
systemctl restart apache2
systemctl restart mysql
Server Credentials
MySQL credentials are stored in /root/.wp_credentials. WordPress is pre-configured to use them.
Pre-installed Plugins
| Plugin | Purpose |
|---|---|
| WooCommerce | E-commerce engine |
| WooCommerce Stripe | Accept credit cards, Apple Pay, Google Pay |
| WooCommerce PayPal | PayPal payments |
| WooCommerce Shipping & Tax | Automated shipping rates and tax calculations |
| Jetpack | Security, performance and marketing tools |
| Storefront Theme | Official WooCommerce theme |
Software Included
| Component | Version |
|---|---|
| Ubuntu | 24.04 LTS |
| Apache | 2.4 |
| MySQL | 8.0 |
| PHP | 8.3 |
| WordPress | Latest |
| WooCommerce | Latest |
| WP-CLI | Latest |
| Certbot | 5.8 (IP address), 2.9 (domain) |
| Fail2Ban | 1.0 |
| Postfix | 3.8 |
Troubleshooting
| Problem | Solution |
|---|---|
| Site doesn’t open in browser | By IP address: try http://your.server.ip – behind a router the IP certificate cannot be issued. By domain: check that the A record points to the server IP (dnschecker.org) and that you ran /opt/setup/get-ssl.sh |
| Visitors see “Great things are on the horizon” | The store is still in “Coming soon” mode. Go to WooCommerce → Settings → Site visibility, select Live and save |
| 403 Forbidden right after the server is created | The store stays closed to visitors until setup finishes – wait a minute and reload. If the page still shows 403 after five minutes, setup did not complete: check /opt/setup/setup.log over SSH and reinstall the server with the Rebuild button on its Overview tab in the client portal |
| SSL script fails | DNS probably hasn’t propagated yet. Wait 10-15 minutes and run /opt/setup/get-ssl.sh yourdomain.com again. Details are in /opt/setup/get-ssl.log |
| Stripe/PayPal not working | Make sure SSL is enabled – payment gateways require HTTPS |
| Forgot WordPress admin password | SSH in and run: wp user update YOUR_LOGIN --user_pass="newpass" --allow-root --path="/var/www/html" (YOUR_LOGIN is the username from the order) |
| Blocked by Fail2Ban | Use the Console on your server’s Overview tab in the client portal to unban your IP |
| Forgot root password | Use the Console on your server’s Overview tab in the client portal to reset it |