From 07e82004e8cabf9984f7e54f36d92ad796f947af Mon Sep 17 00:00:00 2001 From: wanghe-fit2cloud Date: Fri, 3 Nov 2023 15:14:02 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=88=A0=E9=99=A4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/hertzbeat/1.4.0/data.yml | 10 - apps/hertzbeat/1.4.0/docker-compose.yml | 22 - apps/hertzbeat/README.md | 390 ------------------ apps/hertzbeat/data.yml | 20 - apps/hertzbeat/logo.png | Bin 12501 -> 0 bytes apps/next-terminal/1.3.9/data.yml | 32 -- apps/next-terminal/1.3.9/docker-compose.yml | 37 -- apps/next-terminal/1.3.9/ssh/id_rsa | 49 --- apps/next-terminal/README.md | 73 ---- apps/next-terminal/data.yml | 20 - apps/next-terminal/logo.png | Bin 5592 -> 0 bytes apps/onedev/8.6.12/data.yml | 18 - apps/onedev/8.6.12/docker-compose.yml | 20 - apps/onedev/README.md | 140 ------- apps/onedev/data.yml | 20 - apps/onedev/logo.png | Bin 5285 -> 0 bytes apps/pingvin-share/0.17.4/data.yml | 10 - apps/pingvin-share/0.17.4/docker-compose.yml | 19 - apps/pingvin-share/README.md | 126 ------ apps/pingvin-share/data.yml | 20 - apps/pingvin-share/logo.png | Bin 8522 -> 0 bytes apps/searxng/2023.7.1-5720844f/data.yml | 17 - .../2023.7.1-5720844f/docker-compose.yml | 20 - apps/searxng/README.md | 82 ---- apps/searxng/data.yml | 20 - apps/searxng/logo.png | Bin 4532 -> 0 bytes apps/vocechat/0.3.36/data.yml | 10 - apps/vocechat/0.3.36/docker-compose.yml | 18 - apps/vocechat/README.md | 77 ---- apps/vocechat/data.yml | 20 - apps/vocechat/logo.png | Bin 22787 -> 0 bytes 31 files changed, 1290 deletions(-) delete mode 100644 apps/hertzbeat/1.4.0/data.yml delete mode 100644 apps/hertzbeat/1.4.0/docker-compose.yml delete mode 100644 apps/hertzbeat/README.md delete mode 100644 apps/hertzbeat/data.yml delete mode 100644 apps/hertzbeat/logo.png delete mode 100644 apps/next-terminal/1.3.9/data.yml delete mode 100644 apps/next-terminal/1.3.9/docker-compose.yml delete mode 100644 apps/next-terminal/1.3.9/ssh/id_rsa delete mode 100644 apps/next-terminal/README.md delete mode 100644 apps/next-terminal/data.yml delete mode 100644 apps/next-terminal/logo.png delete mode 100644 apps/onedev/8.6.12/data.yml delete mode 100644 apps/onedev/8.6.12/docker-compose.yml delete mode 100644 apps/onedev/README.md delete mode 100644 apps/onedev/data.yml delete mode 100644 apps/onedev/logo.png delete mode 100644 apps/pingvin-share/0.17.4/data.yml delete mode 100644 apps/pingvin-share/0.17.4/docker-compose.yml delete mode 100644 apps/pingvin-share/README.md delete mode 100644 apps/pingvin-share/data.yml delete mode 100644 apps/pingvin-share/logo.png delete mode 100644 apps/searxng/2023.7.1-5720844f/data.yml delete mode 100644 apps/searxng/2023.7.1-5720844f/docker-compose.yml delete mode 100644 apps/searxng/README.md delete mode 100644 apps/searxng/data.yml delete mode 100644 apps/searxng/logo.png delete mode 100644 apps/vocechat/0.3.36/data.yml delete mode 100644 apps/vocechat/0.3.36/docker-compose.yml delete mode 100644 apps/vocechat/README.md delete mode 100644 apps/vocechat/data.yml delete mode 100644 apps/vocechat/logo.png diff --git a/apps/hertzbeat/1.4.0/data.yml b/apps/hertzbeat/1.4.0/data.yml deleted file mode 100644 index c509746c..00000000 --- a/apps/hertzbeat/1.4.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40066 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/hertzbeat/1.4.0/docker-compose.yml b/apps/hertzbeat/1.4.0/docker-compose.yml deleted file mode 100644 index 30db8614..00000000 --- a/apps/hertzbeat/1.4.0/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -services: - hertzbeat: - container_name: ${CONTAINER_NAME} - restart: always - environment: - - TZ=Asia/Shanghai - - LANG=zh_CN.UTF-8 - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:1157" - volumes: - - "./data/data:/opt/hertzbeat/data" - - "./data/logs:/opt/hertzbeat/logs" - image: tancloud/hertzbeat:v1.4.0 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/hertzbeat/README.md b/apps/hertzbeat/README.md deleted file mode 100644 index a4357978..00000000 --- a/apps/hertzbeat/README.md +++ /dev/null @@ -1,390 +0,0 @@ -# 使用说明 - -- 默认账户密码 -``` -username:admin -password:hertzbeat -`````` -# 原始相关 - -

- - hertzbeat - -

