mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2025-02-03 00:07:59 +08:00
统一编码
Signed-off-by: 萌森 <qyg2297248353@163.com>
This commit is contained in:
parent
523b5584ca
commit
0f7374c954
@ -1,145 +1,145 @@
|
|||||||
# 应用制作说明
|
# 应用制作说明
|
||||||
|
|
||||||
### 基础目录
|
### 基础目录
|
||||||
|
|
||||||
`/app`
|
`/app`
|
||||||
|
|
||||||
### 应用格式
|
### 应用格式
|
||||||
|
|
||||||
```
|
```
|
||||||
├── app_name // 应用名称
|
├── app_name // 应用名称
|
||||||
├── logo.png // 应用 logo , 推荐 180 * 180 px
|
├── logo.png // 应用 logo , 推荐 180 * 180 px
|
||||||
├── data.yml // 应用声明文件
|
├── data.yml // 应用声明文件
|
||||||
├── README.md // 应用说明文档
|
├── README.md // 应用说明文档
|
||||||
├── 2.2.0 // 应用版本
|
├── 2.2.0 // 应用版本
|
||||||
│ ├── data.yml // 表单配置
|
│ ├── data.yml // 表单配置
|
||||||
| ├── scripts // 脚本目录
|
| ├── scripts // 脚本目录
|
||||||
│ └── docker-compose.yml // docker-compose 文件
|
│ └── docker-compose.yml // docker-compose 文件
|
||||||
└── 2.3.2 // 应用版本
|
└── 2.3.2 // 应用版本
|
||||||
├── data.yml
|
├── data.yml
|
||||||
├── data
|
├── data
|
||||||
└── docker-compose.yml
|
└── docker-compose.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 应用声明文件
|
#### 应用声明文件
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# 固定参数
|
# 固定参数
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
# 应用的 key , 仅限英文
|
# 应用的 key , 仅限英文
|
||||||
key: app_name
|
key: app_name
|
||||||
# 应用名称 显示名称
|
# 应用名称 显示名称
|
||||||
name: app_show_name
|
name: app_show_name
|
||||||
# 应用标签
|
# 应用标签
|
||||||
tags:
|
tags:
|
||||||
# 参考 tags.yml
|
# 参考 tags.yml
|
||||||
- WebSite
|
- WebSite
|
||||||
# 应用中文描述, 推荐 30 字以内
|
# 应用中文描述, 推荐 30 字以内
|
||||||
shortDescZh: 应用主要概述
|
shortDescZh: 应用主要概述
|
||||||
# 应用英文描述
|
# 应用英文描述
|
||||||
shortDescEn: Application main description
|
shortDescEn: Application main description
|
||||||
# 应用类型
|
# 应用类型
|
||||||
type: website
|
type: website
|
||||||
# 跨大版本升级
|
# 跨大版本升级
|
||||||
crossVersionUpdate: true
|
crossVersionUpdate: true
|
||||||
# 安装限制, 0 代表无限制
|
# 安装限制, 0 代表无限制
|
||||||
limit: 0
|
limit: 0
|
||||||
# 官网地址
|
# 官网地址
|
||||||
website: https://app.com
|
website: https://app.com
|
||||||
# 仓库地址
|
# 仓库地址
|
||||||
github: https://github.com/app/app
|
github: https://github.com/app/app
|
||||||
# 文档地址
|
# 文档地址
|
||||||
document: https://docs.app.com
|
document: https://docs.app.com
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 应用类型
|
##### 应用类型
|
||||||
|
|
||||||
| type | 说明 |
|
| type | 说明 |
|
||||||
|---------|--------------------------------------------------------|
|
|---------|--------------------------------------------------------|
|
||||||
| website | website 类型在 1Panel 中支持在网站中一键部署,wordpress halo 都是此 type |
|
| website | website 类型在 1Panel 中支持在网站中一键部署,wordpress halo 都是此 type |
|
||||||
| runtime | mysql openresty redis 等类型的应用 |
|
| runtime | mysql openresty redis 等类型的应用 |
|
||||||
| tool | phpMyAdmin redis-commander jenkins 等类型的应用 |
|
| tool | phpMyAdmin redis-commander jenkins 等类型的应用 |
|
||||||
|
|
||||||
#### 脚本目录
|
#### 脚本目录
|
||||||
|
|
||||||
+ `scripts` 安装脚本文件
|
+ `scripts` 安装脚本文件
|
||||||
+ `init.sh` 安装前执行
|
+ `init.sh` 安装前执行
|
||||||
+ `upgrade.sh` 升级前执行
|
+ `upgrade.sh` 升级前执行
|
||||||
+ `uninstall.sh` 卸载后执行
|
+ `uninstall.sh` 卸载后执行
|
||||||
|
|
||||||
#### 表单配置
|
#### 表单配置
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# 固定参数
|
# 固定参数
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
formFields:
|
formFields:
|
||||||
# 默认值
|
# 默认值
|
||||||
- default: ""
|
- default: ""
|
||||||
# 安装后可修改
|
# 安装后可修改
|
||||||
edit: true
|
edit: true
|
||||||
# 是否禁用
|
# 是否禁用
|
||||||
disabled: false
|
disabled: false
|
||||||
# 环境变量 key
|
# 环境变量 key
|
||||||
envKey: PANEL_DB_HOST
|
envKey: PANEL_DB_HOST
|
||||||
# 依赖应用 key
|
# 依赖应用 key
|
||||||
key: mysql
|
key: mysql
|
||||||
# 英文标签
|
# 英文标签
|
||||||
labelEn: Database Service
|
labelEn: Database Service
|
||||||
# 中文标签
|
# 中文标签
|
||||||
labelZh: 数据库服务
|
labelZh: 数据库服务
|
||||||
# 是否必填
|
# 是否必填
|
||||||
required: true
|
required: true
|
||||||
# 依赖服务
|
# 依赖服务
|
||||||
type: service
|
type: service
|
||||||
# 是否在默认值基础上增加随机字符
|
# 是否在默认值基础上增加随机字符
|
||||||
random: true
|
random: true
|
||||||
# 校验规则
|
# 校验规则
|
||||||
rule: paramCommon
|
rule: paramCommon
|
||||||
# 下拉选择
|
# 下拉选择
|
||||||
- default: ""
|
- default: ""
|
||||||
envKey: LOG_LEVEL
|
envKey: LOG_LEVEL
|
||||||
labelEn: Log level
|
labelEn: Log level
|
||||||
labelZh: 日志级别
|
labelZh: 日志级别
|
||||||
required: true
|
required: true
|
||||||
type: select
|
type: select
|
||||||
values:
|
values:
|
||||||
- label: DEBUG
|
- label: DEBUG
|
||||||
value: "DEBUG"
|
value: "DEBUG"
|
||||||
- label: INFO
|
- label: INFO
|
||||||
value: "INFO"
|
value: "INFO"
|
||||||
- label: WARNING
|
- label: WARNING
|
||||||
value: "WARNING"
|
value: "WARNING"
|
||||||
- label: ERROR
|
- label: ERROR
|
||||||
value: "ERROR"
|
value: "ERROR"
|
||||||
- label: CRITICAL
|
- label: CRITICAL
|
||||||
value: "CRITICAL"
|
value: "CRITICAL"
|
||||||
# 端口效验
|
# 端口效验
|
||||||
- default: 3306
|
- default: 3306
|
||||||
envKey: PANEL_APP_PORT_DB
|
envKey: PANEL_APP_PORT_DB
|
||||||
labelEn: Database port
|
labelEn: Database port
|
||||||
labelZh: 数据库端口
|
labelZh: 数据库端口
|
||||||
rule: paramPort
|
rule: paramPort
|
||||||
type: number
|
type: number
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 字段说明
|
##### 字段说明
|
||||||
|
|
||||||
+ `type` 字段类型
|
+ `type` 字段类型
|
||||||
+ `service` 依赖服务
|
+ `service` 依赖服务
|
||||||
+ `password` 密码
|
+ `password` 密码
|
||||||
+ `text` 文本
|
+ `text` 文本
|
||||||
+ `number` 数字
|
+ `number` 数字
|
||||||
+ `select` 下拉框
|
+ `select` 下拉框
|
||||||
+ `rule` 校验规则
|
+ `rule` 校验规则
|
||||||
+ `paramPort` 用于限制端口范围为 1-65535
|
+ `paramPort` 用于限制端口范围为 1-65535
|
||||||
+ `paramCommon` 英文、数字、.-和_,长度2-30
|
+ `paramCommon` 英文、数字、.-和_,长度2-30
|
||||||
+ `paramComplexity` 支持英文、数字、.%@$!&~_-,长度6-30,特殊字符不能在首尾
|
+ `paramComplexity` 支持英文、数字、.%@$!&~_-,长度6-30,特殊字符不能在首尾
|
||||||
+ `paramExtUrl` 格式为 http(s)://(域名/ip):(端口)
|
+ `paramExtUrl` 格式为 http(s)://(域名/ip):(端口)
|
||||||
+ `key` 特殊值
|
+ `key` 特殊值
|
||||||
+ `PANEL_APP_PORT_HTTP` Web应用端口
|
+ `PANEL_APP_PORT_HTTP` Web应用端口
|
||||||
+ `PANEL_APP_PORT_HTTPS` Web应用端口 SSL
|
+ `PANEL_APP_PORT_HTTPS` Web应用端口 SSL
|
||||||
+ `PANEL_APP_PORT` 前缀将认定为端口,并且用于安装前的端口占用校验
|
+ `PANEL_APP_PORT` 前缀将认定为端口,并且用于安装前的端口占用校验
|
||||||
|
|
||||||
#### docker-compose.yml 文件
|
#### docker-compose.yml 文件
|
||||||
|
|
||||||
通过使用 `${envKey}` 获取`表单配置`中的值
|
通过使用 `${envKey}` 获取`表单配置`中的值
|
||||||
|
@ -1,37 +1,37 @@
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
formFields:
|
formFields:
|
||||||
- default: "/home/gitea"
|
- default: "/home/gitea"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: GITEA_RUNNER_ROOT_PATH
|
envKey: GITEA_RUNNER_ROOT_PATH
|
||||||
labelZh: 数据持久化路径
|
labelZh: 数据持久化路径
|
||||||
labelEn: Data persistence path
|
labelEn: Data persistence path
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: GITEA_INSTANCE_URL
|
envKey: GITEA_INSTANCE_URL
|
||||||
labelZh: Gitea 实例 URL
|
labelZh: Gitea 实例 URL
|
||||||
labelEn: Gitea instance URL
|
labelEn: Gitea instance URL
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: GITEA_RUNNER_REGISTRATION_TOKEN
|
envKey: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
labelZh: 注册令牌
|
labelZh: 注册令牌
|
||||||
labelEn: Registration token
|
labelEn: Registration token
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: GITEA_RUNNER_NAME
|
envKey: GITEA_RUNNER_NAME
|
||||||
labelZh: Runner 名称
|
labelZh: Runner 名称
|
||||||
labelEn: Runner name
|
labelEn: Runner name
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: GITEA_RUNNER_LABELS
|
envKey: GITEA_RUNNER_LABELS
|
||||||
labelZh: Runner 标签
|
labelZh: Runner 标签
|
||||||
labelEn: Runner labels
|
labelEn: Runner labels
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gitea:
|
gitea:
|
||||||
image: gitea/act_runner:0.2.10
|
image: gitea/act_runner:0.2.10
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
privileged: true
|
privileged: true
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${GITEA_RUNNER_ROOT_PATH}/data:/data
|
- ${GITEA_RUNNER_ROOT_PATH}/data:/data
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
@ -1,71 +1,71 @@
|
|||||||
# Gitea
|
# Gitea
|
||||||
|
|
||||||
Gitea 是一个轻量级的 DevOps 平台软件。
|
Gitea 是一个轻量级的 DevOps 平台软件。
|
||||||
|
|
||||||
![Gitea](https://about.gitea.com/img/home-screenshot.png)
|
![Gitea](https://about.gitea.com/img/home-screenshot.png)
|
||||||
|
|
||||||
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括
|
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括
|
||||||
Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs
|
Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs
|
||||||
分支而来,几乎所有代码都已更改。
|
分支而来,几乎所有代码都已更改。
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 代码托管
|
+ 代码托管
|
||||||
|
|
||||||
Gitea⽀持创建和管理仓库、浏览提交历史和代码⽂件、审查和合并代码提交、管理协作者、管理分⽀等。它还⽀持许多常见的Git特性,⽐如标签、Cherry-pick、hook、集成协作⼯具等。
|
Gitea⽀持创建和管理仓库、浏览提交历史和代码⽂件、审查和合并代码提交、管理协作者、管理分⽀等。它还⽀持许多常见的Git特性,⽐如标签、Cherry-pick、hook、集成协作⼯具等。
|
||||||
|
|
||||||
+ 轻量级和快速
|
+ 轻量级和快速
|
||||||
|
|
||||||
Gitea 的设计目标之一就是轻量级和快速响应。它不像一些大型的代码托管平台那样臃肿,因此在性能方面表现出色,适用于资源有限的服务器环境。由于其轻量级设计,Gitea
|
Gitea 的设计目标之一就是轻量级和快速响应。它不像一些大型的代码托管平台那样臃肿,因此在性能方面表现出色,适用于资源有限的服务器环境。由于其轻量级设计,Gitea
|
||||||
在资源消耗方面相对较低,可以在资源有限的环境下运行良好。
|
在资源消耗方面相对较低,可以在资源有限的环境下运行良好。
|
||||||
|
|
||||||
+ 易于部署和维护
|
+ 易于部署和维护
|
||||||
|
|
||||||
轻松地部署在各种服务器上,不需要复杂的配置和依赖。这使得个人开发者或小团队可以方便地设置和管理自己的 Git 服务。
|
轻松地部署在各种服务器上,不需要复杂的配置和依赖。这使得个人开发者或小团队可以方便地设置和管理自己的 Git 服务。
|
||||||
|
|
||||||
+ 安全性
|
+ 安全性
|
||||||
|
|
||||||
Gitea 注重安全性,提供了用户权限管理、访问控制列表等功能,可以确保代码和数据的安全性。
|
Gitea 注重安全性,提供了用户权限管理、访问控制列表等功能,可以确保代码和数据的安全性。
|
||||||
|
|
||||||
+ 代码评审
|
+ 代码评审
|
||||||
|
|
||||||
代码评审同时支持 Pull Request workflow 和 AGit workflow。评审⼈可以在线浏览代码,并提交评审意见或问题。 提交者可以接收到评审意见,并在线回
|
代码评审同时支持 Pull Request workflow 和 AGit workflow。评审⼈可以在线浏览代码,并提交评审意见或问题。 提交者可以接收到评审意见,并在线回
|
||||||
复或修改代码。代码评审可以帮助用户和企业提⾼代码质量。
|
复或修改代码。代码评审可以帮助用户和企业提⾼代码质量。
|
||||||
|
|
||||||
+ CI/CD
|
+ CI/CD
|
||||||
|
|
||||||
Gitea Actions⽀持 CI/CD 功能,该功能兼容 GitHub Actions,⽤⼾可以采用熟悉的YAML格式编写workflows,也可以重⽤⼤量的已有的 Actions
|
Gitea Actions⽀持 CI/CD 功能,该功能兼容 GitHub Actions,⽤⼾可以采用熟悉的YAML格式编写workflows,也可以重⽤⼤量的已有的 Actions
|
||||||
插件。Actions 插件支持从任意的 Git 网站中下载。
|
插件。Actions 插件支持从任意的 Git 网站中下载。
|
||||||
|
|
||||||
项目管理:Gitea 通过看板和⼯单来跟踪⼀个项⽬的需求,功能和bug。⼯单⽀持分支,标签、⾥程碑、 指派、时间跟踪、到期时间、依赖关系等功能。
|
项目管理:Gitea 通过看板和⼯单来跟踪⼀个项⽬的需求,功能和bug。⼯单⽀持分支,标签、⾥程碑、 指派、时间跟踪、到期时间、依赖关系等功能。
|
||||||
|
|
||||||
+ 制品库
|
+ 制品库
|
||||||
|
|
||||||
Gitea支持超过 20 种不同种类的公有或私有软件包管理,包括:Cargo, Chef, Composer, Conan, Conda, Container, Helm, Maven, npm,
|
Gitea支持超过 20 种不同种类的公有或私有软件包管理,包括:Cargo, Chef, Composer, Conan, Conda, Container, Helm, Maven, npm,
|
||||||
NuGet, Pub, PyPI, RubyGems, Vagrant等
|
NuGet, Pub, PyPI, RubyGems, Vagrant等
|
||||||
|
|
||||||
+ 开源社区支持
|
+ 开源社区支持
|
||||||
|
|
||||||
Gitea 是一个基于 MIT 许可证的开源项目,Gitea 拥有一个活跃的开源社区,能够持续地进行开发和改进,同时也积极接受社区贡献,保持了平台的更新和创新。
|
Gitea 是一个基于 MIT 许可证的开源项目,Gitea 拥有一个活跃的开源社区,能够持续地进行开发和改进,同时也积极接受社区贡献,保持了平台的更新和创新。
|
||||||
|
|
||||||
+ 多语言支持
|
+ 多语言支持
|
||||||
|
|
||||||
Gitea 提供多种语言界面,适应全球范围内的用户,促进了国际化和本地化。
|
Gitea 提供多种语言界面,适应全球范围内的用户,促进了国际化和本地化。
|
||||||
|
|
||||||
## 反向代理
|
## 反向代理
|
||||||
|
|
||||||
> Nginx
|
> Nginx
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://localhost:3000;
|
proxy_pass http://localhost:3000;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 安装说明
|
## 安装说明
|
||||||
|
|
||||||
这是Gitea Actions的Runner,用于在Gitea Actions中执行任务。
|
这是Gitea Actions的Runner,用于在Gitea Actions中执行任务。
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
name: Gitea Runner
|
name: Gitea Runner
|
||||||
title: 新一代的代码托管平台
|
title: 新一代的代码托管平台
|
||||||
description: 新一代的代码托管平台
|
description: 新一代的代码托管平台
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
key: gitea-runner
|
key: gitea-runner
|
||||||
name: Gitea Runner
|
name: Gitea Runner
|
||||||
tags:
|
tags:
|
||||||
- WebSite
|
- WebSite
|
||||||
- DevOps
|
- DevOps
|
||||||
- Storage
|
- Storage
|
||||||
- Local
|
- Local
|
||||||
shortDescZh: 新一代的代码托管平台
|
shortDescZh: 新一代的代码托管平台
|
||||||
shortDescEn: The next generation of code hosting platform
|
shortDescEn: The next generation of code hosting platform
|
||||||
type: website
|
type: website
|
||||||
crossVersionUpdate: true
|
crossVersionUpdate: true
|
||||||
limit: 0
|
limit: 0
|
||||||
website: https://gitea.io/
|
website: https://gitea.io/
|
||||||
github: https://github.com/go-gitea/gitea/
|
github: https://github.com/go-gitea/gitea/
|
||||||
document: https://docs.gitea.io/
|
document: https://docs.gitea.io/
|
||||||
|
@ -1,82 +1,82 @@
|
|||||||
# Immich (机器学习模块)
|
# Immich (机器学习模块)
|
||||||
|
|
||||||
Immich - 高性能自托管照片和视频备份解决方案
|
Immich - 高性能自托管照片和视频备份解决方案
|
||||||
|
|
||||||
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
欢迎您
|
欢迎您
|
||||||
您好,很高兴您能来到这里。
|
您好,很高兴您能来到这里。
|
||||||
|
|
||||||
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
||||||
|
|
||||||
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
||||||
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
||||||
|
|
||||||
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
||||||
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
||||||
|
|
||||||
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
||||||
|
|
||||||
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
||||||
|
|
||||||
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
||||||
|
|
||||||
## 环境准备
|
## 环境准备
|
||||||
|
|
||||||
+ `Redis` 服务
|
+ `Redis` 服务
|
||||||
|
|
||||||
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
||||||
|
|
||||||
## 升级说明
|
## 升级说明
|
||||||
|
|
||||||
+ **大版本** `v1.106.2`
|
+ **大版本** `v1.106.2`
|
||||||
|
|
||||||
`2024/06/12` 上线,升级需要注意:
|
`2024/06/12` 上线,升级需要注意:
|
||||||
|
|
||||||
1. 移除 `immich-microservices` 服务
|
1. 移除 `immich-microservices` 服务
|
||||||
2. 环境变量发生了合并
|
2. 环境变量发生了合并
|
||||||
3. 底层API发生了变化
|
3. 底层API发生了变化
|
||||||
4. 移动端需要同步更新
|
4. 移动端需要同步更新
|
||||||
|
|
||||||
## 安装参数
|
## 安装参数
|
||||||
|
|
||||||
### 机器学习 预加载模型(CLIP)
|
### 机器学习 预加载模型(CLIP)
|
||||||
|
|
||||||
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
||||||
|
|
||||||
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
||||||
|
|
||||||
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
||||||
|
|
||||||
默认模型
|
默认模型
|
||||||
|
|
||||||
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
||||||
|
|
||||||
### 人脸识别 预加载模型
|
### 人脸识别 预加载模型
|
||||||
|
|
||||||
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
+ 安装失败
|
+ 安装失败
|
||||||
+ 网络问题,可以尝试使用代理
|
+ 网络问题,可以尝试使用代理
|
||||||
+ 升级失败
|
+ 升级失败
|
||||||
+ 请查看升级说明
|
+ 请查看升级说明
|
||||||
+ 请查看日志,查看具体错误信息
|
+ 请查看日志,查看具体错误信息
|
||||||
+ 记录安装参数,进行卸载重装
|
+ 记录安装参数,进行卸载重装
|
||||||
+ 升级1Panel后,提示容器找不到
|
+ 升级1Panel后,提示容器找不到
|
||||||
+ 请删除容器,重新安装
|
+ 请删除容器,重新安装
|
||||||
+ 提示文件或目录不存在
|
+ 提示文件或目录不存在
|
||||||
+ 可手动创建不存在的文件和目录,然后重试
|
+ 可手动创建不存在的文件和目录,然后重试
|
||||||
+ 创建的文件可为空文件
|
+ 创建的文件可为空文件
|
||||||
+ 每次都升级失败
|
+ 每次都升级失败
|
||||||
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
||||||
+ 无法访问
|
+ 无法访问
|
||||||
+ 请检查是否安装了 `Redis` 服务
|
+ 请检查是否安装了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `Redis` 服务
|
+ 请检查是否正确配置了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
||||||
+ 请检查是否正确配置了 `端口`
|
+ 请检查是否正确配置了 `端口`
|
||||||
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
||||||
+ 请检查是否正确配置了 `Nginx` 服务
|
+ 请检查是否正确配置了 `Nginx` 服务
|
||||||
|
@ -1,82 +1,82 @@
|
|||||||
# Immich
|
# Immich
|
||||||
|
|
||||||
Immich - 高性能自托管照片和视频备份解决方案
|
Immich - 高性能自托管照片和视频备份解决方案
|
||||||
|
|
||||||
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
欢迎您
|
欢迎您
|
||||||
您好,很高兴您能来到这里。
|
您好,很高兴您能来到这里。
|
||||||
|
|
||||||
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
||||||
|
|
||||||
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
||||||
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
||||||
|
|
||||||
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
||||||
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
||||||
|
|
||||||
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
||||||
|
|
||||||
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
||||||
|
|
||||||
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
||||||
|
|
||||||
## 环境准备
|
## 环境准备
|
||||||
|
|
||||||
+ `Redis` 服务
|
+ `Redis` 服务
|
||||||
|
|
||||||
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
||||||
|
|
||||||
## 升级说明
|
## 升级说明
|
||||||
|
|
||||||
+ **大版本** `v1.106.2`
|
+ **大版本** `v1.106.2`
|
||||||
|
|
||||||
`2024/06/12` 上线,升级需要注意:
|
`2024/06/12` 上线,升级需要注意:
|
||||||
|
|
||||||
1. 移除 `immich-microservices` 服务
|
1. 移除 `immich-microservices` 服务
|
||||||
2. 环境变量发生了合并
|
2. 环境变量发生了合并
|
||||||
3. 底层API发生了变化
|
3. 底层API发生了变化
|
||||||
4. 移动端需要同步更新
|
4. 移动端需要同步更新
|
||||||
|
|
||||||
## 安装参数
|
## 安装参数
|
||||||
|
|
||||||
### 机器学习 预加载模型(CLIP)
|
### 机器学习 预加载模型(CLIP)
|
||||||
|
|
||||||
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
||||||
|
|
||||||
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
||||||
|
|
||||||
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
||||||
|
|
||||||
默认模型
|
默认模型
|
||||||
|
|
||||||
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
||||||
|
|
||||||
### 人脸识别 预加载模型
|
### 人脸识别 预加载模型
|
||||||
|
|
||||||
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
+ 安装失败
|
+ 安装失败
|
||||||
+ 网络问题,可以尝试使用代理
|
+ 网络问题,可以尝试使用代理
|
||||||
+ 升级失败
|
+ 升级失败
|
||||||
+ 请查看升级说明
|
+ 请查看升级说明
|
||||||
+ 请查看日志,查看具体错误信息
|
+ 请查看日志,查看具体错误信息
|
||||||
+ 记录安装参数,进行卸载重装
|
+ 记录安装参数,进行卸载重装
|
||||||
+ 升级1Panel后,提示容器找不到
|
+ 升级1Panel后,提示容器找不到
|
||||||
+ 请删除容器,重新安装
|
+ 请删除容器,重新安装
|
||||||
+ 提示文件或目录不存在
|
+ 提示文件或目录不存在
|
||||||
+ 可手动创建不存在的文件和目录,然后重试
|
+ 可手动创建不存在的文件和目录,然后重试
|
||||||
+ 创建的文件可为空文件
|
+ 创建的文件可为空文件
|
||||||
+ 每次都升级失败
|
+ 每次都升级失败
|
||||||
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
||||||
+ 无法访问
|
+ 无法访问
|
||||||
+ 请检查是否安装了 `Redis` 服务
|
+ 请检查是否安装了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `Redis` 服务
|
+ 请检查是否正确配置了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
||||||
+ 请检查是否正确配置了 `端口`
|
+ 请检查是否正确配置了 `端口`
|
||||||
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
||||||
+ 请检查是否正确配置了 `Nginx` 服务
|
+ 请检查是否正确配置了 `Nginx` 服务
|
||||||
|
@ -1,82 +1,82 @@
|
|||||||
# Immich
|
# Immich
|
||||||
|
|
||||||
Immich - 高性能自托管照片和视频备份解决方案
|
Immich - 高性能自托管照片和视频备份解决方案
|
||||||
|
|
||||||
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
![Immich](https://file.lifebus.top/imgs/immich_cover.png)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
欢迎您
|
欢迎您
|
||||||
您好,很高兴您能来到这里。
|
您好,很高兴您能来到这里。
|
||||||
|
|
||||||
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
我叫亚历克斯。我在学校时是一名电气工程师,后来因为工作和对解决问题的纯粹热爱而成为了一名软件工程师。
|
||||||
|
|
||||||
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
我们和新生儿躺在床上,我妻子说:"我们开始积累大量宝宝的照片和视频,我不想再为 App-Which-Must-Not-Be-Name
|
||||||
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
付费了。你总是想为我建一些东西,为什么不为我建一个能做到这一点的应用程序呢?
|
||||||
|
|
||||||
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
就这样,这个想法开始在我脑海中萌生。之后,我开始在自助托管领域寻找具有类似备份功能和 "非命名应用程序 "
|
||||||
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
性能水平的现有解决方案。我发现目前的解决方案主要集中在画廊类型的应用程序上。然而,我想要的是一个简单易用的备份工具,并带有一个能高效查看照片和视频的本地移动应用程序。于是,我作为一名如饥似渴的工程师踏上了寻找之旅。
|
||||||
|
|
||||||
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
另一个促使我执行 "不可名状的应用程序 "替代方案的动机是,我希望能为开源社区做出贡献,多年来我从这个社区中受益匪浅。
|
||||||
|
|
||||||
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
我很荣幸能与大家分享这一作品,它重视隐私、回忆,以及在易用、友好的界面中回顾这些时刻的喜悦。
|
||||||
|
|
||||||
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
如果您喜欢这款应用程序,或者它在某些方面对您有帮助,请考虑支持这个项目。这将有助于我继续开发和维护应用程序。
|
||||||
|
|
||||||
## 环境准备
|
## 环境准备
|
||||||
|
|
||||||
+ `Redis` 服务
|
+ `Redis` 服务
|
||||||
|
|
||||||
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
Immich 使用 Redis 作为缓存服务,所以需要安装 Redis 服务。
|
||||||
|
|
||||||
## 升级说明
|
## 升级说明
|
||||||
|
|
||||||
+ **大版本** `v1.106.2`
|
+ **大版本** `v1.106.2`
|
||||||
|
|
||||||
`2024/06/12` 上线,升级需要注意:
|
`2024/06/12` 上线,升级需要注意:
|
||||||
|
|
||||||
1. 移除 `immich-microservices` 服务
|
1. 移除 `immich-microservices` 服务
|
||||||
2. 环境变量发生了合并
|
2. 环境变量发生了合并
|
||||||
3. 底层API发生了变化
|
3. 底层API发生了变化
|
||||||
4. 移动端需要同步更新
|
4. 移动端需要同步更新
|
||||||
|
|
||||||
## 安装参数
|
## 安装参数
|
||||||
|
|
||||||
### 机器学习 预加载模型(CLIP)
|
### 机器学习 预加载模型(CLIP)
|
||||||
|
|
||||||
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
可选模型列表,粘贴时输入 `immich-app/` 之后的内容即可。
|
||||||
|
|
||||||
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
[immich-app's Collections - CLIP](https://huggingface.co/collections/immich-app/clip-654eaefb077425890874cd07)
|
||||||
|
|
||||||
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
[immich-app's Collections - Multilingual CLIP](https://huggingface.co/collections/immich-app/multilingual-clip-654eb08c2382f591eeb8c2a7)
|
||||||
|
|
||||||
默认模型
|
默认模型
|
||||||
|
|
||||||
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
中文支持较好的模型 `XLM-Roberta-Large-Vit-B-16Plus`
|
||||||
|
|
||||||
### 人脸识别 预加载模型
|
### 人脸识别 预加载模型
|
||||||
|
|
||||||
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
`buffalo_l`, `buffalo_m`, `buffalo_s`, `antelopev2`
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
+ 安装失败
|
+ 安装失败
|
||||||
+ 网络问题,可以尝试使用代理
|
+ 网络问题,可以尝试使用代理
|
||||||
+ 升级失败
|
+ 升级失败
|
||||||
+ 请查看升级说明
|
+ 请查看升级说明
|
||||||
+ 请查看日志,查看具体错误信息
|
+ 请查看日志,查看具体错误信息
|
||||||
+ 记录安装参数,进行卸载重装
|
+ 记录安装参数,进行卸载重装
|
||||||
+ 升级1Panel后,提示容器找不到
|
+ 升级1Panel后,提示容器找不到
|
||||||
+ 请删除容器,重新安装
|
+ 请删除容器,重新安装
|
||||||
+ 提示文件或目录不存在
|
+ 提示文件或目录不存在
|
||||||
+ 可手动创建不存在的文件和目录,然后重试
|
+ 可手动创建不存在的文件和目录,然后重试
|
||||||
+ 创建的文件可为空文件
|
+ 创建的文件可为空文件
|
||||||
+ 每次都升级失败
|
+ 每次都升级失败
|
||||||
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
+ 很抱歉,官方应用不支持编排式应用(一个应用包含多个容器)的安装与升级,您可以尝试手动卸载安装最新版
|
||||||
+ 无法访问
|
+ 无法访问
|
||||||
+ 请检查是否安装了 `Redis` 服务
|
+ 请检查是否安装了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `Redis` 服务
|
+ 请检查是否正确配置了 `Redis` 服务
|
||||||
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
+ 请检查是否正确配置了 `域名` 和 `SSL`
|
||||||
+ 请检查是否正确配置了 `端口`
|
+ 请检查是否正确配置了 `端口`
|
||||||
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
+ 请检查是否正确配置了 `防火墙` 并开放了 `端口`
|
||||||
+ 请检查是否正确配置了 `Nginx` 服务
|
+ 请检查是否正确配置了 `Nginx` 服务
|
||||||
|
@ -1,26 +1,26 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
linkding:
|
linkding:
|
||||||
image: sissbruecker/linkding:1.31.0-plus-alpine
|
image: sissbruecker/linkding:1.31.0-plus-alpine
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:9090
|
- ${PANEL_APP_PORT_HTTP}:9090
|
||||||
volumes:
|
volumes:
|
||||||
- ${LINKDING_ROOT_PATH}/data:/etc/linkding/data
|
- ${LINKDING_ROOT_PATH}/data:/etc/linkding/data
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
- LD_SERVER_PORT=9090
|
- LD_SERVER_PORT=9090
|
||||||
- LD_DB_ENGINE=postgres
|
- LD_DB_ENGINE=postgres
|
||||||
- HTTP_PROXY=${ALL_PROXY}
|
- HTTP_PROXY=${ALL_PROXY}
|
||||||
- HTTPS_PROXY=${ALL_PROXY}
|
- HTTPS_PROXY=${ALL_PROXY}
|
||||||
|
@ -1,44 +1,44 @@
|
|||||||
# linkding
|
# linkding
|
||||||
|
|
||||||
链接是一个简单的书签服务,您可以自己托管。
|
链接是一个简单的书签服务,您可以自己托管。
|
||||||
|
|
||||||
![linkding](https://github.com/sissbruecker/linkding/blob/master/docs/linkding-screenshot.png)
|
![linkding](https://github.com/sissbruecker/linkding/blob/master/docs/linkding-screenshot.png)
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 用于组织书签的标签
|
+ 用于组织书签的标签
|
||||||
+ 按文本或标签搜索
|
+ 按文本或标签搜索
|
||||||
+ 批量编辑
|
+ 批量编辑
|
||||||
+ 书签存档
|
+ 书签存档
|
||||||
+ 深色模式
|
+ 深色模式
|
||||||
+ 在 Internet Archive Wayback Machine 上自动创建已添加书签的网站的快照
|
+ 在 Internet Archive Wayback Machine 上自动创建已添加书签的网站的快照
|
||||||
+ 自动提供已添加书签的网站的标题和描述
|
+ 自动提供已添加书签的网站的标题和描述
|
||||||
+ 以 Netscape HTML 格式导入和导出书签
|
+ 以 Netscape HTML 格式导入和导出书签
|
||||||
+ Firefox 和 Chrome 的扩展程序,以及应该在大多数浏览器中工作的书签
|
+ Firefox 和 Chrome 的扩展程序,以及应该在大多数浏览器中工作的书签
|
||||||
+ 用于开发第三方应用程序的 REST API
|
+ 用于开发第三方应用程序的 REST API
|
||||||
+ 用于用户自助服务和原始数据访问的管理面板
|
+ 用于用户自助服务和原始数据访问的管理面板
|
||||||
+ 使用Docker易于设置,使用SQLite作为数据库
|
+ 使用Docker易于设置,使用SQLite作为数据库
|
||||||
|
|
||||||
## 安装说明
|
## 安装说明
|
||||||
|
|
||||||
### 网站图标提供商
|
### 网站图标提供商
|
||||||
|
|
||||||
+ 默认供应商 Google
|
+ 默认供应商 Google
|
||||||
`https://t1.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url={url}&size=32`
|
`https://t1.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url={url}&size=32`
|
||||||
+ 可选供应商 DuckDuckGo
|
+ 可选供应商 DuckDuckGo
|
||||||
`https://icons.duckduckgo.com/ip3/{domain}.ico`
|
`https://icons.duckduckgo.com/ip3/{domain}.ico`
|
||||||
|
|
||||||
> 自定义供应商规则
|
> 自定义供应商规则
|
||||||
|
|
||||||
+ 参数 `{url}`
|
+ 参数 `{url}`
|
||||||
|
|
||||||
包括网站的方案和主机名,例如 https://example.com
|
包括网站的方案和主机名,例如 https://example.com
|
||||||
|
|
||||||
+ 参数 `{domain}`
|
+ 参数 `{domain}`
|
||||||
|
|
||||||
仅包含网站的主机名,例如 example.com
|
仅包含网站的主机名,例如 example.com
|
||||||
|
|
||||||
## 插件应用
|
## 插件应用
|
||||||
|
|
||||||
+ [Firefox 书签同步](https://addons.mozilla.org/de/firefox/addon/linkding-extension/)
|
+ [Firefox 书签同步](https://addons.mozilla.org/de/firefox/addon/linkding-extension/)
|
||||||
+ [Chrome 书签同步](https://chrome.google.com/webstore/detail/linkding-extension/beakmhbijpdhipnjhnclmhgjlddhidpe)
|
+ [Chrome 书签同步](https://chrome.google.com/webstore/detail/linkding-extension/beakmhbijpdhipnjhnclmhgjlddhidpe)
|
||||||
|
@ -1,80 +1,80 @@
|
|||||||
# Nacos
|
# Nacos
|
||||||
|
|
||||||
一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用。
|
一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用。
|
||||||
|
|
||||||
![Nacos](https://github.com/alibaba/nacos/raw/develop/doc/Nacos_Logo.png)
|
![Nacos](https://github.com/alibaba/nacos/raw/develop/doc/Nacos_Logo.png)
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
## 安装说明
|
## 安装说明
|
||||||
|
|
||||||
> 安全路径:`/nacos`
|
> 安全路径:`/nacos`
|
||||||
>
|
>
|
||||||
> 用户名:`nacos`
|
> 用户名:`nacos`
|
||||||
>
|
>
|
||||||
> 自版本 `2.4.0` 起,取消了默认密码,首次启动需要自行设置密码。
|
> 自版本 `2.4.0` 起,取消了默认密码,首次启动需要自行设置密码。
|
||||||
> 密码:`nacos`
|
> 密码:`nacos`
|
||||||
|
|
||||||
### 初始化数据库
|
### 初始化数据库
|
||||||
|
|
||||||
安装前,需要先创建数据库,数据库初始化文件:`mysql-schema.sql`
|
安装前,需要先创建数据库,数据库初始化文件:`mysql-schema.sql`
|
||||||
,可前往[Nacos](https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql)下载。
|
,可前往[Nacos](https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql)下载。
|
||||||
|
|
||||||
或安装完成后,进入安装目录,在 `init` 文件夹下,导入 `mysql-schema.sql` 文件。
|
或安装完成后,进入安装目录,在 `init` 文件夹下,导入 `mysql-schema.sql` 文件。
|
||||||
|
|
||||||
### 加密配置
|
### 加密配置
|
||||||
|
|
||||||
+ `Nacos身份验证令牌`
|
+ `Nacos身份验证令牌`
|
||||||
|
|
||||||
32位字符串,并使用Base64编码。
|
32位字符串,并使用Base64编码。
|
||||||
|
|
||||||
### JVM参数
|
### JVM参数
|
||||||
|
|
||||||
+ `JVM_XMS`
|
+ `JVM_XMS`
|
||||||
|
|
||||||
这个参数设置 Java 虚拟机堆的初始内存大小。
|
这个参数设置 Java 虚拟机堆的初始内存大小。
|
||||||
|
|
||||||
它指定了 JVM 在启动时分配的堆内存大小。
|
它指定了 JVM 在启动时分配的堆内存大小。
|
||||||
|
|
||||||
例如,-Xms512m 表示 JVM 在启动时将分配 512MB 的堆内存。
|
例如,-Xms512m 表示 JVM 在启动时将分配 512MB 的堆内存。
|
||||||
|
|
||||||
+ `JVM_XMX`
|
+ `JVM_XMX`
|
||||||
|
|
||||||
这个参数设置 Java 虚拟机堆的最大内存大小。
|
这个参数设置 Java 虚拟机堆的最大内存大小。
|
||||||
|
|
||||||
它指定了 JVM 堆内存的上限。
|
它指定了 JVM 堆内存的上限。
|
||||||
|
|
||||||
例如,-Xmx1024m 表示 JVM 的堆内存最多可以使用 1024MB。
|
例如,-Xmx1024m 表示 JVM 的堆内存最多可以使用 1024MB。
|
||||||
|
|
||||||
+ `JVM_XMN`
|
+ `JVM_XMN`
|
||||||
|
|
||||||
这个参数用于设置新生代的大小。
|
这个参数用于设置新生代的大小。
|
||||||
|
|
||||||
新生代是 JVM 堆内存中的一部分,用于存放新创建的对象。
|
新生代是 JVM 堆内存中的一部分,用于存放新创建的对象。
|
||||||
设置 -Xmn 参数可以控制新生代的初始大小。
|
设置 -Xmn 参数可以控制新生代的初始大小。
|
||||||
|
|
||||||
例如,-Xmn256m 表示将新生代的初始大小设置为 256MB。
|
例如,-Xmn256m 表示将新生代的初始大小设置为 256MB。
|
||||||
|
|
||||||
+ `JVM_MS`
|
+ `JVM_MS`
|
||||||
|
|
||||||
这个参数用于设置 JVM 的初始元空间大小。
|
这个参数用于设置 JVM 的初始元空间大小。
|
||||||
|
|
||||||
元空间是用于存储类元数据的区域,它在 Java 8 中取代了永久代。
|
元空间是用于存储类元数据的区域,它在 Java 8 中取代了永久代。
|
||||||
|
|
||||||
例如,-XX: MetaspaceSize=128m 表示将初始的元空间大小设置为 128MB。
|
例如,-XX: MetaspaceSize=128m 表示将初始的元空间大小设置为 128MB。
|
||||||
|
|
||||||
+ `JVM_MMS`
|
+ `JVM_MMS`
|
||||||
|
|
||||||
这个参数用于设置 JVM 的最大元空间大小。
|
这个参数用于设置 JVM 的最大元空间大小。
|
||||||
|
|
||||||
它指定了元空间能够增长的最大限制。
|
它指定了元空间能够增长的最大限制。
|
||||||
|
|
||||||
例如,-XX:MaxMetaspaceSize=256m 表示将元空间的最大大小限制为 256MB。
|
例如,-XX:MaxMetaspaceSize=256m 表示将元空间的最大大小限制为 256MB。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
- JVM_XMS=64m #-Xms default :1g
|
- JVM_XMS=64m #-Xms default :1g
|
||||||
- JVM_XMX=64m #-Xmx default :1g
|
- JVM_XMX=64m #-Xmx default :1g
|
||||||
- JVM_XMN=16m #-Xmn default :512m
|
- JVM_XMN=16m #-Xmn default :512m
|
||||||
- JVM_MS=8m #-XX:MetaspaceSize default :128m
|
- JVM_MS=8m #-XX:MetaspaceSize default :128m
|
||||||
- JVM_MMS=8m #-XX:MaxMetaspaceSize default :320m
|
- JVM_MMS=8m #-XX:MaxMetaspaceSize default :320m
|
||||||
```
|
```
|
||||||
|
@ -1,44 +1,44 @@
|
|||||||
# PostgreSQL
|
# PostgreSQL
|
||||||
|
|
||||||
### PostgreSQL:世界上最先进的开源关系数据库
|
### PostgreSQL:世界上最先进的开源关系数据库
|
||||||
|
|
||||||
![PostgreSQL](https://file.lifebus.top/imgs/postgresql_logo.png)
|
![PostgreSQL](https://file.lifebus.top/imgs/postgresql_logo.png)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
PostgreSQL 是一个功能强大的开源对象关系型数据库系统,它使用并扩展了 SQL 语言,并结合了多种功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL
|
PostgreSQL 是一个功能强大的开源对象关系型数据库系统,它使用并扩展了 SQL 语言,并结合了多种功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL
|
||||||
起源于 1986 年加州大学伯克利分校的 POSTGRES 项目,在核心平台上已有超过 35 年的活跃开发历史。
|
起源于 1986 年加州大学伯克利分校的 POSTGRES 项目,在核心平台上已有超过 35 年的活跃开发历史。
|
||||||
|
|
||||||
PostgreSQL 因其成熟的架构、可靠性、数据完整性、强大的功能集、可扩展性,以及该软件背后的开源社区为持续提供高性能和创新解决方案所做出的奉献而赢得了良好的声誉。
|
PostgreSQL 因其成熟的架构、可靠性、数据完整性、强大的功能集、可扩展性,以及该软件背后的开源社区为持续提供高性能和创新解决方案所做出的奉献而赢得了良好的声誉。
|
||||||
PostgreSQL 可在所有主流操作系统上运行,自 2001 年以来一直符合 ACID 标准,并拥有强大的附加功能,如广受欢迎的 PostGIS
|
PostgreSQL 可在所有主流操作系统上运行,自 2001 年以来一直符合 ACID 标准,并拥有强大的附加功能,如广受欢迎的 PostGIS
|
||||||
地理空间数据库扩展器。因此,PostgreSQL 成为许多人和组织首选的开源关系数据库也就不足为奇了。
|
地理空间数据库扩展器。因此,PostgreSQL 成为许多人和组织首选的开源关系数据库也就不足为奇了。
|
||||||
|
|
||||||
开始使用PostgreSQL从未如此简单--选择一个你想建立的项目,让PostgreSQL安全稳健地存储你的数据。
|
开始使用PostgreSQL从未如此简单--选择一个你想建立的项目,让PostgreSQL安全稳健地存储你的数据。
|
||||||
|
|
||||||
### 为什么使用 PostgreSQL
|
### 为什么使用 PostgreSQL
|
||||||
|
|
||||||
PostgreSQL 具有许多功能,旨在帮助开发人员构建应用程序,帮助管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集大小。除了免费和开源之外,PostgreSQL
|
PostgreSQL 具有许多功能,旨在帮助开发人员构建应用程序,帮助管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集大小。除了免费和开源之外,PostgreSQL
|
||||||
还具有高度可扩展性。例如,您可以定义自己的数据类型,创建自定义函数,甚至可以使用不同的编程语言编写代码,而无需重新编译数据库!
|
还具有高度可扩展性。例如,您可以定义自己的数据类型,创建自定义函数,甚至可以使用不同的编程语言编写代码,而无需重新编译数据库!
|
||||||
|
|
||||||
在不违背传统功能或可能导致架构决策失误的情况下,PostgreSQL 会尽量符合 SQL 标准。SQL 标准所要求的许多功能都得到了支持,尽管有时语法或功能略有不同。
|
在不违背传统功能或可能导致架构决策失误的情况下,PostgreSQL 会尽量符合 SQL 标准。SQL 标准所要求的许多功能都得到了支持,尽管有时语法或功能略有不同。
|
||||||
随着时间的推移,有望进一步实现一致性。截至 2023 年 9 月发布的第 16 版,PostgreSQL 至少符合 SQL:2023 核心一致性 179 个强制功能中的
|
随着时间的推移,有望进一步实现一致性。截至 2023 年 9 月发布的第 16 版,PostgreSQL 至少符合 SQL:2023 核心一致性 179 个强制功能中的
|
||||||
170 个。
|
170 个。
|
||||||
截至目前,还没有关系型数据库完全符合这一标准。
|
截至目前,还没有关系型数据库完全符合这一标准。
|
||||||
|
|
||||||
## 版本选择
|
## 版本选择
|
||||||
|
|
||||||
- `vectors` - 内置 vectors 插件。
|
- `vectors` - 内置 vectors 插件。
|
||||||
|
|
||||||
+ 插件名称:vectors
|
+ 插件名称:vectors
|
||||||
|
|
||||||
+ 插件描述:vectors 插件用于存储和查询矢量数据,如地理坐标、几何图形等。
|
+ 插件描述:vectors 插件用于存储和查询矢量数据,如地理坐标、几何图形等。
|
||||||
|
|
||||||
+ 插件链接:[https://github.com/tensorchord/pgvecto.rs](https://github.com/tensorchord/pgvecto.rs)
|
+ 插件链接:[https://github.com/tensorchord/pgvecto.rs](https://github.com/tensorchord/pgvecto.rs)
|
||||||
|
|
||||||
- `alpine` - 基于 Alpine Linux 发行版。
|
- `alpine` - 基于 Alpine Linux 发行版。
|
||||||
|
|
||||||
+ 精简版 PostgreSQL,基于 Alpine Linux 发行版,提供了更小的镜像体积和更快的启动速度。
|
+ 精简版 PostgreSQL,基于 Alpine Linux 发行版,提供了更小的镜像体积和更快的启动速度。
|
||||||
|
|
||||||
- `{version}` 默认版
|
- `{version}` 默认版
|
||||||
|
|
||||||
+ 官方默认 PostgreSQL 版本,基于 Debian Linux 发行版。
|
+ 官方默认 PostgreSQL 版本,基于 Debian Linux 发行版。
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:14-alpine
|
image: postgres:14-alpine
|
||||||
container_name: pg14-alpine-${CONTAINER_NAME}
|
container_name: pg14-alpine-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: tensorchord/pgvecto-rs:pg14-v0.2.1
|
image: tensorchord/pgvecto-rs:pg14-v0.2.1
|
||||||
container_name: pg14-vectors-${CONTAINER_NAME}
|
container_name: pg14-vectors-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:14
|
image: postgres:14
|
||||||
container_name: pg14-${CONTAINER_NAME}
|
container_name: pg14-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:15-alpine
|
image: postgres:15-alpine
|
||||||
container_name: pg15-alpine-${CONTAINER_NAME}
|
container_name: pg15-alpine-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: tensorchord/pgvecto-rs:pg15-v0.2.1
|
image: tensorchord/pgvecto-rs:pg15-v0.2.1
|
||||||
container_name: pg15-vectors-${CONTAINER_NAME}
|
container_name: pg15-vectors-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:15
|
image: postgres:15
|
||||||
container_name: pg15-${CONTAINER_NAME}
|
container_name: pg15-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
container_name: pg16-alpine-${CONTAINER_NAME}
|
container_name: pg16-alpine-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: tensorchord/pgvecto-rs:pg16-v0.2.1
|
image: tensorchord/pgvecto-rs:pg16-v0.2.1
|
||||||
container_name: pg16-vectors-${CONTAINER_NAME}
|
container_name: pg16-vectors-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:16
|
image: postgres:16
|
||||||
container_name: pg16-${CONTAINER_NAME}
|
container_name: pg16-${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:5432
|
- ${PANEL_APP_PORT_HTTP}:5432
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
- ${POSTGRES_ROOT_PATH}/data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
"sentinel-dashboard":
|
"sentinel-dashboard":
|
||||||
image: bladex/sentinel-dashboard:1.8.6
|
image: bladex/sentinel-dashboard:1.8.6
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
network_mode: ${NETWORK_MODE}
|
network_mode: ${NETWORK_MODE}
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:8858
|
- ${PANEL_APP_PORT_HTTP}:8858
|
||||||
- ${COMMUNICATION_PORT}:8719
|
- ${COMMUNICATION_PORT}:8719
|
||||||
entrypoint:
|
entrypoint:
|
||||||
- "java"
|
- "java"
|
||||||
- "-Djava.security.egd=file:/dev/./urandom"
|
- "-Djava.security.egd=file:/dev/./urandom"
|
||||||
- "-Dserver.port=8858"
|
- "-Dserver.port=8858"
|
||||||
- "-Dcsp.sentinel.api.port=8719"
|
- "-Dcsp.sentinel.api.port=8719"
|
||||||
- "-Dcsp.sentinel.dashboard.server=localhost:8858"
|
- "-Dcsp.sentinel.dashboard.server=localhost:8858"
|
||||||
- "-Dproject.name=sentinel-dashboard"
|
- "-Dproject.name=sentinel-dashboard"
|
||||||
- "-Dsentinel.dashboard.auth.username=${SENTINEL_DASHBOARD_AUTH_USERNAME}"
|
- "-Dsentinel.dashboard.auth.username=${SENTINEL_DASHBOARD_AUTH_USERNAME}"
|
||||||
- "-Dsentinel.dashboard.auth.password=${SENTINEL_DASHBOARD_AUTH_PASSWORD}"
|
- "-Dsentinel.dashboard.auth.password=${SENTINEL_DASHBOARD_AUTH_PASSWORD}"
|
||||||
- "-Dfeign.sentinel.enabled=${SENTINEL_DASHBOARD_FEIGN_ENABLED}"
|
- "-Dfeign.sentinel.enabled=${SENTINEL_DASHBOARD_FEIGN_ENABLED}"
|
||||||
- "-jar"
|
- "-jar"
|
||||||
- "app.jar"
|
- "app.jar"
|
||||||
|
@ -1,47 +1,47 @@
|
|||||||
# Sentinel-Dashboard
|
# Sentinel-Dashboard
|
||||||
|
|
||||||
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
|
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
|
||||||
|
|
||||||
## 快速启动
|
## 快速启动
|
||||||
|
|
||||||
访问地址
|
访问地址
|
||||||
`http://IP:8858/sentinel`
|
`http://IP:8858/sentinel`
|
||||||
|
|
||||||
> 用户名
|
> 用户名
|
||||||
> sentinel
|
> sentinel
|
||||||
>
|
>
|
||||||
> 密码
|
> 密码
|
||||||
> sentinel
|
> sentinel
|
||||||
|
|
||||||
## Sentinel 的历史
|
## Sentinel 的历史
|
||||||
|
|
||||||
+ 2012 年,Sentinel 诞生,主要功能为入口流量控制。
|
+ 2012 年,Sentinel 诞生,主要功能为入口流量控制。
|
||||||
+ 2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。
|
+ 2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。
|
||||||
+ 2018 年,Sentinel 开源,并持续演进。
|
+ 2018 年,Sentinel 开源,并持续演进。
|
||||||
+ 2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决
|
+ 2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决
|
||||||
Service Mesh 架构下多语言限流的问题。
|
Service Mesh 架构下多语言限流的问题。
|
||||||
+ 2020 年,推出 Sentinel Go 版本,继续朝着云原生方向演进。
|
+ 2020 年,推出 Sentinel Go 版本,继续朝着云原生方向演进。
|
||||||
+ 2021 年,Sentinel 正在朝着 2.0 云原生高可用决策中心组件进行演进;同时推出了 Sentinel Rust 原生版本。同时我们也在 Rust
|
+ 2021 年,Sentinel 正在朝着 2.0 云原生高可用决策中心组件进行演进;同时推出了 Sentinel Rust 原生版本。同时我们也在 Rust
|
||||||
社区进行了 Envoy WASM extension 及 eBPF extension 等场景探索。
|
社区进行了 Envoy WASM extension 及 eBPF extension 等场景探索。
|
||||||
+ 2022 年,Sentinel 品牌升级为流量治理,领域涵盖流量路由/调度、流量染色、流控降级、过载保护/实例摘除等;同时社区将流量治理相关标准抽出到
|
+ 2022 年,Sentinel 品牌升级为流量治理,领域涵盖流量路由/调度、流量染色、流控降级、过载保护/实例摘除等;同时社区将流量治理相关标准抽出到
|
||||||
OpenSergo 标准中,Sentinel 作为流量治理标准实现。
|
OpenSergo 标准中,Sentinel 作为流量治理标准实现。
|
||||||
|
|
||||||
## Sentinel 基本概念
|
## Sentinel 基本概念
|
||||||
|
|
||||||
### 资源
|
### 资源
|
||||||
|
|
||||||
资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。
|
资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。
|
||||||
|
|
||||||
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
|
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
|
||||||
|
|
||||||
### 规则
|
### 规则
|
||||||
|
|
||||||
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
|
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
|
||||||
|
|
||||||
## Sentinel 是如何工作的
|
## Sentinel 是如何工作的
|
||||||
|
|
||||||
Sentinel 的主要工作机制如下:
|
Sentinel 的主要工作机制如下:
|
||||||
|
|
||||||
+ 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。
|
+ 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。
|
||||||
+ 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。
|
+ 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。
|
||||||
+ Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。
|
+ Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
speedtest-tracker:
|
speedtest-tracker:
|
||||||
image: ${SPEED_TEST_IMAGE}
|
image: ${SPEED_TEST_IMAGE}
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
- ${PANEL_APP_PORT_HTTP}:80
|
||||||
- ${PANEL_APP_PORT_HTTPS}:443
|
- ${PANEL_APP_PORT_HTTPS}:443
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
||||||
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
||||||
- DB_HOST=${SP_TRACKER_DB_HOST}
|
- DB_HOST=${SP_TRACKER_DB_HOST}
|
||||||
- DB_PORT=${SP_TRACKER_DB_PORT}
|
- DB_PORT=${SP_TRACKER_DB_PORT}
|
||||||
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
||||||
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
||||||
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
||||||
interval: 10s
|
interval: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
speedtest-tracker:
|
speedtest-tracker:
|
||||||
image: ${SPEED_TEST_IMAGE}
|
image: ${SPEED_TEST_IMAGE}
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
- ${PANEL_APP_PORT_HTTP}:80
|
||||||
- ${PANEL_APP_PORT_HTTPS}:443
|
- ${PANEL_APP_PORT_HTTPS}:443
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
||||||
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
||||||
- DB_HOST=${SP_TRACKER_DB_HOST}
|
- DB_HOST=${SP_TRACKER_DB_HOST}
|
||||||
- DB_PORT=${SP_TRACKER_DB_PORT}
|
- DB_PORT=${SP_TRACKER_DB_PORT}
|
||||||
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
||||||
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
||||||
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
||||||
interval: 10s
|
interval: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
speedtest-tracker:
|
speedtest-tracker:
|
||||||
image: ${SPEED_TEST_IMAGE}
|
image: ${SPEED_TEST_IMAGE}
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
- ${PANEL_APP_PORT_HTTP}:80
|
||||||
- ${PANEL_APP_PORT_HTTPS}:443
|
- ${PANEL_APP_PORT_HTTPS}:443
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
- TZ=${SP_TRACKER_TZ:-Asia/Shanghai}
|
||||||
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
- DB_CONNECTION=${SP_TRACKER_DB_TYPE:-sqlite}
|
||||||
- DB_HOST=${SP_TRACKER_DB_HOST}
|
- DB_HOST=${SP_TRACKER_DB_HOST}
|
||||||
- DB_PORT=${SP_TRACKER_DB_PORT}
|
- DB_PORT=${SP_TRACKER_DB_PORT}
|
||||||
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
- DB_DATABASE=${MYSQL_SERVICE_DB_NAME}
|
||||||
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
- DB_USERNAME=${SP_TRACKER_DB_USER}
|
||||||
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
- DB_PASSWORD=${SP_TRACKER_DB_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
- ${SP_TRACKER_ROOT_PATH}/config:/config
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
test: curl -fSs APP_URL/api/healthcheck || exit 1
|
||||||
interval: 10s
|
interval: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Speedtest Tracker
|
# Speedtest Tracker
|
||||||
|
|
||||||
Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查。
|
Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查。
|
||||||
|
|
||||||
Speedtest Tracker 的主要用例是建立互联网性能的历史记录,以便您在未收到 ISP 公布的费率时收到通知。
|
Speedtest Tracker 的主要用例是建立互联网性能的历史记录,以便您在未收到 ISP 公布的费率时收到通知。
|
||||||
|
|
||||||
## 默认账户
|
## 默认账户
|
||||||
|
|
||||||
> admin@example.com
|
> admin@example.com
|
||||||
>
|
>
|
||||||
> password
|
> password
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
speedtest:
|
speedtest:
|
||||||
image: ghcr.io/librespeed/speedtest:5.3.3
|
image: ghcr.io/librespeed/speedtest:5.3.3
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
- ${PANEL_APP_PORT_HTTP}:80
|
||||||
volumes:
|
volumes:
|
||||||
- ${SPEED_TEST_ROOT_PATH}/database:/database
|
- ${SPEED_TEST_ROOT_PATH}/database:/database
|
||||||
environment:
|
environment:
|
||||||
- MODE=standalone
|
- MODE=standalone
|
||||||
- WEBPORT=80
|
- WEBPORT=80
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
@ -1,50 +1,50 @@
|
|||||||
# SpeedTest
|
# SpeedTest
|
||||||
|
|
||||||
没有 Flash,没有 Java,没有 Websocket,没有废话。
|
没有 Flash,没有 Java,没有 Websocket,没有废话。
|
||||||
|
|
||||||
这是一个用 Javascript 实现的非常轻量级的速度测试,使用 XMLHttpRequest 和 Web Workers。
|
这是一个用 Javascript 实现的非常轻量级的速度测试,使用 XMLHttpRequest 和 Web Workers。
|
||||||
|
|
||||||
![SpeedTest](https://github.com/librespeed/speedtest/blob/master/.logo/logo3.png)
|
![SpeedTest](https://github.com/librespeed/speedtest/blob/master/.logo/logo3.png)
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 下载
|
+ 下载
|
||||||
+ 上传
|
+ 上传
|
||||||
+ Ping
|
+ Ping
|
||||||
+ 抖动
|
+ 抖动
|
||||||
+ IP 地址、ISP、距服务器的距离(可选)
|
+ IP 地址、ISP、距服务器的距离(可选)
|
||||||
+ 遥测(可选)
|
+ 遥测(可选)
|
||||||
+ 结果共享(可选)
|
+ 结果共享(可选)
|
||||||
+ 多点测试(可选)
|
+ 多点测试(可选)
|
||||||
|
|
||||||
## 安装说明
|
## 安装说明
|
||||||
|
|
||||||
+ `访问密码`
|
+ `访问密码`
|
||||||
|
|
||||||
前提:`开启遥测`
|
前提:`开启遥测`
|
||||||
|
|
||||||
访问统计页面的密码。如果未设置,统计页面将不允许访问。
|
访问统计页面的密码。如果未设置,统计页面将不允许访问。
|
||||||
|
|
||||||
开启遥测后: `http://127.0.0.1/results/stats.php` 处将提供统计页面
|
开启遥测后: `http://127.0.0.1/results/stats.php` 处将提供统计页面
|
||||||
|
|
||||||
+ `隐藏 IP 地址 (开启遥测)`
|
+ `隐藏 IP 地址 (开启遥测)`
|
||||||
|
|
||||||
启用遥测时,将从收集的遥测中编辑 IP 地址和主机名,以实现更好的隐私。
|
启用遥测时,将从收集的遥测中编辑 IP 地址和主机名,以实现更好的隐私。
|
||||||
|
|
||||||
+ `邮箱地址 (开启遥测)`
|
+ `邮箱地址 (开启遥测)`
|
||||||
|
|
||||||
GDPR 请求的电子邮件地址。启用遥测时必须指定。
|
GDPR 请求的电子邮件地址。启用遥测时必须指定。
|
||||||
|
|
||||||
+ `ipinfo.io 的 API 密钥 (开启遥测)`
|
+ `ipinfo.io 的 API 密钥 (开启遥测)`
|
||||||
|
|
||||||
如果您希望提供大量测试,则为必需。否则,ipinfo.io 将限制您的访问。
|
如果您希望提供大量测试,则为必需。否则,ipinfo.io 将限制您的访问。
|
||||||
|
|
||||||
+ `禁用 ipinfo.io (开启遥测)`
|
+ `禁用 ipinfo.io (开启遥测)`
|
||||||
|
|
||||||
禁用后,则不会从 ipinfo.io 获取 ISP 信息和距离。
|
禁用后,则不会从 ipinfo.io 获取 ISP 信息和距离。
|
||||||
|
|
||||||
+ `距离单位 (km/mi)`
|
+ `距离单位 (km/mi)`
|
||||||
|
|
||||||
如果禁用 `禁用 ipinfo.io (开启遥测)`,此项决定如何测量距服务器的距离。
|
如果禁用 `禁用 ipinfo.io (开启遥测)`,此项决定如何测量距服务器的距离。
|
||||||
|
|
||||||
`km` 代表公里, `mi` 代表英里,也可以是空字符串以禁用距离测量。
|
`km` 代表公里, `mi` 代表英里,也可以是空字符串以禁用距离测量。
|
||||||
|
@ -1,123 +1,123 @@
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
formFields:
|
formFields:
|
||||||
- child:
|
- child:
|
||||||
default: ""
|
default: ""
|
||||||
envKey: PANEL_DB_HOST
|
envKey: PANEL_DB_HOST
|
||||||
required: true
|
required: true
|
||||||
type: service
|
type: service
|
||||||
default: postgresql
|
default: postgresql
|
||||||
edit: true
|
edit: true
|
||||||
envKey: PANEL_DB_TYPE
|
envKey: PANEL_DB_TYPE
|
||||||
labelZh: 数据库 服务 (前置检查)
|
labelZh: 数据库 服务 (前置检查)
|
||||||
labelEn: Database Service (Pre-check)
|
labelEn: Database Service (Pre-check)
|
||||||
required: true
|
required: true
|
||||||
type: apps
|
type: apps
|
||||||
values:
|
values:
|
||||||
- label: PostgreSQL
|
- label: PostgreSQL
|
||||||
value: postgresql
|
value: postgresql
|
||||||
- label: MySQL
|
- label: MySQL
|
||||||
value: mysql
|
value: mysql
|
||||||
- label: MariaDB
|
- label: MariaDB
|
||||||
value: mariadb
|
value: mariadb
|
||||||
- label: Percona
|
- label: Percona
|
||||||
value: percona
|
value: percona
|
||||||
- default: "/home/umami"
|
- default: "/home/umami"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: UMAMI_ROOT_PATH
|
envKey: UMAMI_ROOT_PATH
|
||||||
labelZh: 数据持久化路径
|
labelZh: 数据持久化路径
|
||||||
labelEn: Data persistence path
|
labelEn: Data persistence path
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: 3000
|
- default: 3000
|
||||||
edit: true
|
edit: true
|
||||||
envKey: PANEL_APP_PORT_HTTP
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
labelZh: 连接端口
|
labelZh: 连接端口
|
||||||
labelEn: Connection Port
|
labelEn: Connection Port
|
||||||
required: true
|
required: true
|
||||||
rule: paramPort
|
rule: paramPort
|
||||||
type: number
|
type: number
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: APP_SECRET
|
envKey: APP_SECRET
|
||||||
labelZh: 应用密钥
|
labelZh: 应用密钥
|
||||||
labelEn: Application Secret
|
labelEn: Application Secret
|
||||||
random: true
|
random: true
|
||||||
required: false
|
required: false
|
||||||
rule: paramComplexity
|
rule: paramComplexity
|
||||||
type: password
|
type: password
|
||||||
- default: "/"
|
- default: "/"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: BASE_PATH
|
envKey: BASE_PATH
|
||||||
labelZh: 基础路径
|
labelZh: 基础路径
|
||||||
labelEn: Base Path
|
labelEn: Base Path
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: ALLOWED_FRAME_URLS
|
envKey: ALLOWED_FRAME_URLS
|
||||||
labelZh: 允许的 frame 地址
|
labelZh: 允许的 frame 地址
|
||||||
labelEn: Allowed frame urls
|
labelEn: Allowed frame urls
|
||||||
required: false
|
required: false
|
||||||
type: text
|
type: text
|
||||||
- default: "0"
|
- default: "0"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DISABLE_BOT_CHECK
|
envKey: DISABLE_BOT_CHECK
|
||||||
labelZh: 禁用机器人检测
|
labelZh: 禁用机器人检测
|
||||||
labelEn: Disable bot detection
|
labelEn: Disable bot detection
|
||||||
required: true
|
required: true
|
||||||
type: select
|
type: select
|
||||||
values:
|
values:
|
||||||
- label: 开启
|
- label: 开启
|
||||||
value: "1"
|
value: "1"
|
||||||
- label: 关闭
|
- label: 关闭
|
||||||
value: "0"
|
value: "0"
|
||||||
- default: postgresql
|
- default: postgresql
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DATABASE_TYPE
|
envKey: DATABASE_TYPE
|
||||||
labelZh: 数据库 类型
|
labelZh: 数据库 类型
|
||||||
labelEn: Database Type
|
labelEn: Database Type
|
||||||
required: true
|
required: true
|
||||||
type: select
|
type: select
|
||||||
values:
|
values:
|
||||||
- label: PostgreSQL
|
- label: PostgreSQL
|
||||||
value: postgresql
|
value: postgresql
|
||||||
- label: MySQL (MariaDB, Percona)
|
- label: MySQL (MariaDB, Percona)
|
||||||
value: mysql
|
value: mysql
|
||||||
- default: "127.0.0.1"
|
- default: "127.0.0.1"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DB_HOSTNAME
|
envKey: DB_HOSTNAME
|
||||||
labelZh: 数据库 主机地址
|
labelZh: 数据库 主机地址
|
||||||
labelEn: Database Host
|
labelEn: Database Host
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: 5432
|
- default: 5432
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DB_PORT
|
envKey: DB_PORT
|
||||||
labelZh: 数据库 端口
|
labelZh: 数据库 端口
|
||||||
labelEn: Database Port
|
labelEn: Database Port
|
||||||
required: true
|
required: true
|
||||||
rule: paramPort
|
rule: paramPort
|
||||||
type: number
|
type: number
|
||||||
- default: "umami"
|
- default: "umami"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DB_USERNAME
|
envKey: DB_USERNAME
|
||||||
labelZh: 数据库 用户名
|
labelZh: 数据库 用户名
|
||||||
labelEn: Database User
|
labelEn: Database User
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DB_PASSWORD
|
envKey: DB_PASSWORD
|
||||||
labelEn: Database Password
|
labelEn: Database Password
|
||||||
labelZh: 数据库 密码
|
labelZh: 数据库 密码
|
||||||
random: true
|
random: true
|
||||||
required: true
|
required: true
|
||||||
rule: paramComplexity
|
rule: paramComplexity
|
||||||
type: password
|
type: password
|
||||||
- default: "umami"
|
- default: "umami"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: DB_DATABASE_NAME
|
envKey: DB_DATABASE_NAME
|
||||||
labelZh: 数据库 名称
|
labelZh: 数据库 名称
|
||||||
labelEn: Database Name
|
labelEn: Database Name
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
version: "3.8"
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
umami:
|
umami:
|
||||||
image: ghcr.io/umami-software/umami:${DATABASE_TYPE}-v2.12.1
|
image: ghcr.io/umami-software/umami:${DATABASE_TYPE}-v2.12.1
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:3000
|
- ${PANEL_APP_PORT_HTTP}:3000
|
||||||
env_file:
|
env_file:
|
||||||
- /etc/1panel/envs/global.env
|
- /etc/1panel/envs/global.env
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||||
environment:
|
environment:
|
||||||
- DISABLE_TELEMETRY = 1
|
- DISABLE_TELEMETRY = 1
|
||||||
- REMOVE_TRAILING_SLASH = 1
|
- REMOVE_TRAILING_SLASH = 1
|
||||||
- DATABASE_URL=${DATABASE_TYPE}://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
|
- DATABASE_URL=${DATABASE_TYPE}://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
|
||||||
|
@ -1,39 +1,39 @@
|
|||||||
# Umami
|
# Umami
|
||||||
|
|
||||||
为速度和效率而构建的网站分析
|
为速度和效率而构建的网站分析
|
||||||
|
|
||||||
Umami 网站分析提供您实时做出决策所需的数据。
|
Umami 网站分析提供您实时做出决策所需的数据。
|
||||||
|
|
||||||
![Umami](https://file.lifebus.top/imgs/umami_cover.jpg)
|
![Umami](https://file.lifebus.top/imgs/umami_cover.jpg)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
Umami 让您轻松分析数据
|
Umami 让您轻松分析数据
|
||||||
|
|
||||||
+ 便于使用
|
+ 便于使用
|
||||||
|
|
||||||
Umami 功能强大而简单,易于使用和理解,不需要复杂的设置或标签配置。
|
Umami 功能强大而简单,易于使用和理解,不需要复杂的设置或标签配置。
|
||||||
|
|
||||||
+ UTM 和自定义事件
|
+ UTM 和自定义事件
|
||||||
|
|
||||||
Umami 会自动理解带有 UTM 参数的链接,并让您根据 UTM 查看和过滤您的网站数据。此外,您还可以跟踪网站上的任何事件,例如按钮点击、表单提交、购买、新闻通讯注册等。
|
Umami 会自动理解带有 UTM 参数的链接,并让您根据 UTM 查看和过滤您的网站数据。此外,您还可以跟踪网站上的任何事件,例如按钮点击、表单提交、购买、新闻通讯注册等。
|
||||||
|
|
||||||
+ 没有 Cookie 横幅
|
+ 没有 Cookie 横幅
|
||||||
|
|
||||||
所有数据均经过 Umami 匿名处理,并且不会收集您网站用户的任何个人信息。您无需选择加入 Cookie
|
所有数据均经过 Umami 匿名处理,并且不会收集您网站用户的任何个人信息。您无需选择加入 Cookie
|
||||||
横幅即可跟踪网站的性能,从而为您的用户提供更好、更值得信赖的体验。
|
横幅即可跟踪网站的性能,从而为您的用户提供更好、更值得信赖的体验。
|
||||||
默认情况下,Umami 符合 GDPRP 和 CCPA。
|
默认情况下,Umami 符合 GDPRP 和 CCPA。
|
||||||
|
|
||||||
## 环境准备
|
## 环境准备
|
||||||
|
|
||||||
+ 数据库支持
|
+ 数据库支持
|
||||||
+ `MySQL` 版本:`5.7+`
|
+ `MySQL` 版本:`5.7+`
|
||||||
+ `PostgreSQL` 版本:`12.14+`
|
+ `PostgreSQL` 版本:`12.14+`
|
||||||
|
|
||||||
## 安装说明
|
## 安装说明
|
||||||
|
|
||||||
> 默认管理员帐户
|
> 默认管理员帐户
|
||||||
>
|
>
|
||||||
> 用户名: admin
|
> 用户名: admin
|
||||||
>
|
>
|
||||||
> 密码: umami
|
> 密码: umami
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
name: Umami
|
name: Umami
|
||||||
title: 为速度和效率而构建的网站分析
|
title: 为速度和效率而构建的网站分析
|
||||||
description: 为速度和效率而构建的网站分析
|
description: 为速度和效率而构建的网站分析
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
key: umami
|
key: umami
|
||||||
name: Umami
|
name: Umami
|
||||||
tags:
|
tags:
|
||||||
- WebSite
|
- WebSite
|
||||||
- Database
|
- Database
|
||||||
- Middleware
|
- Middleware
|
||||||
- Runtime
|
- Runtime
|
||||||
- Local
|
- Local
|
||||||
shortDescZh: 为速度和效率而构建的网站分析
|
shortDescZh: 为速度和效率而构建的网站分析
|
||||||
shortDescEn: A website analytics tool that is built for speed and efficiency
|
shortDescEn: A website analytics tool that is built for speed and efficiency
|
||||||
type: website
|
type: website
|
||||||
crossVersionUpdate: true
|
crossVersionUpdate: true
|
||||||
limit: 0
|
limit: 0
|
||||||
website: https://umami.is/
|
website: https://umami.is/
|
||||||
github: https://github.com/umami-software/umami/
|
github: https://github.com/umami-software/umami/
|
||||||
document: https://umami.is/docs/
|
document: https://umami.is/docs/
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
appname=casdoor
|
appname=casdoor
|
||||||
httpport=8000
|
httpport=8000
|
||||||
runmode=prod
|
runmode=prod
|
||||||
copyrequestbody=true
|
copyrequestbody=true
|
||||||
driverName=mysql
|
driverName=mysql
|
||||||
dataSourceName=
|
dataSourceName=
|
||||||
dbName=casdoor
|
dbName=casdoor
|
||||||
tableNamePrefix=
|
tableNamePrefix=
|
||||||
showSql=false
|
showSql=false
|
||||||
redisEndpoint=
|
redisEndpoint=
|
||||||
defaultStorageProvider=
|
defaultStorageProvider=
|
||||||
isCloudIntranet=false
|
isCloudIntranet=false
|
||||||
authState=casdoor
|
authState=casdoor
|
||||||
socks5Proxy=
|
socks5Proxy=
|
||||||
verificationCodeTimeout=10
|
verificationCodeTimeout=10
|
||||||
initScore=0
|
initScore=0
|
||||||
logPostOnly=true
|
logPostOnly=true
|
||||||
isUsernameLowered=false
|
isUsernameLowered=false
|
||||||
origin=
|
origin=
|
||||||
originFrontend=
|
originFrontend=
|
||||||
staticBaseUrl=https://cdn.casbin.org
|
staticBaseUrl=https://cdn.casbin.org
|
||||||
isDemoMode=false
|
isDemoMode=false
|
||||||
batchSize=100
|
batchSize=100
|
||||||
enableGzip=true
|
enableGzip=true
|
||||||
ldapServerPort=389
|
ldapServerPort=389
|
||||||
radiusServerPort=1812
|
radiusServerPort=1812
|
||||||
radiusSecret=secret
|
radiusSecret=secret
|
||||||
quota={"organization": -1, "user": -1, "application": -1, "provider": -1}
|
quota={"organization": -1, "user": -1, "application": -1, "provider": -1}
|
||||||
logConfig={"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
|
logConfig={"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
|
||||||
initDataFil="./init_data.json"
|
initDataFil="./init_data.json"
|
||||||
frontendBaseDi="../casdoor"
|
frontendBaseDi="../casdoor"
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
# copyright© 2024 XinJiang Ms Studio
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
ENV_FILE=.env
|
ENV_FILE=.env
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
USER_UID=1000
|
USER_UID=1000
|
||||||
USER_GID=1000
|
USER_GID=1000
|
||||||
APP_NAME="Gitea"
|
APP_NAME="Gitea"
|
||||||
RUN_MODE=prod
|
RUN_MODE=prod
|
||||||
DOMAIN=localhost
|
DOMAIN=localhost
|
||||||
SSH_DOMAIN=localhost
|
SSH_DOMAIN=localhost
|
||||||
SSH_PORT=22
|
SSH_PORT=22
|
||||||
SSH_LISTEN_PORT=22
|
SSH_LISTEN_PORT=22
|
||||||
DISABLE_SSH=false
|
DISABLE_SSH=false
|
||||||
HTTP_PORT=3000
|
HTTP_PORT=3000
|
||||||
ROOT_URL=""
|
ROOT_URL=""
|
||||||
LFS_START_SERVER=true
|
LFS_START_SERVER=true
|
||||||
DB_TYPE=sqlite3
|
DB_TYPE=sqlite3
|
||||||
DB_HOST=""
|
DB_HOST=""
|
||||||
DB_NAME=""
|
DB_NAME=""
|
||||||
DB_USER=""
|
DB_USER=""
|
||||||
DB_PASSWD=""
|
DB_PASSWD=""
|
||||||
INSTALL_LOCK=false
|
INSTALL_LOCK=false
|
||||||
SECRET_KEY=""
|
SECRET_KEY=""
|
||||||
DISABLE_REGISTRATION=false
|
DISABLE_REGISTRATION=false
|
||||||
REQUIRE_SIGNIN_VIEW=false
|
REQUIRE_SIGNIN_VIEW=false
|
||||||
GITEA__time__DEFAULT_UI_LOCATION=Asia/Shanghai
|
GITEA__time__DEFAULT_UI_LOCATION=Asia/Shanghai
|
||||||
GITEA__migrations__ALLOW_LOCALNETWORKS=true
|
GITEA__migrations__ALLOW_LOCALNETWORKS=true
|
||||||
GITEA__api__ENABLE_SWAGGER=false
|
GITEA__api__ENABLE_SWAGGER=false
|
||||||
GITEA__ui.meta__AUTHOR=新疆萌森软件开发工作室
|
GITEA__ui.meta__AUTHOR=新疆萌森软件开发工作室
|
||||||
GITEA__ui.meta__DESCRIPTION=轻量级代码托管解决方案,支持自建和托管服务。
|
GITEA__ui.meta__DESCRIPTION=轻量级代码托管解决方案,支持自建和托管服务。
|
||||||
GITEA__ui.meta__KEYWORDS=git,gitea,github,gitlab,gitee,code
|
GITEA__ui.meta__KEYWORDS=git,gitea,github,gitlab,gitee,code
|
||||||
GITEA__security__LOGIN_REMEMBER_DAYS=3
|
GITEA__security__LOGIN_REMEMBER_DAYS=3
|
||||||
GITEA__server__LOCAL_ROOT_URL=http://localhost:3000/
|
GITEA__server__LOCAL_ROOT_URL=http://localhost:3000/
|
||||||
GITEA__webhook__ALLOWED_HOST_LIST=*
|
GITEA__webhook__ALLOWED_HOST_LIST=*
|
||||||
GITEA__picture__REPOSITORY_AVATAR_FALLBACK=random
|
GITEA__picture__REPOSITORY_AVATAR_FALLBACK=random
|
||||||
GITEA__attachment__MAX_SIZE=1024
|
GITEA__attachment__MAX_SIZE=1024
|
||||||
GITEA__git__MAX_GIT_DIFF_LINES=10000
|
GITEA__git__MAX_GIT_DIFF_LINES=10000
|
||||||
GITEA__git.config__http.postBuffer=2147483648
|
GITEA__git.config__http.postBuffer=2147483648
|
||||||
GITEA__git.config__core.compression=0
|
GITEA__git.config__core.compression=0
|
||||||
GITEA__other__SHOW_FOOTER_POWERED_BY=false
|
GITEA__other__SHOW_FOOTER_POWERED_BY=false
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
# copyright© 2024 XinJiang Ms Studio
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
TZ=Asia/Shanghai
|
TZ=Asia/Shanghai
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
# 外部数据库支持配置
|
# 外部数据库支持配置
|
||||||
|
|
||||||
# PostgreSQL
|
# PostgreSQL
|
||||||
# hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect
|
# hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect
|
||||||
# hibernate_connection_driver_class=org.postgresql.Driver
|
# hibernate_connection_driver_class=org.postgresql.Driver
|
||||||
# hibernate_connection_url=jdbc:postgresql://localhost:5432/onedev
|
# hibernate_connection_url=jdbc:postgresql://localhost:5432/onedev
|
||||||
# hibernate_connection_username=postgres
|
# hibernate_connection_username=postgres
|
||||||
# hibernate_connection_password=postgres
|
# hibernate_connection_password=postgres
|
||||||
|
|
||||||
# MySQL
|
# MySQL
|
||||||
# hibernate_dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
# hibernate_dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
||||||
# hibernate_connection_driver_class=com.mysql.cj.jdbc.Driver
|
# hibernate_connection_driver_class=com.mysql.cj.jdbc.Driver
|
||||||
# hibernate_connection_url=jdbc:mysql://localhost:3306/onedev?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false&disableMariaDbDriver=true
|
# hibernate_connection_url=jdbc:mysql://localhost:3306/onedev?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false&disableMariaDbDriver=true
|
||||||
# hibernate_connection_username=root
|
# hibernate_connection_username=root
|
||||||
# hibernate_connection_password=root
|
# hibernate_connection_password=root
|
||||||
|
|
||||||
# MariaDB
|
# MariaDB
|
||||||
# hibernate_dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
# hibernate_dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
||||||
# hibernate_connection_driver_class=org.mariadb.jdbc.Driver
|
# hibernate_connection_driver_class=org.mariadb.jdbc.Driver
|
||||||
# hibernate_connection_url=jdbc:mariadb://localhost:3306/onedev
|
# hibernate_connection_url=jdbc:mariadb://localhost:3306/onedev
|
||||||
# hibernate_connection_username=root
|
# hibernate_connection_username=root
|
||||||
# hibernate_connection_password=root
|
# hibernate_connection_password=root
|
||||||
|
|
||||||
# MS SQL Server
|
# MS SQL Server
|
||||||
# hibernate_dialect=org.hibernate.dialect.SQLServer2012Dialect
|
# hibernate_dialect=org.hibernate.dialect.SQLServer2012Dialect
|
||||||
# hibernate_connection_driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
|
# hibernate_connection_driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||||
# hibernate_connection_url=jdbc:sqlserver://localhost:1433;databaseName=onedev
|
# hibernate_connection_url=jdbc:sqlserver://localhost:1433;databaseName=onedev
|
||||||
# hibernate_connection_username=sa
|
# hibernate_connection_username=sa
|
||||||
# hibernate_connection_password=sa
|
# hibernate_connection_password=sa
|
||||||
|
@ -67,9 +67,7 @@ for app_directory in "${APPS_DIR:?}"/*; do
|
|||||||
|
|
||||||
sed -i "s/^ key: ${app_name}/ key: ${app_name_pre}/g" "${LOCAL_DIR:?}/$app_name_pre/data.yml"
|
sed -i "s/^ key: ${app_name}/ key: ${app_name_pre}/g" "${LOCAL_DIR:?}/$app_name_pre/data.yml"
|
||||||
|
|
||||||
awk '/^name: / {print $0, "预览版"; next} {print}' "${LOCAL_DIR:?}/$app_name_pre/data.yml" > "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml"
|
awk '{if (/^name: /) {sub(/$/, " 预览版"); print} else if (/^ name: /) {sub(/$/, " 预览版"); print} else {print}}' "${LOCAL_DIR:?}/$app_name_pre/data.yml" > "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml"
|
||||||
mv "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml" "${LOCAL_DIR:?}/$app_name_pre/data.yml"
|
|
||||||
awk '/^ name: / {print $0, "预览版"; next} {print}' "${LOCAL_DIR:?}/$app_name_pre/data.yml" > "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml"
|
|
||||||
mv "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml" "${LOCAL_DIR:?}/$app_name_pre/data.yml"
|
mv "${LOCAL_DIR:?}/$app_name_pre/data_tmp.yml" "${LOCAL_DIR:?}/$app_name_pre/data.yml"
|
||||||
|
|
||||||
done
|
done
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[{000214A0-0000-0000-C000-000000000046}]
|
[{000214A0-0000-0000-C000-000000000046}]
|
||||||
Prop3=19,11
|
Prop3=19,11
|
||||||
[InternetShortcut]
|
[InternetShortcut]
|
||||||
IDList=
|
IDList=
|
||||||
URL=https://lifebus.top/
|
URL=https://lifebus.top/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user