diff --git a/ci/vale/dictionary.txt b/ci/vale/dictionary.txt index 20ef62b350f..3a7dd083d93 100644 --- a/ci/vale/dictionary.txt +++ b/ci/vale/dictionary.txt @@ -25,6 +25,7 @@ adoptium aes ag agentless +Agones ahci0 Aho ahvz @@ -2928,6 +2929,7 @@ xml xmpp xms xmx +Xonotic XPath XQuartz XQuery diff --git a/docs/contributors/michael-archer/_index.md b/docs/contributors/michael-archer/_index.md new file mode 100644 index 00000000000..b2777ad1fdb --- /dev/null +++ b/docs/contributors/michael-archer/_index.md @@ -0,0 +1,6 @@ +--- +title: "Michael Archer" +link: "" +email: "mailto:marcher@akamai.com" +description: "The Linode documentation library's profile page and submission listing for Michael Archer" +--- \ No newline at end of file diff --git a/docs/guides/game-servers/set-up-a-xonotic-game-server-with-k3s-and-agones/index.md b/docs/guides/game-servers/set-up-a-xonotic-game-server-with-k3s-and-agones/index.md new file mode 100644 index 00000000000..5ad37fd29c2 --- /dev/null +++ b/docs/guides/game-servers/set-up-a-xonotic-game-server-with-k3s-and-agones/index.md @@ -0,0 +1,273 @@ +--- +slug: set-up-a-xonotic-game-server-with-k3s-and-agones +title: "Set Up a Xonotic Game Server with K3s and Agones" +description: "This guide demonstrates how to install and manage server software for Xonotic using Terraform, K3s, and Agones." +authors: ["Michael Archer"] +contributors: ["Michael Archer"] +published: 2025-03-17 +keywords: ['agones','xonotic','k3s','self-hosted game server'] +license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' +--- + +This guide demonstrates how to install and manage software for a Xonotic server, a free and fast arena shooter game. Resources are deployed on Akamai Cloud using [Terraform](https://www.terraform.io/), an infrastructure-as-code (IaC) tool, and the game server installation is supported by K3s and Agones. + +[K3s](https://k3s.io/) is a lightweight Kubernetes distribution. This tutorial deploys K3s on a single compute instance running the Ubuntu 20.04 LTS Linux distribution and uses it to manage your game server software. [Agones](https://agones.dev/site/) is an open-source, Kubernetes-native project specifically designed for managing dedicated game servers, and it is deployed on the K3s installation in this guide. Agones is then used to deploy and manage containers for the Xonotic server software. + +## Before You Begin + +1. [Install Terraform](https://developer.hashicorp.com/terraform/install) on your local machine or workstation. + +1. Create an Akamai Cloud account if you do not already have one. + +1. [Create a Linode personal access token](https://techdocs.akamai.com/linode-api/reference/get-started#personal-access-tokens). This token is used later by Terraform to create resources on your Akamai Cloud account. + +## Configure Terraform + +1. Create a directory for the Terraform project on your workstation: + + ```command {title="Your workstation"} + mkdir xonotic + cd xonotic + ``` + +1. Inside the new directory, create a Terraform configuration file named `main.tf`, and paste in the following code. This code defines a Linode instance type and sets up a firewall. + + Be sure to replace {{< placeholder "LINODE_REGION" >}} on line 47 with a slug for a region (e.g. `us-central` for the Dallas, TX region) that's geographically closest to your location. Regions and slugs are listed on the [region availability](https://www.linode.com/global-infrastructure/availability/) page. Closer locations reduce lag/latency for players on your game server. + + ```file {title="main.tf" hl_lines="47"} + # Specify the required Terraform provider + terraform { + required_providers { + linode = { + source = "linode/linode" + version = ">= 1.27.0" # Ensure a version that supports metadata + } + } + } + # Define variables for sensitive information + variable "linode_token" { + description = "Linode API token" + type = string + sensitive = true + } + variable "root_password" { + description = "Root password for the instance" + type = string + sensitive = true + } + variable "admin_ip" { + description = "IPv4 address to be used to access the instance" + type = string + sensitive = true + } + + # Configure the Linode provider + provider "linode" { + token = var.linode_token + } + + # Define the cloud-init configuration + data "template_file" "cloud_init" { + template = <}}" + type = "g6-dedicated-4" + image = "linode/ubuntu20.04" + root_pass = var.root_password + booted = true + metadata { + user_data = base64encode(data.template_file.cloud_init.rendered) + } + } + # Create a firewall to allow incoming traffic on port 22 and 7000-8000 + resource "linode_firewall" "my_firewall" { + label = "xonotic-firewall" + # Drop everything that is not covered by an explicit rule + inbound_policy = "DROP" + # Allow all outbound traffic + outbound_policy = "ACCEPT" + # Rule to allow SSH (port 22) + inbound { + label = "allow-ssh" + action = "ACCEPT" + protocol = "TCP" + ports = "22" + ipv4 = [var.admin_ip] + } + # Rule to allow custom port range (7000-8000) + inbound { + label = "allow-custom-ports" + action = "ACCEPT" + protocol = "UDP" + ports = "7000-8000" + ipv4 = ["0.0.0.0/0"] + ipv6 = ["::/0"] + } + # Rule to allow Agones port 8080 + inbound { + label = "allow-custom-ports" + action = "ACCEPT" + protocol = "TCP" + ports = "8080" + ipv4 = ["0.0.0.0/0"] + ipv6 = ["::/0"] + } + # Associate the firewall with the instance + linodes = [linode_instance.my_instance.id] + } + # Output the instance's IP address + output "instance_ip" { + value = linode_instance.my_instance.ip_address + } + ``` + + {{< note >}} + Akamai now offers an expanded set of [distributed compute regions](https://techdocs.akamai.com/cloud-computing/docs/distributed-compute-regions). Deploying in these regions is currently in [limited availability](https://techdocs.akamai.com/etp/docs/features-not-released). These regions may include locations that are closer to you than the set of core compute regions. + + To access these regions, [contact customer support](https://techdocs.akamai.com/cloud-computing/docs/help-and-support#contact-customer-support). + + When deploying in a distributed compute region, note that there is a different [list of supported instance types](https://techdocs.akamai.com/cloud-computing/docs/plans-distributed). The recommended distributed instance type for the deployment in this guide is a `g6-dedicated-edge-4` dedicated server. The instance type can be updated in your Terraform configuration on line 48 of the `main.tf` file under the “type” field. + {{< /note >}} + +1. In the `xonotic` directory, create a file named `terraform.tfvars` with the following code. Insert your personal access token, create a unique and complex root password, and insert your workstation's IP address (maintain the `/32` suffix after the IP). + + ```file {title="terraform.tfvars"} + linode_token = "{{< placeholder "PERSONAL_ACCESS_TOKEN">}}" + root_password = "{{< placeholder "LINODE_ROOT_PASSWORD">}}" + admin_ip = "{{< placeholder "WORKSTATION_IP_ADDRESS">}}/32" + ``` + + If you’re not sure of your IP address, you can use the following command which will return your current public IP address. + + ```{title="Your workstation"} + curl http://whatismyip.akamai.com + ``` + + {{< caution >}} +Keep your `terraform.tfvars` file safe, and *never* commit it to a public repository. +{{< /caution >}} + +## Create Resources with Terraform + +1. While inside the `xonotic` directory, initialize Terraform: + + ```command {title="Your workstation"} + terraform init + ``` + + This command downloads the necessary [Linode Terraform provider](https://registry.terraform.io/providers/linode/linode/latest/docs). + +1. Apply the configuration defined in the previous section of this guide: + + ```command {title="Your workstation"} + terraform apply + ``` + +1. When prompted to confirm the changes, type `yes` and hit Enter. Terraform provisions your Linode instance and sets up the firewall. + +1. Once Terraform is finished, it outputs the IP address of your new Linode instance. SSH into the instance as the root user using this IP address: + + ```command {title="Your workstation"} + ssh root@{{< placeholder "LINODE_INSTANCE_IP_ADDRESS" >}} + ``` + + Enter the root password when prompted, which you defined in the `terraform.tfvars` file in the previous section of this guide. + +1. Before proceeding with game server software installation, take time to [secure your new instance](https://techdocs.akamai.com/cloud-computing/docs/set-up-and-secure-a-compute-instance). Make sure to create a limited sudo user, set your timezone, configure your hostname, and harden SSH access. + +## Install K3s + +Once fully deployed and secured, continue your server setup while logged into your instance. First, install K3’s using the following curl command: + +```command {title="Linode SSH session"} +curl -sfL https://get.k3s.io | sh - +``` + +## Install Agones on K3s + +While logged into your instance, continue your server configuration by installing Agones. + +1. Create a dedicated namespace for Agones, and deploy it to your K3s cluster via the installation YAML file hosted on GitHub: + + ```command {title="Linode SSH session"} + kubectl create namespace agones-system + kubectl apply --server-side -f https://raw.githubusercontent.com/googleforgames/agones/release-1.47.0/install/yaml/install.yaml + ``` + +1. Observe the new pods created by Agones: + + ```command {title="Linode SSH session"} + kubectl describe --namespace agones-system pods + ``` + + You should see output indicating that the Agones pods are running. If the Agones pods are not running yet, wait until they are before proceeding to the next section. + +## Install Xonotic Game Server on K3s + +1. From your SSH session with your Linode instance, run this command to deploy a container for the Xonotic game server software using Agones: + + ```command {title="Linode SSH session"} + kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.47.0/examples/xonotic/fleet.yaml + ``` + +1. Run this command to observe the newly deployed game server. The `watch` command will updated every 2 seconds: + + ```command {title="Linode SSH session"} + watch kubectl describe gameserver + ``` + + Enter Ctrl + C to exit the `watch` command. + +1. Get a list of your game servers and their IP addresses and ports: + + ```command {title="Linode SSH session"} + kubectl get gs + ``` + + Make a note of the IP address and port, which is used to configure the Xonotic client software in the next section. + +## Install and Configure Xonotic Client + +1. If you don't have it already, download and install the Xonotic client for your workstation's operating system from [https://xonotic.org/](https://xonotic.org/). See the Xonotic [Forums](https://forums.xonotic.org/) and [FAQ](https://xonotic.org/faq/) for additional application support, docs, and in-game information. + +1. Launch the Xonotic client and choose the multiplayer game mode. + +1. Enter the IP address and port of your game server in the **Address** field of the Xonotic client UI, separated by a colon: + + {{< placeholder "GAME_SERVER_IP_ADDRESS" >}}:{{< placeholder "GAME_SERVER_PORT" >}} + + +1. Click **Join!** to join the game server. + +## Clean Up Resources + +Follow these steps to remove the software and resources created in this tutorial: + +1. To remove the Xonotic game server, run this kubectl command on your Linode instance: + + ```command {title="Linode SSH session"} + kubectl delete -f https://raw.githubusercontent.com/googleforgames/agones/release-1.47.0/examples/xonotic/fleet.yaml + ``` + +1. To remove Agones, run this kubectl command on your Linode instance: + + ```command {title="Linode SSH session"} + kubectl delete -f https://raw.githubusercontent.com/googleforgames/agones/release-1.47.0/install/yaml/install.yaml + ``` + +1. To remove the Linode instance and firewall created by Terraform, run this Terraform command from the `xonotic` directory on your workstation + + ```command {title="Your workstation"} + terraform destroy + ``` \ No newline at end of file diff --git a/docs/guides/networking/vpn/strongswan-vpn-server-install/index.md b/docs/guides/networking/vpn/strongswan-vpn-server-install/index.md index 32ced86d10f..5fc51afc54a 100644 --- a/docs/guides/networking/vpn/strongswan-vpn-server-install/index.md +++ b/docs/guides/networking/vpn/strongswan-vpn-server-install/index.md @@ -44,17 +44,21 @@ The steps in this guide are written for non-root users. Commands that require el 1. Use the IPsec command-line utility to create your IPsec private key. In the case of this tutorial, the private key is used to create the root certificate for StrongSwan. You can also use this key to generate other certificates. - sudo ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem + sudo ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem + sudo mv ca.key.pem /etc/ipsec.d/private/ca.key.pem + sudo chmod 600 /etc/ipsec.d/private/ca.key.pem 1. Create and sign the root certificate with the configurations included below. Ensure you replace the value of the `CN` configuration with your own desired name for your StrongSwan VPN server. - ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem + sudo ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa \ + --dn "CN=" --ca --lifetime 3650 --outform pem | \ + sudo tee /etc/ipsec.d/cacerts/ca.cert.pem > /dev/null In the example above, the `--lifetime 3650` configuration sets the certificate's lifetime to 3650 days or approximately ten years. The lifetime of the certificate determines when it is to be regenerated and distributed to your StrongSwan server and connected clients. You can adjust this setting to your preferred value. -1. Generate the StrongSwan VPN server's private certificate. +1. Generate the StrongSwan VPN server’s private key and save it to `/etc/ipsec.d/private/server.key.pem`. This command ensures root permissions for file creation, and suppresses terminal output. - ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem + sudo ipsec pki --gen --size 4096 --type rsa --outform pem | sudo tee /etc/ipsec.d/private/server.key.pem > /dev/null 1. Generate the host server certificate. There are two ways to generate the certificate, however, they cannot be mixed. The two ways are as follows: @@ -64,13 +68,26 @@ The steps in this guide are written for non-root users. Commands that require el **Local Resolver Method** The example below uses a local resolver. The IPsec utility takes the server key from step 2 and uses it as an input private certificate source, and generates a resolver-based certificate. Ensure you replace the value of `CN` and `san` with your own. The `--dn “CN=` is a DNS or `/etc/hosts` call that should be changed to reflect your organization's own hostname. - ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=" --san="" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem + sudo ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | \ + sudo ipsec pki --issue --lifetime 3650 \ + --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \ + --dn "CN=" --san="" \ + --flag serverAuth --flag ikeIntermediate --outform pem | \ + sudo tee /etc/ipsec.d/certs/server.cert.pem > /dev/null + **Gateway Server IPv4 Address** The duplicate `–san=”` configuration in the command below is correct; do not omit both configurations. Replace their values with your own gateway server's IPv4 address. - ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=" –san=”” --san="" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem + sudo ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | \ + sudo ipsec pki --issue --lifetime 3650 \ + --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem \ + --dn "CN=" \ + --san="" --san="" \ + --flag serverAuth --flag ikeIntermediate --outform pem | \ + sudo tee /etc/ipsec.d/certs/server.cert.pem > /dev/null + At the end of this section, you should have generated the following files on your Ubuntu 20.04 server: diff --git a/docs/marketplace-docs/guides/aapanel/index.md b/docs/marketplace-docs/guides/aapanel/index.md index dfdbe48e2bd..f01895917e3 100644 --- a/docs/marketplace-docs/guides/aapanel/index.md +++ b/docs/marketplace-docs/guides/aapanel/index.md @@ -30,25 +30,50 @@ marketplace_app_name: "aaPanel" ## Configuration Options -- **Supported distributions:** CentOS 7 +- **Supported distributions:** Ubuntu 24.04 LTS - **Recommended plan:** All plan types and sizes can be used. -## Getting Started after Deployment +## aaPanel Options -### Access your aaPanel App +- **Email address** *(required)*: Enter the email address you want to use for generating the SSL certificates and configuring the server and DNS records. + +{{% content "marketplace-required-limited-user-fields-shortguide" %}} + +{{% content "marketplace-custom-domain-fields-shortguide" %}} + +{{% content "marketplace-special-character-limitations-shortguide" %}} + +### Obtain the Credentials + +Once the app is deployed, you need to obtain the credentials from the server. + +To obtain the credentials: -1. Log in to your instance through [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). +1. Log in to your new Compute Instance using one of the methods below: -2. Run the following command to obtain your login information for your aaPanel dashboard: + - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/). + - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/). + +1. Run the following command to access the credentials file: + + ```command + cat /home/$USERNAME/.credentials + ``` + +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. + +## Getting Started after Deployment + +### Access your aaPanel App - cat /root/.aapanel_info +1. Log in to your instance through [SSH](/docs/guides/connect-to-server-over-ssh/) or [Lish](/docs/products/compute/compute-instances/guides/lish/). Once you've login via SSH you will see the message of the day (MOTD) which includes the login URL for this instance. - ![aaPanel Login Details](aaPanel-login-info.png) +2. Open the URL and enter the login credentials. -3. Once you visit the URL and enter the login credentials you will be prompted to choose which One-Click services (LAMP/LNMP) you would like to install: +1. Choose which One-Click services (LAMP/LNMP) you want to install. ![aaPanel One-Click](aaPanel-one-click.png) -Now that you’ve accessed your dashboard, checkout [the official aaPanel documentation](https://doc.aapanel.com/) to learn how to further configure your instance. +Now that you’ve accessed your dashboard, checkout [the official aaPanel documentation](https://doc.aapanel.com/) to learn how to configure your instance. {{% content "marketplace-update-note-shortguide" %}} \ No newline at end of file diff --git a/docs/marketplace-docs/guides/gitlab/index.md b/docs/marketplace-docs/guides/gitlab/index.md index 5024e62f424..e50f8dc1327 100644 --- a/docs/marketplace-docs/guides/gitlab/index.md +++ b/docs/marketplace-docs/guides/gitlab/index.md @@ -7,6 +7,7 @@ keywords: ['gitlab','marketplace apps','version control','git'] tags: ["linode platform","version control system","marketplace","cloud-manager"] external_resources: - '[GitLab Administrator Documentation](https://docs.gitlab.com/ee/administration/)' +- '[GitLab Official Documentation](https://docs.gitlab.com/ee/university/training/topics/getting_started.html)' aliases: ['/products/tools/marketplace/guides/gitlab/','/platform/one-click/deploy-gitlab-with-one-click-apps/','/guides/deploy-gitlab-with-one-click-apps/', '/platform/marketplace/deploy-gitlab-with-marketplace-apps/', '/guides/deploy-gitlab-with-marketplace-apps/','/guides/gitlab-marketplace-app/'] authors: ["Akamai"] contributors: ["Akamai"] @@ -31,47 +32,54 @@ Self-hosting your software development with GitLab offers total control of your ## Configuration Options -- **Supported distributions:** Debian 11, Ubuntu 20.04 LTS +- **Supported distributions:** Ubuntu 24.04 LTS - **Recommended minimum plan:** 8GB Dedicated CPU Compute Instance ### GitLab Options -- **Email address** *(required)*: Enter the email address to use for generating the SSL certificates. +- **Email address** *(required)*: Enter the email address you want to use for generating the SSL certificates and configuring the server and DNS records. -{{% content "marketplace-limited-user-fields-shortguide" %}} +{{% content "marketplace-required-limited-user-fields-shortguide" %}} {{% content "marketplace-custom-domain-fields-shortguide" %}} {{% content "marketplace-special-character-limitations-shortguide" %}} -## Getting Started after Deployment +### Obtain the Credentials -### Access the GitLab Site +Once the app is deployed, you need to obtain the credentials from the server. -Once your new Compute Instance has been fully deployed, follow the instructions below to access your new Gitlab app. +To obtain the credentials: + +1. Log in to your new Compute Instance using one of the methods below: -1. **Find the Gitlab root password:** Before logging in to your Gitlab site, you need to obtain the Gitlab root password that was generated during provisioning. + - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/). + - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/). - 1. Log in to your new Compute Instance through [Lish](/docs/products/compute/compute-instances/guides/lish/) or [SSH](/docs/guides/connect-to-server-over-ssh/) using either the `root` user or limited user and the associated password you entered when creating the instance. +1. Run the following command to access the credentials file: - 1. Enter the following command in the lish console or terminal session: + ```command + cat /home/$USERNAME/.credentials + ``` - cat /etc/gitlab/initial_root_password +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. - The Gitlab root password is displayed within the output of that command. +## Getting Started after Deployment + +Once your new Compute Instance has been fully deployed, follow the instructions below to access your new Gitlab app. -1. **Log in to your Gitlab site:** Open a web browser and enter either your Compute Instance's default rDNS domain or your domain name (if you entered one during deployment). See the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) guide for information on viewing and setting the rDNS value. +1. Log in to your Gitlab site by opening a web browser and entering either your Compute Instance's default rDNS domain or your domain name (if you entered one during deployment). See the [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) guide for information on viewing and setting the rDNS value. - When presented with a login screen, enter the following credentials: + On the login screen, enter the following credentials: - **Username:** `root` - - **Password:** Use the password you obtained in the previous step. + - **Password:** Use the password obtained from your credentials file. -1. **Reset the root password:** Once you're logged in, it's recommended that you reset the root password. To do so, navigate to the following URL, replacing *[domain]* with the rDNS domain of your Compute instance or your custom domain: +1. Once you're logged in, it's recommended that you reset the root password. To do so, go to the following URL, replacing *[domain]* with the rDNS domain of your Compute instance or your custom domain: https://[domain]/-/profile/password/edit -You can now begin creating GitLab repositories, users, and more. See [GitLab's official documentation](https://docs.gitlab.com/ee/university/training/topics/getting_started.html) for more information. +You can now begin creating GitLab repositories, users, and more. To learn more, see [GitLab's official documentation](https://docs.gitlab.com/ee/university/training/topics/getting_started.html). ## Software Included diff --git a/docs/marketplace-docs/guides/mern-stack/index.md b/docs/marketplace-docs/guides/mern-stack/index.md index 6a89ea48078..ac1925875bf 100644 --- a/docs/marketplace-docs/guides/mern-stack/index.md +++ b/docs/marketplace-docs/guides/mern-stack/index.md @@ -2,14 +2,14 @@ title: "Deploy a MERN Stack through the Linode Marketplace" description: "This guide shows you how to install and configure a MERN (MongoDB, Express, React, Node.js) stack on a Linode using our One-Click Marketplace App." published: 2019-04-02 -modified: 2022-03-08 +modified: 2025-03-10 keywords: ['mongodb','mern','react','express', 'web app'] tags: ["web server","database","cloud-manager","linode platform","web applications","marketplace"] external_resources: - '[MongoDB Getting Started](https://docs.mongodb.com/manual/tutorial/getting-started/)' - '[Express Hello World Example](https://expressjs.com/en/starter/hello-world.html)' - '[React Getting Started](https://reactjs.org/docs/getting-started.html)' -- '[Node.js Getting Started](https://nodejs.org/es/docs/guides/getting-started-guide/)' +- '[Node.js Getting Started](https://nodejs.org/en/docs/guides/getting-started-guide/)' aliases: ['/products/tools/marketplace/guides/mern-stack/','/platform/marketplace/deploy-mern-with-marketplace-apps/', '/platform/one-click/deploy-mern-with-one-click-apps/', '/guides/deploy-mern-with-one-click-apps/','/guides/deploy-mern-with-marketplace-apps/','/guides/mern-stack-marketplace-app/'] authors: ["Akamai"] contributors: ["Akamai"] @@ -42,22 +42,39 @@ All of these technologies are well-established, offer robust feature sets, and a ## Configuration Options -- **Supported distributions:** Debian 10, Debian 11, and Ubuntu 20.04 LTS -- **Recommended minimum plan:** 1GB Shared Compute Instance or higher, depending on the number of sites and size of the sites you plan on hosting. +- **Supported distributions:** Ubuntu 24.04 LTS +- **Suggested plan:** 1GB Shared Compute Instance or higher, depending on the number of sites and size of the sites you plan on hosting. ### MERN Stack Options {{% content "marketplace-limited-user-fields-shortguide" %}} -{{% content "marketplace-custom-domain-fields-shortguide" %}} +{{% content "marketplace-required-limited-user-fields-shortguide" %}} {{% content "marketplace-special-character-limitations-shortguide" %}} ## Getting Started After Deployment -After your MERN One-click App has finished installing, you can: +### Obtain the Credentials -- [Connect to your Linode via SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance). You need your Linode's root password to proceed. +Once the app is deployed, you need to obtain the credentials from the server. + +To obtain credentials: + +1. Log in to your new Compute Instance using one of the methods below: + + - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/). + - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/). + +1. Run the following command to access the credentials file: + + ```command + cat /home/$USERNAME/.credentials + ``` + +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. + +### Additional Resources - Consult the following guides to learn more about working with the various components of the MERN stack: @@ -71,7 +88,7 @@ After your MERN One-click App has finished installing, you can: | **MongoDB** | Document-based database | | **Express** | Web application framework | | **React** | JavaScript library | -| **Node JS** | Runtime environment | -| **UFW (UncomplicatedFirewall)** | Firewall utility. Ports 22/tcp for IPv4 and IPv6 allows incoming traffic. All other ports have the following firewall rules: deny (incoming), allow (outgoing). | +| **Node.js** | Runtime environment | +| **UFW (Uncomplicated Firewall)** | Firewall utility. Ports 22/tcp for IPv4 and IPv6 allows incoming traffic. All other ports have the following firewall rules: deny (incoming), allow (outgoing). | {{% content "marketplace-update-note-shortguide" %}} diff --git a/docs/marketplace-docs/guides/mysql/index.md b/docs/marketplace-docs/guides/mysql/index.md index 88d5c31062c..f48cc479f57 100644 --- a/docs/marketplace-docs/guides/mysql/index.md +++ b/docs/marketplace-docs/guides/mysql/index.md @@ -2,7 +2,7 @@ title: "Deploy MySQL/MariaDB through the Linode Marketplace" description: "This guide shows how to install and configure MySQL/MariaDB so you can run databases for anything from a CRM to WordPress by using the Linode One-Click Marketplace." published: 2020-03-13 -modified: 2022-03-08 +modified: 2025-02-28 keywords: ['database','mysql','rdbms','relational database','mariadb'] tags: ["database","cloud-manager","linode platform","mysql","marketplace","mariadb"] external_resources: @@ -17,7 +17,7 @@ marketplace_app_id: 607026 marketplace_app_name: "MySQL/MariaDB" --- -MySQL is an open-source database management system that uses a relational database and SQL (Structured Query Language) to manage its data. In Debian 9, MySQL is replaced with MariaDB as the default database system. MariaDB is an open-source, multi-threaded relational database management system, backward compatible replacement for MySQL. It is maintained and developed by the MariaDB Foundation. +The MySQL/MariaDB Marketplace app can deploy MySQL or MariaDB. MySQL is an open-source database management system that uses a relational database and SQL (Structured Query Language) to manage its data. MariaDB is an open-source, multi-threaded relational database management system, backward compatible replacement for MySQL that's maintained and developed by the MariaDB Foundation. ## Deploying a Marketplace App @@ -26,41 +26,42 @@ MySQL is an open-source database management system that uses a relational databa {{% content "marketplace-verify-standard-shortguide" %}} {{< note >}} -**Estimated deployment time:** MySQL should be fully installed within 2-5 minutes after the Compute Instance has finished provisioning. +**Estimated deployment time:** The app should be fully installed within 2-5 minutes after the Compute Instance has finished provisioning. {{< /note >}} ## Configuration Options -- **Supported distributions:** Ubuntu 20.04 LTS -- **Recommended plan:** Depends on the size of your MySQL database and the amount of traffic you expect. +- **Supported distributions:** Ubuntu 24.04 LTS +- **Suggested plan:** All plan types and sizes can be used. We suggest using a [High Memory Compute Instance](https://www.linode.com/products/high-memory/) for larger databases in a production environment. ### MySQL/MariaDB Options - **MySQL or MariaDB** *(required)*: Select which database service you'd like to use. -- **MySQL Root Password** *(required)*: The root password for your MySQL database. -- **MySQL User** *(required)*: The user for your MySQLDB database. -- **MySQL User Password** *(required)*: The user password for your MySQL database. -- **Create Database** *(required)*: The database on your MySQL. -{{% content "marketplace-limited-user-fields-shortguide" %}} - -{{% content "marketplace-custom-domain-fields-shortguide" %}} +{{% content "marketplace-required-limited-user-fields-shortguide" %}} {{% content "marketplace-special-character-limitations-shortguide" %}} ## Getting Started after Deployment -### Access MySQL/MariaDB +### Obtain the Credentials + +Once the app is deployed, you need to obtain the credentials from the server. + +To obtain credentials: -After MySQL has finished installing, you will be able to access MySQL from the console via ssh with your Linode's IPv4 address: +1. Log in to your new Compute Instance using one of the methods below: -1. [SSH into your Linode](/docs/products/compute/compute-instances/guides/set-up-and-secure/#connect-to-the-instance) and [create a limited user account](/docs/products/compute/compute-instances/guides/set-up-and-secure/#add-a-limited-user-account). + - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/). + - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/). -1. Log out and log back in as your limited user account. +1. Run the following command to access the credentials file: -1. Update your server: + ```command + cat /home/$USERNAME/.credentials + ``` - sudo apt-get update && apt-get upgrade +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. ## Using MySQL/MariaDB @@ -72,9 +73,7 @@ The standard tool for interacting with MySQL is the `mysql` client which install sudo mysql -u root -p -1. When prompted, enter the MySQL root password that you set when launching the Marketplace App. You'll then be presented with a welcome header and the MySQL prompt as shown below: - - MariaDB [(none)]> +1. When prompted, enter the MySQL root password that was provided in the `/home/$USERNAME/.credentials` file. You get a welcome header and the MySQL prompt. 1. To generate a list of commands for the MySQL prompt, enter `\h`. You'll then see: @@ -107,19 +106,9 @@ The standard tool for interacting with MySQL is the `mysql` client which install For server side help, type 'help contents' - MariaDB [(none)]> - -1. Grant access to the database that you created when launching the Marketplace App for **MySQL User**. In this example, the database is called `webdata`, the user `webuser`, and password of the user is `password`. Be sure to enter your own password. This should be different from the root password for MySQL: - - GRANT ALL ON webdata.* TO 'webuser' IDENTIFIED BY 'password'; - -1. To Exit MySQL/MariaDB type: - - exit - ### Create a Sample Table -1. Log back in as **MySQL User** that you set when launching the Marketplace App. In the following example the **MySQL User** is `webuser`. +1. Log back in as sudo user that you set when launching the Marketplace App. In the following example the sudo user is `webuser`. sudo mysql -u webuser -p @@ -128,7 +117,7 @@ The standard tool for interacting with MySQL is the `mysql` client which install use webdata; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT); -3. To view the contents of the table that you created: +3. To view the contents of the table that you created, enter the command: describe customers; @@ -142,8 +131,7 @@ The standard tool for interacting with MySQL is the `mysql` client which install | last_name | text | YES | | NULL | | +-------------+---------+------+-----+---------+----------------+ - -4. Then exit MySQL/MariaDB. +4. To exit MySQL/MariaDB, enter: exit diff --git a/docs/marketplace-docs/guides/owncast/index.md b/docs/marketplace-docs/guides/owncast/index.md index 5f8d8d9fd4c..c01a793c8c5 100644 --- a/docs/marketplace-docs/guides/owncast/index.md +++ b/docs/marketplace-docs/guides/owncast/index.md @@ -2,12 +2,13 @@ title: "Deploy Owncast through the Linode Marketplace" description: "This guide shows how to install Owncast, a self-hosted live video and webchat server that works with common broadcasting software, from the Linode One-Click Marketplace." published: 2021-03-31 -modified: 2022-03-08 +modified: 2025-03-10 keywords: ['live streaming','marketplace','web chat'] tags: ["marketplace", "linode platform", "cloud manager"] external_resources: - '[Owncast](https://owncast.online/)' - '[Owncast Github](https://github.com/owncast/owncast)' +- '[Owncast Documentation](https://owncast.online/docs/)' aliases: ['/products/tools/marketplace/guides/owncast/','/guides/deploy-owncast-with-marketplace-apps/','/guides/owncast-marketplace-app/'] authors: ["Akamai"] contributors: ["Akamai"] @@ -30,24 +31,60 @@ marketplace_app_name: "Owncast" ## Configuration Options -- **Supported distributions:** Debian 10 -- **Recommended plan:** All plan types and sizes can be used with Owncast. +- **Supported distributions:** Ubuntu 24.04 LTS +- **Suggested plan:** All plan types and sizes can be used with Owncast. ### Owncast Options - **Hostname**: Your public hostname for your Owncast server. Required for SSL. - **Email**: Your email address for configuring SSL. +{{% content "marketplace-limited-user-fields-shortguide" %}} + +{{% content "marketplace-custom-domain-fields-shortguide" %}} + ## Getting Started after Deployment -### Access your Owncast App +Once the app is deployed, you need to obtain the credentials from the server. + +To obtain credentials: + +1. Log in to your new Compute Instance using one of the methods below: + + - **Lish Console**: Log in to Cloud Manager, click the **Linodes** link in the left menu, and select the Compute Instance you just deployed. Click **Launch LISH Console**. Log in as the `root` user. To learn more, see [Using the Lish Console](/docs/products/compute/compute-instances/guides/lish/). + - **SSH**: Log in to your Compute Instance over SSH using the `root` user. To learn how, see [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/). + +1. Run the following command to access the credentials file: + + ```command + cat /home/$USERNAME/.credentials + ``` -After Owncast has finished installing, you can access your server with your Linode's IPv4 address. Copy your Linode’s IPv4 address from the [Linode Cloud Manager](https://cloud.linode.com), and then connect to the server from your browser using your Linode's IPv4 address and port `8080`(for example `192.0.2.0:8080`). +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. + +## Using Owncast + +After Owncast has finished installing, you can access your server with your Linode's custom domain or Reverse DNS. + +With Owncast running, you can begin to configure your new server. Visit the Admin settings, located at `/admin` (for example `example.com/admin`) and use the credentials (for the `admin` user) you obtained in the previous section to log in. ![owncast.png 'The Owncast stream view'](owncast.png) -With Owncast running, you can begin to configure your new server. Visit the Admin settings, located at `/admin` (for example `192.0.2.0:8080/admin`). Visit the [Configuration Instructions](https://owncast.online/docs/configuration/?source=linodemarketplace) to learn how you can change your video settings, web page content, and more. +### Connecting Your Streaming Software + +To start streaming with Owncast: + +1. Log in to the Owncast admin panel at `/admin`. +1. Go to the **Stream Keys** section and copy your streaming key. +1. Open your broadcasting software, for example OBS Studio. +1. Configure your streaming settings with following values: + - **Service**: **Custom**, + - **Server**: `rtmp://your-domain-or-ip/live`, + - **Stream Key**: The key you copied from the admin panel. + +For more detailed instructions on configuring specific streaming software, refer to the [Owncast Documentation](https://owncast.online/docs/broadcasting/). On the server, Owncast is installed in the `/opt/owncast` directory. You'll find all your data files there. This is also where you can upgrade your Owncast server in the future. + {{% content "marketplace-update-note-shortguide" %}} diff --git a/docs/marketplace-docs/guides/plex/index.md b/docs/marketplace-docs/guides/plex/index.md index ba380ff3ebb..223bbee2fc6 100644 --- a/docs/marketplace-docs/guides/plex/index.md +++ b/docs/marketplace-docs/guides/plex/index.md @@ -2,7 +2,7 @@ title: "Deploy Plex Media Server through the Linode Marketplace" description: "Stream your personal media collection to nearly any device with your own Plex Media Server using Linode Marketplace Apps." published: 2020-09-28 -modified: 2024-06-06 +modified: 2025-02-19 keywords: ['streaming','plex','video','media server'] tags: ["debian","docker","marketplace", "web applications","linode platform", "cloud manager"] image: Deploy_Plex_oneclickapps.png @@ -20,7 +20,7 @@ marketplace_app_name: "Plex Media Server" ## Why Use Plex Media Server -Owning a Plex Media Server enables you to maintain a personal media library in addition to accessing [Plex's own content](https://mediaverse.plex.tv/), all available to stream to nearly [any device](https://www.plex.tv/apps-devices/). The ability to stream your own media is a unique advantage over other streaming services like [Netflix](https://www.netflix.com/), and comes only at the cost of your Linode services. Additional features, including local downloading, bandwidth limiting, and hardware transcoding are also available through the paid [Plex Pass](https://www.plex.tv/plex-pass/) service. +Owning a Plex Media Server enables you to maintain a personal media library in addition to accessing [Plex's own content](https://mediaverse.plex.tv/), all available to stream to nearly [any device](https://www.plex.tv/apps-devices/). The ability to stream your own media is a unique advantage over other streaming services like [Netflix](https://www.netflix.com/), and comes only at the cost of your Akamai cloud computing services. Additional features, including local downloading, bandwidth limiting, and hardware transcoding are also available through the paid [Plex Pass](https://www.plex.tv/plex-pass/) service. ## Deploying a Marketplace App @@ -34,21 +34,14 @@ Owning a Plex Media Server enables you to maintain a personal media library in a ## Configuration Options -- **Supported distributions:** Debian 10 -- **Recommended minimum plan:** 4GB Dedicated CPU or Shared Compute Instance +- **Supported distributions:** Ubuntu 24.04 LTS +- **Suggested minimum plan:** 4GB Dedicated CPU or Shared Compute Instance ### Plex Options +{{% content "marketplace-required-limited-user-fields-shortguide" %}} +- **SOA Email Address:** *(required)*: Enter an email address you want to use for generating the SSL certificates and configuring the server and DNS records. -The following configuration options create a secure [Limited User](/docs/products/compute/compute-instances/guides/set-up-and-secure/#add-a-limited-user-account) to run your Plex Media Server. - -{{< note >}} -- As a security measure, [root login over SSH](/docs/products/compute/compute-instances/guides/set-up-and-secure/#ssh-daemon-options) is disabled for this App. Use your Limited User credentials to access your Linode via SSH instead. -- The Limited User configurations below are for your Linode's [Linux user](/docs/guides/linux-users-and-groups/), which is distinct from your [Plex account user](https://www.plex.tv/sign-up/). -{{< /note >}} - -- **Limited User Name** *(required)*: Enter your preferred username for the limited user. If the username `root` is specified, a limited user is not created and extra security features are not configured. -- **Limited User Password** *(required)*: Enter a *strong* password for the new user. -- **Limited User SSH Key:** If you wish to log in as the limited user through public key authentication (without entering a password), enter your public key here. See [Creating an SSH Key Pair and Configuring Public Key Authentication on a Server](/docs/guides/use-public-key-authentication-with-ssh/) for instructions on generating a key pair. +{{% content "marketplace-custom-domain-fields-shortguide" %}} {{% content "marketplace-special-character-limitations-shortguide" %}} @@ -56,71 +49,44 @@ The following configuration options create a secure [Limited User](/docs/product After your Plex Server has been deployed, you can upload media and configure access to your Plex Server from Plex clients for your media devices. -Before you begin, ensure that you have signed up for a [Plex account](https://www.plex.tv/sign-up/). +Before you begin, ensure that you signed up to [Plex](https://www.plex.tv/sign-up/). ### Initial Setup -Administration of your Plex Server is performed from its web interface. Before you can connect to the web interface from your workstation, you first need to create an SSH tunnel to your Linode. - -{{< note >}} -This guide occasionally directs you to substitute variables beginning with `$` in certain commands. - -An easy way to make these substitutions is to set the variables in your shell, then simply copy the commands as they are provided in this guide — your shell automatically substitutes the `$` variables in those commands with the values you have set. - -For example, you can set configure a substitution for `$IP_ADDRESS` like so: - - IP_ADDRESS=192.0.2.0 - -Your shell then interprets `$IP_ADDRESS` as the value you have provided in following commands, for example: - - echo $IP_ADDRESS - -```output -192.0.2.0 -``` -{{< /note >}} - -1. From your workstation [terminal](/docs/guides/using-the-terminal/), enter the following the command, substituting `$USERNAME` with your Linux [Limited User Name](#plex-marketplace-app-options), and `$IP_ADDRESS` with the [IP address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/) of your Plex Server Linode: - - ssh $USERNAME@$IP_ADDRESS -L 8888:localhost:32400 - - You now have an established SSH connection to your Plex Server Linode in your terminal, and can also access the Plex web interface from your workstation browser. - -1. Enter `http://localhost:8888/web` into your workstation browser to access the Plex Server setup web interface. Enter your Plex account username and password to proceed with the setup. - +Administration of your Plex Server is performed from its web interface. Open a web browser and go to the custom domain provided during deployment, or the instance's default rDNS. ![Plex Login Screen](plex-login.png "Plex login screen.") -1. Give your Plex Server a name. Be sure to leave the **Allow me to access my media outside my home** box **checked**, and select **NEXT**. +1. Enter a name for your Plex server and select the **Allow me to access my media outside my home** checkbox. Click **NEXT**. ![Plex Server Setup - Name](initial-setup-set-hostname.png "Plex Server Setup - Name.") -1. Skip Media Library setup by selecting **NEXT** for now. You will [Upload Media](#upload-media) and [Add Media Libraries](#add-media-libraries) in the sections below. +1. Skip Media Library setup by clicking **NEXT**. You will [Upload Media](#uploading-media) and [Add Media Libraries](#adding-media-libraries) in the sections below. ![Plex Server Setup - Skip Add Media Library](initial-setup-skip-media-library.png "Plex Server Setup - Skip Add Media Library.") -1. Finish initial setup and reach the Plex home screen by selecting **DONE**. +1. To finish the initial setup, click **DONE**. ![Plex Server Setup - Finish](initial-setup-finish.png "Plex Server Setup - Finish.") -1. Click on the **Settings** icon in top-right corner of the Plex web interface. +1. Click the **Settings** icon in top-right corner of the Plex web interface. ![Plex Settings Icon](initial-setup-settings-icon.png "Plex Settings Icon.") -1. On the left side bar, ensure that your new Plex Server is selected and select **Remote Access** under the **Settings** section. +1. On the left side bar, ensure that your new Plex Server is selected and in the **Settings** section, select **Remote Access**. ![Plex Server Remote Access Settings](initial-setup-remote-access.png "Plex Remote Access Settings.") -1. Click the check box next to **Manually specify public port**, keep the default value of `32400`, and select **RETRY** or **APPLY**. You may need to select **SHOW ADVANCED** to see these settings. +1. Select the **Manually specify public port** checkbox and keep the default value of `32400`. Click **Retry** or **Apply**. You may need to select **Show advanced** to see these settings. ![Enable Plex Server Remote Access](initial-setup-enable-remote-access.png "Enable Plex Server Remote Access.") -1. Wait until you see a message stating that your Plex Server is **Fully accessible outside your network**. +1. Wait until you see a message stating that your Plex Server is *Fully accessible outside your network*. ![Plex Server Remote Access Successful](initial-setup-remote-access-success.png "Plex Server Remote Access Successful.") -You can now access [uploaded media](#upload-media) and manage your Plex Server from any Plex Client, such as the [Plex Web App](https://app.plex.tv). If you are unable to reach your Plex Server remotely, you can repeat the steps in this section to re-establish a direct connection for administrative purposes. +You can now access [uploaded media](#uploading-media) and manage your Plex Server from any Plex Client, such as the [Plex Web App](https://app.plex.tv). If you are unable to reach your Plex Server remotely, you can repeat the steps in this section to re-establish a direct connection for administrative purposes. -### (Optional) Connect a Linode Block Storage Volume +### (Optional) Connecting a Linode Block Storage Volume If your media collection is larger than the space available from your Linode plan, [Block Storage](/docs/products/storage/block-storage/) is a convenient solution. This section outlines the steps for creating and connecting a Block Storage Volume for use with your Plex Server. @@ -128,7 +94,7 @@ If your media collection is larger than the space available from your Linode pla For future reference, you can find examples of the instructions provided in this section in Cloud Manager by navigating to [**Volumes**](https://cloud.linode.com/volumes), then selecting **Show Configuration** from the option menu for your Volume. {{< /note >}} -1. [View, Create, and Delete Block Storage Volumes](/docs/products/storage/block-storage/guides/manage-volumes/) if you do not already have one prepared. +1. [View, Create, and Delete Block Storage Volumes](/docs/products/storage/block-storage/guides/manage-volumes/) if you don't have one already prepared. 1. Establish an SSH connection to your Plex Server Linode as your [Limited User](#plex-marketplace-app-options). @@ -136,7 +102,7 @@ For future reference, you can find examples of the instructions provided in this mkdir ~/plex/media/linode-volume -1. Mount your Volume path to the mountpoint you have created, substituting `$FILE_SYSTEM_PATH` with your Volume's file system path (which is viewable from Cloud Manager's [**Volumes**](https://cloud.linode.com/volumes) dashboard): +1. Mount your Volume path to the mountpoint you have created, substituting `$FILE_SYSTEM_PATH` with your Volume's file system path (which you can get in the Cloud Manager's [**Volumes**](https://cloud.linode.com/volumes) dashboard): sudo mount $FILE_SYSTEM_PATH ~/plex/media/linode-volume @@ -167,9 +133,9 @@ For future reference, you can find examples of the instructions provided in this docker restart plex -Media on your Volume is now accessible through the Plex web interface at the mounted directory on your Linode. Next, follow the instructions below on how to [Upload Media](#upload-media) to your Volume (use your Volume's mountpoint instead of creating a new subdirectory), and [Add Media Libraries](#add-media-libraries) to enable streaming media stored on your Volume. +Media on your Volume is now accessible through the Plex web interface at the mounted directory on your Linode. Next, follow the instructions below on how to [Upload Media](#uploading-media) to your Volume (use your Volume's mountpoint instead of creating a new subdirectory), and [Add Media Libraries](#adding-media-libraries) to enable streaming media stored on your Volume. -### Upload Media +### Uploading Media Your Plex Server is set up to access media files in the `~/plex/media` directory. You have many options for uploading or downloading media to your Plex Server. This section shows you how to organize and upload files to your Plex Server using the `scp` command. @@ -185,31 +151,31 @@ This section directs you to run commands either on your Plex Server Linode throu scp example_video.mp4 $USERNAME@$IP_ADDRESS:~/plex/media/movies - Depending on the file size(s), this may take a few minutes. + Depending on the files' size, this may take a few minutes. {{< note >}} There are other ways to upload files to your Plex Server Linode. See our section in [Linux System Administration Basics](/docs/guides/linux-system-administration-basics/#upload-files-to-a-remote-server) for more information. {{< /note >}} -### Add Media Libraries +### Adding Media Libraries -1. Log into a Plex Client, such as the [Plex Web App](https://app.plex.tv), then select the **MORE >** link on the Plex side bar. +1. Log into a Plex Client, such as the [Plex Web App](https://app.plex.tv), and on the side bar, click **More**. ![Plex Home Side Bar — More](media-library-side-bar.png "Plex Home Side Bar — More.") -1. Hover over your Plex Server's name in the Plex side bar, then select the **+** icon. +1. Hover over your Plex Server's name in the Plex side bar and click **+**. ![Add Media Library — Start](media-library-add.png "Add Media Library — Start.") -1. Select your library type, set the name for your media library, select your language, then select the **NEXT** button. +1. Select your library type, set a name and language for your media library. Click **Next**. ![Set Media Library Type, Name, and Language](media-library-type-name-language.png "Set Media Library Type, Name, and Language.") -1. Click **BROWSE FOR MEDIA FOLDER**, navigate to the directory within `/media` where your files are stored, then select the **ADD** button. +1. Click **Browse for media folder**. Go to the directory within `/media` where your files are stored and click **Add**. ![Select Media Library Directory](media-library-select-directory.png "Select Media Library Directory.") -1. Once you are satisfied with your selection, select the **ADD LIBRARY** button. +1. Once you are satisfied with your selection, click **Add library**. ![Add Media Library — Finish](media-library-finish.png "Add Media Library — Finish.") @@ -227,7 +193,9 @@ The Plex Marketplace App installs the following required software on your Linode | **Software** | **Description** | |:--------------|:------------| -| [**Docker Engine**](https://docs.docker.com/engine/) | Docker Engine is an open source containerization technology for building and containerizing your applications. This Marketplace App deploys Plex Media Server as a Docker container. | -| [**Plex Media Server**](https://hub.docker.com/r/plexinc/pms-docker/) | The Plex Media Server transmits locally-stored media files, enabling you to stream your personal media collection to any device that can support a [Plex Client](https://www.plex.tv/apps-devices/). | +| [**NGINX**](https://www.nginx.com/) | Open Source webserver and reverse proxy. See our guide on [Getting Started with NGINX](/docs/guides/getting-started-with-nginx-part-1-installation-and-basic-setup/) for more information. | +| [**UFW**](https://wiki.ubuntu.com/UncomplicatedFirewall) | Firewall utility. Ports 22/tcp, 80/tcp, and 443/tcp for IPv4 and IPv6 are enabled with installation of this app. Additional ports must be opened to send email from your Linode for use with this app. To learn more, see [How to Configure a Firewall with UFW](/docs/guides/configure-firewall-with-ufw/). | +| [**Plex Media Server**](https://hub.docker.com/r/plexinc/pms-docker/) | The Plex Media Server transmits locally-stored media files, enabling you to stream your personal media collection to any device that can support a [Plex Client](https://www.plex.tv/apps-devices/). The Latest release in Plex's Public Main branch is installed by this deployment. | + {{% content "marketplace-update-note-shortguide" %}}