- -> 默认账户密码 admin/hertzbeat - -[comment]: <> (sureness) - -## HertzBeat 赫兹跳动 - -> 易用友好的开源实时监控告警系统,无需Agent,强大自定义监控能力。 - -[![discord](https://img.shields.io/badge/chat-on%20discord-brightgreen)](https://discord.gg/Fb6M73htGr) -[![Gitter](https://badges.gitter.im/hertzbeat/community.svg)](https://gitter.im/hertzbeat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -[![QQ](https://img.shields.io/badge/qq-236915833-orange)](https://jq.qq.com/?_wv=1027&k=aVIVB2K9) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/web-monitor.svg) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/ping-connect.svg) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/port-available.svg) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/database-monitor.svg) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/os-monitor.svg) -![hertzbeat](https://img.shields.io/badge/monitor-cloud%20native-brightgreen) -![hertzbeat](https://img.shields.io/badge/monitor-middleware-blueviolet) -![hertzbeat](https://img.shields.io/badge/monitor-network-red) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/custom-monitor.svg) -![hertzbeat](https://cdn.jsdelivr.net/gh/dromara/hertzbeat@gh-pages/img/badge/alert.svg) - -**官网: [hertzbeat.dromara.org](https://hertzbeat.dromara.org) | [hertzbeat.com](https://hertzbeat.com)** - -**云服务: [tancloud.cn](https://tancloud.cn)** - -## 🎡 介绍 - -> [HertzBeat赫兹跳动](https://github.com/dromara/hertzbeat) 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。 -> 集 **监控+告警+通知** 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位。 -> 易用友好,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。 -> 更自由化的阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式及时送达。 - -> 我们将`Http,Jmx,Ssh,Snmp,Jdbc`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 -> 您相信只需配置下就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? - -> `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -> 当然我们也提供了对应的 **[SAAS版本监控云](https://console.tancloud.cn)**,中小团队和个人无需再为了监控自己的网站资源,而去部署学习一套繁琐的监控系统,**[登录即可免费开始](https://console.tancloud.cn)**。 - ----- - -[![hertzbeat](https://github.com/dromara/hertzbeat/raw/master/home/static/img/home/1.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) - -[![hertzbeat](https://github.com/dromara/hertzbeat/raw/master/home/static/img/home/9.png)](https://www.bilibili.com/video/BV1LY4y1m7rH/) - ----- - -## 🥐 模块 - -![hertzBeat](https://github.com/dromara/hertzbeat/raw/master/home/static/img/docs/hertzbeat-arch.png) - -## ⛄ 已支持 - -> 我们将监控采集类型(mysql,jvm,k8s)都定义为yml监控模版,用户可以导入这些模版来支持对应类型的监控! -> 欢迎大家一起贡献你使用过程中自定义的通用监控类型监控模版。 - -- [Website](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-port.yml), - [Http Api](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ping.yml), - [Jvm](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-fullsite.yml), - [Ssl Certificate](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot2.yml), - [FTP Server](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-springboot3.yml) -- [Mysql](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-postgresql.yml), - [MariaDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis.yml), - [ElasticSearch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-sqlserver.yml), - [Oracle](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-mongodb.yml), - [DM](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opengauss.yml), - [ClickHouse](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-iotdb.yml), - [Redis Cluster](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redis_sentinel.yml) -- [Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-ubuntu.yml), - [CentOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-windows.yml), - [EulerOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-coreos.yml), - [OpenSUSE](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rockylinux.yml), - [Red Hat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-freebsd.yml), - [AlmaLinux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-debian.yml) -- [Tomcat](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-nacos.yml), - [Zookeeper](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-rabbitmq.yml), - [Flink](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kafka.yml), - [ShenYu](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-dynamic_tp.yml), - [Jetty](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-activemq.yml) -- [Kubernetes](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-docker.yml) -- [CiscoSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-hpe_switch.yml), - [HuaweiSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-tplink_switch.yml), - [H3cSwitch](https://raw.githubusercontent.com/dromara/hertzbeat/master/manager/src/main/resources/define/app-h3c_switch.yml) -- 和更多自定义监控模版。 -- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook`。 - -## 🐕 快速开始 - -- 如果您不想部署而是直接使用,我们提供SAAS监控云-[TanCloud探云](https://console.tancloud.cn),即刻 **[登录注册](https://console.tancloud.cn)** 免费使用。 -- 如果您是想将HertzBeat部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。 - -### 🍞 HertzBeat安装 -> HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署,CPU架构支持X86/ARM64。 - -##### 方式一:Docker方式快速安装 - -1. `docker` 环境仅需一条命令即可开始 - -```docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat``` - -```或者使用 quay.io (若 dockerhub 网络链接超时)``` - -```docker run -d -p 1157:1157 --name hertzbeat quay.io/tancloud/hertzbeat``` - -2. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` - -更多配置详细步骤参考 [通过Docker方式安装HertzBeat](https://hertzbeat.com/docs/start/docker-deploy) - -##### 方式二:通过安装包安装 -1. 下载您系统环境对应的安装包 [GITEE Release](https://gitee.com/dromara/hertzbeat/releases) [GITHUB Release](https://github.com/dromara/hertzbeat/releases) -2. 需要已安装`java11`环境 -3. 配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml`(可选) -4. 部署启动 `$ ./startup.sh ` 或 `startup.bat` -5. 浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` - -更多配置详细步骤参考 [通过安装包安装HertzBeat](https://hertzbeat.com/docs/start/package-deploy) - -##### 方式三:本地代码启动 -1. 此为前后端分离项目,本地代码调试需要分别启动后端工程`manager`和前端工程`web-app` -2. 后端:需要`maven3+`, `java11`和`lombok`环境,修改`YML`配置信息并启动`manager`服务 -3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在`web-app`目录下启动 `ng serve --open` -4. 浏览器访问 `localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` - -详细步骤参考 [参与贡献之本地代码启动](https://github.com/dromara/hertzbeat/blob/master/CONTRIBUTING.md) - -##### 方式四:Docker-Compose 统一安装 hertzbeat+mysql+iotdb/tdengine - -通过 [Docker-Compose 部署脚本](https://github.com/dromara/hertzbeat/blob/master/script/docker-compose) 一次性把 mysql 数据库, iotdb/tdengine 时序数据库和 hertzbeat 安装部署。 - -详细步骤参考 [通过Docker-Compose安装HertzBeat](https://github.com/dromara/hertzbeat/blob/master/script/docker-compose/README.md) - -**HAVE FUN** - -## 🥐 路线图 - -![hertzBeat](https://github.com/dromara/hertzbeat/raw/master/home/static/img/docs/hertzbeat-roadmap.png) - -## ✨ Contributors - -Thanks these wonderful people, welcome to join us: -[贡献者指南](https://github.com/dromara/hertzbeat/blob/master/CONTRIBUTING.md) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tomsun28
tomsun28

💻 📖 🎨
会编程的王学长
会编程的王学长

💻 📖 🎨
MaxKey
MaxKey

💻 🎨 🤔
观沧海
观沧海

💻 🎨 🐛
yuye
yuye

💻 📖
jx10086
jx10086

💻 🐛
winnerTimer
winnerTimer

💻 🐛
goo-kits
goo-kits

💻 🐛
brave4Time
brave4Time

💻 🐛
WalkerLee
WalkerLee

💻 🐛
jianghang
jianghang

💻 🐛
ChineseTony
ChineseTony

💻 🐛
wyt199905
wyt199905

💻
卫傅庆
卫傅庆

💻 🐛
zklmcookle
zklmcookle

💻
DevilX5
DevilX5

📖 💻
tea
tea

💻
yangshihui
yangshihui

💻 🐛
DreamGirl524
DreamGirl524

💻 📖
gzwlly
gzwlly

📖
cuipiheqiuqiu
cuipiheqiuqiu

💻 ⚠️ 🎨
lambert
lambert

💻
mroldx
mroldx

📖
woshiniusange
woshiniusange

📖
VampireAchao
VampireAchao

💻
zcx
zcx

💻 🐛 🎨
CharlieXCL
CharlieXCL

📖
Privauto
Privauto

💻 📖
emrys
emrys

📖
SxLiuYu
SxLiuYu

🐛
All Contributors
All Contributors

📖
铁甲小宝
铁甲小宝

💻 📖
click33
click33

📖
蒋小小
蒋小小

📖
Kevin Huang
Kevin Huang

📖
铁甲小宝
铁甲小宝

🐛 💻 📖
Captain Jack
Captain Jack

📖
haibo.duan
haibo.duan

⚠️ 💻
assassin
assassin

🐛 💻
Reverse wind
Reverse wind

⚠️ 💻
luxx
luxx

💻
Ikko Ashimine
Ikko Ashimine

📖
leizenan
leizenan

💻
BKing
BKing

