Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
SaintShit committed Jul 3, 2023
2 parents c3a55ae + a7312a1 commit b863618
Show file tree
Hide file tree
Showing 39 changed files with 740 additions and 422 deletions.
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ RUN apt-get update \

RUN bash -c "$(curl -L https://github.com/Gozargah/Marzban-scripts/raw/master/install_latest_xray.sh)" @ v1.8.1

COPY . /code

COPY ./requirements.txt /code/
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY . /code

RUN apt-get remove -y curl unzip gcc python3-dev

RUN ln -s /code/marzban-cli.py /usr/bin/marzban-cli \
Expand Down
2 changes: 1 addition & 1 deletion app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def on_shutdown():
def validation_exception_handler(request: Request, exc: RequestValidationError):
details = {}
for error in exc.errors():
details[error["loc"][1]] = error["msg"]
details[error["loc"][-1]] = error.get("msg")
return JSONResponse(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
content=jsonable_encoder({"detail": details}),
Expand Down
4 changes: 2 additions & 2 deletions app/dashboard/build/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
<meta name="msapplication-TileColor" content="#2b5797" />
<meta name="msapplication-config" content="/favicon/browserconfig.xml" />
<meta name="theme-color" content="#3B81F6" />
<script type="module" crossorigin src="/dashboard/assets/index.70391a86.js"></script>
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor.582e1bad.js">
<script type="module" crossorigin src="/dashboard/assets/index.7bd6cf59.js"></script>
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor.b354b91c.js">
<link rel="stylesheet" href="/dashboard/assets/index.4d516efb.css">
</head>
<body>
Expand Down
15 changes: 0 additions & 15 deletions app/dashboard/build/assets/index.70391a86.js

This file was deleted.

15 changes: 15 additions & 0 deletions app/dashboard/build/assets/index.7bd6cf59.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions app/dashboard/build/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
<meta name="msapplication-TileColor" content="#2b5797" />
<meta name="msapplication-config" content="/favicon/browserconfig.xml" />
<meta name="theme-color" content="#3B81F6" />
<script type="module" crossorigin src="/dashboard/assets/index.70391a86.js"></script>
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor.582e1bad.js">
<script type="module" crossorigin src="/dashboard/assets/index.7bd6cf59.js"></script>
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor.b354b91c.js">
<link rel="stylesheet" href="/dashboard/assets/index.4d516efb.css">
</head>
<body>
Expand Down
20 changes: 4 additions & 16 deletions app/dashboard/build/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,17 @@
"expired": "Expired {{time}} ago",
"dateFormat": "MMMM d, yyy",
"inbound": "Inbound",

"login.loginYourAccount": "Login to your account",
"login.welcomeBack": "Welcome back, please enter your details",
"login.fieldRequired": "This field is required",

"header.hostsSetting": "Hosts Settings",
"header.nodesSetting": "Nodes Settings",
"header.hostSettings": "Host Settings",
"header.nodeSettings": "Node Settings",
"header.nodesUsage": "Nodes Usage",
"header.donation": "Donation",
"header.logout": "Log out",

"deleteUser.title": "Delete User",
"deleteUser.prompt": "Are you sure you want to delete <b>{{username}}</b>?",
"deleteUser.deleteSuccess": "{{username}} deleted successfully.",

"usersTable.status": "status",
"usersTable.dataUsage": "data usage",
"usersTable.noUserMatched": "It seems there is no user matched with what you are looking for",
Expand All @@ -34,7 +30,6 @@
"usersTable.copied": "Copied",
"usersTable.copyConfigs": "Copy Configs",
"usersTable.total": "Total",

"userDialog.dataLimit": "Data Limit",
"userDialog.periodicUsageReset": "Periodic Usage Reset",
"userDialog.warningNoProtocol": "Please select at least one protocol",
Expand Down Expand Up @@ -70,11 +65,11 @@
"userDialog.startDate": "Start date",
"userDialog.endDate": "End date",
"userDialog.total": "Total: ",

"hostsDialog.title": "Using this setting, you are able to assign specific address for each inbound.",
"hostsDialog.desc": "Use these variables to make it dynamic",
"hostsDialog.username": "The username of the user",
"hostsDialog.dataUsage": "The current usage of the user",
"hostsDialog.remainingData": "Remainig data of the user",
"hostsDialog.dataLimit": "The usage limit of the user",
"hostsDialog.remaingDays": "Remaining days of the user",
"hostsDialog.proxyProtocol": "Proxy protocol (e.g. VMess)",
Expand All @@ -97,7 +92,6 @@
"hostsDialog.fingerprint": "Fingerprint",
"hostsDialog.host.multiHost": "To set multiple addresses, separate them with <badge>,</badge> Each time an address is chosen randomly.",
"hostsDialog.host.wildcard": "Use <badge>*</badge> to generate a random string (works for wildcard domain names)",

"nodes.title": "Using Marzban-Node, you are able to scale up your connection quality by adding different nodes on different servers.",
"nodes.addNewMarzbanNode": "Add New Marzban Node",
"nodes.certificate": "Certificate",
Expand All @@ -112,11 +106,9 @@
"nodes.editNode": "Edit Node",
"nodes.reconnect": "Reconnect",
"nodes.reconnecting": "Reconnecting...",

"deleteNode.title": "Delete Node",
"deleteNode.prompt": "Are you sure you want to delete the <b>{{name}}</b> node?",
"deleteNode.deleteSuccess": "Node {{name}} removed successfully",

"users": "Users",
"activeUsers": "active users",
"dataUsage": "data usage",
Expand All @@ -127,19 +119,15 @@
"createNewUser": "Create new user",
"search": "Search",
"resetAllUsage": "Reset All Usages",

"qrcodeDialog.sublink": "Subscribe Link",

"resetUserUsage.prompt": "Are you sure you want to reset <b>{{username}}</b>'s usage?",
"resetUserUsage.title": "Reset User Usage",
"resetUserUsage.success": "{{username}}'s usage has reset successfully.",
"resetUserUsage.error": "Usage reset failed, please try again.",

"resetAllUsage.title": "Reset data usage for all users",
"resetAllUsage.prompt": "This action clears all of the users' data usage completely. Are you sure you want to reset all usage? THIS CANNOT BE UNDONE!",
"resetAllUsage.success": "All usage has reset successfully.",
"resetAllUsage.error": "Usage reset failed, please try again.",

"core.title": "Core Settings",
"core.socket.connecting": "Connecting...",
"core.socket.connected": "Connected",
Expand All @@ -152,4 +140,4 @@
"core.configuration": "Configuration",
"core.generalErrorMessage": "Something went wrong, please check the configuration",
"core.successMessage": "Core settings updated successfully"
}
}
148 changes: 148 additions & 0 deletions app/dashboard/build/locales/fa.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{
"password": "گذرواژه",
"login": "ورود",
"cancel": "لغو",
"apply": "تایید",
"delete": "حذف",
"reset": "بازنشانی",
"createUser": "افزودن کاربر",
"username": "نام کاربری",
"dateInfo.year": " سال",
"dateInfo.month": " ماه",
"dateInfo.day": " روز",
"dateInfo.hour": " ساعت",
"dateInfo.min": " دقیقه",
"expires": "پایان در {{time}}",
"expired": "{{time}} پیش به پایان رسیده",
"dateFormat": "MM/dd/yyyy",
"inbound": "ورودی",
"login.loginYourAccount": "وارد حساب خود شوید",
"login.welcomeBack": "خوش آمدید, لطفا اطلاعات خود را وارد کنید",
"login.fieldRequired": "This field is required",
"header.hostSettings": "تنظیمات هاست",
"header.nodeSettings": "تنظیمات گره‌ها",
"header.nodesUsage": "نمودار گره‌ها",
"header.donation": "کمک مالی",
"header.logout": "خروج",
"deleteUser.title": "حذف کاربر",
"deleteUser.prompt": "از حذف کاربر <b>{{username}}</b> مطمئن هستید?",
"deleteUser.deleteSuccess": "{{username}} با موفقیت حذف شد.",
"usersTable.status": "وضعیت",
"usersTable.dataUsage": "مصرف داده",
"usersTable.noUserMatched": "به‌نظر میرسه کاربری که جستجو کردید، وجود ندارد",
"usersTable.noUser": "کاربری افزوده نشده است",
"usersTable.copyLink": "کپی لینک اشتراک",
"usersTable.copied": "کپی شد",
"usersTable.copyConfigs": "تنظیمات کپی",
"usersTable.total": "مجموع",
"userDialog.dataLimit": "حد مصرف داده",
"userDialog.periodicUsageReset": "بازنشانی دوره‌ای مصرف",
"userDialog.warningNoProtocol": "لطفا حداقل یک پروتکل انتخاب کنید",
"userDialog.expiryDate": "تاریخ پایان",
"userDialog.resetUsage": "بازنشانی مصرف",
"userDialog.usage": "مصرف",
"userDialog.protocols": "پروتکل‌ها",
"userDialog.editUserTitle": "ویرایش کاربر",
"userDialog.editUser": "ویرایش کاربر",
"userDialog.userEdited": "کاربر {{username}} ویرایش شد.",
"userDialog.userCreated": "کاربر {{username}} ساخته شد.",
"userDialog.userAlreadyExists": "کاربر وجود دارد",
"userDialog.vmessDesc": "سریع و امن",
"userDialog.vlessDesc": "سبک، سریع و امن",
"userDialog.trojanDesc": "سبک، امن و فوق‌العاده سریع",
"userDialog.shadowsocksDesc": "سریع و امن، اما کارآمد کمتر از بقیه",
"userDialog.resetStrategyNo": "خیر",
"userDialog.resetStrategyDaily": "روزانه",
"userDialog.resetStrategyWeekly": "هفتگی",
"userDialog.resetStrategyMonthly": "ماهانه",
"userDialog.resetStrategyAnnually": "سالانه",
"userDialog.selectOneProtocol": "لطفا حداقل یک پروتکل انتخاب کنید",
"userDialog.optional": "اختیاری",
"userDialog.method": "روش",
"userDialog.generatedByDefault": "پیش‌فرض ساخته می‌شود",
"userDialog.hours": "ساعات",
"userDialog.days": "روزها",
"userDialog.weeks": "هفته‌ها",
"userDialog.months": "ماه‌ها",
"userDialog.relative": "نسبی",
"userDialog.absolute": "مطلق",
"userDialog.custom": "انتخابی",
"userDialog.startDate": "تاریخ شروع",
"userDialog.endDate": "تاریخ پایان",
"userDialog.total": "مجموع: ",
"hostsDialog.title": "با انتخاب این تنظیمات، می‌توانید برای هر ورودی یک آدرس منحصر به فرد انتخاب کنید.",
"hostsDialog.desc": "برای ساخت نوشته پویا، از این متغیرها استفاده کنید",
"hostsDialog.username": "نام کاربری کاربر",
"hostsDialog.dataUsage": "مصرف کنونی کاربر",
"hostsDialog.remainingData": "حجم باقی‌مانده کاربر",
"hostsDialog.dataLimit": "حد مصرف کاربر",
"hostsDialog.remaingDays": "روزهای باقی مانده کاربر",
"hostsDialog.proxyProtocol": "پروتکل پروکسی (مانند VMess)",
"hostsDialog.proxyMethod": "روش انتقال پروکسی (مانند ws)",
"hostsDialog.currentServer": "IP کنونی سرور",
"hostsDialog.security": "لایه امنیت",
"hostsDialog.host": "هاست درخواست",
"hostsDialog.port": "پورت",
"hostsDialog.sni": "SNI",
"hostsDialog.advancedOptions": "تنظیمات پیشرفته",
"hostsDialog.addHost": "افزودن هاست",
"hostsDialog.savedSuccess": "هاست‌ها با موفقیت ذخیره شدند",
"hostsDialog.loading": "درحال بارگزاری...",
"hostsDialog.apply": "اعمال",
"hostsDialog.port.info": "به طور پیش‌فرض، هاست، از پورت پیش‌فرض ورودی استفاده میکند، در صورتی که این هاست ترافیک را از پورتی، متفاوت از پورت سرور، منتقل می‌کند، می‌توانید آن را تغییر دهید. برای مثال، ممکن از سرور ترافیک را از پورت 8443 به پورت پیش‌فرض سرور ورودی شما منتقل کند.",
"hostsDialog.sni.info": "به طور پیش‌فرض، هاست، از SNI پیش‌فرض ورودی استفاده میکند، در صورتی که این هاست یک SNI دیگری دارد، می‌توانید آن را تغییر دهید. برای مثال، ممکن است سرور ترافیک با SSL متفاوت را دریافت و منتقل کند.",
"hostsDialog.host.info": "به‌طور پیش‌فرض، اگر هاست درخواستی در پیکربندی *** تنظیم شده باشد، این هاست استفاده می‌شود. اما می‌توانید یک هاست درخواستی متفاوت در اینجا قرار دهید.",
"hostsDialog.security.info": "اگر میان‌افزار سرور این هاست، از لایه امنیتی متفاوتی از ورودی استفاده می‌کند، می‌توانید اینجا انتخاب کنید",
"hostsDialog.alpn": "ALPN",
"hostsDialog.fingerprint": "اثرانگشت",
"hostsDialog.host.multiHost": "برای تنظیم چند آدرس، با <badge>,</badge> از هم جدا کنید. هر دفعه آدرسی به صورت تصادفی قرار داده می‌شود.",
"hostsDialog.host.wildcard": "از <badge>*</badge> برای ساخت عبارت تصادفی استفاده کنید (برای نام‌های wildcard کار می‌کند)",
"nodes.title": "با استفاده از Marzban-Node, شما می‌توانید با افزودن گره‌های متفاوت در سرورهای متفاوت، کیفیت اتصال خود را بالاتر ببرید.",
"nodes.addNewMarzbanNode": "افزودن گره مرزبان",
"nodes.certificate": "گواهی",
"nodes.addHostForEveryInbound": "استفاده از این گره به عنوان میزبان تمام ورودی‌ها",
"nodes.addNode": "افزودن گره",
"nodes.addNodeSuccess": "گره {{name}} با موفقیت افزوده شد",
"nodes.apply": "ویرایش گره",
"nodes.nodeName": "نام",
"nodes.nodeAddress": "آدرس",
"nodes.nodePort": "پورت",
"nodes.nodeAPIPort": "پورت API",
"nodes.editNode": "ویرایش گره",
"nodes.reconnect": "اتصال مجدد",
"nodes.reconnecting": "درحال اتصال مجدد...",
"deleteNode.title": "حذف گره",
"deleteNode.prompt": "از حذف گره <b>{{name}}</b> مطمئن هستید؟",
"deleteNode.deleteSuccess": "گره {{name}} با موفقیت حذف شد",
"users": "کاربران",
"activeUsers": "کاربران فعال",
"dataUsage": "مصرف داده",
"memoryUsage": "مصرف حافظه",
"itemsPerPage": "تعداد در صفحه",
"previous": "قبلی",
"next": "بعدی",
"createNewUser": "ساخت کاربر",
"search": "جستجو",
"resetAllUsage": "بازنشانی کل مصرف",
"qrcodeDialog.sublink": "لینک اشتراک",
"resetUserUsage.prompt": "از بازنشانی مصرف <b>{{username}}</b> مطئمن هستید؟",
"resetUserUsage.title": "بازنشانی مصرف کاربر",
"resetUserUsage.success": "مصرف {{username}} با موفقیت بازنشانی شد.",
"resetUserUsage.error": "بازنشانی مصرف انجام نشد، دوباره تلاش کنید.",
"resetAllUsage.title": "بازنشانی مصرف تمام کاربران",
"resetAllUsage.prompt": "این عمل مصرف تمام کاربران را بازنشانی می‌کند. از این بازنشانی مطمئن هستید؟ این عمل قابل بازگشت نیست!",
"resetAllUsage.success": "مصرف کل با موفقیت بازنشانی شد.",
"resetAllUsage.error": "بازنشانی مصرف انجام نشد، دوباره تلاش کنید.",
"core.title": "تنظیمات هسته",
"core.socket.connecting": "در حال اتصال...",
"core.socket.connected": "متصل",
"core.socket.not_connected": "عدم اتصال",
"core.socket.closed": "بسته شده",
"core.restarting": "درحال اجرا مجدد...",
"core.restartCore": "اجرا مجدد هسته",
"core.save": "ذخیره",
"core.logs": "گزارش",
"core.configuration": "پیکربندی",
"core.generalErrorMessage": "مشکلی پیش آمده، لطفا پیکربندی را بررسی کنید",
"core.successMessage": "تنظیمات هسته با موفقیت ثبت شد"
}
19 changes: 4 additions & 15 deletions app/dashboard/build/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,17 @@
"expired": "{{time}}失效",
"dateFormat": "MM/dd/yyyy",
"inbound": "入站",

