WooCommerce

Deploy WooCommerce, an open source e-commerce plugin for WordPress. Use it to turn WordPress websites into online stores for selling digital and physical products for small-to-large businesses.

1. Deploy WooCommerce

 Estimated deployment time: 2–5 minutes

Configure the required options to deploy your instance. For additional customization, add advanced options.

The table maps the Cloud Manager UI fields to their corresponding API/CLI keys (stackscript_data) required for automated deployments.

Base distribution and plan

  • Supported distribution: Ubuntu 24.04 LTS
  • Recommended plan: You can use all plan types and sizes. However, for production websites, use at least a 4GB Dedicated CPU Compute Instance.

Configuration options

Configure the required options to deploy your instance. For additional customization, add advanced options.

The table maps the Cloud Manager UI fields to their corresponding API/CLI keys (stackscript_data) required for automated deployments.

StackScript ID: 401708

UI fieldAPI/CLI keyDescription
Required options
Email address (for the Let's Encrypt SSL certificate)soa_email_addressYour email address to use when configuring the WordPress admin user, generating SSL certificates, and optionally creating DNS records for a custom domain.
Webserver stackwebserver_stackA webserver to use for the WordPress deployment, Apache2, or NGINX. Possible values are: LAMP or LEMP.
Website titlesite_titleA title for your WordPress site.
Admin usernamewp_admin_userA username for your WordPress admin user account.
Wordpress database userwp_db_userA MariaDB username for the WordPress database user.
Wordpress database namewp_db_nameA name for the WordPress MariaDB database.
Limited sudo useruser_nameYour preferred username for the limited sudo user entered without any capital letters, spaces, or special characters.
When adding a limited sudo user, the user is created with a strong generated password for your new Linode instance, and the account is assigned to the sudo group, which provides elevated permissions when running commands with the sudo prefix.
Note: For easier and more secure access with the sudo user, add an account SSH key for the Cloud Manager user during deployment and select that user as an authorized_user. Their SSH pubkey will be assigned to both the root and limited user.
Advanced options
Disable root access over SSHdisable_rootApplies to a limited sudo user. To block the root user from logging in over SSH, select Yes. Defaults to No.
Note: When you disable the root user from logging in over SSH and don't provide a valid Account SSH Key assigned to the authorized_user, you can still switch to the root user. To do that, log in as root via the Lish console and run cat /home/$USERNAME/.credentials to view the generated password for the limited sudo user.
Linode API tokentoken_passwordApplies to a custom domain. The Linode API token if you want to use Linode’s DNS Manager to manage DNS records for your custom domain. Follow Manage personal access tokens to get your token on your account with Read/Write access to Domains.
  • If you provide the token along with the subdomain and domain, the installation attempts to create DNS records via the Linode API.
  • If you don't provide the token, you need to manually configure your DNS records through your DNS provider and point them to the IP address of the new instance.
SubdomainsubdomainApplies to a custom domain. The subdomain you want to use, like blog for blog.example.com. Use it only if you specify a Domain.
DomaindomainApplies to a custom domain. The domain name you want to use, like example.com. Use it only if you specify a Linode API token.
Optional data exporter Add-onsadd_onsAn option to include add-ons for your deployment. Possible values are:
  • none (default)
  • newrelic
  • node_exporter
  • mysqld_exporter

Notes:

  • After the app deployment completes, the passwords for your WordPress admin user, WordPress database user, MariaDB root user, and limited sudo user are generated and stored in the /home/$USERNAME/.credentials file. Log in to your instance as root through the Lish console or SSH, then run cat /home/$USERNAME/.credentials to view the password.
  • You can automatically configure a custom domain (optional) during deployment. To do that:
    1. Configure your domain to use Linode’s name servers via your registrar. See Configure your domain's authoritative name servers for details.
    2. Once you complete that, specify the Linode API token, subdomain, and domain for the app in Cloud Manager or via API/CLI/Terraform.

Use API, CLI, or Terraform

In addition to deploying the app to a new Linode instance via Cloud Manager, you can also use the Linode API, CLI, or Terraform. When running the operation, you need to provide the StackScript ID, supported Linux distribution, and app-specific fields along with the standard Linode deployment configurations.

Note: Generate a personal access token to authenticate your API, CLI, or Terraform requests.

curl --location 'https://api.linode.com/v4/linode/instances' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer abc123def456hij789klm' \
    --data-raw '{
        "region": "us-east",
        "type": "g6-standard-2",
        "image": "linode/ubuntu24.04",
        "label": "my-woocommerce-one-click-app",
        "root_pass": "@C0mpl3x#P@ssw0rd",
        "stackscript_id": 401708,
        "stackscript_data": {
            "soa_email_address":"jsmith@example.com",
            "webserver_stack":"LAMP",
            "site_title":"My Site",
            "wp_admin_user":"jsmith-admin",
            "wp_db_user":"jsmith-database",
            "wp_db_name":"My Database",
            "user_name":"jsmith"
        }
    }'
linode-cli linodes create \
    --region us-east \
    --type g6-standard-2 \
    --label my-woocommerce-one-click-app \
    --image linode/ubuntu24.04 \
    --root_pass @C0mpl3x#P@ssw0rd \
    --stackscript_id 401708 \
    --stackscript_data '{"soa_email_address":"jsmith@example.com", "webserver_stack":"LAMP", "site_title":"My Site", "wp_admin_user":"jsmith-admin", "wp_db_user":"jsmith-database", "wp_db_name":"My Database", "user_name":"jsmith"}'
resource "linode_instance" "my-linode" {
    region         = "us-east"
    type           = "g6-standard-2"
    label          = "my-woocommerce-one-click-app"
    image          = "linode/ubuntu24.04"
    root_pass      = "@C0mpl3x#P@ssw0rd"
    stackscript_id = 401708
    stackscript_data = {
        "soa_email_address" = "jsmith@example.com"
        "webserver_stack"   = "LAMP"
        "site_title"        = "My Site"
        "wp_admin_user"     = "jsmith-admin"
        "wp_db_user"        = "jsmith-database"
        "wp_db_name"        = "My Database"
        "user_name"         = "jsmith"
    }
}

2. Access WordPress

Once you've deployed your app in Cloud Manager and fully installed it, get credentials to access the WordPress Admin Dashboard and start using it.

Get credentials

  1. Log in to your new Linode instance using one of these methods:

  2. Once logged in, access the credentials file by running cat /home/$USERNAME/.credentials.

    The command displays the file contents, including the passwords generated when the instance was deployed. Once you save these, you can safely delete the file.

Access dashboard

  1. Open your web browser and navigate to https://[domain]/wp-admin/, where you can replace [domain] with the custom domain entered during deployment or your Linode instance’s rDNS domain, like 192-0-2-1.ip.linodeusercontent.com.

    You can also use your IPv4 address. However, the connection won't be secure. See the Manage IP addresses on a Linode guide for information on viewing IP addresses and rDNS.

    Note: A TLS/SSL certificate is automatically generated for your custom domain, enabling you to connect to the site over the https protocol. If you don't enter a custom domain, a TLS/SSL certificate is configured on the rDNS domain instead. Connections using your IP address aren't secured and will use the http protocol.

  2. Within the WordPress login page, enter the username (admin username) created during your instance deployment and the password automatically generated for this username. Then click Log In.

  3. Once you're logged in to the WordPress Admin Dashboard, create new posts, add users, modify the theme, and adjust any other settings.

View your website

Open a web browser and navigate to https://[domain], replacing [domain] with the custom domain you entered during deployment or your Linode instance’s IPv4 address or rDNS domain. You should be able to view your WordPress site.

Configure the setup wizard

After logging in to the WordPress Admin interface, initiate the WooCommerce setup wizard. To do that:

  1. Click the Start selling button within the WooCommerce Setup banner that appears on the dashboard.

    You can also initiate the setup wizard by hovering over WooCommerce on the left menu and selecting Home.

  2. Follow each step of the setup wizard. This includes specifying your store address details, the industry, the types of products you intend to sell, as well as providing additional business details and selecting a theme.

    Note: Some WooCommerce features and themes require a monthly or yearly paid subscription. When going through the setup wizard, check the cost of any optional features you select.

  3. Depending on the options you select, you may be asked to create a Jetpack account or connect your existing account.

    This enables you to use Jetpack’s suite of tools within WordPress. Jetpack offers a free tier and multiple paid tiers. See Jetpack Pricing for details.

    You can safely ignore this screen if you don't want to use Jetpack services.

  4. Once the setup wizard has finished, you're taken to WooCommerce > Home within your WordPress Admin dashboard.

    From here, you're presented with a checklist of tasks you may need to complete before selling products. This includes adding products, setting up a payment processor, creating tax rules, and more.

🚧

Email restrictions on Akamai Cloud

Outbound connections on ports 25, 465, and 587 are blocked by default on Linode instances for some new accounts to help reduce spam originating from our platform. These restrictions prevent applications from sending email. If you intend to send email from a Linode instance, review the Send email on Akamai Cloud guide to learn more about our email policies and to request the removal of these restrictions.

Additional resources

For more information about adding and modifying content in WordPress, see their official documentation.

📘

Note that we can't vouch for the accuracy or timeliness of externally hosted resources.

For information about securing WordPress through HTTPS, using a secure password, changing the admin username, and more, see our official documentation.


Did this page help you?