Thanks to visit codestin.com
Credit goes to github.com

Skip to content

AirOpsCat 是一个基于 Quarkus 3.24.3 构建的现代化服务器管理系统,专为代理服务提供商设计。通过 GraalVM Native Image 技术实现超快启动时间和低内存占用,提供完整的用户管理、服务器管理、节点配置、流量统计和订阅服务等功能。

License

Notifications You must be signed in to change notification settings

fun90/AirOpsCat

Repository files navigation

AirOpsCat 🐱💨

一个轻量、灵活、高效的服务器管理系统,保持敏捷,掌控一切。

Java Quarkus License Build Status

📖 项目简介

AirOpsCat 是一个基于 Quarkus 3.24.3 构建的现代化服务器管理系统,专为代理服务提供商设计。通过 GraalVM Native Image 技术实现超快启动时间和低内存占用,提供完整的用户管理、服务器管理、节点配置、流量统计和订阅服务等功能。

预览 PC端

🎯 设计理念

  • 简单小巧: 轻量级架构,快速部署
  • 扩展性强: 模块化设计,易于定制
  • 高效稳定: 基于 Quarkus 3.24.3 和 Java 21
  • 用户友好: 现代化 Web 界面,响应式设计
  • 云原生: 支持 Native Image,超快启动时间(< 0.2秒)

✨ 功能列表

功能模块 主要特性 说明
👥 用户管理 多角色权限控制、用户认证、面板自助服务 支持管理员、合作伙伴、VIP用户三种角色
💰 账户管理 生命周期管理、流量统计、在线IP监控 流量配额管理、认证码生成、使用统计
🖥️ 服务器管理 SSH连接、配置模板、自动化部署 服务器信息管理和远程操作
🌐 节点管理 多协议支持、部署配置、状态监控 支持VLESS、Shadowsocks、SOCKS协议
📱 订阅服务 多平台支持、动态配置、实时更新 适配各主流客户端的订阅生成
📊 数据统计 流量统计、用户监控、财务记录 详细的使用数据分析和报表
🔔 通知服务 Bark推送、系统告警、用户通知 实时消息推送和状态提醒

🛠️ 技术栈

后端技术

  • 框架: Quarkus 3.24.3
  • 语言: Java 21
  • 数据库: SQLite + JPA/Hibernate
  • 安全: Quarkus Security + JPA Security
  • 模板引擎: Qute
  • 构建工具: Maven + GraalVM Native Image

前端技术

  • UI框架: Tabler UI 1.3.2
  • 响应式: petite-vue 0.4.1
  • 样式: Bootstrap 5 + CSS3
  • 图标: Tabler Icons

🚀 快速开始

默认用户密码

[email protected]

admin123

环境要求

  • 运行环境:
    • 方式一:Java 21 或更高版本(JAR 运行)
    • 方式二:无需 Java 环境(Native Image 运行)
  • 构建环境(仅开发时需要):
    • GraalVM 21.0.6+ (Native Image 构建)
    • Maven 3.6+ 或使用项目内置的 Maven Wrapper

方式一:下载预构建版本(推荐)

GitHub Releases 下载对应平台的 native 可执行文件:

# 下载并运行 Linux 版本
wget https://github.com/fun90/AirOpsCat/releases/latest/download/airopscat-linux-amd64
chmod +x airopscat-linux-amd64

# 直接运行(使用内置配置)
./airopscat-linux-amd64

# 使用外部配置文件运行(推荐)
./airopscat-linux-amd64 -Dquarkus.config.locations=./application.properties

Native Image 优势:

  • 极快启动: < 0.2 秒启动时间
  • 低内存占用: 相比 JVM 减少 70%+ 内存使用
  • 无需 Java 环境: 可独立运行
  • 文件大小: 约 128MB 单文件可执行程序

方式二:开发模式运行

# 克隆项目
git clone https://github.com/fun90/AirOpsCat.git
cd AirOpsCat

# 开发模式运行(支持热重载)
./mvnw quarkus:dev

# 访问开发控制台
# http://localhost:8080/q/dev

方式三:标准 JAR 构建

# 构建项目
./mvnw clean package

# 运行应用
java -jar target/quarkus-app/quarkus-run.jar