"login.loginYourAccount": "登录您的帐号",
"login.welcomeBack": "欢迎回来,请输入您的详细信息",
"login.fieldRequired": "此项必填",

"header.hostsSetting": "设置",
"header.nodesSetting": "节点设置",
"header.hostSettings": "设置",
"header.nodeSettings": "节点设置",
"header.nodesUsage": "节点统计",
"header.donation": "捐赠",
"header.logout": "退出",

"deleteUser.title": "删除用户",
"deleteUser.prompt": "您确定你要删除 <b>{{username}}</b>?",
"deleteUser.deleteSuccess": "{{username}} 删除成功。",

"usersTable.status": "状态",
"usersTable.dataUsage": "流量统计",
"usersTable.noUserMatched": "没有找到您搜索的用户",
Expand All @@ -34,7 +30,6 @@
"usersTable.copied": "已复制",
"usersTable.copyConfigs": "复制配置",
"usersTable.total": "总共",

"userDialog.dataLimit": "流量限制",
"userDialog.periodicUsageReset": "定期重置流量",
"userDialog.expiryDate": "过期日期",
Expand Down Expand Up @@ -69,11 +64,11 @@
"userDialog.startDate": "开始日期",
"userDialog.endDate": "结束日期",
"userDialog.total": "总共:",