📖
xingshuaiLi
xingshuaiLi

📖
wangke6666
wangke6666

📖
刺猬
刺猬

🐛 💻
Haste
Haste

💻
zhongshi.yi
zhongshi.yi

📖
Qi Zhang
Qi Zhang

📖
MrAndyMing
MrAndyMing

📖
idongliming
idongliming

💻
Zichao Lin
Zichao Lin

💻 📖
liudonghua
liudonghua

💻 🤔
Jerry
Jerry

💻 ⚠️ 🤔
yanhom
yanhom

📖
fsl
fsl

💻
xttttv
xttttv

📖
NavinKumarBarnwal
NavinKumarBarnwal

💻
Zakkary
Zakkary

📖
sunxinbo
sunxinbo

💻 ⚠️
ldzbook
ldzbook

📖 🐛
余与雨
余与雨

💻 ⚠️
MysticalDream
MysticalDream

💻 ⚠️
zhouyoulin12
zhouyoulin12

💻 ⚠️
jerjjj
jerjjj

💻
wjl110
wjl110

💻
Sean
Sean

📖
chenyiqin
chenyiqin

💻 ⚠️
hudongdong129
hudongdong129

💻 ⚠️ 📖
TherChenYang
TherChenYang

💻 ⚠️
HattoriHenzo
HattoriHenzo

💻 ⚠️
ycilry
ycilry

📖
aoshiguchen
aoshiguchen

📖 💻
蔡本祥
蔡本祥

💻
浮游
浮游

💻
Grass-Life
Grass-Life

💻
xiaohe428
xiaohe428

💻 📖
TableRow
TableRow

📖 💻
ByteIDance
ByteIDance

💻
Jangfe
Jangfe

💻
zqr10159
zqr10159

📖 💻
vinci
vinci

💻
js110
js110

💻
CrazyLionLi
CrazyLionLi

📖
banmajio
banmajio

💻
topsuder
topsuder

💻
richar2022
richar2022

💻
fcb-xiaobo
fcb-xiaobo

💻
wenkyzhang
wenkyzhang

📖
ZangJuxy
ZangJuxy

📖
l646505418
l646505418

💻
Carpe-Wang
Carpe-Wang

💻
莫枢
莫枢

💻
huangcanda
huangcanda

💻
世纪末的架构师
世纪末的架构师

💻
ShuningWan
ShuningWan

📖
MrYZhou
MrYZhou

📖
suncqujsj
suncqujsj

📖
sunqinbo
sunqinbo

💻
haoww
haoww

📖
i-mayuan
i-mayuan

📖
fengruge
fengruge

📖
zhanghuan
zhanghuan

💻
shenymin
shenymin

💻
Dhruva Chandra
Dhruva Chandra

💻
miss_z
miss_z

📖
wyt990
wyt990

💻
licocon
licocon

💻
Mi Na
Mi Na

💻
Kylin-Guo
Kylin-Guo

📖
Mr灬Dong先生
Mr灬Dong先生

💻
Pratyay Banerjee
Pratyay Banerjee

📖 💻
yujianzhong520
yujianzhong520

💻
SPPan
SPPan

💻
ZhangJiashu
ZhangJiashu

💻
impress
impress

💻
凌晨一点半
凌晨一点半

📖
Eeshaan Sawant
Eeshaan Sawant

💻
nandofromthebando
nandofromthebando

💻
caiboking
caiboking

💻
baixing99
baixing99

💻
Yang Chuang
Yang Chuang

💻
wlin20
wlin20

💻
guojing1983
guojing1983

💻
moxi
moxi

📖
qq471754603
qq471754603

💻
渭雨
渭雨

💻
liuxuezhuo
liuxuezhuo

💻
lisongning
lisongning

💻
YutingNie
YutingNie

💻
Mike Zhou
Mike Zhou

💻
小笨蛋
小笨蛋

💻
littlezhongzer
littlezhongzer

💻
ChenXiangxxxxx
ChenXiangxxxxx