# 使用外部配置文件运行
java -Dquarkus.config.locations=./application.properties -jar target/quarkus-app/quarkus-run.jar

方式四:Native Image 构建

需要安装 GraalVM 21 和 Native Image:

# 安装 GraalVM Native Image 组件
gu install native-image

# 构建 native 可执行文件(需要 8GB+ 内存,约 4 分钟)
./mvnw package -Pnative -DskipTests -Dquarkus.native.additional-build-args=-J-Xmx8g

# 运行(< 0.2s 启动时间)
./target/airopscat-linux-amd64

⚙️ 配置说明

基础配置

应用支持内置配置和外部配置文件两种方式。外部配置文件优先级更高,推荐在生产环境使用。

外部 application.properties 文件(通过 -Dquarkus.config.locations 指定)

🚀 部署指南

Native Image 部署(推荐)

# 下载并部署 Native Image
wget https://github.com/fun90/AirOpsCat/releases/latest/download/airopscat-linux-amd64
chmod +x airopscat-linux-amd64

# 创建外部配置文件
cat > application.properties << EOF
quarkus.http.port=8080
airopscat.crypto.secret-key=your-production-secret-key
airopscat.subscription.url=https://your-domain.com/subscribe
airopscat.bark.url=https://api.day.app
airopscat.bark.device-key=your-device-key
EOF

# 启动应用
./airopscat-linux-amd64 -Dquarkus.config.locations=./application.properties

系统服务部署

Systemd 服务

# 创建应用目录
sudo mkdir -p /opt/airopscat
sudo cp airopscat-linux-amd64 /opt/airopscat/
sudo cp application.properties /opt/airopscat/
sudo chmod +x /opt/airopscat/airopscat-linux-amd64

# 创建 systemd 服务文件
sudo tee /etc/systemd/system/airopscat.service > /dev/null << EOF
[Unit]
Description=AirOpsCat Server Management System
After=network.target

[Service]
Type=exec
User=airopscat
Group=airopscat
WorkingDirectory=/opt/airopscat
ExecStart=/opt/airopscat/airopscat-linux-amd64 -Dquarkus.config.locations=/opt/airopscat/application.properties
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# 创建用户和启动服务
sudo useradd -r -s /bin/false airopscat
sudo chown -R airopscat:airopscat /opt/airopscat
sudo systemctl daemon-reload
sudo systemctl enable airopscat
sudo systemctl start airopscat

反向代理配置

Nginx 配置示例

server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://localhost:8080;
        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;
    }
}

🤝 贡献指南

我们欢迎所有形式的贡献!

开发环境搭建

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

代码规范

  • 遵循 Java 编码规范
  • 使用 Lombok 简化代码
  • 添加适当的注释
  • 编写单元测试

提交规范

feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动

版本规划

  • v2.0.8

    • 续费自动增加流水
    • 服务器过期、提醒
    • 域名过期、提醒
    • 服务器流量统计
  • v2.0.9

    • 账户流量排序
    • 账户流量:当前周期标记(创建流量调整标记、用户过期取消标记)
    • 账户流量搜索:当前周期、用户
    • 账户流量字段显示优化
  • v2.1.0

    • 账户IP历史记录
    • 账户节点列表
    • 账户节点配置文件:选择节点生成配置
    • 配置链接二维码
  • v2.2.0 UI

    • 列表调整:隐藏ID等
    • 简洁统计
    • badge背景调整
  • v2.2.1 UI

    • 登录页重新设计
  • v3.0.0 重构

    • 清理API接口
    • 清理Java代码
    • 去除无用字段:服务器配置信息字段
    • 简化优化代码
    • 调整目录结构
  • v3.0.1

    • 接口层返回参数只使用Dto
    • 减少编译文件大小:简化JsonReflectionConfiguration

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

📞 联系我们


⭐ 如果这个项目对您有帮助,请给我们一个星标!

About

AirOpsCat 是一个基于 Quarkus 3.24.3 构建的现代化服务器管理系统,专为代理服务提供商设计。通过 GraalVM Native Image 技术实现超快启动时间和低内存占用,提供完整的用户管理、服务器管理、节点配置、流量统计和订阅服务等功能。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •