diff --git a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/ai_rag_chatbot_implementation.png b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/ai_rag_chatbot_implementation.png index 17eb7b5c7f2..005178a9dc1 100644 Binary files a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/ai_rag_chatbot_implementation.png and b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/ai_rag_chatbot_implementation.png differ diff --git a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/index.md b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/index.md index 180ba339e1b..539fc79d491 100644 --- a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/index.md +++ b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/index.md @@ -5,6 +5,7 @@ description: "Utilize the Retrieval-Augmented Generation technique to supplement authors: ["Linode"] contributors: ["Linode"] published: 2025-02-11 +modified: 2025-02-13 keywords: ['kubernetes','lke','ai','inferencing','rag','chatbot','architecture'] tags: ["kubernetes","lke"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' @@ -14,7 +15,9 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' LLMs (Large Language Models) are increasingly used to power chatbots or other knowledge assistants. While these models are pre-trained on vast swaths of information, they are not trained on your own private data or knowledge base. To overcome this, you need to provide this data to the LLM (a process called context augmentation). This tutorial showcases a particular method of context augmentation called Retrieval-Augmented Generation (RAG), which indexes your data and attaches relevant data as context when users sends the LLM queries. -Follow this tutorial to deploy a RAG pipeline on Akamai’s LKE service using our latest GPU instances. Once deployed, you will have a web chatbot that can respond to queries using data from your own custom data source. +Follow this tutorial to deploy a RAG pipeline on Akamai’s LKE service using our latest GPU instances. Once deployed, you will have a web chatbot that can respond to queries using data from your own custom data source like shown in the screenshot below. + +![Screenshot of the Open WebUI query interface](open-webui-interface.jpg) ## Diagram @@ -31,8 +34,8 @@ Follow this tutorial to deploy a RAG pipeline on Akamai’s LKE service using ou - **Kubeflow:** This open-source software platform includes a suite of applications that are used for machine learning tasks. It is designed to be run on Kubernetes. While each application can be installed individually, this tutorial installs all default applications and makes specific use of the following: - **KServe:** Serves machine learning models. This tutorial installs the Llama 3 LLM to KServe, which then serves it to other applications, such as the chatbot UI. - - **Kubeflow Pipeline:** Used to deploy pipelines, reusable machine learning workflows built using the Kubeflow Pipelines SDK. In this tutorial, a pipeline is used to run LlamaIndex to train the LLM with additional data. -- **Meta’s Llama 3 LLM:** We use Llama 3 as the LLM, along with the LlamaIndex tool to capture data from an external source and send embeddings to the Milvus database. + - **Kubeflow Pipeline:** Used to deploy pipelines, reusable machine learning workflows built using the Kubeflow Pipelines SDK. In this tutorial, a pipeline is used to run LlamaIndex to process the dataset and store embeddings. +- **Meta’s Llama 3 LLM:** The [meta-llama/Meta-Llama-3-8B](https://huggingface.co/meta-llama/Meta-Llama-3-8B) model is used as the LLM. You should review and agree to the licensing agreement before deploying. - **Milvus:** Milvus is an open-source vector database and is used for generative AI workloads. This tutorial uses Milvus to store embeddings generated by LlamaIndex and make them available to queries sent to the Llama 3 LLM. - **Open WebUI:** This is an self-hosted AI chatbot application that’s compatible with LLMs like Llama 3 and includes a built-in inference engine for RAG solutions. Users interact with this interface to query the LLM. This can be configured to send queries straight to Llama 3 or to first load data from Milvus and send that context along with the query. @@ -54,11 +57,11 @@ The configuration instructions in this document are expected to not expose any s It’s not part of the scope of this document to cover the setup required to secure this configuration for a production deployment. {{< /note >}} -# Set up infrastructure +## Set up infrastructure The first step is to provision the infrastructure needed for this tutorial and configure it with kubectl, so that you can manage it locally and install software through helm. As part of this process, we’ll also need to install the NVIDIA GPU operator at this step so that the NVIDIA cards within the GPU worker nodes can be used on Kubernetes. -1. **Provision an LKE cluster.** We recommend using at least two **RTX4000 Ada x2 Medium** GPU plans (plan ID: `g2-gpu-rtx4000a2-m`), though you can adjust this as needed. For reference, Kubeflow recommends 32 GB of RAM and 16 CPU cores. This tutorial has been tested using Kubernetes v1.31, though other versions should also work. To learn more about provisioning a cluster, see the [Create a cluster](https://techdocs.akamai.com/cloud-computing/docs/create-a-cluster) guide. +1. **Provision an LKE cluster.** We recommend using at least 3 **RTX4000 Ada x1 Medium** GPU plans (plan ID: `g2-gpu-rtx4000a1-m`), though you can adjust this as needed. For reference, Kubeflow recommends 32 GB of RAM and 16 CPU cores for just their own application. This tutorial has been tested using Kubernetes v1.31, though other versions should also work. To learn more about provisioning a cluster, see the [Create a cluster](https://techdocs.akamai.com/cloud-computing/docs/create-a-cluster) guide. {{< note noTitle=true >}} GPU plans are available in a limited number of data centers. Review the [GPU product documentation](https://techdocs.akamai.com/cloud-computing/docs/gpu-compute-instances#availability) to learn more about availability. @@ -77,7 +80,7 @@ The first step is to provision the infrastructure needed for this tutorial and c You can confirm that the operator has been installed on your cluster by running reviewing your pods. You should see a number of pods in the `gpu-operator` namespace. ```command - kubectl get pods -A + kubectl get pods -n gpu-operator ``` ### Deploy Kubeflow @@ -114,6 +117,8 @@ Next, let’s deploy Kubeflow on the LKE cluster. These instructions deploy all kubectl get pods -A ``` + You may notice a status of `CrashLoopBackOff` on one or more pods. This can be caused to a temporary issue with a persistent volume attaching to a worker node and should be resolved within a minute or so. + ### Install Llama3 LLM on KServe After Kubeflow has been installed, we can now deploy the Llama 3 LLM to KServe. This tutorial uses HuggingFace (a platform that provides pre-trained AI models) to deploy Llama 3 to the LKE cluster. Specifically, these instructions use the [meta-llama/Meta-Llama-3-8B](https://huggingface.co/meta-llama/Meta-Llama-3-8B) model. @@ -152,7 +157,7 @@ After Kubeflow has been installed, we can now deploy the Llama 3 LLM to KServe. name: huggingface args: - --model_name=llama3 - - --model_id=NousResearch/Meta-Llama-3-8B-Instruct + - --model_id=meta-llama/meta-llama-3-8b-instruct - --max-model-len=4096 env: - name: HF_TOKEN @@ -218,7 +223,7 @@ Kubeflow Pipeline pulls together the entire workflow for ingesting data from our 1. Download a zip archive from the specified URL. 1. Uses LlamaIndex to read the Markdown files within the archive. -1. Generate embeddings from the content of those files using the [BAAI/bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5) model. +1. Generate embeddings from the content of those files. 1. Store the embeddings within the Milvus database collection. Keep this workflow in mind when going through the Kubeflow Pipeline set up steps in this section. If you require a different pipeline workflow, you will need to adjust the python file and Kubeflow Pipeline configuration discussed in this section. @@ -240,7 +245,7 @@ This tutorial employs a Python script to create the YAML file used within Kubefl pip install kfp ``` -1. Use the following python script to generate a YAML file to use for the Kubeflow Pipeline. This script configures the pipeline to download the Markdown data you wish to ingest, read the content using LlamaIndex, generate embeddings of the content using BAAI general embedding model, and store the embeddings in the Milvus database. Replace values as needed before proceeding. +1. Use the following python script to generate a YAML file to use for the Kubeflow Pipeline. This script configures the pipeline to download the Markdown data you wish to ingest, read the content using LlamaIndex, generate embeddings of the content, and store the embeddings in the Milvus database. Replace values as needed before proceeding. ```file {title="doc-ingest-pipeline.py" lang="python"} from kfp import dsl @@ -269,7 +274,7 @@ This tutorial employs a Python script to create the YAML file used within Kubefl from llama_index.core import Settings Settings.embed_model = HuggingFaceEmbedding( - model_name="BAAI/bge-large-en-v1.5" + model_name="sentence-transformers/all-MiniLM-L6-v2" ) from llama_index.llms.openai_like import OpenAILike @@ -285,7 +290,7 @@ This tutorial employs a Python script to create the YAML file used within Kubefl from llama_index.core import VectorStoreIndex, StorageContext from llama_index.vector_stores.milvus import MilvusVectorStore - vector_store = MilvusVectorStore(uri="http://my-release-milvus.default.svc.cluster.local:19530", collection=collection, dim=1024, overwrite=True) + vector_store = MilvusVectorStore(uri="http://my-release-milvus.default.svc.cluster.local:19530", collection=collection, dim=384, overwrite=True) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents( documents, storage_context=storage_context @@ -350,7 +355,7 @@ Despite the naming, these RAG pipeline files are not related to the Kubeflow pip 1. Create a new directory on your local machine and navigate to that directory. -1. Create a pipeline-requirements.txt file with the following contents: +1. Create a `pipeline-requirements.txt` file with the following contents: ```file {title="pipeline-requirements.txt"} requests @@ -361,7 +366,7 @@ Despite the naming, these RAG pipeline files are not related to the Kubeflow pip llama-index-llms-openai-like ``` -1. Create a rag-pipeline.py file with the following contents: +1. Create a file called `rag_pipeline.py` with the following contents. The filenames of both the `pipeline-requirements.txt` and `rag_pipeline.py` files should not be changed as they are referenced within the Open WebUI Pipeline configuration file. ```file {title="rag-pipeline.py"} """ @@ -388,7 +393,7 @@ Despite the naming, these RAG pipeline files are not related to the Kubeflow pip print(f"on_startup:{__name__}") Settings.embed_model = HuggingFaceEmbedding( - model_name="BAAI/bge-large-en-v1.5" + model_name="sentence-transformers/all-MiniLM-L6-v2" ) llm = OpenAILike( @@ -399,7 +404,7 @@ Despite the naming, these RAG pipeline files are not related to the Kubeflow pip Settings.llm = llm - vector_store = MilvusVectorStore(uri="http://my-release-milvus.default.svc.cluster.local:19530", collection="linode_docs", dim=1024, overwrite=False) + vector_store = MilvusVectorStore(uri="http://my-release-milvus.default.svc.cluster.local:19530", collection="linode_docs", dim=384, overwrite=False) self.index = VectorStoreIndex.from_vector_store(vector_store=vector_store) async def on_shutdown(self): @@ -581,8 +586,12 @@ Now that the chatbot has been configured, the final step is to access the chatbo 1. The first time you access this interface you are prompted to create an admin account. Do this now and then continue once you are successfully logged in using that account. -1. You are now presented with the chatbot interface. Within the dropdown menu, you should be able to select from several models. Select one and ask it a question. +1. You should now be presented with the chatbot interface. Within the dropdown menu, you should be able to select from several models. Select one and ask it a question. + + - The **llama3** model uses information that was trained by other data sources (not your own custom data). If you ask this model a question, the data from your own dataset is not used. + + ![Screenshot of a Llama 3 query in Open WebUI](open-webui-llama3.jpg) - - The **llama3** model will just use information that was trained by other data sources (not your own custom data). If you ask this model a question, the data from your own dataset will not be used. + - The **RAG Pipeline** model that you defined in a previous section does use data from your custom dataset. Ask it a question relevant to your data and the chatbot should respond with an answer that is informed by the custom dataset you configured. - - The **RAG Pipeline** model that you defined in a previous section does indeed use data from your custom dataset. Ask it a question relevant to your data and the chatbot should respond with an answer that is informed by the custom dataset you configured. \ No newline at end of file + ![Screenshot of a RAG Pipeline query in Open WebUI](open-webui-rag-pipeline.jpg) \ No newline at end of file diff --git a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-interface.jpg b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-interface.jpg new file mode 100644 index 00000000000..7327e917225 Binary files /dev/null and b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-interface.jpg differ diff --git a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-llama3.jpg b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-llama3.jpg new file mode 100644 index 00000000000..22f5e49fe84 Binary files /dev/null and b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-llama3.jpg differ diff --git a/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-rag-pipeline.jpg b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-rag-pipeline.jpg new file mode 100644 index 00000000000..b3349affc26 Binary files /dev/null and b/docs/guides/kubernetes/ai-chatbot-and-rag-pipeline-for-inference-on-lke/open-webui-rag-pipeline.jpg differ diff --git a/docs/marketplace-docs/guides/_index.md b/docs/marketplace-docs/guides/_index.md index 0107e900a07..dfa04053f84 100644 --- a/docs/marketplace-docs/guides/_index.md +++ b/docs/marketplace-docs/guides/_index.md @@ -31,8 +31,6 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [AzuraCast](/docs/marketplace-docs/guides/azuracast/) - [Backstage](/docs/marketplace-docs/guides/backstage/) - [BeEF](/docs/marketplace-docs/guides/beef/) -- [Budibase](/docs/marketplace-docs/guides/budibase/) -- [Chevereto](/docs/marketplace-docs/guides/chevereto/) - [Cloudron](/docs/marketplace-docs/guides/cloudron/) - [ClusterControl](/docs/marketplace-docs/guides/clustercontrol/) - [Couchbase Cluster](/docs/marketplace-docs/guides/couchbase-cluster/) @@ -51,14 +49,12 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [Gitea](/docs/marketplace-docs/guides/gitea/) - [Gitlab](/docs/marketplace-docs/guides/gitlab/) - [GlusterFS Cluster](/docs/marketplace-docs/guides/glusterfs-cluster/) -- [gopaddle](/docs/marketplace-docs/guides/gopaddle/) - [Grav](/docs/marketplace-docs/guides/grav/) - [Guacamole](/docs/marketplace-docs/guides/guacamole/) - [Haltdos Community WAF](/docs/marketplace-docs/guides/haltdos-community-waf/) - [Harbor](/docs/marketplace-docs/guides/harbor/) - [HashiCorp Nomad](/docs/marketplace-docs/guides/hashicorp-nomad/) - [HashiCorp Vault](/docs/marketplace-docs/guides/hashicorp-vault/) -- [ILLA Builder](/docs/marketplace-docs/guides/illa-builder/) - [InfluxDB](/docs/marketplace-docs/guides/influxdb/) - [Jenkins](/docs/marketplace-docs/guides/jenkins/) - [JetBackup](/docs/marketplace-docs/guides/jetbackup/) @@ -68,7 +64,6 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [Joplin](/docs/marketplace-docs/guides/joplin/) - [JupyterLab](/docs/marketplace-docs/guides/jupyterlab/) - [Kali Linux](/docs/marketplace-docs/guides/kali-linux/) -- [Kepler](/docs/marketplace-docs/guides/kepler/) - [LAMP Stack](/docs/marketplace-docs/guides/lamp-stack/) - [LEMP Stack](/docs/marketplace-docs/guides/lemp-stack/) - [LinuxGSM](/docs/marketplace-docs/guides/linuxgsm/) @@ -83,7 +78,6 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [MySQL/MariaDB](/docs/marketplace-docs/guides/mysql/) - [NATS Single Node](/docs/marketplace-docs/guides/nats-single-node/) - [Nextcloud](/docs/marketplace-docs/guides/nextcloud/) -- [NirvaShare](/docs/marketplace-docs/guides/nirvashare/) - [Node.js](/docs/marketplace-docs/guides/nodejs/) - [Odoo](/docs/marketplace-docs/guides/odoo/) - [ONLYOFFICE](/docs/marketplace-docs/guides/onlyoffice/) @@ -109,13 +103,11 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [RabbitMQ](/docs/marketplace-docs/guides/rabbitmq/) - [Redis](/docs/marketplace-docs/guides/redis/) - [Redis Sentinel](/docs/marketplace-docs/guides/redis-cluster/) -- [Restyaboard](/docs/marketplace-docs/guides/restyaboard/) - [Rocket.Chat](/docs/marketplace-docs/guides/rocketchat/) - [Ruby on Rails](/docs/marketplace-docs/guides/ruby-on-rails/) - [Saltcorn](/docs/marketplace-docs/guides/saltcorn/) - [SeaTable](/docs/marketplace-docs/guides/seatable/) - [Secure Your Server](/docs/marketplace-docs/guides/secure-your-server/) -- [ServerWand](/docs/marketplace-docs/guides/serverwand/) - [Shadowsocks](/docs/marketplace-docs/guides/shadowsocks/) - [Splunk](/docs/marketplace-docs/guides/splunk/) - [Superinsight](/docs/marketplace-docs/guides/superinsight/) @@ -126,7 +118,6 @@ See the [Marketplace](/docs/marketplace/) listing page for a full list of all Ma - [VS Code](/docs/marketplace-docs/guides/vscode/) - [WarpSpeed VPN](/docs/marketplace-docs/guides/warpspeed/) - [Wazuh](/docs/marketplace-docs/guides/wazuh/) -- [Webuzo](/docs/marketplace-docs/guides/webuzo/) - [WireGuard](/docs/marketplace-docs/guides/wireguard/) - [WooCommerce](/docs/marketplace-docs/guides/woocommerce/) - [WordPress](/docs/marketplace-docs/guides/wordpress/) diff --git a/docs/marketplace-docs/guides/ark-survival-evolved/index.md b/docs/marketplace-docs/guides/ark-survival-evolved/index.md index 64439c3b00f..65eaf9783c1 100644 --- a/docs/marketplace-docs/guides/ark-survival-evolved/index.md +++ b/docs/marketplace-docs/guides/ark-survival-evolved/index.md @@ -17,7 +17,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -ARK: Survival Evolved has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. For information on how to deploy and set up ARK: Survival Evolved manually on a Compute Instance, see our [Creating a Dedicated ARK Server on Ubuntu](/docs/guides/create-an-ark-server-on-ubuntu) guide. +ARK: Survival Evolved has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. For information on how to deploy and set up ARK: Survival Evolved manually on a Compute Instance, see our [Creating a Dedicated ARK Server on Ubuntu](/docs/guides/create-an-ark-server-on-ubuntu) guide. {{< /note >}} [ARK: Survival Evolved](http://playark.com/ark-survival-evolved/) is a multiplayer action-survival game released in 2017. The game places you on a series of fictional islands inhabited by dinosaurs and other prehistoric animals. In ARK, the main objective is to survive. ARK is an ongoing battle where animals and other players have the ability to destroy you. To survive, you must build structures, farm resources, breed dinosaurs, and even set up trading hubs with neighboring tribes. diff --git a/docs/marketplace-docs/guides/bitninja/index.md b/docs/marketplace-docs/guides/bitninja/index.md index 48414f1bdab..eaee9c7aa24 100644 --- a/docs/marketplace-docs/guides/bitninja/index.md +++ b/docs/marketplace-docs/guides/bitninja/index.md @@ -17,7 +17,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -BitNinja has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +BitNinja has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} diff --git a/docs/marketplace-docs/guides/budibase/index.md b/docs/marketplace-docs/guides/budibase/index.md index 0047ede01fe..7eca71ef47d 100644 --- a/docs/marketplace-docs/guides/budibase/index.md +++ b/docs/marketplace-docs/guides/budibase/index.md @@ -9,6 +9,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +Budibase has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [Budibase](https://github.com/Budibase/budibase) is an open-source, low-code platform for building modern business applications. Build, design, and automate different types of applications, including admin panels, forms, internal tools, and client portals. Using Budibase helps developers avoid spending weeks building simple CRUD applications and, instead, allows them to complete many projects in significantly less time. diff --git a/docs/marketplace-docs/guides/chevereto/index.md b/docs/marketplace-docs/guides/chevereto/index.md index cc534d02725..bb21b1dcbed 100644 --- a/docs/marketplace-docs/guides/chevereto/index.md +++ b/docs/marketplace-docs/guides/chevereto/index.md @@ -13,6 +13,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +Chevereto has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [Chevereto](https://chevereto.com/) is a self-hosted image sharing solution. It can be used to create a myriad of applications or to empower existing systems. Chevereto's features include multi-user support, multi-server support, bulk importing, integration with social media, and more. diff --git a/docs/marketplace-docs/guides/flask/index.md b/docs/marketplace-docs/guides/flask/index.md index d45d46a467f..99101653b3b 100644 --- a/docs/marketplace-docs/guides/flask/index.md +++ b/docs/marketplace-docs/guides/flask/index.md @@ -2,7 +2,7 @@ title: "Deploy Flask through the Linode Marketplace" description: "Learn how to deploy Flask, a quick and light-weight web framework for Python, through the Linode Marketplace." published: 2020-03-11 -modified: 2022-03-08 +modified: 2025-02-12 keywords: ['flask','python','marketplace'] tags: ["linode platform","python","marketplace","cloud-manager"] image: Flask_oneclickapps.png @@ -32,39 +32,55 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' - **Supported distributions:** Debian 10 - **Recommended minimum plan:** All plan types and sizes can be used. -## Getting Started after Deployment +## Flask options -### Installed Software +{{% content "marketplace-required-limited-user-fields-shortguide" %}} +- **Email address** *(required)*: Enter the email address to use for generating the SSL certificates. -In addition to installing Flask, this Marketplace app installs and configures software to support running Flask in a production environment. Below is a list of the installed software: +{{% content "marketplace-custom-domain-fields-shortguide" %}} -- The [NGINX](/docs/guides/getting-started-with-nginx-part-1-installation-and-basic-setup/) web server is installed with a basic NGINX configuration, located in `/etc/nginx/sites-enabled/flask_app`, and listening on your Linode's IP address. -- An example Flask application is downloaded to your Linode's `/home/flask_app_project` directory. If you visit your [Linode's IP address](/docs/products/compute/compute-instances/guides/manage-ip-addresses/), you will see the example Flask application running and serving boiler plate blog content. -- Your example Flask application's environment will be configured with basic settings located in the `/etc/config.json` file. -- [Gunicorn](https://gunicorn.org/), a Python WSGI (web server gateway interface) HTTP Server for UNIX, is installed and running. It is used to forward requests from your NGINX web server to your Flask application. -- [Supervisor](http://supervisord.org/), a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems, is installed and running on your Linode. Its configuration file can be found in the following location, `/etc/supervisor/conf.d/flask_app.conf`. -- The example Flask app's logs can be found in the following locations, `var/log/flask_app/flask_app.out.log` and `/var/log/flask_app/flask_app.err.log` +{{% 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 credentials: -### Removing Default Application +1. Log in to your new Compute Instance using one of the methods below: -Users may find that they need to remove access to the default Flask application on port 80 to free up space for another application, or to otherwise remove components. The following steps can help to disable and decouple various aspects of the default Flask application included with the Flask Marketplace App: + - **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/). -- Unlink the default NGINX site for the Flask app: +1. Run the following command to access the credentials file: - sudo unlink /etc/nginx/sites-enabled/flask_app + ```command + cat /home/$USERNAME/.credentials + ``` -- Stop the application from being monitored and maintained by supervisorctl: +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. - sudo supervisorctl stop all +## Getting Started After Deployment -- Remove configuration files for the Flask application: +To get started: - sudo rm -rf /home/flask_app_project - sudo rm /etc/config.json +1. Open a web browser and navigate to the domain you entered when creating the instance: `https://domain.tld`. If you didn't enter a domain, use your Compute Instance's default rDNS domain (`192-0-2-1.ip.linodeusercontent.com`). To learn more on viewing the rDNS value, see [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/). Make sure to use the `https` prefix in the URL to access the website securely. -- Remove the Supervisor configuration files: +1. The deployment ships with a sample application, but you can review the flask app and it's components below: - sudo rm /etc/supervisor/conf.d/flask_app.conf +* The sample project can be found in /var/www/flask_project +* The Gunicorn systemd service can be found in /etc/systemd/system/gunicorn.service +* The Gunicorn socket is located at /tmp/gunicorn.sock + +### Installed Software + +In addition to installing Flask, this Marketplace app installs and configures software to support running Flask in a production environment. Below is a list of the installed software: + +- The [NGINX](/docs/guides/getting-started-with-nginx-part-1-installation-and-basic-setup/) web server is installed with a basic NGINX configuration, located in `/etc/nginx/sites-enabled/$DOMAIN`. The $DOMAIN will be the domain entered during deployment or the default rDNS address that comes with each instance. +- An sample Flask application is downloaded to your Linode's `/var/www/flask_project` directory. + +- [Gunicorn](https://gunicorn.org/), a Python WSGI (web server gateway interface) HTTP Server for UNIX, is installed and running. It is used to forward requests from your NGINX web server to your Flask application. {{< note >}} Many configuration files can be overwritten to support a new configuration instead of deleted outright. For more information on the default configuration, see our [Flask Installation Guide](/docs/guides/flask-and-gunicorn-on-ubuntu/) and the [Installed Software Section](/docs/marketplace-docs/guides/flask/#installed-software) of this guide. diff --git a/docs/marketplace-docs/guides/gopaddle/index.md b/docs/marketplace-docs/guides/gopaddle/index.md index 363239966a6..31dc8a0d86e 100644 --- a/docs/marketplace-docs/guides/gopaddle/index.md +++ b/docs/marketplace-docs/guides/gopaddle/index.md @@ -11,6 +11,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +gopaddle has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [gopaddle](https://gopaddle.io/) is a low-code Internal Developer Platform (IDP) for Kubernetes developers and operators. It provides a self-service portal through which developers can scaffold code to containers, auto-generate YAML files, build Docker images, deploy applications on to Kubernetes, and manage the application life cycle centrally. diff --git a/docs/marketplace-docs/guides/illa-builder/index.md b/docs/marketplace-docs/guides/illa-builder/index.md index 4985e691f9c..a292806817b 100644 --- a/docs/marketplace-docs/guides/illa-builder/index.md +++ b/docs/marketplace-docs/guides/illa-builder/index.md @@ -9,6 +9,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +ILLA Builder has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [ILLA Builder](https://github.com/illacloud/illa-builder) is an open-source low-code development tool that allows developers to quickly build internal tools. ILLA lets developers focus more on the core functionality of the tools they are building and spend less time on websites and integrations. diff --git a/docs/marketplace-docs/guides/kepler/index.md b/docs/marketplace-docs/guides/kepler/index.md index b2067acc7cd..1ab7e2c24ef 100644 --- a/docs/marketplace-docs/guides/kepler/index.md +++ b/docs/marketplace-docs/guides/kepler/index.md @@ -13,6 +13,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +Kepler Builder has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [Kepler](https://www.kepler.app) is a powerful drag & drop WordPress website builder with all-new website style filters that instantly change the look and feel of your website. diff --git a/docs/marketplace-docs/guides/magicspam/index.md b/docs/marketplace-docs/guides/magicspam/index.md index b9aa17db8a8..764d1f26d71 100644 --- a/docs/marketplace-docs/guides/magicspam/index.md +++ b/docs/marketplace-docs/guides/magicspam/index.md @@ -17,7 +17,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -MagicSpam has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. For information on how to configure MagicSpam, see our [Using MagicSpam to Secure your Email Server](/docs/guides/using-magicspam-email-authentication) guide. +MagicSpam has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. For information on how to configure MagicSpam, see our [Using MagicSpam to Secure your Email Server](/docs/guides/using-magicspam-email-authentication) guide. {{< /note >}} [MagicSpam](https://magicspam.com/) is a powerful anti-spam and email security solution for Linux systems. It integrates directly with popular control panels, such as cPanel and Plesk. It's primary function is to stop inbound spam from entering your server right at the SMTP layer, which lowers bandwidth and overhead. It also secure mailboxes on your server from being compromised and used to send outbound spam. diff --git a/docs/marketplace-docs/guides/mistio/index.md b/docs/marketplace-docs/guides/mistio/index.md index 5a30732f546..ae207c5252f 100644 --- a/docs/marketplace-docs/guides/mistio/index.md +++ b/docs/marketplace-docs/guides/mistio/index.md @@ -17,7 +17,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Mist.io has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Mist.io has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} [Mist.io](https://mist.io/) is an open source, multi-cloud management platform. Mist supports all popular infrastructure technologies including public clouds, private clouds, hypervisors, containers, and bare metal servers. It provides a unified interface for performing common management tasks like provisioning, orchestration, monitoring, automation, and cost analysis. It also comes with a RESTful API so you can easily integrate it in your existing workflows. diff --git a/docs/marketplace-docs/guides/nirvashare/index.md b/docs/marketplace-docs/guides/nirvashare/index.md index cf779287048..0019b7c1c94 100644 --- a/docs/marketplace-docs/guides/nirvashare/index.md +++ b/docs/marketplace-docs/guides/nirvashare/index.md @@ -12,6 +12,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +NirvaShare has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} NirvaShare is a simplified and secure enterprise file sharing solution built on top of your existing file storage. Use NirvaShare with SFTP, local storage, or even S3-compatible storage like Linode's [Object Storage](https://www.linode.com/products/object-storage/). Collaborate with your internal or external users such as customers, partners, and vendors. NirvaShare provides fine-tuned access control in a very simplified manner. NirvaShare integrates with multiple many external identity providers such as Active Directory, Google Workspace, AWS SSO, KeyClock, and others. diff --git a/docs/marketplace-docs/guides/percona-monitoring-management/index.md b/docs/marketplace-docs/guides/percona-monitoring-management/index.md index 944bc19d29e..bda78253480 100644 --- a/docs/marketplace-docs/guides/percona-monitoring-management/index.md +++ b/docs/marketplace-docs/guides/percona-monitoring-management/index.md @@ -16,7 +16,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Percona Monitoring and Management has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Percona Monitoring and Management has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} Percona Monitoring and Management (PMM) is an open-source tool which provides a GUI powered by [Grafana](https://grafana.com/) for monitoring and managing MySQL, MariaDB, PostgreSQL, and MongoDB databases. You can use PMM to easily observe important metrics, logging, and statistics related to your databases and the hosts they run on. Additionally, it includes a number of tools which can help to optimize your database's performance, manage all database instances, and track and identify potential security threats. Linode's Percona (PMM) Marketplace App deploys a Linode with PMM installed and ready for you to begin monitoring your databases. diff --git a/docs/marketplace-docs/guides/pritunl/index.md b/docs/marketplace-docs/guides/pritunl/index.md index 34b0752f5ac..57c6a33e882 100644 --- a/docs/marketplace-docs/guides/pritunl/index.md +++ b/docs/marketplace-docs/guides/pritunl/index.md @@ -2,7 +2,7 @@ title: "Deploy Pritunl through the Linode Marketplace" description: "Deploy Pritunl on a Linode Compute Instance. This provides you with an open source VPN server and management panel." published: 2021-11-12 -modified: 2022-03-08 +modified: 2025-02-12 keywords: ['pritunl','vpn','security','openvpn'] tags: ["marketplace", "linode platform", "cloud manager"] bundles: ['network-security'] @@ -28,50 +28,54 @@ Pritunl is an open source VPN server and management panel. It gives the user the ## Configuration Options -- **Supported distributions:** Ubuntu 20.04 LTS, Debian 10 +- **Supported distributions:** Ubuntu 24.04 LTS - **Recommended plan:** All plan types and sizes can be used. ### Pritunl Options -{{% content "marketplace-limited-user-fields-shortguide" %}} +{{% content "marketplace-required-limited-user-fields-shortguide" %}} {{% content "marketplace-custom-domain-fields-shortguide" %}} - **Email address for the SOA record:** The start of authority (SOA) email address for this server. This is a required field if you want the installer to create DNS records. - {{% content "marketplace-special-character-limitations-shortguide" %}} ## Getting Started after Deployment -### Accessing the Pritunl App +### Obtain the Credentials -1. Log in to your Compute Instance over SSH. See [Connecting to a Remote Server Over SSH](/docs/guides/connect-to-server-over-ssh/) for assistance. +Once the app is deployed, you need to obtain the credentials from the server. -1. Run the command below to obtain your setup key. This key is used in a later step. +To obtain credentials: - sudo pritunl setup-key +1. Log in to your new Compute Instance using one of the methods below: -1. Run the command below to generate the password: + - **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/). - sudo pritunl default-password +1. Run the following command to access the credentials file: -1. Open a web browser and navigate to the domain you created in the beginning of your deployment. If you did not enter a custom domain, use the IP address of the server. You may need to access the self-signed certificate before continuing. + ```command + cat /home/$USERNAME/.credentials + ``` - {{< note >}} - In Chrome, you can accept the self-signed certificate by clicking on Advanced and then click Proceed to (unsafe). In Firefox, click on Advanced, then Add Exception, and then Confirm Security Exception. - {{< /note >}} +This returns passwords that were automatically generated when the instance was deployed. Save them. Once saved, you can safely delete the file. -1. The Pritunl Database Setup screen appears. Enter the setup key that was generated in a previous step. +### Accessing the Pritunl App + +1. Open a web browser and navigate to the domain you entered when creating the instance: `https://domain.tld`. If you didn't enter a domain, use your Compute Instance's default rDNS domain (`192-0-2-1.ip.linodeusercontent.com`). To learn more on viewing the rDNS value, see [Managing IP Addresses](/docs/products/compute/compute-instances/guides/manage-ip-addresses/). Make sure to use the `https` prefix in the URL to access the website securely. - ![Pritunl Database Setup](pritunl-config.png) + {{< note >}} + In Chrome, you can accept the self-signed certificate by clicking **Advanced** and then **Proceed to** (unsafe). In Firefox, click **Advanced**, then **Add Exception**, and **Confirm Security Exception**. + {{< /note >}} -1. The login prompt appears. Enter `pritunl` as the username and then use the password generated in a previous step. +1. To log in, enter `pritunl` as the username and the password you generated in the credentials file. ![Pritunl Username Setup](pritunl-config2.png) -1. Once you're logged in, you can change the default password and enter the domain information so Pritunl can setup the SSL certificates automatically: +1. Change the default password and enter the domain information so Pritunl can setup the SSL certificates automatically: ![Pritunl Domain Setup](pritunl-config3.png) -Now that you’ve accessed your dashboard, check out [the official Pritunl documentation](https://docs.pritunl.com/docs/connecting) to learn how to add users and further use your Pritunl instance. +Now that you’ve accessed your dashboard, check out [the official Pritunl documentation](https://docs.pritunl.com/docs/connecting) to learn how to add users and use your Pritunl instance. {{% content "marketplace-update-note-shortguide" %}} \ No newline at end of file diff --git a/docs/marketplace-docs/guides/pritunl/pritunl-config3.png b/docs/marketplace-docs/guides/pritunl/pritunl-config3.png index 56e5df9e65d..5c6bb388f5e 100644 Binary files a/docs/marketplace-docs/guides/pritunl/pritunl-config3.png and b/docs/marketplace-docs/guides/pritunl/pritunl-config3.png differ diff --git a/docs/marketplace-docs/guides/restyaboard/index.md b/docs/marketplace-docs/guides/restyaboard/index.md index a0a3ec69509..ff61180866a 100644 --- a/docs/marketplace-docs/guides/restyaboard/index.md +++ b/docs/marketplace-docs/guides/restyaboard/index.md @@ -12,6 +12,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +Restyaboard has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [Restyaboard](https://restya.com/board) is an open-source alternative to Trello, but with smart additional features like offline sync, revisions, diff, nested comments, multiple view layouts, chat, and more. And since it is self-hosted, data, privacy, and IP security are under your full control. diff --git a/docs/marketplace-docs/guides/rust/index.md b/docs/marketplace-docs/guides/rust/index.md index efa772524ab..f777350200d 100644 --- a/docs/marketplace-docs/guides/rust/index.md +++ b/docs/marketplace-docs/guides/rust/index.md @@ -18,7 +18,7 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Rust has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Rust has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} [Rust](https://rust.facepunch.com/) is a multiplayer game where you play as a survivor that must work with or against other players to ensure your own survival. Players are able to steal, lie, cheat, or trick each other. You can build a shelter, hunt animals for food, craft weapons, craft armor, and much more. diff --git a/docs/marketplace-docs/guides/serverwand/index.md b/docs/marketplace-docs/guides/serverwand/index.md index 67195a56e73..e0a42750db5 100644 --- a/docs/marketplace-docs/guides/serverwand/index.md +++ b/docs/marketplace-docs/guides/serverwand/index.md @@ -14,6 +14,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +ServerWand has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} [ServerWand](https://serverwand.com) is a magical control panel for managing websites and servers. Host multiple sites on a single server, manage apps, firewall, databases, backups, system users, cron jobs, SSL, and email with an intuitive interface. diff --git a/docs/marketplace-docs/guides/team-fortress-2/index.md b/docs/marketplace-docs/guides/team-fortress-2/index.md index a1436377cbc..d8e9794f727 100644 --- a/docs/marketplace-docs/guides/team-fortress-2/index.md +++ b/docs/marketplace-docs/guides/team-fortress-2/index.md @@ -15,7 +15,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Team Fortress 2 has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. For information on how to deploy and set up Team Fortress 2 manually on a Compute Instance, see our [Team Fortress 2 on Debian and Ubuntu](/docs/guides/team-fortress2-on-debian-and-ubuntu/) guide. +Team Fortress 2 has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. For information on how to deploy and set up Team Fortress 2 manually on a Compute Instance, see our [Team Fortress 2 on Debian and Ubuntu](/docs/guides/team-fortress2-on-debian-and-ubuntu/) guide. {{< /note >}} Team Fortress 2 (TF2) is a team-based multiplayer first-person shooter game. In TF2, you and your team choose from 9 unique classes and play against an enemy team in a variety of game modes. These modes include capture the flag, king of the hill, and even a battle pitting your team against a robotic horde. diff --git a/docs/marketplace-docs/guides/terraria/index.md b/docs/marketplace-docs/guides/terraria/index.md index 65f5a087983..4d4e891085a 100644 --- a/docs/marketplace-docs/guides/terraria/index.md +++ b/docs/marketplace-docs/guides/terraria/index.md @@ -17,7 +17,7 @@ contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Terraria has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. For information on how to deploy and set up Terraria manually on a Compute Instance, see our [How to Setup a Terraria Linux Server](/docs/guides/host-a-terraria-server-on-your-linode/) guide. +Terraria has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. For information on how to deploy and set up Terraria manually on a Compute Instance, see our [How to Setup a Terraria Linux Server](/docs/guides/host-a-terraria-server-on-your-linode/) guide. {{< /note >}} Terraria is a two-dimensional sandbox game in which players explore the world, collect resources, build structures, and battle enemies in procedurally generated environments. In Terraria a player begins by digging for ore, and the further they dig the more adventure they find. Multiplayer mode can be either cooperative or PvP. diff --git a/docs/marketplace-docs/guides/valheim/index.md b/docs/marketplace-docs/guides/valheim/index.md index 783c2642b35..d8897a45a59 100644 --- a/docs/marketplace-docs/guides/valheim/index.md +++ b/docs/marketplace-docs/guides/valheim/index.md @@ -19,7 +19,7 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Valheim has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Valheim has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} Valheim is an open-world Viking-themed survival and sandbox game developed by [Iron Gate Studio](https://irongatestudio.se/). Play solo in single player mode, or invite your friends for player vs. environment multiplayer mode. With challenging combat, numerous boss battles, and a creative building system that lets you craft things like halls, forts, and even imposing Viking warships, there's always something to do. Explore, build, conquer, and survive. The further you travel the more challenging adventures await. diff --git a/docs/marketplace-docs/guides/virtualmin/index.md b/docs/marketplace-docs/guides/virtualmin/index.md index 445304af69a..f935904d883 100644 --- a/docs/marketplace-docs/guides/virtualmin/index.md +++ b/docs/marketplace-docs/guides/virtualmin/index.md @@ -20,7 +20,7 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Virtualmin has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Virtualmin has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} [Virtualmin](https://www.virtualmin.com) is an open source control panel for web hosting management. It offers an easy to use graphical interface for managing websites, email, and databases. It's built on top of and integrated with the popular Webmin. diff --git a/docs/marketplace-docs/guides/webmin/index.md b/docs/marketplace-docs/guides/webmin/index.md index 6477e793cd4..593662b6239 100644 --- a/docs/marketplace-docs/guides/webmin/index.md +++ b/docs/marketplace-docs/guides/webmin/index.md @@ -21,7 +21,7 @@ license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- {{< note type="warning" title="This app is no longer available for deployment" >}} -Webmin has been removed from the App Marketplace and can no longer be deployed. This guide has been retained for reference only. +Webmin has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. {{< /note >}} [Webmin](http://www.webmin.com) is an open source interface for Unix system administration that offers an easy to use graphical interface for managing user accounts, DNS, file sharing, and more. Webmin alleviates the need to use the command line to edit Unix system configuration files and lets you configure your system easily from a simple web interface. diff --git a/docs/marketplace-docs/guides/webuzo/index.md b/docs/marketplace-docs/guides/webuzo/index.md index 30e4c50d9be..6e9c5ccdd01 100644 --- a/docs/marketplace-docs/guides/webuzo/index.md +++ b/docs/marketplace-docs/guides/webuzo/index.md @@ -13,6 +13,9 @@ authors: ["Akamai"] contributors: ["Akamai"] license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)' --- +{{< note type="warning" title="This app is no longer available for deployment" >}} +Webuzo has been removed from the App Marketplace and can no longer be deployed. This guide is retained for reference only. +{{< /note >}} Softaculous [Webuzo](https://www.webuzo.com) is a single user LAMP stack control panel that lets you deploy a growing number of applications and scripts on your server with a single click.