💻
- - - - - - -## 💬 社区交流 - -HertzBeat 赫兹跳动是 [Dromara开源社区](https://dromara.org/) 下顶级项目。Gitee GVP。 - -##### 微信交流群 - -加微信号 tan-cloud 或 扫描下面账号二维码拉您进微信群。 -tan-cloud - -##### QQ交流群 - -加QQ群号 236915833 或 扫描下面的群二维码进群 - -tan-cloud - -##### Channel - -[Gitter Channel](https://gitter.im/hertzbeat/community) - -[Github Discussion](https://github.com/dromara/hertzbeat/discussions) - -[User Club](https://support.qq.com/products/379369) - -##### 公众号与星球 - -tan-cloud - -
- -planet - -##### 友情链接 - -- [DynamicTp](https://github.com/dromara/dynamic-tp) : 轻量级动态线程池,内置监控告警功能,集成三方中间件线程池管理,基于主流配置中心 -- [Hippo4j](https://github.com/opengoofy/hippo4j/) : 强大的动态线程池框架,附带监控报警功能 -- [Jpom](https://gitee.com/dromara/Jpom) : 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件 -- [ArgusDBM](https://github.com/zmops/ArgusDBM) : 开源数据库一体化监控平台,致力于监控所有数据库 - -##### 赞助 -- Postcat [开源 API 管理工具 ](https://datayi.cn/w/xRxVBBko) 简单可拓展,支持 API 测试、文档、Mock、团队协作等核心功能 -- 感谢 [吉实信息(构建全新的微波+光交易网络)](https://www.flarespeed.com) 赞助服务器采集节点 -- 感谢 [蓝易云(全新智慧上云)](https://www.tsyvps.com/aff/BZBEGYLX) 赞助服务器采集节点 - -## 🛡️ License -[`Apache License, Version 2.0`](https://www.apache.org/licenses/LICENSE-2.0.html) \ No newline at end of file diff --git a/apps/hertzbeat/data.yml b/apps/hertzbeat/data.yml deleted file mode 100644 index 3b040251..00000000 --- a/apps/hertzbeat/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: HertzBeat -tags: - - 工具 -title: 一个易用友好的开源实时监控告警系统 -type: 工具 -description: 一个易用友好的开源实时监控告警系统 -additionalProperties: - key: hertzbeat - name: HertzBeat - tags: - - Tool - shortDescZh: 一个易用友好的开源实时监控告警系统 - shortDescEn: An open source, real-time monitoring system with custom-monitoring - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hertzbeat.com/ - github: https://github.com/dromara/hertzbeat - document: https://hertzbeat.com/docs/ diff --git a/apps/hertzbeat/logo.png b/apps/hertzbeat/logo.png deleted file mode 100644 index abaf6cf1967d1c61040c4d59842bc291552a72c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 12501 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 diff --git a/apps/next-terminal/1.3.9/data.yml b/apps/next-terminal/1.3.9/data.yml deleted file mode 100644 index 56966e4f..00000000 --- a/apps/next-terminal/1.3.9/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -additionalProperties: - formFields: - - default: 40058 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: '' - edit: true - envKey: PANEL_APP_PORT_SSH - labelEn: SSH Port - labelZh: SSH端口 - required: false - rule: paramPort - type: number - - default: "false" - edit: true - envKey: SSHD_SWITCH - labelEn: Enable SSH (true or false) - labelZh: 启用SSH (true/false) - required: true - type: text - - default: ./ssh/id_rsa - edit: true - envKey: SSH_KEY_PATH - labelEn: SSH key file(/root/.ssh/id_rsa) - labelZh: SSH 私钥文件(/root/.ssh/id_rsa) - required: true - type: text diff --git a/apps/next-terminal/1.3.9/docker-compose.yml b/apps/next-terminal/1.3.9/docker-compose.yml deleted file mode 100644 index 0500edf9..00000000 --- a/apps/next-terminal/1.3.9/docker-compose.yml +++ /dev/null @@ -1,37 +0,0 @@ -version: '3' -services: - nt-guacd: - container_name: ${CONTAINER_NAME}-guacd - restart: always - networks: - - 1panel-network - volumes: - - "./data:/usr/local/next-terminal/data" - image: dushixiang/guacd:1.5.2 - labels: - createdBy: "Apps" - - next-terminal: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8088" - - "${PANEL_APP_PORT_SSH}:8089" - volumes: - - "./data:/usr/local/next-terminal/data" - - "/etc/localtime:/etc/localtime" - - "${SSH_KEY_PATH}:/root/.ssh/id_rsa" - environment: - DB: sqlite - GUACD_HOSTNAME: nt-guacd - GUACD_PORT: 4822 - SSHD_ENABLE: ${SSHD_SWITCH} - image: dushixiang/next-terminal:v1.3.9 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/next-terminal/1.3.9/ssh/id_rsa b/apps/next-terminal/1.3.9/ssh/id_rsa deleted file mode 100644 index fe757550..00000000 --- a/apps/next-terminal/1.3.9/ssh/id_rsa +++ /dev/null @@ -1,49 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn -NhAAAAAwEAAQAAAgEAqNqKouPlvUBbLv4BUSMxaZu4rFBMKLcl2MSetFAx/Ya/e5JFQ9rZ -RhMmZqx7gfj6/OQTXw9qN43k0XKy0Y9u3APtt9OZ9Y5StcmXljQhy8EQOF+MyZAEY3HpM7 -4xIV+v16z1mBrczZcFUbALVdijPAWhhMZxxhaN+EA8IfA0ByoE++w6XjvrYEOhW2qCMptL -TV6ZSUW7IOOoa/VzZBujUqgXrqiOshVy79mZi/mg5Sctp727JHr4PAw4yEqDHkLX4D97Rc -Qy8FMbmw40my6G+P22YywCdwVXlgZOq1dCuCRVAzl811nnTSLigyll3DBOilkp0RsDATUv -xCYc8UbwIrlUGDFKz8f54BN2kIgUX7OKVFOefhnpwpasZ8BjF+4A+3b5PkxQEg4SYiYWJc -RDIs9pCuSG2kX45PhbGMoWfbqU63pftM2fVtWiStMOZysvfkaLVUhJPQT3TZhiO84mkz6S -juQO2+b7Olb+rSe0naOzewvi72fFzbAOSEe4hj4Ewh38u1gYge5kOSg/SaHcYvVa2OU9Fz -iS5BCKKfcGtvkxl/HNDlNndCVw4DZHxmIkWDDa6uLI3qWn5A+AVP2D8zMTSmn/gkPxkYE5 -lkhWr4aM0/purV2JeupZzSDYa0zWL+6SuEWDL1qw9oglDm209go6jBbjEtaMDxt9YpkCcX -kAAAdQPAxkLDwMZCwAAAAHc3NoLXJzYQAAAgEAqNqKouPlvUBbLv4BUSMxaZu4rFBMKLcl -2MSetFAx/Ya/e5JFQ9rZRhMmZqx7gfj6/OQTXw9qN43k0XKy0Y9u3APtt9OZ9Y5StcmXlj -Qhy8EQOF+MyZAEY3HpM74xIV+v16z1mBrczZcFUbALVdijPAWhhMZxxhaN+EA8IfA0ByoE -++w6XjvrYEOhW2qCMptLTV6ZSUW7IOOoa/VzZBujUqgXrqiOshVy79mZi/mg5Sctp727JH -r4PAw4yEqDHkLX4D97RcQy8FMbmw40my6G+P22YywCdwVXlgZOq1dCuCRVAzl811nnTSLi -gyll3DBOilkp0RsDATUvxCYc8UbwIrlUGDFKz8f54BN2kIgUX7OKVFOefhnpwpasZ8BjF+ -4A+3b5PkxQEg4SYiYWJcRDIs9pCuSG2kX45PhbGMoWfbqU63pftM2fVtWiStMOZysvfkaL -VUhJPQT3TZhiO84mkz6SjuQO2+b7Olb+rSe0naOzewvi72fFzbAOSEe4hj4Ewh38u1gYge -5kOSg/SaHcYvVa2OU9FziS5BCKKfcGtvkxl/HNDlNndCVw4DZHxmIkWDDa6uLI3qWn5A+A -VP2D8zMTSmn/gkPxkYE5lkhWr4aM0/purV2JeupZzSDYa0zWL+6SuEWDL1qw9oglDm209g -o6jBbjEtaMDxt9YpkCcXkAAAADAQABAAACAE2riU34SrtNGSR6jpyF9brAeKg6n22zIWOe -venvYa9fBkGPPPFDf+It+OINwRo+LyWYvBhj/NXlHTYC7qJaugHWhMikOxOrDfy06FedT1 -ZsTkvAGAC3kG01/rFgcTUK0NYCp036PUsMhtPWiMBKUHvRk0SCC9+0jEV/Nqnd1fDdsUE4 -nniuU00KjvR//7fLm03Rj+0WeEdesSBH3XZVCEGDNLGQs2LTXvVZQLoUb6A471VTfvv+3K -SycoQfUkTfNnHegZPL9ip58B7Y3/Xp5wgtnHHt0oxxFqLZ7+H816HghIJhNT3SCwV+YHc4 -2bP5PIeDECsxo6YwkvJFHdcWbGqtUEDawJ+sUit0iBnByvbDRT5iMgcszekdv4FC7YhWxp -nSJCU2GOWIeFKjxcqYkIyYNjJ2+Agh7JQME7pYfeXeyqWlewLi61Xp3jzAU6exH8l/6m0w -luzKDaoyw4XR9apIGkRSbmgi7sMhCqpxgWUuOYZj4cqxOXJsaR9vgdwOpvrvMMTahIjQSc -Es2qzsqvoyqV0pAufOAgO77NgawhGpO6E8nOm2W5TFvfAQLXdjcb7drKTgeSLgfLPeVITH -0a6AYyGij6N1QkOEADH3AwapJwbV6WFb0n/n6CnAfcfZ9ZDRhHC8R14Mc+EhZ2KiwwvKdk -qrchmspx6dWEs/nLABAAABAB7tCOMMbB4KC4/e2GIQCbW1DiTQOWwpGFTjhRf8f41fU6Wg -yT5W7CN4olPUWOnCs+CtyKdCtQdhZzMxhE9Kj01S0hBCJeNQibIq8CKmzab7XvSnSRdzsT -qm7hyo7Yvo3EFeBxHTaOAQ99CcgevX+CYGibj6EXs35vqjRXZ9OEnBJ+bbMJGU5JCINeb8 -ZiC9T/TTXBgemPYcmKb+LzxgJWco8hI9W9t37OmrAagdeXo3P1KWym0rWknlxF9glOdgZe -WsxcaErNhOos6tD2Jq/WUjQdEDwoYscpm5QMwkNqWKdFa/WK60S4e/bZdK/JOV4Dbd0Ukz -pl77sLYP+TT+wMcAAAEBANIwTNTjtoRws0XMioRg1yPU9XA577ZFh0E0qVFyhOKlAaZQo/ -qElZkaqd3IAkxXtJ9T80r5mMZxJL/9PBQIWLCSkvUC91qMNyBw0W9lr5S10JAl5vG27WOt -cGFJzdWa3g9DwZuyr5bTh62zV9ET1v/vr33fGf60g8H9SMQcb2oPqqkoZHMEcgeqhrd843 -zBm7nuFkY74WaCH1n78vkazKSGKVbUxwdh9MgMRW6mYf/HkAM7nuMqcubyZ4oF3OmCEizd -NBoEjAJtQNI5dms0BPuZBoqu1av52F9IIX+PI4miI5E7i8DNImMJQozCLlG4QWBrjd6oAp -UXqBWs+gg7lQEAAAEBAM2n6Vz3tsP4Y2JP3rKHUcCA5JuuzHVuemGj18C6Xh6cdYUy7RSe -F042HBRl/3nuV4H4+lfr3Ur5yCERBdyOUeeuGfNlZhWXwwy+myYSUtT/dNGN5P8wFK/sxc -pmbqM9Sl/TlEudYwqMBZzlzquzys3UBtEmtsM8Bgdxwd+vn94a4nKkGr5X0SfE8evpZWuS -dQywRfA0aPxSwORoTmYzr6yEWQzywYUlC1Gd9hW6Fy8lYKGx9SZXnrvxsRQBQwAQbnvHGL -FbF138AwwkrKJPtedQZkAs4teFg8ggPuA3SpWFcjEJGKQYwkpMxjHmiP9AvS0t34PJOiYa -i9cQ/l2FBHkAAAAWeW91cl9lbWFpbEBleGFtcGxlLmNvbQECAwQF ------END OPENSSH PRIVATE KEY----- diff --git a/apps/next-terminal/README.md b/apps/next-terminal/README.md deleted file mode 100644 index 040a9d3d..00000000 --- a/apps/next-terminal/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Next Terminal - -[![Docker guacd build](https://github.com/dushixiang/next-terminal/actions/workflows/docker-guacd.yml/badge.svg)](https://github.com/dushixiang/next-terminal/actions/workflows/docker-guacd.yml) -[![Docker next-terminal build](https://github.com/dushixiang/next-terminal/actions/workflows/docker-next-terminal.yml/badge.svg)](https://github.com/dushixiang/next-terminal/actions/workflows/docker-next-terminal.yml) - -## 快速了解 - -Next Terminal是一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议。 - -目前支持的功能有: - -- 授权凭证管理 -- 资产管理(支持RDP、SSH、VNC、TELNET协议) -- 指令管理 -- 批量执行命令 -- 在线会话管理(监控、强制断开) -- 离线会话管理(查看录屏) -- 双因素认证 -- 资产标签 -- 资产授权 -- 多用户&用户分组 -- 计划任务 -- ssh server -- 登录策略 -- 系统监控 - -## 在线体验 - -**web** - -https://next.typesafe.cn/ 账号:test 密码:test - -**ssh server** - -主机:next.typesafe.cn -端口:2022 -账号:test 密码:test - -## 协议与条款 - -如您需要在企业网络中使用 next-terminal,建议先征求 IT 管理员的同意。下载、使用或分发 next-terminal 前,您必须同意 [协议](./LICENSE) 条款与限制。本项目不提供任何担保,亦不承担任何责任。 - -## 快速安装 - -- [安装文档](https://next-terminal.typesafe.cn) - -默认账号密码为 admin/admin 。 - -## 手动编译 - -1. 找一台Linux 机器或者Mac -2. 安装 go 1.18 或以上版本 -3. 安装 nodejs 16,安装 npm 或 yarn -4. 进入 web 目录 执行 yarn 或 npm install -5. 返回上级目录,也就是项目根目录,执行 sh build.sh - -## 问题反馈 - -- Issues -- 微信群 加我微信拉你进群 (请备注 next-terminal) - - - -- QQ群 938145268 -- Telegram https://t.me/next_terminal - -## 安全问题 - -如果您在使用过程中发现了安全问题,请发送邮件至 helloworld1024@foxmail.com 联系我,谢谢。 - -## License - -Next Terminal 使用 [AGPL-3.0](./LICENSE) 开源协议,请自觉遵守。 \ No newline at end of file diff --git a/apps/next-terminal/data.yml b/apps/next-terminal/data.yml deleted file mode 100644 index 9eaa7223..00000000 --- a/apps/next-terminal/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Next Terminal -tags: - - 工具 -title: 一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议 -type: 工具 -description: 一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议 -additionalProperties: - key: next-terminal - name: Next Terminal - tags: - - Tool - shortDescZh: 一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议 - shortDescEn: A simple, easy-to-use and secure open source interactive audit system that supports RDP, SSH, VNC, Telnet, and Kubernetes protocols - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://next-terminal.typesafe.cn/ - github: https://github.com/dushixiang/next-terminal - document: https://next-terminal.typesafe.cn/docs/ diff --git a/apps/next-terminal/logo.png b/apps/next-terminal/logo.png deleted file mode 100644 index 3a67631280f2f69e1a871434bba4792ba5c34e52..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 5592 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 - -> **Note** -> 1. Do not worry about security advisories above. They are fixed as soon as discovered and published to notify users -> 2. We develop OneDev at code.onedev.io for sake of dogfooding. All issues and pull requests should be submitted there - - - -
-

