Skip to content

Commit

Permalink
docs: Add templates documentation (#4458)
Browse files Browse the repository at this point in the history
Signed-off-by: Carson Yang <[email protected]>
  • Loading branch information
yangchuansheng authored Jan 3, 2024
1 parent 16b92b8 commit 972784f
Show file tree
Hide file tree
Showing 15 changed files with 111 additions and 102 deletions.
125 changes: 31 additions & 94 deletions docs/4.0/docs/guides/applaunchpad/applaunchpad.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,115 +4,52 @@ sidebar_position: 1

# App Launchpad

**App Launchpad** is a single-image deployment tool offered by Sealos that can help you deploy an image online within 5 minutes.
**App Launchpad** is a feature within Sealos that serves as a single-image deployment tool. Its main goal is to streamline and expedite the process of deploying applications, allowing you to launch your application in as little as 5 minutes.

- [x] Private image
- [x] Customizable CPU and memory
- [x] Multiple replicas
- [x] HPA
- [x] External access address
- [x] Custom domains
- [x] ConfigMap configuration files
- [x] Persistent storage
- [x] APP and Pod monitoring
- [x] Logs
- [x] Events analysis
- [x] One-click entry into containers
- [x] One-click deployment to Sealos Desktop
- [x] Editable Yaml
- [x] Support for multiple external exposed ports
The tool currently boasts a range of functionalities:

## Quick Start
- Capability to deploy applications using private images.
- Flexibility to tailor CPU and memory resources according to the specific needs of the application.
- Support for deploying multiple replicas.
- Horizontal Pod Autoscaling (HPA) for dynamic scaling.
- Provision of external URLs for easy access from the public network.
- Option to assign custom domain to applications, enhancing both brand visibility and the user experience.
- Utilization of ConfigMap for configuration file management.
- Persistent storage solutions for application data, ensuring both its security and continuity.
- Real-time monitoring features for applications and Pods to facilitate prompt issue detection and resolution.
- Comprehensive logging of application activities, aiding in troubleshooting and performance optimization.
- Analysis of system events (Events) to extract critical insights for enhancing application performance.
- A convenient one-click feature to access the container terminal, simplifying management and debugging tasks.
- Ability to expose several ports of an application to the external network.

Let's take deploying a simple Nginx as an example, to demonstrate the convenience of container deployment and **App Launchpad**.
## [Quick Start](/quick-start/use-app-launchpad.md)

Complete the deployment and access in just 6 steps:
For quick and easy installation of commonly utilized applications.

1. Enter the **App Launchpad** app from the Sealos Desktop.
## [Update Application](/guides/applaunchpad/update-app.md)

![](./images/app-launchpad.jpg)
Guidance on modifying application configurations after initial deployment.

2. Click to create a new application.
## [Add a domain](/guides/applaunchpad/add-domain.md)

![](./images/app-list.png)
Instructions for integrating a custom domain with your application.

3. Turn on the **External Access** switch. The Nginx image is already filled in by default, no need for modification. Then Click Deploy Aplication.
## [Exposing Multiple Ports](/guides/applaunchpad/expose-multi-ports.md)

![](./images/app-launchpad3.png)
Details on how to make multiple ports of an application accessible externally.

4. Enter the App details.
## [Environment](/guides/applaunchpad/environment.md)

![](./images/app-launchpad4.png)
Directions for configuring applications through the use of environment variables.

5. Click the "External Address" to access Nginx.
## [ConfigMap](/guides/applaunchpad/configmap.md)

![](./images/app-launchpad6.png)
Guidelines for setting up application configurations via configuration files.

## Detailed Features
## [Autoscaling](/guides/applaunchpad/autoscale.md)

### Auto Scaling
Strategy for autoscaling the number of application instances in response to varying workloads.

You can freely switch between fixed instances or elastic scaling mode during application creation/change.
## [Persistent Volume](/guides/applaunchpad/persistent-volume.md)

![img](./images/app-launchpad7.png)

![img](./images/app-launchpad8.png)

- Fixed Instance: Permanently create a fixed number of Pods, unaffected by actual traffic.
- Elastic Scaling: You can choose to dynamically adjust the number of Pods based on the percentage of CPU or Memory. Setting up elastic scaling requires a certain understanding of your own business traffic. Of course, you can also directly select 1~20 instance numbers, as the billing system will only calculate the actual running instances, inactive ones will not be charged.

### Custom Domains

**App Launchpad** will provide you with an SSL-certified external access domain by default. Of course, when serving externally, you may wish for users to access your domain. At this time, you can set your own domain in **App Launchpad**. You'll need to make two adjustments:

1. Fill in your own domain in the custom domain input box under the **Network Configuration** section.
2. Follow the prompt to modify the DNS at the domain service provider, CNAME resolve to the prompted domain.
3. Confirm the creation/update of the application.

![](./images/app-launchpad9.png)

### Environment

**App Launchpad** uses batch input to enter environment variables, split by line, **=** sign, and **:** sign, and invalid characters in the key will be removed.

![img](./images/app-launchpad10.png)

**Examples of valid environment variable formats:**

```
makefile
host=127.0.0.1
port:3000
name: sealos
- username=123
- password:123
# Comments like this will be ignored as they don't contain = : two marking characters.
```

**Examples of invalid environment variable formats:**

```
makefile
# This line will be parsed: because it contains : or =
host=127.0.0.1 # This comment will also be parsed because there is an = sign in front of it
```

### ConfigMap

You can think of ConfigMap as volumes in Docker. Mount a custom file into the container to modify container configurations. Below is an example of modifying the Nginx configuration file.

- File Name: Corresponds to the file in the Nginx container, refer to the instructions provided by the image provider.
- File Value: Corresponds to the content of the file. If the content is too complex, you can edit it locally before pasting it here.
- Note: ConfigMap mounts individual files, not directories.

![](./images/app-launchpad11.png)

### Persistent Storage

Any content saved in the Pod is temporary, so be sure not to save content that needs to be persisted directly in the Pod!!! If you want to allocate a space for persistent storage to the Pod, you can add a **Storage Volume**.

Suppose you need to deploy a PostgreSQL database, you must create a storage volume to persistently store the content in the database.

![](./images/app-launchpad12.png)

Of course, we recommend you use [Database Management](./dbprovider/dbprovider.md) for deploying and managing databases.
Utilizing persistent storage for the long-term preservation of data.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions docs/4.0/docs/guides/templates/submit-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar_position: 2
---

# Submit template

Every template in the Sealos template marketplace is directly and continuously updated from the [Sealos Template Repository](https://github.com/labring-actions/templates). For those interested in contributing new templates, the process involves submitting a Pull Request (PR) to this repository.

To craft a new template, reference is available in the form of the [template.yaml](https://github.com/labring-actions/templates/blob/main/template.yaml) file. The system is equipped with a variety of common environment variables and functions that are accessible during the template development process. These integrated features enable the use of syntax akin to `GitHub Actions`. For instance, environment variables such as `${{ SEALOS_NAMESPACE }}` can be utilized to configure specific parameters in the template. Comprehensive details about these built-in environment variables are available in the [Template Guidelines](https://github.com/labring-actions/templates/blob/main/example.md).
13 changes: 13 additions & 0 deletions docs/4.0/docs/guides/templates/templates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
sidebar_position: 0
---

# Templates

Sealos's [templates](https://template.cloud.sealos.io/) offers an array of pre-designed templates, ideal for quickly setting up and launching websites and a range of applications. This marketplace hosts a variety of template types, including blogs, AI applications, low-code solutions, cloud storage, IM applications, and middleware. These templates aim to make the development process more efficient, allowing developers to rapidly initiate and deploy projects without the need to build a website from scratch or concern themselves with the intricacies of application dependencies.

Contrasting with Vercel's template marketplace, Sealos provides a different range of applications and functionalities. Vercel primarily targets front-end project deployment, offering templates that enhance website interfaces and user interactions. However, Vercel does not offer persistent data storage, resulting in data being temporary and lost upon application restart.

In contrast, Sealos's application templates encompass both front-end and back-end projects, along with a variety of other applications. Significantly, Sealos includes support for persistent storage, an essential aspect for applications that require extensive data storage or need to maintain data continuity. This is particularly critical for applications like e-commerce websites, large-scale social media platforms, and enterprise-level applications, where data persistence is a key requirement.

![](./images/templates.png)
2 changes: 1 addition & 1 deletion docs/4.0/docs/quick-start/install-db-with-database.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 4

# Use Database App

Databases are fundamental tools for data management, designed for efficient storage and access. Sealos offers a user-friendly database interface, eliminating the complexities of command-line operations. This assists in managing an array of databases, such as relational databases, NoSQL, vector databases, and streaming databases. With just a few clicks in the "[Database](../../platform-components/dbprovider/dbprovider.md)" app, you can seamlessly create a variety of databases, including MySQL, PostgreSQL, MongoDB, Redis, and many more.
Databases are fundamental tools for data management, designed for efficient storage and access. Sealos offers a user-friendly database interface, eliminating the complexities of command-line operations. This assists in managing an array of databases, such as relational databases, NoSQL, vector databases, and streaming databases. With just a few clicks in the "[Database](/guides/dbprovider/dbprovider.md)" app, you can seamlessly create a variety of databases, including MySQL, PostgreSQL, MongoDB, Redis, and many more.

This guide will show you how to install MySQL use Databse app.

Expand Down
2 changes: 1 addition & 1 deletion docs/4.0/docs/quick-start/use-app-launchpad.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 2

Sealos desktop is similar to that of PC operating systems, such as macOS or Windows. Each icon on the desktop represents an app, similar to the shortcuts in Windows. Like PC operating systems, Sealos also comes with built-in apps. To quickly install applications on this cloud operating system, you need to use the system's built-in **App Launchpad**.

> For more information about application management, please refer to [Introduction to App Launchpad](../../platform-components/applaunchpad/applaunchpad.md)
> For more information about application management, please refer to [Introduction to App Launchpad](/guides/applaunchpad/applaunchpad.md)
This guide will show you how to quickly install some common applications on the Sealos cloud operating system.

Expand Down
2 changes: 1 addition & 1 deletion docs/4.0/docs/quick-start/use-terminal.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 3

# Use Terminal

Users familiar with Kubernetes and container fundamentals may opt to deploy applications using the **[Terminal](../../platform-components/terminal/terminal.md)** app. This guide will show you how to use the terminal for deployment, using Nginx as an example.
Users familiar with Kubernetes and container fundamentals may opt to deploy applications using the **[Terminal](/guides/terminal/terminal.md)** app. This guide will show you how to use the terminal for deployment, using Nginx as an example.

Start by launching the Terminal app within the [Sealos](https://cloud.sealos.io) desktop.

Expand Down
4 changes: 2 additions & 2 deletions docs/4.0/i18n/zh-Hans/guides/applaunchpad/applaunchpad.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 0
sidebar_position: 1
---

# 应用管理
Expand All @@ -22,7 +22,7 @@ sidebar_position: 0
- 一键进入容器终端,方便管理和调试;
- 支持将应用的多个端口暴露到外网。

## [快速开始](/quick-start/app-deployments/use-app-launchpad.md)
## [快速开始](/quick-start/use-app-launchpad.md)

快速安装一些比较常见的应用。

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions docs/4.0/i18n/zh-Hans/guides/templates/submit-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
sidebar_position: 2
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

import wechat from './images/wechat-qr-code.jpg';

# 提交模板

:::tip

提交模板是可以拿奖金💰的!奖励规则如下:

| 类型 | 奖金 |
| ------------------------------------------------------------ | ---- |
| 提交模板到 Sealos 模板市场 | 50¥ |
| 同时将模板的一键部署 PR 提交到模板应用的官方文档或者 README 中 | 150¥ |

:::

## 模板提交流程

Sealos 模板市场的所有模板都是实时从 [Sealos 模板仓库](https://github.com/labring-actions/templates) 同步过来的。如果您想要为这个仓库贡献新的模板,可以通过提交 PR(Pull Request)的方式来实现。

要创建一个新模板,您可以参考这里的 [template.yaml](https://github.com/labring-actions/templates/blob/main/template.yaml) 文件。系统已经内置了许多通用的环境变量和函数,这些都可以在编写模板时使用。这些内置的功能允许您使用类似于 `GitHub Actions` 的语法来编写模板,例如,您可以使用 `${{ SEALOS_NAMESPACE }}` 这样的环境变量来设置模板参数。关于这些内置环境变量的具体信息,可以参阅[模板说明文档](https://github.com/labring-actions/templates/blob/main/example_zh.md)

## 领取奖金

首先填写并提交以下表单:

<iframe src="https://fael3z0zfze.feishu.cn/share/base/form/shrcnl6BLJUyRaASA0B1DNLKh3d" width="100%" height="800px" frameborder="0" allowfullscreen></iframe>

然后扫码添加 Sealos 小助理微信领取奖金:

<img src={wechat} style={{width: 400}} />
13 changes: 13 additions & 0 deletions docs/4.0/i18n/zh-Hans/guides/templates/templates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
sidebar_position: 0
---

# 模板市场

Sealos 的[模板市场](https://template.cloud.sealos.io/)提供了一系列预制的模板,这些模板可用于快速创建和部署网站和各种应用程序。你可以在模板市场中找到各种类型的模板,比如博客、AI 应用、低代码应用、网盘、IM 应用、中间件等等。这些模板旨在简化开发过程,使开发者能够快速启动和部署项目,而无需从零开始构建整个网站,也无需关心应用之间的各种依赖关系。

与 Vercel 的模板市场相比,Sealos 的模板市场在应用范围和功能上有所不同。Vercel 主要专注于前端项目的部署,它的模板主要是为了支持网站的界面和用户交互部分,但它不支持数据的持久化存储,所有的数据都是临时的,一旦应用重启,数据就会丢失。

Sealos 应用模板不仅支持前端项目,还支持后端和其他各类应用的部署。更重要的是,Sealos 支持挂载持久化存储,这对于需要存储大量数据或者保持数据持久化的应用来说至关重要。例如,对于电商网站、大型社交媒体应用或企业级应用来说,数据的持久化是必不可少的功能。

![](./images/templates.png)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 4

# 安装数据库应用

数据库是数据管理的重要手段 , 可用于高效地存储和访问数据。Sealos 提供了一个简单易用的数据库前端应用,屏蔽了繁琐的命令行操作,帮助你管理关系数据库、NoSQL、向量数据库和流数据库等各种类型的数据库。你只需通过「[数据库](../../platform-components/dbprovider/dbprovider.md)」应用就能轻松创建各种数据库,包括 MySQL、PostgreSQL、MongoDB、Redis 等多种类型的数据库。
数据库是数据管理的重要手段 , 可用于高效地存储和访问数据。Sealos 提供了一个简单易用的数据库前端应用,屏蔽了繁琐的命令行操作,帮助你管理关系数据库、NoSQL、向量数据库和流数据库等各种类型的数据库。你只需通过「[数据库](/guides/dbprovider/dbprovider.md)」应用就能轻松创建各种数据库,包括 MySQL、PostgreSQL、MongoDB、Redis 等多种类型的数据库。

下面将通过示例来演示 Sealos 如何快速安装 MySQL。

Expand Down
2 changes: 1 addition & 1 deletion docs/4.0/i18n/zh-Hans/quick-start/use-app-launchpad.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 2

Sealos 的桌面环境类似于单机操作系统 macOS 或 Windows 的桌面环境,桌面上的每个图标都是一个 App,类似于 Windows 的快捷方式。与单机操作系统一样,Sealos 也有系统自带的 App,要想在这个云操作系统中快速安装应用,就需要用到系统自带的 App:**应用管理**

> 关于应用管理的详细信息请参阅 [应用管理介绍](../../platform-components/applaunchpad/applaunchpad.md)
> 关于应用管理的详细信息请参阅 [应用管理介绍](/guides/applaunchpad/applaunchpad.md)
下面将演示如何在 Sealos 云操作系统中快速安装一些比较常见的应用。

Expand Down
2 changes: 1 addition & 1 deletion docs/4.0/i18n/zh-Hans/quick-start/use-terminal.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 3

# 使用终端

熟悉 Kubernetes 和容器基础知识的用户可以选择使用「[终端](../../platform-components/terminal/terminal.md)」命令行来部署应用。本文以 Nginx 为例,介绍如何使用终端来部署应用。
熟悉 Kubernetes 和容器基础知识的用户可以选择使用「[终端](/guides/terminal/terminal.md)」命令行来部署应用。本文以 Nginx 为例,介绍如何使用终端来部署应用。

首先在 [Sealos](https://cloud.sealos.top) 桌面环境中打开终端 App。

Expand Down

0 comments on commit 972784f

Please sign in to comment.