修改统一名称

This commit is contained in:
qaq
2025-08-20 16:38:09 +08:00
parent 8dc171fe4b
commit a8e283f31b
31 changed files with 96 additions and 95 deletions
+3 -3
View File
@@ -1,4 +1,4 @@
# 哆啦A梦转发面板 # flux-panel转发面板
本项目基于 [go-gost/gost](https://github.com/go-gost/gost) 和 [go-gost/x](https://github.com/go-gost/x) 两个开源库,实现了转发面板。 本项目基于 [go-gost/gost](https://github.com/go-gost/gost) 和 [go-gost/x](https://github.com/go-gost/x) 两个开源库,实现了转发面板。
@@ -75,7 +75,7 @@
#### 快速部署 #### 快速部署
```bash ```bash
curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh curl -L https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh
``` ```
@@ -128,5 +128,5 @@ curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/p
**⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!** **⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!**
[![Star History Chart](https://api.star-history.com/svg?repos=bqlpfy/forward-panel&type=Date)](https://www.star-history.com/#bqlpfy/forward-panel&Date) [![Star History Chart](https://api.star-history.com/svg?repos=bqlpfy/flux-panel&type=Date)](https://www.star-history.com/#bqlpfy/flux-panel&Date)
+2 -2
View File
@@ -4,11 +4,11 @@ plugins {
} }
android { android {
namespace 'com.doraemon' namespace 'com.flux'
compileSdk 34 compileSdk 34
defaultConfig { defaultConfig {
applicationId "com.doraemon" applicationId "com.flux"
minSdk 24 minSdk 24
targetSdk 34 targetSdk 34
versionCode 1 versionCode 1
@@ -1,4 +1,4 @@
package com.doraemon package com.flux
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() { fun useAppContext() {
// Context of the app under test. // Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.doraemon", appContext.packageName) assertEquals("com.flux", appContext.packageName)
} }
} }
+4 -3
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" > xmlns:tools="http://schemas.android.com/tools"
package="com.flux" >
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -13,11 +14,11 @@
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.Doraemon" android:theme="@style/Theme.Flux"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="31" > tools:targetApi="31" >
<activity <activity
android:name=".MainActivity" android:name="com.flux.MainActivity"
android:exported="true" android:exported="true"
android:configChanges="uiMode|orientation|screenSize" > android:configChanges="uiMode|orientation|screenSize" >
<intent-filter> <intent-filter>
@@ -60490,7 +60490,7 @@ function useAriaButton$7(props, ref) {
}; };
} }
"use client"; "use client";
var domAnimation$9 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$9 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var Ripple = (props) => { var Ripple = (props) => {
const { ripples = [], motionProps, color: color2 = "currentColor", style: style2, onClear } = props; const { ripples = [], motionProps, color: color2 = "currentColor", style: style2, onClear } = props;
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: ripples.map((ripple) => { return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: ripples.map((ripple) => {
@@ -79636,7 +79636,7 @@ function $8ac8429251c45e4b$export$dbc0f175b25fb0fb$2(props, state2, ref) {
}; };
} }
"use client"; "use client";
var domAnimation$8 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$8 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var NavbarMenu = forwardRef$4((props, ref) => { var NavbarMenu = forwardRef$4((props, ref) => {
var _a2, _b; var _a2, _b;
const { className, children, portalContainer, motionProps, style: style2, ...otherProps } = props; const { className, children, portalContainer, motionProps, style: style2, ...otherProps } = props;
@@ -80176,7 +80176,7 @@ function useNavbar(originalProps) {
}; };
} }
"use client"; "use client";
var domAnimation$7 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$7 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var Navbar$1 = forwardRef$4((props, ref) => { var Navbar$1 = forwardRef$4((props, ref) => {
const { children, ...otherProps } = props; const { children, ...otherProps } = props;
const context = useNavbar({ ...otherProps, ref }); const context = useNavbar({ ...otherProps, ref });
@@ -81000,7 +81000,7 @@ const VERSION = "1.2.11";
const getInitialConfig = () => { const getInitialConfig = () => {
if (typeof window === "undefined") { if (typeof window === "undefined") {
return { return {
name: "哆啦A梦", name: "flux-panel",
version: VERSION version: VERSION
}; };
} }
@@ -81012,7 +81012,7 @@ const getInitialConfig = () => {
}; };
} }
return { return {
name: "哆啦A梦", name: "flux-panel",
version: VERSION version: VERSION
}; };
}; };
@@ -84108,7 +84108,7 @@ function getViewportSize() {
}; };
} }
"use client"; "use client";
var domAnimation$6 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$6 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var ModalContent = (props) => { var ModalContent = (props) => {
const { as, children, role = "dialog", ...otherProps } = props; const { as, children, role = "dialog", ...otherProps } = props;
const { const {
@@ -145746,7 +145746,7 @@ function usePopover$1(originalProps) {
}; };
} }
"use client"; "use client";
var domAnimation$5 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$5 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var FreeSoloPopoverWrapper$1 = forwardRef$4( var FreeSoloPopoverWrapper$1 = forwardRef$4(
({ ({
children, children,
@@ -145861,7 +145861,7 @@ var [PopoverProvider$1, usePopoverContext$1] = createContext2({
errorMessage: "usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`" errorMessage: "usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"
}); });
"use client"; "use client";
var domAnimation$4 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$4 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var PopoverContent$1 = (props) => { var PopoverContent$1 = (props) => {
const { as, children, className, ...otherProps } = props; const { as, children, className, ...otherProps } = props;
const { const {
@@ -148392,7 +148392,7 @@ function useAccordionItem(props) {
}; };
} }
"use client"; "use client";
var domAnimation$3 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$3 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var AccordionItem = forwardRef$4((props, ref) => { var AccordionItem = forwardRef$4((props, ref) => {
const { const {
Component: Component2, Component: Component2,
@@ -170561,7 +170561,7 @@ function $5c3e21d68f1c4674$export$439d29a4e110a164(props) {
return /* @__PURE__ */ (0, React$3).createElement(Element2, (0, $3ef42575df84b30b$export$9d1611c77c2fe928$4)(otherProps, visuallyHiddenProps), children); return /* @__PURE__ */ (0, React$3).createElement(Element2, (0, $3ef42575df84b30b$export$9d1611c77c2fe928$4)(otherProps, visuallyHiddenProps), children);
} }
"use client"; "use client";
var domAnimation$2 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$2 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var PopLayoutWrapper = reactExports.forwardRef( var PopLayoutWrapper = reactExports.forwardRef(
(props, ref) => { (props, ref) => {
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref, ...props }); return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref, ...props });
@@ -172768,11 +172768,11 @@ function ProfilePage() {
/* @__PURE__ */ jsxRuntimeExports.jsx( /* @__PURE__ */ jsxRuntimeExports.jsx(
"a", "a",
{ {
href: "https://github.com/bqlpfy/forward-panel", href: "https://github.com/bqlpfy/flux-panel",
target: "_blank", target: "_blank",
rel: "noopener noreferrer", rel: "noopener noreferrer",
className: "text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors", className: "text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
children: "哆啦A梦" children: "flux-panel"
} }
) )
] }), ] }),
@@ -179821,7 +179821,7 @@ function $40df3f8667284809$export$d55e7ee900f34e93(props, ref) {
}; };
} }
"use client"; "use client";
var domAnimation$1 = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation$1 = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var FreeSoloPopoverWrapper = forwardRef$4( var FreeSoloPopoverWrapper = forwardRef$4(
({ ({
children, children,
@@ -179936,7 +179936,7 @@ var [PopoverProvider, usePopoverContext] = createContext2({
errorMessage: "usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`" errorMessage: "usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"
}); });
"use client"; "use client";
var domAnimation = () => __vitePreload(() => import("./index-Yh65tUeq.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default); var domAnimation = () => __vitePreload(() => import("./index-ZrWL6Zdd.js"), true ? [] : void 0, import.meta.url).then((res2) => res2.default);
var PopoverContent = (props) => { var PopoverContent = (props) => {
const { as, children, className, ...otherProps } = props; const { as, children, className, ...otherProps } = props;
const { const {
@@ -186288,11 +186288,11 @@ function AdminLayout({
/* @__PURE__ */ jsxRuntimeExports.jsx( /* @__PURE__ */ jsxRuntimeExports.jsx(
"a", "a",
{ {
href: "https://github.com/bqlpfy/forward-panel", href: "https://github.com/bqlpfy/flux-panel",
target: "_blank", target: "_blank",
rel: "noopener noreferrer", rel: "noopener noreferrer",
className: "text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors", className: "text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
children: "哆啦A梦" children: "flux-panel"
} }
) )
] }) }) }) ] }) }) })
@@ -186806,7 +186806,7 @@ function Provider({ children }) {
] }) }) }); ] }) }) });
} }
client.createRoot(document.getElementById("root")).render( client.createRoot(document.getElementById("root")).render(
/* @__PURE__ */ jsxRuntimeExports.jsx(MemoryRouter, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Provider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(App, {}) }) }) /* @__PURE__ */ jsxRuntimeExports.jsx(HashRouter, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Provider, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(App, {}) }) })
); );
export { export {
domAnimation$a as d domAnimation$a as d
@@ -1,4 +1,4 @@
import { d as domAnimation } from "./index-BZa3KfLh.js"; import { d as domAnimation } from "./index-D_c2WXiO.js";
"use client"; "use client";
var index_default = domAnimation; var index_default = domAnimation;
export { export {
+5 -5
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="./vite.svg" /> <link rel="icon" type="image/svg+xml" href="./vite.svg" />
<title>哆啦A梦</title> <title>flux-panel</title>
<script> <script>
// 防止暗黑模式闪烁:在页面加载前立即应用系统主题 // 防止暗黑模式闪烁:在页面加载前立即应用系统主题
(function() { (function() {
@@ -107,13 +107,13 @@
background-color: #000000; background-color: #000000;
} }
</style> </style>
<meta key="title" content="哆啦A梦" property="og:title" /> <meta key="title" content="flux-panel" property="og:title" />
<meta <meta
content="哆啦A梦" content="flux-panel"
property="og:description" property="og:description"
/> />
<meta <meta
content="哆啦A梦" content="flux-panel"
name="description" name="description"
/> />
<meta <meta
@@ -122,7 +122,7 @@
name="viewport" name="viewport"
/> />
<link href="./assets/favicon-DI5FVxIz.ico" rel="icon" /> <link href="./assets/favicon-DI5FVxIz.ico" rel="icon" />
<script type="module" crossorigin src="./assets/index-BZa3KfLh.js"></script> <script type="module" crossorigin src="./assets/index-D_c2WXiO.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-Bf4rZ0gS.css"> <link rel="stylesheet" crossorigin href="./assets/index-Bf4rZ0gS.css">
</head> </head>
<body> <body>
@@ -1,4 +1,4 @@
package com.doraemon package com.flux
import android.graphics.Color import android.graphics.Color
import android.net.Uri import android.net.Uri
@@ -11,6 +11,7 @@ import android.webkit.*
import androidx.webkit.WebViewAssetLoader import androidx.webkit.WebViewAssetLoader
import android.content.res.Configuration import android.content.res.Configuration
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView private lateinit var webView: WebView
@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="Base.Theme.Doraemon" parent="Theme.Material3.DayNight.NoActionBar"> <style name="Base.Theme.Flux" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your dark theme here. --> <!-- Customize your dark theme here. -->
<!-- <item name="colorPrimary">@color/my_dark_primary</item> --> <!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item>
@@ -1,3 +1,3 @@
<resources> <resources>
<string name="app_name">哆啦A梦</string> <string name="app_name">Flux</string>
</resources> </resources>
@@ -1,11 +1,11 @@
<resources xmlns:tools="http://schemas.android.com/tools"> <resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="Base.Theme.Doraemon" parent="Theme.Material3.DayNight.NoActionBar"> <style name="Base.Theme.Flux" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. --> <!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> --> <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:navigationBarColor">@android:color/transparent</item>
</style> </style>
<style name="Theme.Doraemon" parent="Base.Theme.Doraemon" /> <style name="Theme.Flux" parent="Base.Theme.Flux" />
</resources> </resources>
@@ -1,4 +1,4 @@
package com.doraemon package com.flux
import org.junit.Test import org.junit.Test
+1 -1
View File
@@ -13,5 +13,5 @@ dependencyResolutionManagement {
} }
} }
rootProject.name = "Doraemon" rootProject.name = "Flux"
include ':app' include ':app'
+1 -1
View File
@@ -190,7 +190,7 @@ CREATE TABLE `vite_config` (
-- --
INSERT INTO `vite_config` (`id`, `name`, `value`, `time`) VALUES INSERT INTO `vite_config` (`id`, `name`, `value`, `time`) VALUES
(1, 'app_name', '哆啦A梦', 1755147963000); (1, 'app_name', 'flux', 1755147963000);
-- --
-- 转储表的索引 -- 转储表的索引
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 下载地址 # 下载地址
DOWNLOAD_URL="https://github.com/bqlpfy/forward-panel/releases/download/gost-latest/gost" DOWNLOAD_URL="https://github.com/bqlpfy/flux-panel/releases/download/gost-latest/gost"
INSTALL_DIR="/etc/gost" INSTALL_DIR="/etc/gost"
COUNTRY=$(curl -s https://ipinfo.io/country) COUNTRY=$(curl -s https://ipinfo.io/country)
if [ "$COUNTRY" = "CN" ]; then if [ "$COUNTRY" = "CN" ]; then
+3 -3
View File
@@ -8,9 +8,9 @@ export LC_ALL=C
# 全局下载地址配置 # 全局下载地址配置
DOCKER_COMPOSEV4_URL="https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/docker-compose-v4.yml" DOCKER_COMPOSEV4_URL="https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/docker-compose-v4.yml"
DOCKER_COMPOSEV6_URL="https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/docker-compose-v6.yml" DOCKER_COMPOSEV6_URL="https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/docker-compose-v6.yml"
GOST_SQL_URL="https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/gost.sql" GOST_SQL_URL="https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/gost.sql"
COUNTRY=$(curl -s https://ipinfo.io/country) COUNTRY=$(curl -s https://ipinfo.io/country)
if [ "$COUNTRY" = "CN" ]; then if [ "$COUNTRY" = "CN" ]; then
@@ -340,7 +340,7 @@ public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements No
StringBuilder command = new StringBuilder(); StringBuilder command = new StringBuilder();
// 第一部分:下载安装脚本 // 第一部分:下载安装脚本
command.append("curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/install.sh") command.append("curl -L https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/install.sh")
.append(" -o ./install.sh && chmod +x ./install.sh && "); .append(" -o ./install.sh && chmod +x ./install.sh && ");
// 处理服务器地址,如果是IPv6需要添加方括号 // 处理服务器地址,如果是IPv6需要添加方括号
+4 -4
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<title>哆啦A梦</title> <title>flux-panel</title>
<script> <script>
// 防止暗黑模式闪烁:在页面加载前立即应用系统主题 // 防止暗黑模式闪烁:在页面加载前立即应用系统主题
(function() { (function() {
@@ -107,13 +107,13 @@
background-color: #000000; background-color: #000000;
} }
</style> </style>
<meta key="title" content="哆啦A梦" property="og:title" /> <meta key="title" content="flux-panel" property="og:title" />
<meta <meta
content="哆啦A梦" content="flux-panel"
property="og:description" property="og:description"
/> />
<meta <meta
content="哆啦A梦" content="flux-panel"
name="description" name="description"
/> />
<meta <meta
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "doraemon", "name": "dflux-panel",
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"type": "module", "type": "module",
+2 -2
View File
@@ -10,7 +10,7 @@ const VERSION = "1.2.11";
const getInitialConfig = () => { const getInitialConfig = () => {
if (typeof window === 'undefined') { if (typeof window === 'undefined') {
return { return {
name: "哆啦A梦", name: "flux-panel",
version: VERSION, version: VERSION,
}; };
} }
@@ -23,7 +23,7 @@ const getInitialConfig = () => {
}; };
} }
return { return {
name: "哆啦A梦", name: "flux-panel",
version: VERSION, version: VERSION,
}; };
}; };
+2 -2
View File
@@ -311,12 +311,12 @@ export default function AdminLayout({
<p className="text-xs text-gray-400 dark:text-gray-500"> <p className="text-xs text-gray-400 dark:text-gray-500">
Powered by{' '} Powered by{' '}
<a <a
href="https://github.com/bqlpfy/forward-panel" href="https://github.com/bqlpfy/flux-panel"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors" className="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors"
> >
哆啦A梦 flux-panel
</a> </a>
</p> </p>
</div> </div>
+3 -3
View File
@@ -1,16 +1,16 @@
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import { MemoryRouter } from "react-router-dom"; import { HashRouter } from "react-router-dom";
import App from "./App.tsx"; import App from "./App.tsx";
import { Provider } from "./provider.tsx"; import { Provider } from "./provider.tsx";
import "@/styles/globals.css"; import "@/styles/globals.css";
ReactDOM.createRoot(document.getElementById("root")!).render( ReactDOM.createRoot(document.getElementById("root")!).render(
<MemoryRouter> <HashRouter>
<Provider> <Provider>
<App /> <App />
</Provider> </Provider>
</MemoryRouter> </HashRouter>
); );
+2 -2
View File
@@ -245,12 +245,12 @@ export default function ProfilePage() {
<p className="text-xs text-gray-400 dark:text-gray-500"> <p className="text-xs text-gray-400 dark:text-gray-500">
Powered by{' '} Powered by{' '}
<a <a
href="https://github.com/bqlpfy/forward-panel" href="https://github.com/bqlpfy/flux-panel"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors" className="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors"
> >
哆啦A梦 flux-panel
</a> </a>
</p> </p>
<p className="text-xs text-gray-400 dark:text-gray-500 mt-1"> <p className="text-xs text-gray-400 dark:text-gray-500 mt-1">
+7 -7
View File
@@ -1,31 +1,31 @@
{ {
"hash": "b558e23e", "hash": "3d30e436",
"configHash": "78039c44", "configHash": "78039c44",
"lockfileHash": "41976b16", "lockfileHash": "ca3783c8",
"browserHash": "fefb69ed", "browserHash": "eddd3d68",
"optimized": { "optimized": {
"vue": { "vue": {
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js", "file": "vue.js",
"fileHash": "c614e86a", "fileHash": "9cd164eb",
"needsInterop": false "needsInterop": false
}, },
"vitepress > @vue/devtools-api": { "vitepress > @vue/devtools-api": {
"src": "../../../node_modules/@vue/devtools-api/dist/index.js", "src": "../../../node_modules/@vue/devtools-api/dist/index.js",
"file": "vitepress___@vue_devtools-api.js", "file": "vitepress___@vue_devtools-api.js",
"fileHash": "8faed21a", "fileHash": "a5ce2655",
"needsInterop": false "needsInterop": false
}, },
"vitepress > @vueuse/core": { "vitepress > @vueuse/core": {
"src": "../../../node_modules/@vueuse/core/index.mjs", "src": "../../../node_modules/@vueuse/core/index.mjs",
"file": "vitepress___@vueuse_core.js", "file": "vitepress___@vueuse_core.js",
"fileHash": "89549863", "fileHash": "4b1f897e",
"needsInterop": false "needsInterop": false
}, },
"@theme/index": { "@theme/index": {
"src": "../../../node_modules/vitepress/dist/client/theme-default/index.js", "src": "../../../node_modules/vitepress/dist/client/theme-default/index.js",
"file": "@theme_index.js", "file": "@theme_index.js",
"fileHash": "3f5b549d", "fileHash": "1d6687dc",
"needsInterop": false "needsInterop": false
} }
}, },
+2 -2
View File
@@ -1,7 +1,7 @@
import { defineConfig } from 'vitepress' import { defineConfig } from 'vitepress'
export default defineConfig({ export default defineConfig({
title: '哆啦A梦', title: 'flux-panel',
description: '基于gost的转发面板', description: '基于gost的转发面板',
themeConfig: { themeConfig: {
@@ -13,7 +13,7 @@ export default defineConfig({
], ],
socialLinks: [ socialLinks: [
{ icon: 'github', link: 'https://github.com/bqlpfy/forward-panel' }, { icon: 'github', link: 'https://github.com/bqlpfy/flux-panel' },
{ icon: 'telegram', link: 'https://t.me/+wdVDni1fdyI0YzE1'} { icon: 'telegram', link: 'https://t.me/+wdVDni1fdyI0YzE1'}
] ]
} }
+3 -3
View File
@@ -1,7 +1,7 @@
# 常见问题 # 常见问题
::: tip 需要帮助? ::: tip 需要帮助?
📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/forward-panel/issues) | 🚀 [快速开始](/getting-started) 📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/flux-panel/issues) | 🚀 [快速开始](/getting-started)
::: :::
## 面板管理脚本 ## 面板管理脚本
@@ -9,7 +9,7 @@
安装、更新、卸载面板均使用同一条命令,运行后在菜单中选择对应操作: 安装、更新、卸载面板均使用同一条命令,运行后在菜单中选择对应操作:
```bash ```bash
curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh curl -L https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh
``` ```
## 节点管理脚本 ## 节点管理脚本
@@ -17,7 +17,7 @@ curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/p
节点的“更新”和“卸载”可直接使用以下命令,安装脚本请前往面板系统的“节点管理”页面复制获取: 节点的“更新”和“卸载”可直接使用以下命令,安装脚本请前往面板系统的“节点管理”页面复制获取:
```bash ```bash
curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/install.sh -o ./install.sh && chmod +x ./install.sh && ./install.sh curl -L https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/install.sh -o ./install.sh && chmod +x ./install.sh && ./install.sh
``` ```
## 日志查看 ## 日志查看
+6 -6
View File
@@ -1,16 +1,16 @@
# 快速开始 # 快速开始
本指南将帮助您快速安装和配置哆啦A梦,让您在几分钟内开始使用流量转发功能。 本指南将帮助您快速安装和配置flux-panel,让您在几分钟内开始使用流量转发功能。
::: tip 需要帮助? ::: tip 需要帮助?
📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/forward-panel/issues) | 🤔 [常见问题](/faq) 📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/flux-panel/issues) | 🤔 [常见问题](/faq)
::: :::
## 系统要求 ## 系统要求
在开始之前,请确保您的系统满足以下要求: 在开始之前,请确保您的系统满足以下要求:
- **操作系统**: Linux (推荐 Ubuntu 18.04+, CentOS 7+) 或 macOS,**推荐纯净系统安装** - **操作系统**: Linux,**推荐纯净系统安装**
- **Docker**: 20.10+ - **Docker**: 20.10+
- **Docker Compose**: 1.29+ 或 Docker 内置 compose 命令 - **Docker Compose**: 1.29+ 或 Docker 内置 compose 命令
- **内存**: 至少 1GB RAM - **内存**: 至少 1GB RAM
@@ -22,7 +22,7 @@
我们提供了交互式安装脚本,会自动检测系统环境并引导您完成配置: 我们提供了交互式安装脚本,会自动检测系统环境并引导您完成配置:
```bash ```bash
curl -L https://raw.githubusercontent.com/bqlpfy/forward-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh curl -L https://raw.githubusercontent.com/bqlpfy/flux-panel/refs/heads/main/panel_install.sh -o panel_install.sh && chmod +x panel_install.sh && ./panel_install.sh
``` ```
### 安装流程说明 ### 安装流程说明
@@ -129,8 +129,8 @@ docker compose ps
- 验证 Docker 和网络配置 - 验证 Docker 和网络配置
3. **🐛 GitHub Issues** 3. **🐛 GitHub Issues**
- [报告安装问题](https://github.com/bqlpfy/forward-panel/issues/new) - [报告安装问题](https://github.com/bqlpfy/flux-panel/issues/new)
- 查看 [已知问题](https://github.com/bqlpfy/forward-panel/issues) - 查看 [已知问题](https://github.com/bqlpfy/flux-panel/issues)
4. **📖 文档资源** 4. **📖 文档资源**
- [使用指南](/guide) - 详细的操作教程 - [使用指南](/guide) - 详细的操作教程
+6 -6
View File
@@ -1,9 +1,9 @@
# 使用指南 # 使用指南
哆啦A梦是一个基于 go-gost 的现代化转发面板,提供了直观的 Web 界面来管理网络流量转发。 flux-panel是一个基于 go-gost 的现代化转发面板,提供了直观的 Web 界面来管理网络流量转发。
::: tip 需要帮助? ::: tip 需要帮助?
📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/forward-panel/issues) | 🤝 [参与贡献](https://github.com/bqlpfy/forward-panel/pulls) 📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) | 🐛 [GitHub Issues](https://github.com/bqlpfy/flux-panel/issues) | 🤝 [参与贡献](https://github.com/bqlpfy/flux-panel/pulls)
::: :::
## 项目介绍 ## 项目介绍
@@ -20,7 +20,7 @@
### 技术架构 ### 技术架构
- **前端**: Vue.js 2 + Element UI - **前端**: vite + next UI
- **后端**: Spring Boot + MySQL - **后端**: Spring Boot + MySQL
- **转发引擎**: go-gost - **转发引擎**: go-gost
- **部署方式**: Docker Compose - **部署方式**: Docker Compose
@@ -97,7 +97,7 @@ curl -L https://your-panel-server:6365/agent/install | bash -s -- --server=your-
``` ```
::: warning 安装须知 ::: warning 安装须知
- 安装或者更新时如果 `/etc/gost/` 下存在 `gost.json` 和 `config.json`,安装命令会跳过生成,使用当前存在的配置 - 安装或者更新时如果 `/etc/gost/` 下存在 `gost.json`,安装命令会跳过生成,使用当前存在的配置
- gost执行文件会强制更新 - gost执行文件会强制更新
::: :::
@@ -270,8 +270,8 @@ curl -L https://your-panel-server:6365/agent/install | bash -s -- --server=your-
- 与其他用户交流经验 - 与其他用户交流经验
2. **🐛 GitHub Issues** 2. **🐛 GitHub Issues**
- [报告问题](https://github.com/bqlpfy/forward-panel/issues/new) - [报告问题](https://github.com/bqlpfy/flux-panel/issues/new)
- 查看 [已知问题](https://github.com/bqlpfy/forward-panel/issues) - 查看 [已知问题](https://github.com/bqlpfy/flux-panel/issues)
- 提交功能建议 - 提交功能建议
3. **📖 文档资源** 3. **📖 文档资源**
+6 -7
View File
@@ -2,19 +2,19 @@
layout: home layout: home
hero: hero:
name: "哆啦A梦" name: "Flux"
text: "基于gost的转发面板" text: "基于gost的转发面板"
tagline: "功能强大的流量转发管理平台,支持灵活的流量计费和限速功能" tagline: "功能强大的流量转发管理平台,支持灵活的流量计费和限速功能"
actions: actions:
- theme: brand - theme: brand
text: "感谢 DreamCloud" text: "DreamCloud"
link: https://whmcs.as211392.com/ link: https://whmcs.as211392.com/
- theme: brand - theme: brand
text: 快速开始 text: 快速开始
link: /getting-started link: /getting-started
- theme: alt - theme: alt
text: 查看源码 text: 查看源码
link: https://github.com/bqlpfy/forward-panel link: https://github.com/bqlpfy/flux-panel
features: features:
- icon: 🔄 - icon: 🔄
@@ -50,16 +50,15 @@ features:
details: 支持 Docker Compose 一键部署,简化安装和维护流程 details: 支持 Docker Compose 一键部署,简化安装和维护流程
--- ---
**[DreamCloud](https://whmcs.as211392.com/)**
## 社区支持 ## 社区支持
如果您在使用过程中遇到问题或有功能建议,欢迎: 如果您在使用过程中遇到问题或有功能建议,欢迎:
- 📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1) - 📱 [加入 Telegram 群组](https://t.me/+wdVDni1fdyI0YzE1)
- 🐛 [报告问题](https://github.com/bqlpfy/forward-panel/issues) - 🐛 [报告问题](https://github.com/bqlpfy/flux-panel/issues)
- 💡 [功能建议](https://github.com/bqlpfy/forward-panel/issues) - 💡 [功能建议](https://github.com/bqlpfy/flux-panel/issues)
- 🤝 [参与贡献](https://github.com/bqlpfy/forward-panel/pulls) - 🤝 [参与贡献](https://github.com/bqlpfy/flux-panel/pulls)
## 免责声明 ## 免责声明
+2 -2
View File
@@ -1,11 +1,11 @@
{ {
"name": "doraemon-docs", "name": "flux-panel-docs",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "doraemon-docs", "name": "flux-panel-docs",
"version": "1.0.0", "version": "1.0.0",
"license": "Apache-2.0", "license": "Apache-2.0",
"devDependencies": { "devDependencies": {
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"name": "doraemon-docs", "name": "flux-panel-docs",
"version": "1.0.0", "version": "1.0.0",
"description": "哆啦A梦转发面板文档", "description": "flux-panel转发面板文档",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vitepress dev", "dev": "vitepress dev",