feat: add app Tianji

This commit is contained in:
arch3rPro
2025-08-26 08:26:32 +00:00
parent 2b93e54df3
commit 65ca63d265
10 changed files with 372 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
CONTAINER_NAME="tianji"
PANEL_APP_PORT_HTTP="40205"
ALLOW_OPENAPI="true"
ALLOW_REGISTER="false"
JWT_SECRET="any-random-text_fZpxzA"
PANEL_DB_HOST="postgresql"
PANEL_DB_HOST_NAME="postgresql"
PANEL_DB_NAME="tianji_5pz3w2"
PANEL_DB_PORT="5432"
PANEL_DB_USER="tianji_XA6H4c"
PANEL_DB_USER_PASSWORD="tianji_4X2sNe"

View File

@@ -0,0 +1,73 @@
additionalProperties:
formFields:
- default: 40205
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_DB_HOST
key: postgresql
labelEn: Database Service
labelZh: 数据库服务
required: true
type: service
- default: tianji
envKey: PANEL_DB_NAME
labelEn: Database Name
labelZh: 数据库名
random: true
required: true
rule: paramCommon
type: text
- default: tianji
envKey: PANEL_DB_USER
labelEn: Database User
labelZh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: tianji
envKey: PANEL_DB_USER_PASSWORD
labelEn: Database Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: any-random-text
edit: true
envKey: JWT_SECRET
labelEn: Secret
labelZh: 秘钥
random: true
required: true
rule: paramComplexity
type: text
- default: "true"
envKey: ALLOW_OPENAPI
labelEn: Allow OpenAPI
labelZh: 是否开启OpenAPI
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "false"
envKey: ALLOW_REGISTER
labelEn: Allow Register
labelZh: 是否允许注册
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"

View File

@@ -0,0 +1,19 @@
services:
tianji:
container_name: ${CONTAINER_NAME}
restart: always
image: moonrailgun/tianji:1.24.22
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:12345
environment:
- DATABASE_URL=postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME}
- JWT_SECRET=${JWT_SECRET}
- ALLOW_REGISTER=${ALLOW_REGISTER}
- ALLOW_OPENAPI=${ALLOW_OPENAPI}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

70
apps/tianji/README.md Normal file
View File

