From 51581285827839b50e1af49d70ca905879887c47 Mon Sep 17 00:00:00 2001 From: huty Date: Wed, 18 Dec 2024 17:29:00 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86YAML?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=88=E6=96=B0=E5=A2=9E=E6=8E=A2=E9=92=88?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- description/Workload/Pod/description.yml | 55 +++++++++++++++++ .../chatgpt-next-web/chatgpt-next-web.yaml | 20 +++++++ examples/drawio/drawio.yaml | 40 +++++++++++++ examples/gitea/gitea.yaml | 20 +++++++ examples/halo/halo.yaml | 20 +++++++ examples/kiwix-serve/kiwix-serve.yaml | 20 +++++++ examples/mariadb/mariadb-10-cluster.yaml | 40 +++++++++++++ examples/mariadb/mariadb-10-single.yaml | 20 +++++++ examples/mysql/mysql-8-cluster.yaml | 40 +++++++++++++ examples/mysql/mysql-8-single.yaml | 20 +++++++ examples/pgadmin4/pgadmin4.yaml | 20 +++++++ examples/phpmyadmin/phpmyadmin.yaml | 20 +++++++ examples/postgres/postgres-16-single.yaml | 20 +++++++ examples/seafile/seafile.yaml | 60 +++++++++++++++++++ examples/trilium/trilium.yaml | 20 +++++++ examples/vaultwarden/vaultwarden.yaml | 20 +++++++ examples/wikijs/wikijs.yaml | 20 +++++++ examples/wiznote/wiznote.yaml | 20 +++++++ examples/xbrowsersync/xbrowsersync.yaml | 40 +++++++++++++ 19 files changed, 535 insertions(+) diff --git a/description/Workload/Pod/description.yml b/description/Workload/Pod/description.yml index 8f04a05..95ac353 100644 --- a/description/Workload/Pod/description.yml +++ b/description/Workload/Pod/description.yml @@ -31,3 +31,58 @@ spec: containerPort: 端口号 ###### 端口类型 protocol: 该端口号的类型 + #### 环境变量 + env: + ##### 环境变量1 + ###### 环境变量名称 + - name: 环境变量名称 + ###### 环境变量值 + value: 环境变量值 + #### 存活探针 + livenessProbe: + ##### TCP 探针 + tcpSocket: + ###### TCP 探测端口 + port: TCP端口号 + ##### HTTP 探针 + httpGet: + ###### HTTP端口号 + port: HTTP端口号 + ###### HTTP路径 + path: HTTP路径 + ##### 命令探针 + exec: + ###### 需要执行的命令 + command: + - 命令1 + - 命令2 + ##### 探测延迟(容器启动后探测开始的延迟时间)(秒) + initialDelaySeconds: 探测延迟 + ##### 探测间隔(每次探测之间的间隔时间)(秒) + periodSeconds: 探测间隔 + ##### 探测超时时间(秒) + timeoutSeconds: 探测超时时间 + ##### 探测失败阈值(探测失败多少次时表示失败)(次数) + failureThreshold: 探测失败阈值 + ##### 探测成功阈值(探测成功多少次时表示成功)(次数) + successThreshold: 探测成功阈值 + #### 就绪探针 + readinessProbe: + ##### TCP 探针 + tcpSocket: + ###### TCP 探测端口 + port: TCP端口 + ##### 探测延迟(容器启动后探测开始的延迟时间)(秒) + initialDelaySeconds: 探测延迟 + ##### 探测间隔(每次探测之间的间隔时间)(秒) + periodSeconds: 探测间隔 + #### 启动探针 + startupProbe: + ##### TCP 探针 + tcpSocket: + ###### TCP 探测端口 + port: TCP端口 + ##### 探测延迟(容器启动后探测开始的延迟时间)(秒) + initialDelaySeconds: 探测延迟 + ##### 探测间隔(每次探测之间的间隔时间)(秒) + periodSeconds: 探测间隔 diff --git a/examples/chatgpt-next-web/chatgpt-next-web.yaml b/examples/chatgpt-next-web/chatgpt-next-web.yaml index 15f10fc..a820a5e 100644 --- a/examples/chatgpt-next-web/chatgpt-next-web.yaml +++ b/examples/chatgpt-next-web/chatgpt-next-web.yaml @@ -91,6 +91,26 @@ spec: value: "123456" - name: CODE value: "123456" + livenessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/drawio/drawio.yaml b/examples/drawio/drawio.yaml index 1772e63..a6e71b6 100644 --- a/examples/drawio/drawio.yaml +++ b/examples/drawio/drawio.yaml @@ -169,6 +169,26 @@ spec: env: - name: DRAWIO_SERVER_URL value: "http://localhost:8080" + livenessProbe: + tcpSocket: + port: 8000 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 - name: drawio image: jgraph/drawio:24.7.17 volumeMounts: @@ -187,6 +207,26 @@ spec: # value: "http://plantuml-server:8080" - name: EXPORT_URL value: "http://localhost:8000" + livenessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/gitea/gitea.yaml b/examples/gitea/gitea.yaml index 38e53a8..dc0cd80 100644 --- a/examples/gitea/gitea.yaml +++ b/examples/gitea/gitea.yaml @@ -158,6 +158,26 @@ spec: readOnly: true - name: hty1024-app-gitea-data mountPath: /data + livenessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/halo/halo.yaml b/examples/halo/halo.yaml index a6aa6db..28f0869 100644 --- a/examples/halo/halo.yaml +++ b/examples/halo/halo.yaml @@ -173,6 +173,26 @@ spec: value: "admin" - name: HALO_CACHE value: "memory" + livenessProbe: + tcpSocket: + port: 8090 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 8090 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 8090 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/kiwix-serve/kiwix-serve.yaml b/examples/kiwix-serve/kiwix-serve.yaml index ad3009b..7e4e8bc 100644 --- a/examples/kiwix-serve/kiwix-serve.yaml +++ b/examples/kiwix-serve/kiwix-serve.yaml @@ -158,6 +158,26 @@ spec: readOnly: true - name: hty1024-app-kiwix-serve-data mountPath: /data + livenessProbe: + tcpSocket: + port: 10080 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 10080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 10080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/mariadb/mariadb-10-cluster.yaml b/examples/mariadb/mariadb-10-cluster.yaml index ecd21f2..49230cd 100644 --- a/examples/mariadb/mariadb-10-cluster.yaml +++ b/examples/mariadb/mariadb-10-cluster.yaml @@ -418,6 +418,26 @@ spec: value: "replication" - name: MYSQL_REPLICATION_PASSWORD_FILE value: "/tmp/secret-volume/replication.key" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app @@ -504,5 +524,25 @@ spec: value: "/tmp/secret-volume/root.key" - name: MYSQL_REPLICATION_MODE value: "slave" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/mariadb/mariadb-10-single.yaml b/examples/mariadb/mariadb-10-single.yaml index 7a3ff42..4e20d67 100644 --- a/examples/mariadb/mariadb-10-single.yaml +++ b/examples/mariadb/mariadb-10-single.yaml @@ -215,6 +215,26 @@ spec: env: - name: MYSQL_ROOT_PASSWORD_FILE value: "/tmp/secret-volume/root.key" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/mysql/mysql-8-cluster.yaml b/examples/mysql/mysql-8-cluster.yaml index af25cb2..ed597c1 100644 --- a/examples/mysql/mysql-8-cluster.yaml +++ b/examples/mysql/mysql-8-cluster.yaml @@ -418,6 +418,26 @@ spec: value: "replication" - name: MYSQL_REPLICATION_PASSWORD_FILE value: "/tmp/secret-volume/replication.key" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app @@ -504,5 +524,25 @@ spec: value: "/tmp/secret-volume/root.key" - name: MYSQL_REPLICATION_MODE value: "slave" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/mysql/mysql-8-single.yaml b/examples/mysql/mysql-8-single.yaml index 37f2a5c..bf3832f 100644 --- a/examples/mysql/mysql-8-single.yaml +++ b/examples/mysql/mysql-8-single.yaml @@ -215,6 +215,26 @@ spec: env: - name: MYSQL_ROOT_PASSWORD_FILE value: "/tmp/secret-volume/root.key" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/pgadmin4/pgadmin4.yaml b/examples/pgadmin4/pgadmin4.yaml index c8b2c8f..93a7123 100644 --- a/examples/pgadmin4/pgadmin4.yaml +++ b/examples/pgadmin4/pgadmin4.yaml @@ -87,5 +87,25 @@ spec: value: "test@hty1024.com" - name: PGADMIN_DEFAULT_PASSWORD value: "123456" + livenessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/phpmyadmin/phpmyadmin.yaml b/examples/phpmyadmin/phpmyadmin.yaml index 9f46901..47f75a7 100644 --- a/examples/phpmyadmin/phpmyadmin.yaml +++ b/examples/phpmyadmin/phpmyadmin.yaml @@ -85,5 +85,25 @@ spec: env: - name: PMA_ARBITRARY value: "1" + livenessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/postgres/postgres-16-single.yaml b/examples/postgres/postgres-16-single.yaml index cb891f0..cd9eb2c 100644 --- a/examples/postgres/postgres-16-single.yaml +++ b/examples/postgres/postgres-16-single.yaml @@ -186,6 +186,26 @@ spec: env: - name: POSTGRES_PASSWORD_FILE value: "/tmp/secret-volume/postgres.key" + livenessProbe: + tcpSocket: + port: 5432 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 5432 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 5432 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/seafile/seafile.yaml b/examples/seafile/seafile.yaml index 043eedd..5535062 100644 --- a/examples/seafile/seafile.yaml +++ b/examples/seafile/seafile.yaml @@ -276,6 +276,26 @@ spec: env: - name: MYSQL_ROOT_PASSWORD_FILE value: "/tmp/secret-volume/root.key" + livenessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 - name: memcached image: memcached:1.6.32-alpine3.20 ports: @@ -285,6 +305,26 @@ spec: - name: localtime mountPath: /etc/localtime readOnly: true + livenessProbe: + tcpSocket: + port: 11211 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 11211 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 11211 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 - name: seafile image: seafileltd/seafile-mc:11.0.9 ports: @@ -311,6 +351,26 @@ spec: value: "false" - name: SEAFILE_SERVER_HOSTNAME value: "test.hty1024.com" + livenessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/trilium/trilium.yaml b/examples/trilium/trilium.yaml index a264e8d..e9224ce 100644 --- a/examples/trilium/trilium.yaml +++ b/examples/trilium/trilium.yaml @@ -161,6 +161,26 @@ spec: readOnly: true - name: hty1024-app-trilium-data mountPath: /home/node/trilium-data + livenessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/vaultwarden/vaultwarden.yaml b/examples/vaultwarden/vaultwarden.yaml index 3242f93..a1d49b2 100644 --- a/examples/vaultwarden/vaultwarden.yaml +++ b/examples/vaultwarden/vaultwarden.yaml @@ -161,6 +161,26 @@ spec: env: - name: SIGNUPS_ALLOWED value: "false" + livenessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/wikijs/wikijs.yaml b/examples/wikijs/wikijs.yaml index 3dc6c58..8e12ade 100644 --- a/examples/wikijs/wikijs.yaml +++ b/examples/wikijs/wikijs.yaml @@ -171,6 +171,26 @@ spec: value: "123456" - name: DB_NAME value: "wikijs" + livenessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/wiznote/wiznote.yaml b/examples/wiznote/wiznote.yaml index 081b202..02c179b 100644 --- a/examples/wiznote/wiznote.yaml +++ b/examples/wiznote/wiznote.yaml @@ -158,6 +158,26 @@ spec: readOnly: true - name: hty1024-app-wiznote-data mountPath: /wiz/storage + livenessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 80 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app diff --git a/examples/xbrowsersync/xbrowsersync.yaml b/examples/xbrowsersync/xbrowsersync.yaml index d8fc075..3836cf4 100644 --- a/examples/xbrowsersync/xbrowsersync.yaml +++ b/examples/xbrowsersync/xbrowsersync.yaml @@ -309,6 +309,26 @@ spec: value: "xbrowsersync" - name: XBS_DB_PASSWORD value: "123456" + livenessProbe: + tcpSocket: + port: 27017 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 27017 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 27017 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 - name: xbrowsersync image: xbrowsersync/api:1.1.13 ports: @@ -327,6 +347,26 @@ spec: value: "xbrowsersync" - name: XBROWSERSYNC_DB_PWD value: "123456" + livenessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 300 + periodSeconds: 10 + timeoutSeconds: 30 + failureThreshold: 3 + successThreshold: 3 + readinessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 + startupProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 5 + successThreshold: 3 nodeSelector: node.k8s.hty1024.com/type: app