diff --git a/docs/guides/kubernetes/deploy-lke-cluster-using-terraform/index.md b/docs/guides/kubernetes/deploy-lke-cluster-using-terraform/index.md index 54de671107d..31ea3138df3 100644 --- a/docs/guides/kubernetes/deploy-lke-cluster-using-terraform/index.md +++ b/docs/guides/kubernetes/deploy-lke-cluster-using-terraform/index.md @@ -3,7 +3,7 @@ slug: deploy-lke-cluster-using-terraform title: "Deploy a Linode Kubernetes Engine Cluster Using Terraform" description: "In this tutorial, you'll deploy a Kubernetes cluster using the Linode Kubernetes Engine (LKE) and Terraform." published: 2020-05-05 -modified: 2023-02-09 +modified: 2025-05-30 authors: ['Linode'] contributors: ['Linode'] license: "[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)" @@ -11,8 +11,9 @@ keywords: ['kubernetes','terraform','infrastructure as code','container orchestr tags: ["linode platform","kubernetes","automation","managed hosting"] image: deploy-lke-cluster-with-terraform.png external_resources: +- '[LKE Product Documentation](https://techdocs.akamai.com/cloud-computing/docs/linode-kubernetes-engine)' +- '[LKE Enterprise Product Documentation](https://techdocs.akamai.com/cloud-computing/docs/lke-enterprise)' - '[Setting Up a Private Docker Registry with Linode Kubernetes Engine and Object Storage](/docs/guides/how-to-setup-a-private-docker-registry-with-lke-and-object-storage/)' -- '[Deploying a Static Site on Linode Kubernetes Engine](/docs/guides/how-to-deploy-a-static-site-on-linode-kubernetes-engine/)' - '[Linode Provider Terraform Documentation](https://www.terraform.io/docs/providers/linode/index.html)' aliases: ['/kubernetes/how-to-deploy-an-lke-cluster-using-terraform/','/guides/how-to-deploy-an-lke-cluster-using-terraform/','/products/compute/kubernetes/guides/deploy-cluster-using-terraform/'] --- @@ -202,8 +203,8 @@ You will now need to define the values you would like to use in order to create ```file {title="~/terraform/lke-cluster/terraform.tfvars"} label = "example-lke-cluster" - k8s_version = "1.26" - region = "us-west" + k8s_version = "1.32" + region = "us-central" pools = [ { type : "g6-standard-2" @@ -212,7 +213,67 @@ You will now need to define the values you would like to use in order to create ] ``` - Terraform will use the values in this file to create a new Kubernetes cluster with one node pool that contains three 4 GB nodes. The cluster will be located in the `us-west` data center (Dallas, Texas, USA). Each node in the cluster's node pool will use Kubernetes version `1.25` and the cluster will be named `example-lke-cluster`. You can replace any of the values in this file with your own preferred cluster configurations. + Terraform will use the values in this file to create a new Kubernetes cluster with one node pool that contains three 4 GB nodes. The cluster will be located in the `us-central` data center (Dallas, Texas, USA). Each node in the cluster's node pool will use Kubernetes version `1.32` and the cluster will be named `example-lke-cluster`. You can replace any of the values in this file with your own preferred cluster configurations. + +### LKE Enterprise Clusters + +[LKE Enterprise](https://techdocs.akamai.com/cloud-computing/docs/lke-enterprise) is Akamai's enterprise-grade managed Kubernetes offering and has a specific set of requirements and recommendations for successful deployment: + +- **Plan type**: [Premium CPU](https://www.linode.com/pricing/#compute-premium) plans are highly recommended for LKE Enterprise clusters to accommodate production-level enterprise workloads that require high network performance. + +- **Enterprise tier values**: To deploy an LKE Enterprise cluster using Terraform, you must use the `linode_lke_cluster` resource, a valid enterprise Kubernetes version (`k8s_version`), and the [`tier`](https://registry.terraform.io/providers/linode/linode/latest/docs/resources/lke_cluster) argument must be [assigned the value](#assign-values-to-your-input-variables) `"enterprise"`. For example: + + ```file + resource "linode_lke_cluster" "{{< placeholder "test" >}}" { + label = "lke-e-cluster" + region = "us-lax" + k8s_version = "v1.31.8+lke1" + tags = ["{{< placeholder "test" >}}"] + tier = "enterprise" + + pool { + type = "g7-premium-2" + count = 3 + tags = ["{{< placeholder "test" >}}"] + } + } + ``` + Make sure to replace all {{< placeholder "test" >}} label values with your own. + + To get a list of valid enterprise `k8s_version` values, specify the `enterprise` tier using the `linode_lke_versions` [data source](https://registry.terraform.io/providers/linode/linode/latest/docs/data-sources/lke_versions): + + ```command + data "linode_lke_versions" "example_enterprise" {tier = "enterprise"} + + output "example_enterprise_output" { + value = data.linode_lke_versions.example_enterprise + } + + output "example_enterprise_output_first_version" { + value = data.linode_lke_versions.example_enterprise.versions[0] + } + ``` + +- **Availability**: As of this writing, LKE Enterprise is in limited availability and only deployable in the below regions: + + | Region | Region ID | + | -- | -- | + | **Amsterdam, NL** | nl-ams | + | **Chennai, IN** | in-maa | + | **Chicago, IL** | us-ord | + | **London, UK** | eu-west | + | **Los Angeles, CA** | us-lax | + | **Miami, FL** | us-mia | + | **Milan, IT** | it-mil | + | **Osaka, JP** | jp-osa | + | **Paris, FR** | fr-par | + | **São Paulo, BR** | br-gru | + | **Seattle, WA** | us-sea | + | **Singapore Expansion, SP** | sg-sin-2 | + | **Stockholm, SE** | se-sto | + | **Washington, DC** | us-iad | + + A full list of regions and region IDs can be found on our [Availability](https://www.linode.com/global-infrastructure/availability/) page. ## Deploy your Kubernetes Cluster diff --git a/docs/guides/kubernetes/deploy-llm-for-ai-inferencing-on-apl/index.md b/docs/guides/kubernetes/deploy-llm-for-ai-inferencing-on-apl/index.md index eaec0bc54f0..4e2c003a224 100644 --- a/docs/guides/kubernetes/deploy-llm-for-ai-inferencing-on-apl/index.md +++ b/docs/guides/kubernetes/deploy-llm-for-ai-inferencing-on-apl/index.md @@ -5,12 +5,12 @@ description: "This guide includes steps and guidance for deploying a large langu authors: ["Akamai"] contributors: ["Akamai"] published: 2025-03-25 -modified: 2025-04-25 +modified: 2025-06-04 keywords: ['ai','ai inference','ai inferencing','llm','large language model','app platform','lke','linode kubernetes engine','llama 3','kserve','istio','knative'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: - '[Akamai App Platform for LKE](https://techdocs.akamai.com/cloud-computing/docs/application-platform)' -- '[Akamai App Platform Documentation](https://apl-docs.net/docs/akamai-app-platform/introduction)' +- '[Akamai App Platform Documentation](https://techdocs.akamai.com/app-platform/docs/welcome)' --- {{< note title="Beta Notice" type="warning" >}} @@ -94,7 +94,7 @@ Sign into the App Platform web UI using the `platform-admin` account, or another ### Create a New Team -[Teams](https://apl-docs.net/docs/for-ops/console/teams) are isolated tenants on the platform to support Development/DevOps teams, projects or even DTAP. A Team gets access to the Console, including access to self-service features and all shared apps available on the platform. +[Teams](https://techdocs.akamai.com/app-platform/docs/platform-teams) are isolated tenants on the platform to support Development/DevOps teams, projects or even DTAP. A Team gets access to the Console, including access to self-service features and all shared apps available on the platform. 1. Select **view** > **platform**. @@ -150,7 +150,7 @@ The [NVIDIA GPU Operator](https://docs.nvidia.com/datacenter/cloud-native/gpu-op ### Create a Workload for the kserve-crd Helm Chart -A [Workload](https://apl-docs.net/docs/for-devs/console/workloads) is a self-service feature for creating Kubernetes resources using Helm charts from the Catalog. +A [Workload](https://techdocs.akamai.com/app-platform/docs/team-workloads) is a self-service feature for creating Kubernetes resources using Helm charts from the Catalog. 1. Select **view** > **team** and **team** > **admin** in the top bar. @@ -274,7 +274,7 @@ If you haven't done it already, request access to the Llama 3 LLM model. To do t ### Create a Sealed Secret -[Sealed Secrets](https://apl-docs.net/docs/for-devs/console/secrets) are encrypted Kubernetes Secrets stored in the Values Git repository. When a Sealed Secret is created in the Console, the Kubernetes Secret will appear in the Team's namespace. +[Sealed Secrets](https://techdocs.akamai.com/app-platform/docs/team-secrets) are encrypted Kubernetes Secrets stored in the Values Git repository. When a Sealed Secret is created in the Console, the Kubernetes Secret will appear in the Team's namespace. 1. Select **view** > **team** and **team** > **demo** in the top bar. diff --git a/docs/guides/kubernetes/deploy-rag-pipeline-and-chatbot-on-apl/index.md b/docs/guides/kubernetes/deploy-rag-pipeline-and-chatbot-on-apl/index.md index d39d8f7927e..d74334f1702 100644 --- a/docs/guides/kubernetes/deploy-rag-pipeline-and-chatbot-on-apl/index.md +++ b/docs/guides/kubernetes/deploy-rag-pipeline-and-chatbot-on-apl/index.md @@ -5,12 +5,12 @@ description: "This guide expands on a previously built LLM and AI inferencing ar authors: ["Akamai"] contributors: ["Akamai"] published: 2025-03-25 -modified: 2025-04-25 +modified: 2025-06-04 keywords: ['ai','ai inference','ai inferencing','llm','large language model','app platform','lke','linode kubernetes engine','rag pipeline','retrieval augmented generation','open webui','kubeflow'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: - '[Akamai App Platform for LKE](https://techdocs.akamai.com/cloud-computing/docs/application-platform)' -- '[Akamai App Platform Documentation](https://apl-docs.net/docs/akamai-app-platform/introduction)' +- '[Akamai App Platform Documentation](https://techdocs.akamai.com/app-platform/docs/welcome)' --- {{< note title="Beta Notice" type="warning" >}} @@ -214,7 +214,7 @@ Make another Sealed Secret named `mysql-credentials` to establish root user cred ### Create a Network Policy -Create a [**Network Policy**](https://apl-docs.net/docs/for-ops/console/netpols) in the Team where the `kubeflow-pipelines` Helm chart will be installed (Team name **demo** in this guide). This allows communication between all Kubeflow Pipelines Pods. +Create a [**Network Policy**](https://techdocs.akamai.com/app-platform/docs/team-network-policies) in the Team where the `kubeflow-pipelines` Helm chart will be installed (Team name **demo** in this guide). This allows communication between all Kubeflow Pipelines Pods. 1. Select **view** > **team** and **team** > **demo** in the top bar. diff --git a/docs/guides/kubernetes/inter-service-communication-with-rabbitmq-and-apl/index.md b/docs/guides/kubernetes/inter-service-communication-with-rabbitmq-and-apl/index.md index 86deb42f97e..bbd1febfa74 100644 --- a/docs/guides/kubernetes/inter-service-communication-with-rabbitmq-and-apl/index.md +++ b/docs/guides/kubernetes/inter-service-communication-with-rabbitmq-and-apl/index.md @@ -5,12 +5,12 @@ description: "This guide shows how to deploy a RabbitMQ message broker architect authors: ["Akamai"] contributors: ["Akamai"] published: 2025-03-20 -modified: 2025-04-25 +modified: 2025-06-04 keywords: ['app platform','lke','linode kubernetes engine','rabbitmq','microservice','message broker'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: - '[Akamai App Platform for LKE](https://techdocs.akamai.com/cloud-computing/docs/application-platform)' -- '[Akamai App Platform Docs](https://apl-docs.net/docs/akamai-app-platform/introduction)' +- '[Akamai App Platform Documentation](https://techdocs.akamai.com/app-platform/docs/welcome)' --- {{< note title="Beta Notice" type="warning" >}} @@ -99,7 +99,7 @@ Once your LKE cluster with App Platform has been fully deployed, [sign in](https ### Create a New Team -[Teams](https://apl-docs.net/docs/for-ops/console/teams) are isolated tenants on the platform to support Development and DevOps teams, projects, or even DTAP (Development, Testing, Acceptance, Production). A Team gets access to the Console, including access to self-service features and all shared apps available on the platform. +[Teams](https://techdocs.akamai.com/app-platform/docs/platform-teams) are isolated tenants on the platform to support Development and DevOps teams, projects, or even DTAP (Development, Testing, Acceptance, Production). A Team gets access to the Console, including access to self-service features and all shared apps available on the platform. When working in the context of an admin-level Team, users can create and access resources in any namespace. When working in the context of a non-admin Team, users can only create and access resources used in that Team's namespace. @@ -113,7 +113,7 @@ When working in the context of an admin-level Team, users can create and access ### Create a RabbitMQ Cluster with Workloads -A [Workload](https://apl-docs.net/docs/for-devs/console/workloads) is a self-service feature for creating Kubernetes resources using Helm charts from the Catalog. +A [Workload](https://techdocs.akamai.com/app-platform/docs/team-workloads) is a self-service feature for creating Kubernetes resources using Helm charts from the Catalog. 1. Switch to your newly created team view by selecting **view** > **team** and **team** > **demo** in the top bar. You can switch back to team `admin` as needed by selecting **view** > **team** and **team** > **admin**. @@ -240,7 +240,7 @@ Once successfully built, copy the image repository link so that you can create a In order for the RabbitMQ Cluster to be accessible, a Network Policy must be created. -A [Network Policy](https://apl-docs.net/docs/for-devs/console/netpols) in App Platform is a self-service method of controlling traffic to and from your deployment. Ingress (inbound) policies control access to internal Team pods, and egress (outbound) policies control traffic to external endpoints. +A [Network Policy](https://techdocs.akamai.com/app-platform/docs/team-network-policies) in App Platform is a self-service method of controlling traffic to and from your deployment. Ingress (inbound) policies control access to internal Team pods, and egress (outbound) policies control traffic to external endpoints. 1. Select **Network Policies** from the left menu, and click **Create NetPol**. diff --git a/docs/guides/kubernetes/use-app-platform-to-deploy-wordpress/index.md b/docs/guides/kubernetes/use-app-platform-to-deploy-wordpress/index.md index 0ed0a91b668..ae8889980d7 100644 --- a/docs/guides/kubernetes/use-app-platform-to-deploy-wordpress/index.md +++ b/docs/guides/kubernetes/use-app-platform-to-deploy-wordpress/index.md @@ -5,11 +5,12 @@ description: "Two to three sentences describing your guide." authors: ["Akamai"] contributors: ["Akamai"] published: 2025-05-06 +modified: 2025-06-04 keywords: ['app platform','app platform for lke','lke','linode kubernetes engine','kubernetes','persistent volumes','mysql'] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' external_resources: - '[Akamai App Platform for LKE](https://techdocs.akamai.com/cloud-computing/docs/application-platform)' -- '[Akamai App Platform Documentation](https://apl-docs.net/docs/akamai-app-platform/introduction)' +- '[Akamai App Platform Documentation](https://techdocs.akamai.com/app-platform/docs/welcome)' --- {{< note title="Beta Notice" type="warning" >}} @@ -56,7 +57,7 @@ Sign into the App Platform web UI using the `platform-admin` account, or another ### Create a New Team -[Teams](https://apl-docs.net/docs/for-ops/console/teams) are isolated tenants on the platform to support Development/DevOps teams, projects, and methodologies, like [DTAP](https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production). A Team gets access to the Console, which provides access to self-service features and the shared apps available on the platform. +[Teams](https://techdocs.akamai.com/app-platform/docs/platform-teams) are isolated tenants on the platform to support Development/DevOps teams, projects, and methodologies, like [DTAP](https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production). A Team gets access to the Console, which provides access to self-service features and the shared apps available on the platform. When working in the context of an admin-level Team, users can create and access resources in any namespace. When working in the context of a non-admin Team, users can only create and access resources used in that Team’s namespace. @@ -116,7 +117,7 @@ Repeat the same steps for installing the MySQL service on your cluster. Separate Workloads are created for MySQL and WordPress in order to deploy a persistent database and site, respectively. Both Workloads require passwords, so to prevent the passwords from being stored unencrypted, Sealed Secrets are created for each first. -[Sealed Secrets](https://apl-docs.net/docs/for-devs/console/secrets) are encrypted Kubernetes Secrets stored in the Values Git repository. When a Sealed Secret is created in the Console, the Kubernetes Secret will appear in the Team's namespace. +[Sealed Secrets](https://techdocs.akamai.com/app-platform/docs/team-secrets) are encrypted Kubernetes Secrets stored in the Values Git repository. When a Sealed Secret is created in the Console, the Kubernetes Secret will appear in the Team's namespace. ### Create a Sealed Secret to Store MySQL Passwords @@ -184,7 +185,7 @@ Separate Workloads are created for MySQL and WordPress in order to deploy a pers ``` {{< note title="Managing Network Policies" >}} - The `networkPolicy` is disabled since all traffic is allowed by default. Rather than configuring `networkPolicy` values directly in the Workload config, this guide centrally manages all network policies using App Platform's [**Network Policies**](https://apl-docs.net/docs/for-ops/console/netpols) function. + The `networkPolicy` is disabled since all traffic is allowed by default. Rather than configuring `networkPolicy` values directly in the Workload config, this guide centrally manages all network policies using App Platform's [**Network Policies**](https://techdocs.akamai.com/app-platform/docs/team-network-policies) function. {{< /note >}} 1. Click **Submit**. The Workload may take a few minutes to become ready. @@ -275,7 +276,7 @@ Using the App Platform **Shell** feature, you can check to see if the WordPress ## Create a Service to Expose the WordPress Site -Creating a [Service](https://apl-docs.net/docs/for-devs/console/services) in App Platform configures NGINX’s Ingress Controller. This allows you to enable public access to services running internally on your cluster. +Creating a [Service](https://techdocs.akamai.com/app-platform/docs/team-services) in App Platform configures NGINX’s Ingress Controller. This allows you to enable public access to services running internally on your cluster. 1. Select **view** > **team** and **team** > **demo** in the top bar. @@ -295,7 +296,7 @@ Creating a [Service](https://apl-docs.net/docs/for-devs/console/services) in App ### Setting Up DNS -When creating a Service, DNS for your site can be configure using a CNAME rather than using an external IP address. To do this, configure a CNAME entry with your domain name provider, and follow the steps in our [Using a CNAME](https://apl-docs.net/docs/for-devs/console/services#using-a-cname) App Platform documentation. +When creating a Service, DNS for your site can be configure using a CNAME rather than using an external IP address. To do this, configure a CNAME entry with your domain name provider, and follow the steps in our [Using a CNAME](https://techdocs.akamai.com/app-platform/docs/configure-cname) App Platform documentation. See our guide on [CNAME records](https://techdocs.akamai.com/cloud-computing/docs/cname-records) for more information on how CNAME records work. diff --git a/docs/marketplace-docs/guides/rocketchat/index.md b/docs/marketplace-docs/guides/rocketchat/index.md index 886746ab18d..b66b6a99733 100644 --- a/docs/marketplace-docs/guides/rocketchat/index.md +++ b/docs/marketplace-docs/guides/rocketchat/index.md @@ -2,11 +2,12 @@ title: "Deploy Rocket.Chat through the Linode Marketplace" description: "Deploy Rocket.Chat on a Linode Compute Instance. This provides you with a self-hosted open source chat application (Slack alternative)." published: 2021-11-12 -modified: 2022-03-08 +modified: 2025-06-03 keywords: ['rocketchat','chat','slack','communication'] tags: ["marketplace", "linode platform", "cloud manager"] external_resources: - '[Rocket.Chat](https://rocket.chat/)' +- '[Rocket.Chat documentation](https://docs.rocket.chat/guides/user-guides)' aliases: ['/products/tools/marketplace/guides/rocketchat/','/guides/deploying-rocketchat-marketplace-app/','/guides/rocketchat-marketplace-app/'] authors: ["Akamai"] contributors: ["Akamai"] @@ -29,7 +30,7 @@ Rocket.Chat is a self-hosted open source chat application that can be used as an ## Configuration Options -- **Supported distributions:** Ubuntu 20.04 LTS +- **Supported distributions:** Ubuntu 24.04 LTS - **Recommended plan:** All plan types and sizes can be used. ### Rocket.Chat Options @@ -41,19 +42,33 @@ Rocket.Chat is a self-hosted open source chat application that can be used as an {{% 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 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. + ## Getting Started after Deployment ### Accessing the Rocket.Chat App 1. Open a browser and navigate to the domain you created in the beginning of your deployment. You can also use your Compute Instance's rDNS, which will appear like `203-0-113-0.ip.linodeusercontent.com`. 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. From there, Rocket.Chat prompts you to fill out multiple forms to get your instance created and ready to use: - -  -  -  -  +1. Enter your credentials which can be found in the credentials file on the server. -Now that you’ve gone through the setup and accessed your Rocket.Chat instance, check out [the official Rocket.Chat documentation](https://docs.rocket.chat/guides/user-guides) to learn how to further use your Rocket.Chat instance. +Now that you’ve accessed your Rocket.Chat instance, check out [the official Rocket.Chat documentation](https://docs.rocket.chat/guides/user-guides) to learn how to use the instance. {{% content "marketplace-update-note-shortguide" %}} \ No newline at end of file diff --git a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup.png b/docs/marketplace-docs/guides/rocketchat/rocketchat-setup.png deleted file mode 100644 index 238aa0f6b99..00000000000 Binary files a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup.png and /dev/null differ diff --git a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup2.png b/docs/marketplace-docs/guides/rocketchat/rocketchat-setup2.png deleted file mode 100644 index ccbfcdccb01..00000000000 Binary files a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup2.png and /dev/null differ diff --git a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup3.png b/docs/marketplace-docs/guides/rocketchat/rocketchat-setup3.png deleted file mode 100644 index 3557236e426..00000000000 Binary files a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup3.png and /dev/null differ diff --git a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup4.png b/docs/marketplace-docs/guides/rocketchat/rocketchat-setup4.png deleted file mode 100644 index ce72f4ec8f4..00000000000 Binary files a/docs/marketplace-docs/guides/rocketchat/rocketchat-setup4.png and /dev/null differ diff --git a/docs/marketplace-docs/guides/ruby-on-rails/index.md b/docs/marketplace-docs/guides/ruby-on-rails/index.md index d0cd920030e..0dacef79aa4 100644 --- a/docs/marketplace-docs/guides/ruby-on-rails/index.md +++ b/docs/marketplace-docs/guides/ruby-on-rails/index.md @@ -2,7 +2,7 @@ title: "Deploy Ruby on Rails through the Linode Marketplace" description: "This guide provides you with installation and configuration instructions for deploying Ruby on Rails using the Lindoe One-Click Apps Marketplace." published: 2020-03-11 -modified: 2022-03-08 +modified: 2025-06-03 keywords: ['ruby on rails','marketplace', 'marketplace apps'] tags: ["ruby","linode platform","marketplace","cloud-manager"] image: RubyonRails_oneclickapps.png @@ -15,7 +15,7 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' marketplace_app_id: 609048 -marketplace_app_name: "Roby on Rails" +marketplace_app_name: "Ruby on Rails" --- [Ruby on Rails](http://rubyonrails.org/) is a server-side web application framework that allows web designers and developers to implement dynamic, fully featured web applications. @@ -27,123 +27,72 @@ marketplace_app_name: "Roby on Rails" {{% content "marketplace-verify-standard-shortguide" %}} {{< note >}} -**Estimated deployment time:** Ruby on Rails should be fully installed within 2-5 minutes after the Compute Instance has finished provisioning. +**Estimated deployment time:** Ruby on Rails should be fully installed within 5-10 minutes after the Compute Instance has finished provisioning. {{< /note >}} ## Configuration Options -- **Supported distributions:** Ubuntu 20.04 LTS -- **Recommended minimum plan:** All plan types and sizes can be used. +- **Supported distributions:** Ubuntu 24.04 LTS +- **Recommended minimum plan:** For best results, 4GB Dedicated CPU or Shared Compute instance for Ruby on Rails. ### Ruby on Rails Options -- **Rails Application name** *(required)*: The name for your rails application. +- **Rails Application name** *(required)*: Enter the name for your rails application. +- **Email address** *(required)*: Enter the email address to use for generating the SSL certificates. -## Getting Started after Deployment - -### Access Ruby on Rails - -After Ruby on Rails has finished installing, you will be able to access Ruby on Rails from the console via ssh with your Linode's IPv4 address: - -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). - -1. Log out and log back in as your limited user account. +{{% content "marketplace-required-limited-user-fields-shortguide" %}} -1. Update your server: +{{% content "marketplace-custom-domain-fields-shortguide" %}} - sudo apt-get update && apt-get upgrade +{{% content "marketplace-special-character-limitations-shortguide" %}} -1. Ruby comes with some pre-made scripts to get you started. One of these is a blog. To begin with the blog example, use the following command: +### Obtain the Credentials - rails new blog +Once the app is deployed, you need to obtain the credentials from the server. - This creates a new Rails application called Blog in the `blog` directory. +To obtain the credentials: -1. Move into the `blog` directory: +1. Log in to your new Compute Instance using one of the methods below: - cd blog + - **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. Start the built in server with the following command, replacing the IP address with your Linode's IP address: +1. Run the following command to access the credentials file: - rails server --binding=198.51.100.0 - - ```output - Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring. - => Booting WEBrick - => Rails 4.2.7.1 application starting in development on http://198.51.100.0:3000 - => Run `rails server -h` for more startup options - => Ctrl-C to shutdown server - [2020-03-11 14:17:16] INFO WEBrick 1.3.1 - [2020-03-11 14:17:16] INFO ruby 2.3.3 (2016-11-21) [x86_64-linux-gnu] - [2020-03-11 14:17:16] INFO WEBrick::HTTPServer#start: pid=3089 port=3000 + ```command + cat /home/$USERNAME/.credentials ``` -1. You can visit your application by visiting the address in the browser. - -  - -1. Exit the server process with **Ctrl+C**. - -## Create a Controller and View - -A controller will receive requests which are then routed and served by various actions. A view displays information. +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. -1. Create a controller called `Welcome` and an action called `index`: - - rails generate controller Welcome index - - ```output - create app/controllers/welcome_controller.rb - route get 'welcome/index' - invoke erb - create app/views/welcome - create app/views/welcome/index.html.erb - invoke test_unit - create test/controllers/welcome_controller_test.rb - invoke helper - create app/helpers/welcome_helper.rb - invoke test_unit - invoke assets - invoke coffee - create app/assets/javascripts/welcome.coffee - invoke scss - create app/assets/stylesheets/welcome.scss - ``` - -1. With the text editor of your choice, edit the file `app/views/welcome/index.html.erb` and replace the contents with the following: - - ```file {title="app/views/welcome/index.html.erb" lang="html"} -