mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2024-11-10 14:56:58 +08:00
Merge remote-tracking branch 'origin/custom' into custom
This commit is contained in:
commit
6f2784b8d7
19
.github/renovate.json
vendored
19
.github/renovate.json
vendored
@ -79,14 +79,29 @@
|
||||
],
|
||||
"allowedVersions": "/^4\\.8\\.\\d+\\.\\d+$/"
|
||||
},
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"photoprism/photoprism"
|
||||
],
|
||||
"versioning": "regex:^(?<major>\\d{2})(?<minor>\\d{2})(?<patch>\\d{2})$"
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"photoprism/photoprism"
|
||||
"ghcr.io/umami-software/umami"
|
||||
],
|
||||
"versioning": "loose"
|
||||
"versioning": "docker"
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"ghcr.io/umami-software/*"
|
||||
],
|
||||
"versioning": "docker"
|
||||
}
|
||||
],
|
||||
"prCreation": "immediate"
|
||||
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
casdoor:
|
||||
image: casbin/casdoor:v1.674.0
|
||||
image: casbin/casdoor:v1.675.0
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
ghost:
|
||||
image: ghost:5.89.6
|
||||
image: ghost:5.90.0
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin:10.9.9
|
||||
image: jellyfin/jellyfin:10.9.10
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
nezha-dashboard:
|
||||
image: ghcr.io/naiba/nezha-dashboard:v0.19.1
|
||||
image: ghcr.io/naiba/nezha-dashboard:v0.19.3
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
onedev:
|
||||
image: 1dev/server:11.0.6
|
||||
image: 1dev/server:11.0.7
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -5,16 +5,14 @@ additionalProperties:
|
||||
envKey: PANEL_DB_HOST
|
||||
required: true
|
||||
type: service
|
||||
default: postgresql
|
||||
default: mysql
|
||||
edit: true
|
||||
envKey: PANEL_DB_TYPE
|
||||
labelZh: 数据库 服务 (前置检查)
|
||||
labelZh: MySQL 服务 (前置检查)
|
||||
labelEn: Database Service (Pre-check)
|
||||
required: true
|
||||
type: apps
|
||||
values:
|
||||
- label: PostgreSQL
|
||||
value: postgresql
|
||||
- label: MySQL
|
||||
value: mysql
|
||||
- label: MariaDB
|
||||
@ -71,18 +69,6 @@ additionalProperties:
|
||||
value: "1"
|
||||
- label: 关闭
|
||||
value: "0"
|
||||
- default: postgresql
|
||||
edit: true
|
||||
envKey: DATABASE_TYPE
|
||||
labelZh: 数据库 类型
|
||||
labelEn: Database Type
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: PostgreSQL
|
||||
value: postgresql
|
||||
- label: MySQL (MariaDB, Percona)
|
||||
value: mysql
|
||||
- default: "127.0.0.1"
|
||||
edit: true
|
||||
envKey: DB_HOSTNAME
|
||||
@ -90,7 +76,7 @@ additionalProperties:
|
||||
labelEn: Database Host
|
||||
required: true
|
||||
type: text
|
||||
- default: 5432
|
||||
- default: 3306
|
||||
edit: true
|
||||
envKey: DB_PORT
|
||||
labelZh: 数据库 端口
|
25
apps/umami-mysql/2.13.1/docker-compose.yml
Normal file
25
apps/umami-mysql/2.13.1/docker-compose.yml
Normal file
@ -0,0 +1,25 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
||||
services:
|
||||
umami-mysql:
|
||||
image: ghcr.io/umami-software/umami:mysql-v2.13.1
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
restart: always
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_HTTP}:3000
|
||||
env_file:
|
||||
- /etc/1panel/envs/global.env
|
||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||
environment:
|
||||
- DISABLE_TELEMETRY = 1
|
||||
- REMOVE_TRAILING_SLASH = 1
|
||||
- DATABASE_TYPE=mysql
|
||||
- DATABASE_URL=mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
|
142
apps/umami-mysql/README.md
Normal file
142
apps/umami-mysql/README.md
Normal file
@ -0,0 +1,142 @@
|
||||
# Umami MySQL版本
|
||||
|
||||
为速度和效率而构建的网站分析
|
||||
|
||||
Umami 网站分析提供您实时做出决策所需的数据。
|
||||
|
||||
![Umami](https://file.lifebus.top/imgs/umami_cover.jpg)
|
||||
|
||||
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
|
||||
|
||||
## 简介
|
||||
|
||||
Umami 让您轻松分析数据
|
||||
|
||||
+ 便于使用
|
||||
|
||||
Umami 功能强大而简单,易于使用和理解,不需要复杂的设置或标签配置。
|
||||
|
||||
+ UTM 和自定义事件
|
||||
|
||||
Umami 会自动理解带有 UTM 参数的链接,并让您根据 UTM 查看和过滤您的网站数据。此外,您还可以跟踪网站上的任何事件,例如按钮点击、表单提交、购买、新闻通讯注册等。
|
||||
|
||||
+ 没有 Cookie 横幅
|
||||
|
||||
所有数据均经过 Umami 匿名处理,并且不会收集您网站用户的任何个人信息。您无需选择加入 Cookie
|
||||
横幅即可跟踪网站的性能,从而为您的用户提供更好、更值得信赖的体验。
|
||||
默认情况下,Umami 符合 GDPRP 和 CCPA。
|
||||
|
||||
## 环境准备
|
||||
|
||||
+ 数据库支持
|
||||
+ `MySQL` 版本:`5.7+`
|
||||
+ `PostgreSQL` 版本:`12.14+`
|
||||
|
||||
## 安装说明
|
||||
|
||||
> 默认管理员帐户
|
||||
>
|
||||
> 用户名: admin
|
||||
>
|
||||
> 密码: umami
|
||||
|
||||
## 反向代理
|
||||
|
||||
> Nginx
|
||||
|
||||
如果您的请求头中存在自定义字段,请修改:
|
||||
|
||||
```text
|
||||
add_header Access-Control-Allow-Headers '*'
|
||||
```
|
||||
|
||||
以下配置修复 ipv6 地址无法收集的问题:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
...
|
||||
|
||||
add_header Content-Security-Policy 'frame-ancestors *';
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
|
||||
add_header Access-Control-Allow-Headers 'x-umami-cache,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
|
||||
if ($request_method = 'OPTIONS') {
|
||||
return 204;
|
||||
}
|
||||
|
||||
location /api/send {
|
||||
content_by_lua_block {
|
||||
local cjson = require "cjson"
|
||||
|
||||
local function is_ipv6_address(hostname)
|
||||
local match = hostname:match("^[%x:]+$")
|
||||
return match ~= nil
|
||||
end
|
||||
|
||||
ngx.req.read_body()
|
||||
local data = ngx.req.get_body_data()
|
||||
|
||||
if data then
|
||||
local decoded_data = cjson.decode(data)
|
||||
local hostname = decoded_data.payload.hostname
|
||||
|
||||
if is_ipv6_address(hostname) then
|
||||
local new_hostname = "127.0.0.1"
|
||||
decoded_data.payload.hostname = new_hostname
|
||||
|
||||
local modified_data = cjson.encode(decoded_data)
|
||||
ngx.req.set_body_data(modified_data)
|
||||
end
|
||||
end
|
||||
|
||||
ngx.exec("@proxy")
|
||||
}
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_hide_header 'Access-Control-Allow-Origin';
|
||||
proxy_hide_header 'Content-Security-Policy';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
}
|
||||
|
||||
location @proxy {
|
||||
proxy_hide_header 'Access-Control-Allow-Origin';
|
||||
proxy_hide_header 'Content-Security-Policy';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
极简配置:
|
||||
|
||||
```nginx
|
||||
add_header Content-Security-Policy 'frame-ancestors *';
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
add_header Access-Control-Allow-Methods '*';
|
||||
add_header Access-Control-Allow-Headers '*';
|
||||
if ($request_method = 'OPTIONS') {
|
||||
return 204;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_hide_header 'Access-Control-Allow-Origin';
|
||||
proxy_hide_header 'Content-Security-Policy';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
20
apps/umami-mysql/data.yml
Normal file
20
apps/umami-mysql/data.yml
Normal file
@ -0,0 +1,20 @@
|
||||
name: Umami MySQL版
|
||||
title: Umami MySQL版
|
||||
description: 为速度和效率而构建的网站分析
|
||||
additionalProperties:
|
||||
key: umami-mysql
|
||||
name: Umami MySQL版
|
||||
tags:
|
||||
- WebSite
|
||||
- Database
|
||||
- Middleware
|
||||
- Runtime
|
||||
- Local
|
||||
shortDescZh: 为速度和效率而构建的网站分析
|
||||
shortDescEn: A website analytics tool that is built for speed and efficiency
|
||||
type: website
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
website: https://umami.is/
|
||||
github: https://github.com/umami-software/umami/
|
||||
document: https://umami.is/docs/
|
BIN
apps/umami-mysql/logo.png
Normal file
BIN
apps/umami-mysql/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
104
apps/umami/2.13.1/data.yml
Normal file
104
apps/umami/2.13.1/data.yml
Normal file
@ -0,0 +1,104 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- child:
|
||||
default: ""
|
||||
envKey: PANEL_POSTGRES_SERVICE
|
||||
required: true
|
||||
type: service
|
||||
default: postgresql
|
||||
envKey: PANEL_POSTGRES_TYPE
|
||||
labelZh: Postgres 服务 (前置检查)
|
||||
labelEn: Postgres Service (Pre-check)
|
||||
required: true
|
||||
type: apps
|
||||
values:
|
||||
- label: PostgreSQL
|
||||
value: postgresql
|
||||
- default: "/home/umami"
|
||||
edit: true
|
||||
envKey: UMAMI_ROOT_PATH
|
||||
labelZh: 数据持久化路径
|
||||
labelEn: Data persistence path
|
||||
required: true
|
||||
type: text
|
||||
- default: 3000
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelZh: 连接端口
|
||||
labelEn: Connection Port
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: APP_SECRET
|
||||
labelZh: 应用密钥
|
||||
labelEn: Application Secret
|
||||
random: true
|
||||
required: false
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: "/"
|
||||
edit: true
|
||||
envKey: BASE_PATH
|
||||
labelZh: 基础路径
|
||||
labelEn: Base Path
|
||||
required: true
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: ALLOWED_FRAME_URLS
|
||||
labelZh: 允许的 frame 地址
|
||||
labelEn: Allowed frame urls
|
||||
required: false
|
||||
type: text
|
||||
- default: "0"
|
||||
edit: true
|
||||
envKey: DISABLE_BOT_CHECK
|
||||
labelZh: 禁用机器人检测
|
||||
labelEn: Disable bot detection
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: 开启
|
||||
value: "1"
|
||||
- label: 关闭
|
||||
value: "0"
|
||||
- default: "127.0.0.1"
|
||||
edit: true
|
||||
envKey: DB_HOSTNAME
|
||||
labelZh: 数据库 主机地址
|
||||
labelEn: Database Host
|
||||
required: true
|
||||
type: text
|
||||
- default: 5432
|
||||
edit: true
|
||||
envKey: DB_PORT
|
||||
labelZh: 数据库 端口
|
||||
labelEn: Database Port
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: "umami"
|
||||
edit: true
|
||||
envKey: DB_USERNAME
|
||||
labelZh: 数据库 用户名
|
||||
labelEn: Database User
|
||||
required: true
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: DB_PASSWORD
|
||||
labelEn: Database Password
|
||||
labelZh: 数据库 密码
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: "umami"
|
||||
edit: true
|
||||
envKey: DB_DATABASE_NAME
|
||||
labelZh: 数据库 名称
|
||||
labelEn: Database Name
|
||||
required: true
|
||||
type: text
|
@ -4,7 +4,7 @@ networks:
|
||||
|
||||
services:
|
||||
umami:
|
||||
image: ghcr.io/umami-software/umami:${DATABASE_TYPE}-v2.12.1
|
||||
image: ghcr.io/umami-software/umami:postgresql-v2.13.1
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
@ -19,4 +19,5 @@ services:
|
||||
environment:
|
||||
- DISABLE_TELEMETRY = 1
|
||||
- REMOVE_TRAILING_SLASH = 1
|
||||
- DATABASE_URL=${DATABASE_TYPE}://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
|
||||
- DATABASE_TYPE=postgresql
|
||||
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME}
|
15
apps/umami/2.13.1/scripts/init.sh
Normal file
15
apps/umami/2.13.1/scripts/init.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
10
apps/umami/2.13.1/scripts/uninstall.sh
Normal file
10
apps/umami/2.13.1/scripts/uninstall.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
15
apps/umami/2.13.1/scripts/upgrade.sh
Normal file
15
apps/umami/2.13.1/scripts/upgrade.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
@ -8,6 +8,12 @@ Umami 网站分析提供您实时做出决策所需的数据。
|
||||
|
||||
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
|
||||
|
||||
## 声明
|
||||
|
||||
> 该应用默认使用 `PostgreSQL` 作为基础数据库,原使用 `MySQL` 数据库的用户需要进行卸载重新安装 `MySQL` 版本。
|
||||
>
|
||||
> 卸载重装请注意参数保持一致,持久化目录也必须保持一致。
|
||||
|
||||
## 简介
|
||||
|
||||
Umami 让您轻松分析数据
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: Umami
|
||||
title: 为速度和效率而构建的网站分析
|
||||
title: Umami - 网站分析
|
||||
description: 为速度和效率而构建的网站分析
|
||||
additionalProperties:
|
||||
key: umami
|
||||
|
Loading…
Reference in New Issue
Block a user