"hostsDialog.title": "使用此设置,您可以为每个入站分配特定的地址。",
"hostsDialog.desc": "使用这些变量使其可以动态替换",
"hostsDialog.username": "用户的用户名",
"hostsDialog.dataUsage": "用户当前流量情况",
"hostsDialog.remainingData": "用户剩余流量情况",
"hostsDialog.dataLimit": "用户的流量限制",
"hostsDialog.remaingDays": "用户的剩余天数",
"hostsDialog.proxyProtocol": "代理协议(例如 VMess)",
Expand All @@ -94,7 +89,6 @@
"hostsDialog.security.info": "如果此主机的中间件服务器使用的安全层与入站默认值不同,则可以在此处设置自定义安全层。",
"hostsDialog.alpn": "ALPN",
"hostsDialog.fingerprint": "指纹",

"nodes.title": "使用 Marzban-Node,您可以通过在不同的服务器上添加不同的节点来提供多节点负载。",
"nodes.addNewMarzbanNode": "添加新的 Marzban 节点",
"nodes.certificate": "证书",
Expand All @@ -108,11 +102,9 @@
"nodes.nodeAPIPort": "API 端口",
"nodes.reconnect": "重新连接",
"nodes.reconnecting": "重连中...",

"deleteNode.title": "删除节点",
"deleteNode.prompt": "您确实要删除 <b>{{name}}</b> 节点吗?",
"deleteNode.deleteSuccess": "节点 {{name}} 删除成功",

"users": "用户",
"activeUsers": "活跃用户",
"dataUsage": "总流量",
Expand All @@ -123,16 +115,13 @@
"createNewUser": "创建新用户",
"search": "搜索",
"resetAllUsage": "重置所有统计",

"qrcodeDialog.sublink": "订阅链接",

"resetUserUsage.prompt": "您确定要重置 <b>{{username}}</b> 的流量统计吗?",
"resetUserUsage.title": "重置用户流量统计",
"resetUserUsage.success": "{{username}} 的流量统计重置完成。",
"resetUserUsage.error": "重置失败,请稍候再试",

"resetAllUsage.title": "重置所有用户的数据使用情况",
"resetAllUsage.prompt": "此操作将清除所有用户统计,您确定要执行此操作吗? 这不能被撤消!",
"resetAllUsage.success": "所有统计重置完成。",
"resetAllUsage.error": "重置失败,请稍候再试!"
}
}
Loading

0 comments on commit b863618

Please sign in to comment.