@@ -0,0 +1,70 @@
# Tianji 介绍
## 简介
Tianji 是一款开源的 all-in-one 数据洞察中心,集成了网站分析、服务监控和服务器状态监控等功能。它为个人和企业提供了一个统一的平台来监控和分析各种数据,帮助用户更好地了解自己的数字资产状况。
![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/tianji.png)
![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white)
## 主要特性
- **网站流量分析**只需一段小于2KB的脚本即可监控网站的 PV/UV、在线时长、跳出率、访客设备使用情况、地理位置、访问来源等信息可理解为自托管版的 Google Analytics。
- **服务监控**:实时监控服务响应时间,支持 HTTP、TCP、Ping 等多种监控方式,甚至可以编写自定义脚本进行高级监控。
- **服务状态页**:提供对外公开的服务状态页面,展示各项服务的运行状态,增强用户信任度。
- **服务器状态监控**:类似 ServerStatus可以监控服务器的 CPU、内存、网络流量、磁盘空间等实时状况。
- **多种通知方式**:支持 100+ 种通知方式(由 Apprise 提供包括邮件、Telegram、Server酱等。
- **自定义仪表板**:支持可定制的 Dashboard 布局,满足不同用户的展示需求。
- **主题支持**:支持亮色/暗色模式切换,保护用户视力。
- **多语言支持**:内置英语、法语、德语、日语、俄语、中文等多种语言界面。
- **开源免费**:基于开源协议,完全免费使用,支持自托管部署。
## 快速开始
### 默认账户
- **用户名**: `admin`
- **密码**: `admin`
> ⚠️ **重要提醒**:首次登录后请立即修改默认密码以确保安全!
### 访问方式
部署完成后,通过浏览器访问服务地址即可开始使用。首次使用时建议:
1. 修改默认管理员密码
2. 配置监控目标(网站、服务器等)
3. 设置通知渠道
4. 自定义仪表板布局
## 核心功能详解
### 网站分析
- **轻量级追踪**仅需嵌入小于2KB的JavaScript代码
- **隐私友好**:数据完全由您控制,无第三方追踪
- **丰富指标**:页面浏览量、独立访客、停留时间、跳出率等
- **访客洞察**:设备类型、操作系统、浏览器、地理位置等
- **来源分析**:访问来源、搜索关键词、外链分析等
### 服务监控
- **多协议支持**HTTP/HTTPS、TCP、ICMP Ping 等
- **自定义检查**:支持编写自定义监控脚本
- **响应时间监控**:实时监控服务响应速度
- **状态历史**:记录服务可用性历史数据
- **告警机制**:服务异常时自动发送通知
### 服务器监控
- **系统资源**CPU使用率、内存占用、磁盘空间
- **网络状况**:实时网络流量监控
- **进程管理**:监控关键进程运行状态
- **历史数据**:保存监控历史,便于趋势分析
## 相关链接
- **官方网站**: [https://tianji.dev/](https://tianji.dev/)
- **GitHub 仓库**: [https://github.com/msgbyte/tianji](https://github.com/msgbyte/tianji)
- **官方文档**: [https://tianji.dev/docs/intro](https://tianji.dev/docs/intro)

70
apps/tianji/README_en.md Normal file
View File

@@ -0,0 +1,70 @@
# Tianji Introduction
## Overview
Tianji is an open-source all-in-one data insight center that integrates website analytics, service monitoring, and server status monitoring. It provides individuals and enterprises with a unified platform to monitor and analyze various data, helping users better understand their digital asset status.
![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/tianji.png)
![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white)
## Key Features
- **Website Analytics**: Monitor website PV/UV, online duration, bounce rate, visitor device usage, geographic location, traffic sources and more with just a script less than 2KB. Think of it as a self-hosted Google Analytics.
- **Service Monitoring**: Real-time monitoring of service response times, supporting HTTP, TCP, Ping and other monitoring methods. You can even write custom scripts for advanced monitoring.
- **Service Status Page**: Provides a public status page for external access, displaying the operational status of various services to enhance user trust.
- **Server Status Monitoring**: Similar to ServerStatus, monitors real-time server conditions including CPU, memory, network traffic, disk space, etc.
- **Multiple Notification Methods**: Supports 100+ notification methods (powered by Apprise), including email, Telegram, ServerChan, and more.
- **Customizable Dashboard**: Supports customizable dashboard layouts to meet different users' display needs.
- **Theme Support**: Supports light/dark mode switching to protect user vision.
- **Multi-language Support**: Built-in support for English, French, German, Japanese, Russian, Chinese and other languages.
- **Open Source & Free**: Based on open source license, completely free to use, supports self-hosted deployment.
## Quick Start
### Default Account
- **Username**: `admin`
- **Password**: `admin`
> ⚠️ **Important Reminder**: Please change the default password immediately after first login to ensure security!
### Access Method
After deployment, access through a web browser to the service address to start using. For first-time use, it's recommended to:
1. Change the default administrator password
2. Configure monitoring targets (websites, servers, etc.)
3. Set up notification channels
4. Customize dashboard layout
## Core Features Details
### Website Analytics
- **Lightweight Tracking**: Only requires embedding JavaScript code less than 2KB
- **Privacy-Friendly**: Data is completely under your control, no third-party tracking
- **Rich Metrics**: Page views, unique visitors, dwell time, bounce rate, etc.
- **Visitor Insights**: Device type, operating system, browser, geographic location, etc.
- **Source Analysis**: Traffic sources, search keywords, referral analysis, etc.
### Service Monitoring
- **Multi-Protocol Support**: HTTP/HTTPS, TCP, ICMP Ping, etc.
- **Custom Checks**: Support for writing custom monitoring scripts
- **Response Time Monitoring**: Real-time monitoring of service response speed
- **Status History**: Records service availability historical data
- **Alert Mechanism**: Automatically sends notifications when services are abnormal
### Server Monitoring
- **System Resources**: CPU usage, memory consumption, disk space
- **Network Status**: Real-time network traffic monitoring
- **Process Management**: Monitor key process running status
- **Historical Data**: Save monitoring history for trend analysis
## Related Links
- **Official Website**: [https://tianji.dev/](https://tianji.dev/)
- **GitHub Repository**: [https://github.com/msgbyte/tianji](https://github.com/msgbyte/tianji)
- **Official Documentation**: [https://tianji.dev/docs/intro](https://tianji.dev/docs/intro)

26
apps/tianji/data.yml Normal file
View File

@@ -0,0 +1,26 @@
name: Tianji
tags:
- 监控工具
title: 开源 all-in-one 数据洞察中心
description: Tianji 是一款开源的 all-in-one 数据洞察中心,集成网站分析、服务监控、服务器状态监控等功能
additionalProperties:
key: tianji
name: Tianji
tags:
- Monitoring
shortDescZh: 开源 all-in-one 数据洞察中心
shortDescEn: Open-source all-in-one data insight center
description:
en: Tianji is an open-source all-in-one data insight center that combines website analytics, uptime monitoring, and server status monitoring
zh: Tianji 是一款开源的 all-in-one 数据洞察中心,集成网站分析、服务监控、服务器状态监控等功能
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://tianji.dev/
github: https://github.com/msgbyte/tianji
document: https://tianji.dev/docs/intro
memoryRequired: 1024
architectures:
- arm64
- amd64

View File

@@ -0,0 +1,11 @@
CONTAINER_NAME="tianji"
PANEL_APP_PORT_HTTP="40205"
ALLOW_OPENAPI="true"
ALLOW_REGISTER="false"
JWT_SECRET="any-random-text_fZpxzA"
PANEL_DB_HOST="postgresql"
PANEL_DB_HOST_NAME="postgresql"
PANEL_DB_NAME="tianji_5pz3w2"
PANEL_DB_PORT="5432"
PANEL_DB_USER="tianji_XA6H4c"
PANEL_DB_USER_PASSWORD="tianji_4X2sNe"

View File

@@ -0,0 +1,73 @@
additionalProperties:
formFields:
- default: 40205
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_DB_HOST
key: postgresql
labelEn: Database Service
labelZh: 数据库服务
required: true
type: service
- default: tianji
envKey: PANEL_DB_NAME
labelEn: Database Name
labelZh: 数据库名
random: true
required: true
rule: paramCommon
type: text
- default: tianji
envKey: PANEL_DB_USER
labelEn: Database User
labelZh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: tianji
envKey: PANEL_DB_USER_PASSWORD
labelEn: Database Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: any-random-text
edit: true
envKey: JWT_SECRET
labelEn: Secret
labelZh: 秘钥
random: true
required: true
rule: paramComplexity
type: text
- default: "true"
envKey: ALLOW_OPENAPI
labelEn: Allow OpenAPI
labelZh: 是否开启OpenAPI
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "false"
envKey: ALLOW_REGISTER
labelEn: Allow Register
labelZh: 是否允许注册
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"

View File

@@ -0,0 +1,19 @@
services:
tianji:
container_name: ${CONTAINER_NAME}
restart: always
image: moonrailgun/tianji:latest
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:12345
environment:
- DATABASE_URL=postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME}
- JWT_SECRET=${JWT_SECRET}
- ALLOW_REGISTER=${ALLOW_REGISTER}
- ALLOW_OPENAPI=${ALLOW_OPENAPI}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

BIN
apps/tianji/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB