2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 10:17:17 +08:00

feat: hello AcePanel

This commit is contained in:
2025-08-22 05:24:54 +08:00
parent 96454df9a5
commit 3a49428654
16 changed files with 104 additions and 22 deletions

View File

@@ -9,7 +9,7 @@
## Code of Conduct
The Rat Panel complies with the industry's common code of conduct. Any breach of the Code of Conduct can be reported to us:
The AcePanel complies with the industry's common code of conduct. Any breach of the Code of Conduct can be reported to us:
- Participants will be tolerant of opposing views.
- Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.

View File

@@ -2,7 +2,7 @@
[<a href="README.md">简体中文</a>] | [English]
</p>
<h1 align="center" style="font-size: 40px">Rat Panel</h1>
<h1 align="center" style="font-size: 40px">AcePanel</h1>
<div align="center">
@@ -44,7 +44,7 @@ curl -sSLOm 10 https://dl.cdn.haozi.net/panel/install.sh && bash install.sh
## Partners
If the Rat Panel is helpful to you, welcome to [sponsor us](https://github.com/tnborg/panel/issues/90), also thanks to the following supporters/sponsors:
If the AcePanel is helpful to you, welcome to [sponsor us](https://github.com/tnborg/panel/issues/90), also thanks to the following supporters/sponsors:
<p align="center">
<a href="https://www.weixiaoduo.com/">

View File

@@ -1,5 +1,5 @@
/*
Copyright (C) 2022 - now Rat Technology Co., Ltd.
Copyright (C) 2022 - now AcePanel.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published

View File

@@ -1,5 +1,5 @@
/*
Copyright (C) 2022 - now Rat Technology Co., Ltd.
Copyright (C) 2022 - now AcePanel.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published

View File

@@ -36,7 +36,7 @@ func NewCli(t *gotext.Locale, cmd *route.Cli) *cli.Command {
return &cli.Command{
Name: "panel-cli",
Usage: t.Get("Rat Panel CLI Tool"),
Usage: t.Get("AcePanel CLI Tool"),
Version: app.Version,
Commands: cmd.Commands(),
}

View File

@@ -151,7 +151,7 @@ func (r *userRepo) IsTwoFA(username string) (bool, error) {
func (r *userRepo) GenerateTwoFA(id uint) (image.Image, string, string, error) {
key, err := totp.Generate(totp.GenerateOpts{
Issuer: "RatPanel",
Issuer: "AcePanel",
AccountName: cast.ToString(id),
SecretSize: 32,
Algorithm: otp.AlgorithmSHA1,

View File

@@ -55,7 +55,7 @@ func NewDashboardService(t *gotext.Locale, conf *koanf.Koanf, task biz.TaskRepo,
func (s *DashboardService) Panel(w http.ResponseWriter, r *http.Request) {
name, _ := s.settingRepo.Get(biz.SettingKeyName)
if name == "" {
name = s.t.Get("Rat Panel")
name = s.t.Get("AcePanel")
}
Success(w, chix.M{

View File

@@ -110,7 +110,7 @@ func GenerateSelfSigned(names []string) (cert []byte, key []byte, err error) {
rootTemplate := x509.Certificate{
SerialNumber: big.NewInt(1),
Subject: pkix.Name{CommonName: "Rat Panel Root CA"},
Subject: pkix.Name{CommonName: "AcePanel Root CA"},
NotBefore: time.Now(),
NotAfter: time.Now().AddDate(20, 0, 0),
BasicConstraintsValid: true,
@@ -135,7 +135,7 @@ func GenerateSelfSigned(names []string) (cert []byte, key []byte, err error) {
interTemplate := x509.Certificate{
SerialNumber: big.NewInt(2),
Subject: pkix.Name{CommonName: "Rat Panel CA"},
Subject: pkix.Name{CommonName: "AcePanel CA"},
NotBefore: time.Now(),
NotAfter: time.Now().AddDate(10, 0, 0),
BasicConstraintsValid: true,
@@ -161,7 +161,7 @@ func GenerateSelfSigned(names []string) (cert []byte, key []byte, err error) {
clientTemplate := x509.Certificate{
SerialNumber: big.NewInt(3),
Subject: pkix.Name{CommonName: "Rat Panel"},
Subject: pkix.Name{CommonName: "AcePanel"},
NotBefore: time.Now(),
NotAfter: time.Now().AddDate(10, 0, 0),
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment,

View File

@@ -49,7 +49,7 @@
<body>
<div class="container">
<h1>404 Not Found</h1>
<p>Powered by <a target="_blank" href="https://panel.haozi.net">Rat Panel</a></p>
<p>Powered by <a target="_blank" href="https://acepanel.net">AcePanel</a></p>
</div>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rat Panel</title>
<title>AcePanel</title>
<style>
body {
background-color: #f9f9f9;
@@ -49,10 +49,10 @@
</head>
<body>
<div class="container">
<h1>Rat Panel</h1>
<p>This is the default page for the Rat Panel website!</p>
<h1>AcePanel</h1>
<p>This is the default page for the AcePanel website!</p>
<p>When you see this page, it means your website has been created successfully.</p>
<p>Powered by <a target="_blank" href="https://panel.haozi.net">Rat Panel</a></p>
<p>Powered by <a target="_blank" href="https://acepanel.net">AcePanel</a></p>
</div>
</body>
</html>

View File

@@ -25,7 +25,7 @@ func (suite *RSATestSuite) TestRSA() {
suite.NotEmpty(PrivateKeyToString(privateKey))
suite.NotEmpty(PublicKeyToString(&privateKey.PublicKey))
message := []byte("Rat Panel")
message := []byte("AcePanel")
// 加密数据
ciphertext, err := EncryptData(&privateKey.PublicKey, message)

View File

@@ -4,8 +4,8 @@
预了解更多请移步 [耗子面板](https://github.com/tnborg/panel)。
# Rat Panel
# AcePanel
This is the frontend part of Rat Panel, developed using Vue3 + Vite + UnoCSS + Naive UI.
This is the frontend part of AcePanel, developed using Vue3 + Vite + UnoCSS + Naive UI.
For more information, please visit [Rat Panel](https://github.com/tnborg/panel).
For more information, please visit [AcePanel](https://github.com/tnborg/panel).

View File

@@ -65,6 +65,7 @@
"@types/luxon": "^3.6.2",
"@types/node": "^22.15.21",
"@types/node-forge": "^1.3.11",
"@typescript/native-preview": "7.0.0-dev.20250808.1",
"@unocss/eslint-config": "^66.1.2",
"@vitejs/plugin-vue": "^6.0.0",
"@vue/eslint-config-prettier": "^10.2.0",

81
web/pnpm-lock.yaml generated
View File

@@ -123,6 +123,9 @@ importers:
'@types/node-forge':
specifier: ^1.3.11
version: 1.3.13
'@typescript/native-preview':
specifier: 7.0.0-dev.20250808.1
version: 7.0.0-dev.20250808.1
'@unocss/eslint-config':
specifier: ^66.1.2
version: 66.4.2(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)
@@ -1159,6 +1162,53 @@ packages:
resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-sLYVMJcUL/nWbuttSKeEjov1yCPjVKSUzJQLSBQexLCefAbUjDSog91LB/+6So82FhV9hWlgiqEJ7KzYCW6+yA==}
engines: {node: '>=20.6.0'}
cpu: [arm64]
os: [darwin]
'@typescript/native-preview-darwin-x64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-zFsSYSm5Ko7bEaUgXCTHe/zb0nwB3fhTEMJXolAT87IGJ05PAkIHaDaODacb9BEJRrJzdHCQipbkhE3ZZsWgvQ==}
engines: {node: '>=20.6.0'}
cpu: [x64]
os: [darwin]
'@typescript/native-preview-linux-arm64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-4nZP2JaIrYqx15V6WWiwKgfUSfatB5Tz0Tw7tjE6H2LA8dhdQs8hFzQGHzaslOVPcx3352anCVMehjgEh+iKJg==}
engines: {node: '>=20.6.0'}
cpu: [arm64]
os: [linux]
'@typescript/native-preview-linux-arm@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-EL4183JV7254W2YnzBUurdnOa0VZmZp/vAAVApYTKTX57kUMM1rUZelvFzVt9Eg+QSgwnCwRkR0InRQVSDiqtA==}
engines: {node: '>=20.6.0'}
cpu: [arm]
os: [linux]
'@typescript/native-preview-linux-x64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-PXn6sjAStVFV9KjgmKCj6MrOi+ouVTtkJiU72zoLoejll+wT0xu3Hly4eRz5C+VKkWHXlaQvRV5E4Qcp57QWRA==}
engines: {node: '>=20.6.0'}
cpu: [x64]
os: [linux]
'@typescript/native-preview-win32-arm64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-bblUodDySZOZqCXZm9pNpyu+UfJLb5OmxYeNYKi+k+T+1MgbtmGFYk+FbJwZug/7z/Q6h1h+y2ryJyAovgV/Rg==}
engines: {node: '>=20.6.0'}
cpu: [arm64]
os: [win32]
'@typescript/native-preview-win32-x64@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-ocMKolDiUa/g68NcTySq8+b/hM1g+pxxpwm+pST/TSsRJ95j7lbcGeXhAXFZZHT8IUwsQFrf8rK/kByGMrapxQ==}
engines: {node: '>=20.6.0'}
cpu: [x64]
os: [win32]
'@typescript/native-preview@7.0.0-dev.20250808.1':
resolution: {integrity: sha512-gOjZikd2y3obz7yDQjOEoVGpJW8xj8U24xeFa5zNYjCJ3wLP6dCEHP8ndIwhP3pCzDwgwTblaQGAtY/zCqE2TA==}
engines: {node: '>=20.6.0'}
hasBin: true
'@unocss/astro@66.4.2':
resolution: {integrity: sha512-En3AKHwkiPxtZT95vkVrNiRYrB+DFVCikew6/dMMCWDWVKK0+5tEVUTzR1ak3+YnzAXl0NpWj8D4zHb0PxOs/A==}
peerDependencies:
@@ -4666,6 +4716,37 @@ snapshots:
'@typescript-eslint/types': 8.39.0
eslint-visitor-keys: 4.2.1
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-darwin-x64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-linux-arm64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-linux-arm@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-linux-x64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-win32-arm64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview-win32-x64@7.0.0-dev.20250808.1':
optional: true
'@typescript/native-preview@7.0.0-dev.20250808.1':
optionalDependencies:
'@typescript/native-preview-darwin-arm64': 7.0.0-dev.20250808.1
'@typescript/native-preview-darwin-x64': 7.0.0-dev.20250808.1
'@typescript/native-preview-linux-arm': 7.0.0-dev.20250808.1
'@typescript/native-preview-linux-arm64': 7.0.0-dev.20250808.1
'@typescript/native-preview-linux-x64': 7.0.0-dev.20250808.1
'@typescript/native-preview-win32-arm64': 7.0.0-dev.20250808.1
'@typescript/native-preview-win32-x64': 7.0.0-dev.20250808.1
'@unocss/astro@66.4.2(vite@7.1.1(@types/node@22.17.0)(jiti@2.5.1)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.3))':
dependencies:
'@unocss/core': 66.4.2

View File

@@ -10,7 +10,7 @@ const year = new Date().getFullYear()
<p>
© 2022 - {{ year }}
<a hover="decoration-primary color-primary" target="__blank" href="https://panel.haozi.net/">
{{ $gettext('Rat Panel') }}
{{ $gettext('AcePanel') }}
</a>
{{ $gettext('All Rights Reserved.') }}
</p>

View File

@@ -436,7 +436,7 @@ if (import.meta.hot) {
/>
</n-gi>
</n-grid>
<template #title>{{ $gettext('Rat Panel') }}</template>
<template #title>{{ $gettext('AcePanel') }}</template>
<template #extra>
<n-flex>
<n-button type="primary" @click="toSponsor">