Table of Contents

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
Awwwyour.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:

  1. Click Complete setup next to Stripe or PayPal
  2. Follow the prompts to sign in to your Stripe or PayPal business account, or create one
  3. 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
SSH5 failed logins10 minutes
WordPress (hard)3 failed logins1 hour
WordPress (soft)5 failed logins10 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
WooCommerceE-commerce engine
WooCommerce StripeAccept credit cards, Apple Pay, Google Pay
WooCommerce PayPalPayPal payments
WooCommerce Shipping & TaxAutomated shipping rates and tax calculations
JetpackSecurity, performance and marketing tools
Storefront ThemeOfficial WooCommerce theme

Software Included

Component Version
Ubuntu24.04 LTS
Apache2.4
MySQL8.0
PHP8.3
WordPressLatest
WooCommerceLatest
WP-CLILatest
Certbot5.8 (IP address), 2.9 (domain)
Fail2Ban1.0
Postfix3.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