Self-hosted Git Server with Kanban and CI/CD

- -

-Quickstart -| Installation Guide -| All Documentation -

- -

-

- -## Out-of-box Symbol Search and Navigation - -Of course IDE is good at doing this, but often we need to search in old commits (investigate issues in release versions etc), and switching commits in IDE can be troublesome and slow.  - -It works by analyzing source code with ANTLR, extracting symbols for storage incrementally, fast and space efficient. Now supports Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS and R. GitHub adds this feature several years ago, but seems that it only works for main branch, and GitLab has to configure CI job to generate and upload LSIF which is troublesome and can occupy considerable space if you do it for each commit. - -You can also jump to symbol definition in diff while reviewing commits or pull requests. - -![searchsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/search-symbol.gif) - -![jumpsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/symbol.gif) - -## Code Search with Regular Expression - -You may switch to any commit, and search code with regular expression. OneDev under the hood indexes the code with Lucene incrementally. At search time, literal tri-grams in the regular expression are extracted for a coarse search, followed by exact match in the result. This makes the regex search blazing fast, even for large repositories like Linux. - -![regex](https://github.com/theonedev/onedev/raw/main/doc/images/regex-search.gif) - -## Annotate Source/Diff with Static Analysis Result to Facilitate Code Review - -Of course this can be done by many third party applications at GitHub, however they display the result on their own applications, and this makes review activities such as adding comment over analysis result difficult. Not to mention that you need to pay for these services. - -![annotation](https://github.com/theonedev/onedev/raw/main/doc/images/annotation.png) - -## Customizable Issue State and Field, with Deep CI/CD Integration - -The simple open/close state of GitHub/GitLab issues does not work well for many workflows. Considering issues submitted by customers: - -1. If developer closes issue upon committing the code, customer will be notified and may ask for the release fixing the issue. -2. If developer closes the issue at release time, QA might be confused at what issues to test as they all remain open at test time.  - -With customizable issue states, we may address the issue with four states: open, committed, test ready and released: - -1. When code is committed, issue transits to committed state automatically -2. When a test build is created and deployed, the issue transits to test ready state automatically. QA will be notified and can check issue detail to know which environment the test build is deployed into. -3. When test passes, and a release build is created, customers submitting the issue will be notified and they can check issue detail to see which release contains the fix. - -![boards](https://github.com/theonedev/onedev/raw/main/doc/images/boards.png) - -![fixing-build](https://github.com/theonedev/onedev/raw/main/doc/images/fixing-build.png) - -## Service Desk to Create/Discuss Issues via Email - -Service desk allows your users to submit tickets via email without the need to have a OneDev account. These tickets can then be created in desired projects, and assigned to appropriate members in your team. All further discussions over the tickets can take place completely in email, with discussion contents posted to ticket as comments. User will also get notifications when there are any ticket activities, for instance, when a relevant release is created or deployed - -![service-desk.png](https://github.com/theonedev/onedev/raw/main/doc/images/service-desk.png) - -## A powerful and Intuitive Query Language - -Thanks to ANTLR again, OneDev ships sophisticated query languages for projects, commits, issues, builds, and pull requests, with intuitive auto-completions and hints. For instance, it enables our customers finding fixed issues between their running release and latest release, and enables us to find all commits submitted by someone touching specified modules, etc.  - -Queries can be saved and subscribed, so that you won't miss anything interested. - -![query](https://github.com/theonedev/onedev/raw/main/doc/images/query.gif) - -## A Full-fledge CI/CD Engine without Writing Yaml - -OneDev ships with GUI to generate CI/CD Yaml. No need to google around for Yaml grammars. A one-liner docker command to start OneDev server and you have a local CI/CD runner automatically. Concerns about server capability to run massive jobs? Another one-liner to connect self-updating agent from any machine. Want auto-scale CI/CD farm? A helm one-liner to deploy OneDev into k8s cluster.  - -Build pipeline, matrix jobs, typed parameters, parameter chaining, step templates, build promotions… too many neat features to elaborate… - -![job-def](https://github.com/theonedev/onedev/raw/main/doc/images/job-command.gif) - -![run-job](https://github.com/theonedev/onedev/raw/main/doc/images/build-option.gif) - -![pipeline.gif](https://github.com/theonedev/onedev/raw/main/doc/images/pipeline.gif) - -## Flexible Pull Request Review Policy and Reviewer Suggestion - -Specify pull request review policy based on author, branch, and changed files. OneDev can leverage git change history to suggest most appropriate reviewers for pull requests touching certain files. - -![review-policy](https://github.com/theonedev/onedev/raw/main/doc/images/review-policy.gif) - -## Lightweight Review without Pull Request - -Comment on any part of code or diff to start a lightweight review without opening pull request. Review comments live through code modification and even file rename to serve as documentation.  - -Each discussion is threaded so that you can easily know discussions with new comments/updates. - -![file-comment](https://github.com/theonedev/onedev/raw/main/doc/images/file-comment.gif) - -![thread-comments](https://github.com/theonedev/onedev/raw/main/doc/images/threaded-comments.png) - -## Command Palette to Access Features Quickly - -Press cmd/ctrl-k to bring up command palette from anywhere. Search projects, files, issues, pull requests, builds, and various settings and jump to them without leaving your keyboard - -![command-palette.gif](https://github.com/theonedev/onedev/raw/main/doc/images/command-palette.gif) - -## Write Markdown Pleasantly With a Smart Editor - -When embedding an image in a markdown file in GitHub/GitLab, you need to upload the image in a separate page, and then figure out the relative path to reference that image. With OneDev, you simply upload the image to desired folder in same editor, and the link will be generated automatically.  - -OneDev tracks your cursor in edit window and scrolls the preview window as necessary so that you can always preview what you are typing. - -![markdown](https://github.com/theonedev/onedev/raw/main/doc/images/markdown.gif) - -## SLOC Trend By Language - -OneDev inspects git history of main branch to calculate trend of source lines of code by language efficiently. - -![stats](https://github.com/theonedev/onedev/raw/main/doc/images/stats.png) - -## Project Hierarchy to Facilitate Setting Inheritance - -Organization is ideal for public service. However for self-hosted internal use, we feel that a hierarchical structure is more practical to organize projects. Child projects can inherit settings from parent project and can selectively override some of them if necessary. This reduces a lot of overhead to manage a lot of projects in the company. - -## Fast and Reliable with Moderate Resource Usage - -OneDev is carefully designed with performance in mind. With a 2 core 2GB box, you will get all features above for medium sized projects. -It has been intensively used for more than 5 years, with battle-proven reliability. Fixing bugs is our highest priority, and there is -normally few to no known bugs in the wild. - ----- - -# Special Thanks - -![yourkit](https://www.yourkit.com/images/yklogo.png) - -[YourKit](https://yourkit.com) supports this project by providing a free open source license of their excellent Java profiler \ No newline at end of file diff --git a/apps/onedev/data.yml b/apps/onedev/data.yml deleted file mode 100644 index d188a74a..00000000 --- a/apps/onedev/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: OneDev -tags: - - CI/CD -title: 具有 CI/CD 和Kanban的自托管 Git 服务器 -type: CI/CD -description: 具有 CI/CD 和Kanban的自托管 Git 服务器 -additionalProperties: - key: onedev - name: OneDev - tags: - - CI/CD - shortDescZh: 具有 CI/CD 和Kanban的自托管 Git 服务器 - shortDescEn: Self-hosted Git Server with CI/CD and Kanban - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://onedev.io - github: https://github.com/theonedev/onedev - document: https://docs.onedev.io \ No newline at end of file diff --git a/apps/onedev/logo.png b/apps/onedev/logo.png deleted file mode 100644 index e63903103a16e022ef1c8f2b7f4d4f589fffd0f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 5285 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
Pingvin Share - ---- - -_选择合适的语言阅读: [西班牙语](https://github.com/stonith404/pingvin-share/blob/main/docs/README.es.md), [英语](https://github.com/stonith404/pingvin-share/blob/main/README.md), [简体中文](https://github.com/stonith404/pingvin-share/blob/main/docs/README.zh-cn.md)_ - ---- - -Pingvin Share 是一个可自建的文件分享平台,是 WeTransfer 的一个替代品 - -## ✨ 特性 - -- 通过可自定义后缀的链接分享文件 -- 可自定义任意大小的文件上传限制 (受制于托管所在的硬盘大小) -- 对共享链接设置有效期限 -- 对共享链接设置访问次数和访问密码 -- 通过邮件自动发送共享链接 -- 整合 ClamAV 进行反病毒检查 - -## 🐧 了解一下 Pingvin Share - -- [示例网站](https://pingvin-share.dev.eliasschneider.com) -- [DB Tech 推荐视频](https://www.youtube.com/watch?v=rWwNeZCOPJA) - - - -## ⌨️ 自建指南 - -> 注意:Pingvin Share 仍处于开发阶段并且可能存在 bugs - -### Docker 部署 (推荐) - -1. 下载 `docker-compose.yml` -2. 运行命令 `docker-compose up -d` - -现在网站运行在 `http://localhost:3000`,尝试一下你本地的 Pingvin Share 🐧! - -### Stand-alone 部署 - -必须的依赖: - -- [Node.js](https://nodejs.org/en/download/) >= 16 -- [Git](https://git-scm.com/downloads) -- [pm2](https://pm2.keymetrics.io/) 用于后台运行 Pingvin Share - -```bash -git clone https://github.com/stonith404/pingvin-share -cd pingvin-share - -# 获取最新的版本 -git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`) - -# 启动后端 backend -cd backend -npm install -npm run build -pm2 start --name="pingvin-share-backend" npm -- run prod - -# 启动前端 frontend -cd ../frontend -npm install -npm run build -pm2 start --name="pingvin-share-frontend" npm -- run start -``` - -现在网站运行在 `http://localhost:3000`,尝试一下你本地的 Pingvin Share 🐧! - -### 整合组件 - -#### ClamAV (仅限 Docker 部署) - -扫描上传文件中是否存在可疑文件,如果存在 ClamAV 会自动移除 - -1. 在 docker-compose 配置中添加 ClamAV 容器 (见 `docker-compose.yml` 注释部分) 并启动容器 -2. Docker 会在启动 Pingvin Share 前启动 ClamAV,也许会花费 1-2 分钟 -3. Pingvin Share 日志中应该有 "ClamAV is active" - -请注意 ClamAV 会消耗很多 [系统资源(特别是内存)](https://docs.clamav.net/manual/Installing/Docker.html#memory-ram-requirements) - -### 更多资源 - -- [群晖 NAS 配置](https://mariushosting.com/how-to-install-pingvin-share-on-your-synology-nas/) - -### 升级 - -因为 Pingvin Share 仍处在开发阶段,在升级前请务必阅读 release notes 避免不可逆的改变 - -#### Docker 升级 - -```bash -docker compose pull -docker compose up -d -``` - -#### Stand-alone 升级 - -1. 停止正在运行的 app - ```bash - pm2 stop pingvin-share-backend pingvin-share-frontend - ``` -2. 重复 [installation guide](#stand-alone-installation) 中的步骤,除了 `git clone` 这一步 - - ```bash - cd pingvin-share - - # 获取最新的版本 - git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`) - - # 启动后端 backend - cd backend - npm run build - pm2 restart pingvin-share-backend - - # 启动前端 frontend - cd ../frontend - npm run build - pm2 restart pingvin-share-frontend - ``` - -### 自定义品牌 - -你可以在管理员配置页面改变网站的名字和 logo - -## 🖤 提交贡献 - -非常欢迎向 Pingvin Share 提交贡献! 请阅读 [contribution guide](https://github.com/stonith404/pingvin-share/blob/main/CONTRIBUTING.md) 来提交你的贡献 diff --git a/apps/pingvin-share/data.yml b/apps/pingvin-share/data.yml deleted file mode 100644 index 5cc2c234..00000000 --- a/apps/pingvin-share/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Pingvin Share -tags: - - 工具 -title: 一个可自建的文件分享平台 -type: 工具 -description: 一个可自建的文件分享平台 -additionalProperties: - key: pingvin-share - name: Pingvin Share - tags: - - Tool - shortDescZh: 一个可自建的文件分享平台 - shortDescEn: s self-hosted file sharing platform - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/stonith404/pingvin-share - github: https://github.com/stonith404/pingvin-share - document: https://github.com/stonith404/pingvin-share diff --git a/apps/pingvin-share/logo.png b/apps/pingvin-share/logo.png deleted file mode 100644 index c49c2b689ada4d8d0cb5b55d2432dc863d84cfd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 8522 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 Eg4VjMuK)l5 diff --git a/apps/searxng/2023.7.1-5720844f/data.yml b/apps/searxng/2023.7.1-5720844f/data.yml deleted file mode 100644 index 943d3461..00000000 --- a/apps/searxng/2023.7.1-5720844f/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 40032 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: http://localhost:40032 - edit: true - envKey: SEARXNG_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - type: text \ No newline at end of file diff --git a/apps/searxng/2023.7.1-5720844f/docker-compose.yml b/apps/searxng/2023.7.1-5720844f/docker-compose.yml deleted file mode 100644 index 10338387..00000000 --- a/apps/searxng/2023.7.1-5720844f/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - searxng: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8080" - volumes: - - "./data:/etc/searxng" - environment: - - BASE_URL=${SEARXNG_EXTERNAL_URL} - image: searxng/searxng:2023.7.1-5720844f - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/searxng/README.md b/apps/searxng/README.md deleted file mode 100644 index 5cc63a14..00000000 --- a/apps/searxng/README.md +++ /dev/null @@ -1,82 +0,0 @@ ------------------------------------------------------------------------- - -SearXNGlogo - ------------------------------------------------------------------------- - -Privacy-respecting, hackable [meta search engine](https://en.wikipedia.org/wiki/Metasearch_engine) - -[Searx.space](https://searx.space) lists ready-to-use running instances. - -A [user](https://docs.searxng.org/user),[admin](https://docs.searxng.org/admin) and[developer](https://docs.searxng.org/dev) handbook is available on the[homepage](https://docs.searxng.org/). - -[![SearXNG -install](https://img.shields.io/badge/-install-blue)](https://docs.searxng.org/admin/installation.html) [![SearXNG -homepage](https://img.shields.io/badge/-homepage-blue)](https://docs.searxng.org/) [![SearXNGwiki](https://img.shields.io/badge/-wiki-blue)](https://github.com/searxng/searxng/wiki) [![AGPLLicense](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/searxng/searxng/blob/master/LICENSE) [![Issues](https://img.shields.io/github/issues/searxng/searxng?color=yellow&label=issues)](https://github.com/searxng/searxng/issues) [![commits](https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits)](https://github.com/searxng/searxng/commits/master) [![weblate](https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg)](https://translate.codeberg.org/projects/searxng/)
SearXNGlogo - - ------------------------------------------------------------------------- - -# Contact - -Ask questions or just chat about SearXNG on - -IRC - - [#searxng on libera.chat](https://web.libera.chat/?channel=#searxng) which is bridged to Matrix. - -Matrix - - [#searxng:matrix.org](https://matrix.to/#/#searxng:matrix.org) - -# Differences to searx - -SearXNG is a fork of [searx](https://github.com/searx/searx), with notable changes: - -## User experience - -- Reworked (and still simple) theme: - - Usable on desktop, tablet and mobile. - - Light and dark versions (available in the preferences). - - Right-to-left language support. - - [Screenshots](https://dev.searxng.org/screenshots.html) -- The translations are up to date, you can contribute on [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) -- The preferences page has been updated: - - Browse which engines are reliable or not. - - Engines are grouped inside each tab. - - Each engine has a description. -- Thanks to the anonymous metrics, it is easier to report malfunctioning engines, so they get fixed quicker - - [Turn off metrics on the server](https://docs.searxng.org/admin/engines/settings.html#general)if you don\'t want them recorded. -- Administrators can [block and/or replace the URLs in the search results](https://github.com/searxng/searxng/blob/5c1c0817c3996c5670a545d05831d234d21e6217/searx/settings.yml#L191-L199) - -## Setup - -- No need for [Morty](https://github.com/asciimoo/morty) to proxy images, even on a public instance. -- No need for [Filtron](https://github.com/searxng/filtron) to block bots, as there is now a built-in [limiter](https://docs.searxng.org/src/searx.plugins.limiter.html). -- A well maintained [Dockerimage](https://github.com/searxng/searxng-docker), now also built for ARM64 and ARM/v7 architectures. (Alternatively there are up to date installation scripts.) - -## Contributing - -- Readable debug log. -- Contributing is easier, thanks to the [Development Quickstart](https://docs.searxng.org/dev/quickstart.html) guide. -- A lot of code cleanup and bugfixes. -- Up to date list dependencies. - -# Translations - -Help translate SearXNG at [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) - -![](https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg) - -# Codespaces - -You can contribute from your browser using [GitHub Codespaces](https://docs.github.com/en/codespaces/overview): - -- Fork the repository -- Click on the `<> Code` green button -- Click on the `Codespaces` tab instead of `Local` -- Click on `Create codespace on master` -- VSCode is going to start in the browser -- Wait for `git pull && make install` to appears and then to disapear -- You have [120 hours per month](https://github.com/settings/billing)(see also your [list of existing Codespaces](https://github.com/codespaces)) -- You can start SearXNG using `make run` in the terminal or by pressing `Ctrl+Shift+B`. diff --git a/apps/searxng/data.yml b/apps/searxng/data.yml deleted file mode 100644 index c8a3b5bb..00000000 --- a/apps/searxng/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: SearXNG -tags: - - 建站 -title: 一个免费的互联网元聚合搜索引擎 -type: 建站 -description: 一个免费的互联网元聚合搜索引擎 -additionalProperties: - key: searxng - name: SearXNG - tags: - - WebSite - shortDescZh: 一个免费的互联网元聚合搜索引擎 - shortDescEn: A free internet meta-aggregator search engine - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/searxng/searxng - github: https://github.com/searxng/searxng - document: https://docs.searxng.org/ diff --git a/apps/searxng/logo.png b/apps/searxng/logo.png deleted file mode 100644 index 3eeefdc8384f9469a274d7742ab24bdad54dbd95..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 4532 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 SPX9ds0000 - - -

-

- -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/privoce/vocechat-web/issues) -![GitHub issues](https://img.shields.io/github/issues-raw/Privoce/vocechat-web) ![GitHub](https://img.shields.io/github/license/privoce/vocechat-web) ![GitHub top language](https://img.shields.io/github/languages/top/privoce/vocechat-web) ![Docker Pulls](https://img.shields.io/docker/pulls/privoce/vocechat-server) - -
- -- 🎉 Powered by React & Redux Toolkit -- ✅ Typescript -- 📦 PWA -- 📢 Notification - -## Host your server! Or use our test server - -- Host your own Voce server ([docker image](https://hub.docker.com/r/privoce/vocechat-server/tags)): - Run on x86_64 platform: - -```bash -docker run -d --restart=always \ - -p 3000:3000 \ - --name vocechat-server \ - privoce/vocechat-server:latest -``` - -For more server hosting instructions, see our documentation: https://doc.voce.chat/ - -## Preview - -- official site: https://voce.chat -- live demo: https://privoce.voce.chat/ -- demo API Docs (Swagger): https://dev.voce.chat/api/swagger - -- design: https://www.figma.com/file/EHnNr53kNmDWgUT86It6CH/UI -- text editor: https://plate.udecode.io/docs/installation -- markdown editor: https://nhn.github.io/tui.editor/latest/ -- redux: [@reduxjs/toolkit](https://redux-toolkit.js.org/introduction/getting-started) -- indexDB wrapper: https://github.com/localForage/localForage - -## Local Development - -- `git clone https://github.com/Privoce/vocechat-web vocechat-web` - -- `cd vocechat-web & yarn install` - -- `yarn start` - -- Open `localhost:3009` - -### Tools Recommended - -- [VS Code](https://code.visualstudio.com/) Editor Recommended -- VS Code plugins: - - [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint): ESLint - - [esbenp.prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode): Prettier - - [dsznajder.es7-react-js-snippets](https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets): Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax - -## License - -[GPL v3](https://github.com/Privoce/vocechat-web/blob/main/LICENSE) - -## Thanks all the contributors - - - - - -Discuss collaboration: han@privoce.com or https://bridger.chat/han - -Telegram group: https://t.me/opencfdchannel VoceChat: https://voce.chat - -Telegram channel: https://t.me/vocechat_group VoceChat Channel: https://privoce.voce.chat diff --git a/apps/vocechat/data.yml b/apps/vocechat/data.yml deleted file mode 100644 index 43e6af52..00000000 --- a/apps/vocechat/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: VoceChat -tags: - - 工具 -title: 一款支持独立部署的个人云社交媒体聊天服务 -type: 工具 -description: 一款支持独立部署的个人云社交媒体聊天服务 -additionalProperties: - key: vocechat - name: VoceChat - tags: - - Tool - shortDescZh: 一款支持独立部署的个人云社交媒体聊天服务 - shortDescEn: a secure chat software that supports independent deployment - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://voce.chat - github: https://github.com/Privoce/vocechat-web - document: https://doc.voce.chat diff --git a/apps/vocechat/logo.png b/apps/vocechat/logo.png deleted file mode 100644 index 3843cc1f790d30d8beb0a1212422a4c17ed37b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 22787 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 z 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