WordPress
Deploy WordPress, a free and open source content management system (CMS), to build a customized website.
1. Deploy WordPress
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: 401697
| UI field | API/CLI key | Description |
|---|---|---|
| Required options | ||
| Email address (for the Let's Encrypt SSL certificate) | soa_email_address | Your email address to use when configuring the WordPress admin user, generating SSL certificates, and optionally creating DNS records for a custom domain. |
| Webserver stack | webserver_stack | A webserver to use for the WordPress deployment, Apache2, or NGINX. Possible values are: LAMP or LEMP. |
| Website title | site_title | A title for your WordPress site. |
| Wordpress admin username | wp_admin_user | A username for your WordPress admin user account. |
| Wordpress database user | wp_db_user | A MariaDB username for the WordPress database user. |
| Wordpress database name | wp_db_name | A name for the WordPress MariaDB database. |
| Limited sudo user | user_name | Your 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 |
| Advanced options | ||
| Disable root access over SSH | disable_root | Applies 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 |
| Linode API token | token_password | Applies 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.
|
| Subdomain | subdomain | Applies to a custom domain. The subdomain you want to use, like blog for blog.example.com. Use it only if you specify a Domain. |
| Domain | domain | Applies to a custom domain. The domain name you want to use, like example.com. Use it only if you specify a Linode API token. |
| Prometheus data exporter | prometheus_exporter | An option to include built-in Prometheus endpoints for Node Exporter and MySQL/MariaDB Exporter. See Prometheus exporters for details. Possible values are:
|
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/.credentialsfile. Log in to your instance asrootthrough the Lish console or SSH, then runcat /home/$USERNAME/.credentialsto view the password.- You can automatically configure a custom domain (optional) during deployment. To do that:
- Configure your domain to use Linode’s name servers via your registrar. See Configure your domain's authoritative name servers for details.
- 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-wordpress-one-click-app",
"root_pass": "@C0mpl3x#P@ssw0rd",
"stackscript_id": 401697,
"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-wordpress-one-click-app \
--image linode/ubuntu24.04 \
--root_pass @C0mpl3x#P@ssw0rd \
--stackscript_id 401697 \
--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-wordpress-one-click-app"
image = "linode/ubuntu24.04"
root_pass = "@C0mpl3x#P@ssw0rd"
stackscript_id = 401697
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
-
Log in to your new Linode instance using one of these methods:
- Lish console. Within Cloud Manager, navigate to Linodes from the left menu, select the Linode instance you just deployed, and click the Launch LISH Console button. Log in as the
rootuser. See Accessing your system console using Lish. - SSH. Log in to your Linode instance over SSH using the
rootuser. See Connecting to a remote server over SSH for details.
- Lish console. Within Cloud Manager, navigate to Linodes from the left menu, select the Linode instance you just deployed, and click the Launch LISH Console button. Log in as the
-
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
-
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, like192-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
httpsprotocol. 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 thehttpprotocol. -
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.
-
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.
Manually configure a domain
If you didn't set up a domain during the deployment process, you can add it manually in WordPress. Make sure you have a registered domain.
-
Within the name servers for your domain name, create an A record.
The hostname/name field should be @ for a bare domain (
example.com) or should specify the subdomain you want to use, such as app forapp.example.com.It’s common to create two A records, one using @ and one using www. The IP address should be the IPv4 address of your new Linode instance. If you don't have a name server, use Linode’s DNS Manager.
-
Update WordPress so that it uses your new domain name. You can do this directly in the WordPress Admin Dashboard.
-
Log in to the WordPress Admin Dashboard.
-
Select Settings in the sidebar and then select the General option from the dropdown menu.
-
Within the General Settings form, update the WordPress Address (URL) and Site Address (URL) fields with the full domain you assigned to your site, like
http://example.comorhttp://www.example.com. -
Click Save Changes.
Note: You can also add your new domain through the command line. See Changing The Site URL to learn more.
-
Reset your admin password or email
If you need to reset your admin user’s password and you aren’t receiving the password reset request email, you can update the password from the command line.
You can also use this method to update the email address for your admin account without needing an email confirmation.
-
Navigate to the
public_htmldirectory of your WordPress installation withcd /var/www/example.com/public_html. -
Using WP-CLI, update the password or email address, or any other values as needed. See the WP-CLI wp user update command for details.
-
Update password.
wp user update jsmith --user_pass="p@ssw0rd" --allow-root -
Update email.
wp user update jsmith --user_email="jsmith@example.com" --allow-root
-
Additional resources
For more information about adding and modifying content in WordPress, see their official documentation.
- WordPress Documentation: Learn the basic workflows for using WordPress.
- WordPress Themes: A collection of WordPress themes.
- Migrating WordPress: Change the site URL.
Note that we can't vouch for the accuracy or timeliness of externally hosted resources.
For more information about the WordPress deployment, see our official documentation.
- Securing WordPress: Advice on securing WordPress through HTTPS, using a secure password, changing the admin username, and more.
Updated about 10 hours ago
