Compare commits

..

122 Commits

Author SHA1 Message Date
mercury 39643bf681 add html fake from settings menu 2024-10-06 23:19:05 +04:00
mercury 5f1fc6d912 override html mock 2024-10-06 21:04:13 +04:00
mercury 0538d04397 sing-box template: block rule first 2024-10-06 20:49:24 +04:00
mercury af9933676d karing import url 2024-09-30 17:13:32 +04:00
mercury 7bfebe8096 fix unset warp key 2024-09-30 09:58:48 +04:00
mercury ae61a38dbc on/off warp-svc 2024-09-29 16:10:16 +04:00
mercury e727f6552c create singbox archive improve 2024-09-29 13:48:26 +04:00
mercury cfd500d48a update version 2024-09-23 23:44:32 +04:00
mercury ff87ee1055 latest docker compose 2024-09-23 23:11:02 +04:00
mercury 3375293be5 fix update start 2024-09-22 21:05:48 +04:00
mercury 6e5f198e23 switch endpoint for wg/amnezia 2024-09-22 14:31:10 +04:00
mercury b10aaff459 fix domain for cdn 2024-09-22 01:06:02 +04:00
mercury 3271561418 update version 2024-09-19 13:44:35 +04:00
mercury 295ee6f2aa fix nginx.conf init 2024-09-19 12:11:05 +04:00
mercury 7ce7c56c1b domain for links -> cdn for xray 2024-09-19 12:02:51 +04:00
mercury dca34de723 fix config menu 2024-09-17 20:36:51 +04:00
mercury eb1ad21c88 domain for links 2024-09-17 20:15:34 +04:00
mercury a3ca7d9ed8 fix naming clients AdgHome + xray 2024-09-16 13:07:32 +04:00
mercury 60ba3cf15c fix name clients AdguardHome 2024-09-16 12:17:20 +04:00
mercury cd8bcbe05a singbox: tls->https+user
xray: add user to AdH
2024-09-16 00:06:57 +04:00
mercury 6cc05c88e7 autoupdate command 2024-09-15 01:16:03 +04:00
mercury 795c357897 domain for amnezia 2024-09-15 00:50:46 +04:00
mercury e172868f39 fix checkcert notify 2024-09-10 15:48:55 +04:00
mercury 4ef38775b0 update version 2024-09-10 15:30:59 +04:00
mercury abdb4d791a fix ipinfo case 2024-09-10 15:27:34 +04:00
mercury 6948239144 xray subscriptions: get['cdn'] -> domain without dns 2024-09-08 21:22:38 +04:00
mercury ff0fd177c7 xray subscriptions: get['cdn'] -> domain 2024-09-08 19:45:02 +04:00
mercury 28e66d46fd fix import with transport 2024-09-08 16:22:17 +04:00
mercury edee9c78c5 fix add user xray with transport 2024-09-08 14:54:43 +04:00
mercury 6ad8b3aa92 update version 2024-09-08 12:50:21 +04:00
mercury 31f1825d37 fix change transport 2024-09-08 12:40:51 +04:00
mercury 10d84da53e fix websocket -> reality 2024-09-08 00:58:37 +04:00
mercury c7cc0f31ad fix v2ray links 2024-09-03 19:23:38 +04:00
mercury e3ddb642d7 fix import, fix ws transport 2024-09-03 18:27:26 +04:00
mercury 589823e45d custom subdomain 2024-09-03 13:15:34 +04:00
mercury 0364188fe8 chat link 2024-09-03 10:48:15 +04:00
mercury 72edcc4757 websocket transport for xray 2024-09-03 10:19:00 +04:00
mercury 5988c4fcee display warp+ key 2024-08-27 13:46:08 +04:00
mercury a82147eeda update version 2024-08-26 23:23:09 +04:00
mercury 6bd21d06c0 fix list actions 2024-08-26 23:19:31 +04:00
mercury 3416cda826 qr for singbox 2024-08-25 23:30:19 +04:00
mercury 2e40daf0c4 update version 2024-08-21 23:04:58 +04:00
mercury 9c40b04392 custom outbound for ruleset 2024-08-18 20:01:53 +04:00
mercury 1217ea7a09 fix empty packagelist 2024-08-18 11:54:12 +04:00
mercury 7f6d462f22 fix name for short link vless 2024-08-18 02:11:05 +04:00
mercury 47876ecdb4 rule package_name separately 2024-08-18 02:00:09 +04:00
mercury 66f03709fc Merge branch 'master' into dev 2024-08-16 22:27:14 +04:00
mercury 42aafc6427 update version 2024-08-16 22:26:42 +04:00
mercury 1674f6929e fix ruleset list key 2024-08-16 22:24:23 +04:00
mercury 5791cabfb5 update version 2024-08-16 12:12:07 +04:00
mercury 49d2d21f41 fix changelist 2024-08-16 11:41:42 +04:00
mercury 5263de514e fix naming ruleset 2024-08-16 11:24:51 +04:00
mercury 9da810ba3d fix empty rules route 2024-08-16 02:21:29 +04:00
mercury b663eca445 routes for sinbox 2024-08-16 02:08:44 +04:00
mercury f8f95e22ac backup for domain lists 2024-08-15 10:40:20 +04:00
mercury 30f0f8c5f0 fix selfpac update 2024-08-15 01:07:31 +04:00
mercury 741f402ca1 fix singbox import 2024-08-15 00:13:41 +04:00
mercury ef3d40c098 update version 2024-08-09 23:59:48 +04:00
mercury ded85fb79f fix "delete all" 2024-08-09 23:56:57 +04:00
mercury b5ca5fbf93 mirror 2024-08-08 17:11:26 +04:00
mercury 570420274e improve updatepac 2024-08-08 12:45:44 +04:00
mercury baaf0e2d01 clear pac list button 2024-08-06 21:58:08 +04:00
mercury be8bec6a7d fix ocserv pass 2024-08-04 11:51:01 +04:00
mercury acaec83877 update version 2024-08-03 11:19:00 +04:00
mercury 8cf6c512cb extended qr for wireguard 2024-08-03 11:14:53 +04:00
mercury 880a8de7e5 set mtu for wg 2024-08-03 10:39:15 +04:00
mercury 9662fc9d55 fix autobackup hint 2024-07-07 15:35:43 +04:00
mercury 561bcb7023 Merge branch 'dev' 2024-06-05 10:37:39 +04:00
mercury 9d7c735f79 Merge branch 'dev' of github.com:mercurykd/vpnbot into dev 2024-06-05 10:36:42 +04:00
mercury 8091eb4971 fix go version 2024-06-05 10:35:15 +04:00
mercury 967353bcd6 Merge branch 'dev' 2024-05-22 17:21:07 +04:00
mercury 9f218c9f32 chmod +x *.sh 2024-05-22 17:19:32 +04:00
mercury 6a6bd3a4d2 delete debug 2024-05-19 21:26:56 +04:00
mercury bc8b0ff033 Merge branch 'dev' 2024-05-18 17:05:44 +04:00
mercury 624713347a change autobackup 2024-05-18 17:00:04 +04:00
mercury 52738c0491 update version xray, shadowsocks 2024-05-17 12:56:56 +04:00
runalsh 277b00da87 Remove absolute versions for shadowsocks.dockerfile (#15)
* added sing-box from repo (#12)

* edge repo for sing-box (#13)

* added sing-box from repo

* add testing repo for sing-box

* Revert "added sing-box from repo (#12)"

This reverts commit 256e43352a.

* Revert "edge repo for sing-box (#13)"

This reverts commit bb1ac60acc.

* Update shadowsocks.dockerfile

---------

Co-authored-by: mercury <mercury.kd@gmail.com>
2024-05-17 12:47:28 +04:00
runalsh 455b9cea07 Remove absolute versions for xray.dockerfile (#16)
* added sing-box from repo (#12)

* edge repo for sing-box (#13)

* added sing-box from repo

* add testing repo for sing-box

* Revert "added sing-box from repo (#12)"

This reverts commit 256e43352a.

* Revert "edge repo for sing-box (#13)"

This reverts commit bb1ac60acc.

* Update xray.dockerfile

---------

Co-authored-by: mercury <mercury.kd@gmail.com>
2024-05-17 12:46:57 +04:00
mercury 88f8c1c4c2 changelog in update message 2024-05-04 21:56:40 +04:00
mercury 6017bc4008 Merge branch 'dev' 2024-05-04 13:00:53 +04:00
mercury 6631ea5cc2 update version 2024-05-04 13:00:06 +04:00
mercury 09d49fd0fb remove duplicate image 2024-05-04 12:36:32 +04:00
mercury 6766a56440 warp on alpine 2024-05-04 12:31:39 +04:00
mercury 0c3a6cc90e Merge branch 'dev' 2024-05-01 18:42:24 +04:00
mercury 4fb039ffc4 fix choice default template sing-box update 2 2024-05-01 18:35:45 +04:00
mercury 0b7ae110fc fix choice default template sing-box update 2024-05-01 18:24:22 +04:00
mercury c0750c930a Merge branch 'dev' 2024-05-01 17:53:13 +04:00
mercury 6fb1931c2d fix choice default template sing-box 2024-05-01 17:52:17 +04:00
mercury 45e1455d48 Revert "edge repo for sing-box (#13)"
This reverts commit bb1ac60acc.
2024-04-29 23:13:47 +04:00
mercury 7582dc50c2 Revert "added sing-box from repo (#12)"
This reverts commit 256e43352a.
2024-04-29 23:13:27 +04:00
runalsh bb1ac60acc edge repo for sing-box (#13)
* added sing-box from repo

* add testing repo for sing-box
2024-04-29 20:48:25 +04:00
runalsh 256e43352a added sing-box from repo (#12) 2024-04-29 16:06:52 +04:00
mercury 6a31985863 clear old images 2024-04-22 23:12:23 +04:00
mercury f4a9e63793 docker clean 2024-04-22 21:49:55 +04:00
mercury 581e3a9bd1 delete old image 2024-04-22 12:48:42 +04:00
mercury 8491ee9f51 fix star button freeze 2024-04-22 12:46:19 +04:00
Bkeenke 49cefc3231 Update "qrPeer" function (#11) 2024-04-21 12:06:32 +04:00
mercury b227431b7a singbox ruleset 2024-04-19 15:40:45 +04:00
mercury bb83ab0684 warp status on menu 2024-04-18 16:10:13 +04:00
mercury 05267f44be fix naming templates 2024-04-18 15:52:37 +04:00
mercury d1be532270 warp+ set key 2024-04-18 01:58:25 +04:00
mercury 48798c7e61 add restart for singbox window 2024-04-16 23:06:25 +04:00
mercury 84e71ab45b improve mtproto menu 2024-04-16 19:22:21 +04:00
mercury 068f2d0cc9 improve message update 2024-04-16 17:51:23 +04:00
mercury 759cf1973a update version 2024-04-16 17:45:55 +04:00
mercury a11b7e0664 improve update script 2024-04-16 17:43:07 +04:00
mercury d370b78815 refactoring subscription + v2ray templates 2024-04-16 15:20:44 +04:00
mercury 913f75b4a8 improve on/off on paclist 2024-04-15 13:49:14 +04:00
mercury c3e850b102 warp 2024-04-15 13:43:43 +04:00
mercury 3a89a1543b add block and warp list domains for xray 2024-04-15 12:08:43 +04:00
mercury 2a3e8e393c improve timer 2024-04-15 12:04:52 +04:00
mercury 332b74e366 winsw3 + update script for singbox windows 2024-04-14 13:05:55 +04:00
mercury dfa9efec7a fix singbox zip 2024-04-13 19:30:57 +04:00
mercury e1902827ce singbox for windows as service 2024-04-13 19:20:54 +04:00
mercury 95fea3bb7b improve xtls user menu 2024-04-13 04:22:09 +04:00
mercury 80a9f9f32d github btns 2024-04-12 21:38:54 +04:00
mercury 7fc1105728 update readme 2024-04-12 17:05:48 +04:00
mercury d46679caf6 log upstream 2024-04-12 15:47:58 +04:00
mercury 910186ff00 improve name for subscription 2024-04-12 02:22:39 +04:00
mercury 5e72452a8d improve template sign 2024-04-11 22:38:03 +04:00
mercury 668756f1c7 add https://community.antifilter.download/ in PAC 2024-04-11 21:05:41 +04:00
mercury 29e7be6cd8 improve xray config 2024-04-11 17:06:21 +04:00
47 changed files with 2094 additions and 590 deletions
+2 -1
View File
@@ -19,4 +19,5 @@ mirror/.env
update/*
!update/update.sh
override.env
override.env
override.html
+1565 -343
View File
File diff suppressed because it is too large Load Diff
+14 -2
View File
@@ -1,6 +1,10 @@
<?php
$i = [
'warp' => [
'en' => 'warp',
'ru' => 'warp',
],
'wg_title' => [
'en' => 'Wireguard',
'ru' => 'Wireguard',
@@ -237,6 +241,10 @@ $i = [
'en' => 'defaultDNS',
'ru' => 'дефолтный днс',
],
'defaultMTU' => [
'en' => 'defaultMTU',
'ru' => 'дефолтный MTU',
],
'debug' => [
'en' => 'debug mode',
'ru' => 'режим отладки',
@@ -254,8 +262,8 @@ $i = [
'ru' => 'очистить',
],
'xray' => [
'en' => 'XTLS-Reality',
'ru' => 'XTLS-Reality',
'en' => 'Xray',
'ru' => 'Xray',
],
'geodb' => [
'en' => 'GeoIp/GeoSite',
@@ -329,4 +337,8 @@ $i = [
'en' => '🟢 have updates',
'ru' => '🟢 есть обновления',
],
'fake html' => [
'en' => 'fake html',
'ru' => 'фейк заглушка',
],
];
+12 -36
View File
@@ -17,55 +17,31 @@ if ('POST' == $_SERVER['REQUEST_METHOD'] && $_GET['k'] == $c['key']) {
}
// pac
$type = $_GET['t'] ?? 'pac';
if (!empty($t = unserialize(base64_decode(explode('/', $_SERVER['REQUEST_URI'])[2])))) { // fix sing-box import
$_GET = array_merge($_GET, $t);
}
$type = $_GET['t'] ?? 'pac';
$address = $_GET['a'] ?: '127.0.0.1';
$port = $_GET['p'] ?: '1080';
$hash = $_GET['h'];
$port = $_GET['p'] ?: '1080';
$hash = $_GET['h'];
if ($hash == substr(md5($c['key']), 0, 8)) {
require __DIR__ . '/bot.php';
require __DIR__ . '/i18n.php';
$bot = new Bot($c['key'], $i);
switch ($type) {
case 'mirror':
require __DIR__ . '/bot.php';
require __DIR__ . '/i18n.php';
$bot = new Bot($c['key'], $i);
$bot->getMirror();
break;
case 's':
require __DIR__ . '/bot.php';
require __DIR__ . '/i18n.php';
$bot = new Bot($c['key'], $i);
if (!empty($_GET['b'])) {
$fs = $bot->v2raySubscription($_GET['s'], 1);
header("Location: $fs");
exit;
} else {
header('Content-Type: application/json');
echo $bot->v2raySubscription($_GET['s']);
}
exit;
case 'si':
require __DIR__ . '/bot.php';
require __DIR__ . '/i18n.php';
$bot = new Bot($c['key'], $i);
if (!empty($_GET['b'])) {
$fs = $bot->singboxSubscription($_GET['s'], 1);
header("Location: $fs");
exit;
} else {
header('Content-Type: application/json');
echo $bot->singboxSubscription($_GET['s']);
}
$bot->subscription();
exit;
case 'te':
require __DIR__ . '/bot.php';
require __DIR__ . '/i18n.php';
$bot = new Bot($c['key'], $i);
if (!empty($_GET['te'])) {
$t = $bot->getPacConf()['singtemplates'][urldecode($_GET['te'])];
$t = $bot->getPacConf()["{$_GET['ty']}templates"][$_GET['te']];
} else {
$t = json_decode(file_get_contents('/config/sing.json'), true);
$t = json_decode(file_get_contents("/config/{$_GET['ty']}.json"), true);
}
if ($t) {
header('Content-Type: application/json');
+3 -1
View File
@@ -2,10 +2,12 @@
require __DIR__ . '/timezone.php';
// require __DIR__ . '/debug.php';
require __DIR__ . '/bot.php';
require __DIR__ . '/config.php';
require __DIR__ . '/i18n.php';
if ($c['debug']) {
require __DIR__ . '/debug.php';
}
$bot = new Bot($c['key'], $i);
$bot->adguardProtect();
+5 -1
View File
@@ -2,11 +2,14 @@
require __DIR__ . '/timezone.php';
// require __DIR__ . '/debug.php';
require __DIR__ . '/bot.php';
require __DIR__ . '/config.php';
require __DIR__ . '/i18n.php';
if ($c['debug']) {
require __DIR__ . '/debug.php';
}
$bot = new Bot($c['key'], $i);
if (!empty($c['admin'])) {
@@ -37,3 +40,4 @@ file_put_contents('/update/message', '');
file_put_contents('/update/reload_message', '');
$bot->restartTG();
$bot->sslip();
$bot->cleanDocker();
+11 -93
View File
@@ -89,98 +89,13 @@ function start()
$conf = $bot->getPacConf();
$subzones = array_keys(array_filter($conf['subzoneslist'], fn($x) => $x == true));
if (!empty($conf['subzoneslist'])) {
$subzones = array_keys(array_filter($conf['subzoneslist'], fn($x) => $x == true));
}
// check && exclude
$include = array_filter($conf['includelist'], fn($x) => $x == true);
if ($conf['zapret']) {
foreach ($source as $k => $v) {
$size = getSize($v['source']);
if ($size > 0) {
if (file_exists($v['dest'])) {
unlink($v['dest']);
}
touch($v['dest']);
$percent = 0;
$curr = 0;
exec("php updatepac.php download $k > /dev/null &");
$i = $j = 0;
while ($curr <= $size) {
$rotate = $curr != $size ? $load[$j % count($load)] : '';
$tail = <<<text
Downloading {$v['source']}
$curr/$size $percent% $rotate
text;
update($text . $tail);
if ($curr == $size || $i > 50) {
break;
}
usleep(50000);
clearstatcache();
if ($curr == filesize($v['dest'])) {
$i++;
}
$curr = filesize($v['dest']);
$percent = (int) ceil($curr * 100 / $size);
$j++;
}
if ($curr != $size) {
$text .= "\nError downloading {$v['source']}\nabort script";
endScript($text);
}
} else {
$text .= "\nError size {$v['source']}\nabort script";
endScript($text);
}
$text .= $tail ? "$tail\n" : '';
}
// prepare
$reg = '~^([^.*]+\.(?:(?:' . implode('|', $subzones) . ')\.)?[^.]+)$~';
foreach ($source as $k => $v) {
$size = filesize($v['dest']);
$curr = $j = 0;
$time = microtime(true);
$name = basename($v['dest']);
$f = fopen($v['dest'], 'r');
while (($s = fgets($f)) !== false) {
$curr += strlen($s);
$percent = (int) ceil($curr * 100 / $size);
$rotate = $curr != $size ? $load[$j % count($load)] : '';
$tail = <<<text
Prepare $name $percent% $rotate
text;
if (microtime(true) - $time > 0.1) {
update($text . $tail);
$time = microtime(true);
$j++;
}
if ($name == 'dump.csv') {
if (!preg_match('~;.*;~', $s)) {
continue;
}
$t = explode(';', iconv('CP1251', 'utf-8', $s));
if (empty($t[1])) {
continue;
}
if (preg_match($reg, idn_to_ascii(trim($t[1])), $m)) {
$domains[$m[1]] = 0;
}
} else {
if (preg_match($reg, idn_to_ascii(iconv('CP1251', 'utf-8', trim($s))), $m)) {
$domains[$m[1]] = 0;
}
}
}
fclose($f);
$text .= $tail ? "$tail\n" : '';
}
$exclude = array_keys(array_filter($conf['excludelist'], fn($x) => $x == true));
foreach ($include as $k => $v) {
$domains[$k] = 0;
}
} else {
$domains = $include;
if (!empty($conf['includelist'])) {
$domains = array_filter($conf['includelist'], fn($x) => $x == true);
}
if (empty($domains)) {
$text = "Empty domains. Delete pac files";
@@ -234,10 +149,13 @@ function start()
file_put_contents(__DIR__ . '/zapretlists/pac', $pac);
$text .= "Create minified pac 100%\n";
}
// create reverse PAC
$domains = array_filter($conf['reverselist'], fn($x) => $x == true);
unset($domains);
if (!empty($conf['reverselist'])) {
$domains = array_filter($conf['reverselist'], fn($x) => $x == true);
}
if (empty($domains)) {
// $text .= "Empty reverse domains. Delete reverse pac files";
unlink(__DIR__ . '/zapretlists/rmpac');
unlink(__DIR__ . '/zapretlists/rpac');
@@ -285,6 +203,7 @@ function start()
file_put_contents(__DIR__ . '/zapretlists/rpac', $pac);
$text .= 'Create minified reverse pac 100%';
}
endScript($text);
}
@@ -330,7 +249,6 @@ $load = [
'-',
'\\',
];
switch ($_SERVER['argv'][1]) {
case 'start':
$bot = new Bot($c['key'], $i);
+1
View File
@@ -16,6 +16,7 @@
<div style="position:absolute;top:0;right:0;width:35%;text-align:center;background-color: #17212b;">
<img src="toncoin.png" width="100%" alt="">
<a href="javascript:;" id="copy" style="color:white;text-decoration:none" data-id="UQCDDkaX3fCAFBek28Hx4TfvDDRqeizOW74blVMVAM4_m4OW">copy</a>
<!-- <iframe src="https://ghbtns.com/github-btn.html?user=mercurykd&repo=vpnbot&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe> -->
</div>
<a style="background-color: #8B3FFD;height: 46px;display:inline-block;padding:0 54px;color: white;border-radius: 12px;text-decoration: none;font-size: 20px;line-height: 46px;font-family: arial;" href="https://yoomoney.ru/to/410011827900450">
<svg style="width: 24px;fill: white;position: relative;top: 4px;" class="qa-fundraise-button-logo mui-m0okdh" viewBox="0 0 16 16"><path d="M4.638 8.5a5.67 5.67 0 015.681-5.68A5.693 5.693 0 0116 8.5a5.693 5.693 0 01-5.68 5.682A5.67 5.67 0 014.637 8.5zm3.56 0c0 1.151.97 2.122 2.121 2.122 1.15 0 2.085-.97 2.121-2.121 0-1.15-.97-2.121-2.12-2.121-1.151 0-2.122.97-2.122 2.12zm-3.596 4.243v-8.27H0l2.589 8.27h2.013z" clip-rule="evenodd"></path></svg>
+47 -2
View File
@@ -31,7 +31,7 @@ http {
location / {
root /app;
index login.html;
index override.html login.html;
try_files $uri $uri/ =404;
}
location /adguard/ {
@@ -48,6 +48,7 @@ http {
}
location /pac {
access_log /logs/nginx_pac_access;
proxy_set_header Host $http_host;
proxy_pass http://php;
}
location /tlgrm {
@@ -64,6 +65,38 @@ http {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /ws {
proxy_pass http://xr:443;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_read_timeout 5d;
}
#-ssl
# # The DoH server block
# location /dns-query {
# access_log /logs/nginx_doh_access;
# # Proxy HTTP/1.1, clear the connection header to enable Keep-Alive
# proxy_http_version 1.1;
# proxy_set_header Connection "";
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header X-Forwarded-Host $remote_addr;
# # Enable Cache, and set the cache_key to include the request_body
# proxy_cache doh_cache;
# proxy_cache_key $scheme$proxy_host$uri$is_args$args$request_body;
# # proxy pass to the dohloop upstream
# proxy_pass https://ad/dns-query;
# }
#-ssl
location ~\.well-known {
access_log /logs/nginx_certbot_access;
root /certs/;
@@ -90,7 +123,7 @@ http {
# location / {
# root /app;
# index login.html;
# index override.html login.html;
# try_files $uri $uri/ =404;
# }
# location /adguard/ {
@@ -107,6 +140,7 @@ http {
# }
# location /pac {
# access_log /logs/nginx_pac_access;
# proxy_set_header Host $http_host;
# proxy_pass http://php;
# }
# location ~\.well-known {
@@ -124,6 +158,17 @@ http {
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
# }
# location /ws {
# proxy_pass http://xr:443;
# proxy_redirect off;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
# 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_read_timeout 5d;
# }
#-domain
#-ssl
# # The DoH server block
+47 -2
View File
@@ -31,7 +31,7 @@ http {
location / {
root /app;
index login.html;
index override.html login.html;
try_files $uri $uri/ =404;
}
location /adguard/ {
@@ -48,6 +48,7 @@ http {
}
location /pac {
access_log /logs/nginx_pac_access;
proxy_set_header Host $http_host;
proxy_pass http://php;
}
location /tlgrm {
@@ -64,6 +65,38 @@ http {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /ws {
proxy_pass http://xr:443;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_read_timeout 5d;
}
#-ssl
# # The DoH server block
# location /dns-query {
# access_log /logs/nginx_doh_access;
# # Proxy HTTP/1.1, clear the connection header to enable Keep-Alive
# proxy_http_version 1.1;
# proxy_set_header Connection "";
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header X-Forwarded-Host $remote_addr;
# # Enable Cache, and set the cache_key to include the request_body
# proxy_cache doh_cache;
# proxy_cache_key $scheme$proxy_host$uri$is_args$args$request_body;
# # proxy pass to the dohloop upstream
# proxy_pass https://ad/dns-query;
# }
#-ssl
location ~\.well-known {
access_log /logs/nginx_certbot_access;
root /certs/;
@@ -90,7 +123,7 @@ http {
# location / {
# root /app;
# index login.html;
# index override.html login.html;
# try_files $uri $uri/ =404;
# }
# location /adguard/ {
@@ -107,6 +140,7 @@ http {
# }
# location /pac {
# access_log /logs/nginx_pac_access;
# proxy_set_header Host $http_host;
# proxy_pass http://php;
# }
# location ~\.well-known {
@@ -124,6 +158,17 @@ http {
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
# }
# location /ws {
# proxy_pass http://xr:443;
# proxy_redirect off;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
# 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_read_timeout 5d;
# }
#-domain
#-ssl
# # The DoH server block
+137 -87
View File
@@ -3,104 +3,154 @@
"level": "error",
"timestamp": true
},
"inbounds": [{
"type": "tun",
"tag": "tun-in",
"domain_strategy": "prefer_ipv4",
"interface_name": "sing-tun",
"inet4_address": "172.19.0.1\/30",
"mtu": 1400,
"gso": true,
"auto_route": true,
"strict_route": true,
"sniff": true,
"endpoint_independent_nat": false,
"stack": "mixed",
"platform": {
"http_proxy": {
"enabled": false,
"server": "127.0.0.1",
"server_port": 2080
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"domain_strategy": "prefer_ipv4",
"interface_name": "sing-tun",
"inet4_address": "172.19.0.1\/30",
"mtu": 1400,
"gso": true,
"auto_route": true,
"strict_route": true,
"sniff": true,
"endpoint_independent_nat": false,
"stack": "mixed",
"platform": {
"http_proxy": {
"enabled": false,
"server": "127.0.0.1",
"server_port": 2080
}
}
},
{
"type": "mixed",
"tag": "mixed-in",
"domain_strategy": "prefer_ipv4",
"listen": "127.0.0.1",
"listen_port": 2080,
"tcp_fast_open": true,
"sniff": true,
"sniff_override_destination": false,
"users": []
}
}, {
"type": "mixed",
"tag": "mixed-in",
"domain_strategy": "prefer_ipv4",
"listen": "127.0.0.1",
"listen_port": 2080,
"tcp_fast_open": true,
"sniff": true,
"sniff_override_destination": false,
"users": []
}],
],
"dns": {
"servers": [{
"tag": "dns_direct",
"address": "~dns~",
"address_resolver": "dns-remote",
"strategy": "prefer_ipv4",
"detour": "direct"
}, {
"tag": "dns-remote",
"address": "tcp:\/\/8.8.8.8",
"address_strategy": "prefer_ipv4",
"strategy": "prefer_ipv4",
"detour": "direct"
}],
"rules": [{
"outbound": "any",
"server": "dns-direct",
"disable_cache": false
}],
"servers": [
{
"tag": "dns_direct",
"address": "~dns~",
"address_resolver": "dns-remote",
"strategy": "prefer_ipv4",
"detour": "direct"
},
{
"tag": "dns-remote",
"address": "tcp:\/\/8.8.8.8",
"address_strategy": "prefer_ipv4",
"strategy": "prefer_ipv4",
"detour": "direct"
}
],
"rules": [
{
"outbound": "any",
"server": "dns-direct",
"disable_cache": false
}
],
"strategy": "ipv4_only",
"independent_cache": true
},
"outbounds": [{
"flow": "xtls-rprx-vision",
"packet_encoding": "",
"server": "",
"server_port": 443,
"tls": {
"enabled": true,
"insecure": false,
"reality": {
"outbounds": [
{
"flow": "xtls-rprx-vision",
"packet_encoding": "",
"server": "",
"server_port": 443,
"tls": {
"enabled": true,
"public_key": "",
"short_id": ""
"insecure": false,
"reality": {
"enabled": true,
"public_key": "",
"short_id": ""
},
"server_name": "",
"utls": {
"enabled": true,
"fingerprint": "chrome"
}
},
"server_name": "",
"utls": {
"enabled": true,
"fingerprint": "chrome"
}
"uuid": "",
"type": "vless",
"domain_strategy": "ipv4_only",
"tag": "proxy"
},
"uuid": "",
"type": "vless",
"domain_strategy": "ipv4_only",
"tag": "proxy"
}, {
"type": "direct",
"tag": "direct"
}, {
"type": "block",
"tag": "block"
}, {
"type": "dns",
"tag": "dns-out"
}],
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
},
{
"type": "dns",
"tag": "dns-out"
}
],
"route": {
"auto_detect_interface": true,
"override_android_vpn": true,
"rules": [{
"protocol": "dns",
"outbound": "dns-out"
}, {
"domain_suffix": "~pac~",
"outbound": "proxy"
}, {
"ip_cidr": ["0.0.0.0\/0"],
"outbound": "direct"
}]
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"createruleset": [
{
"name": "block",
"interval": "15s",
"rules": [
{
"domain_suffix": "~block~"
}
]
}
],
"outbound": "block"
},
{
"createruleset": [
{
"name": "pac",
"interval": "15s",
"rules": [
{
"domain_suffix": "~pac~"
}
]
},
{
"name": "warp",
"interval": "15s",
"rules": [
{
"domain_suffix": "~warp~"
}
]
}
],
"outbound": "proxy"
},
{
"outbound": "direct"
}
],
"final": "direct"
}
}
+1 -1
View File
@@ -3,7 +3,7 @@ worker_processes auto;
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
error_log /logs/nginx_error;
error_log /logs/upstream_error;
pid /var/run/nginx.pid;
events {
+1 -1
View File
@@ -85,7 +85,7 @@
"rules": [{
"type": "field",
"outboundTag": "proxy",
"domain": []
"domain": "~pac~"
}, {
"type": "field",
"port": "0-65535",
+42 -6
View File
@@ -19,7 +19,7 @@ volumes:
services:
up:
image: mercurykd/vpnbot-up:1.1
image: mercurykd/vpnbot-ng:1.1
build:
context: dockerfile
dockerfile: nginx.dockerfile
@@ -93,7 +93,7 @@ services:
ipv4_address: 10.10.1.2
logging: *default-logging
php:
image: mercurykd/vpnbot-php:1.3
image: mercurykd/vpnbot-php:1.5
build:
dockerfile: dockerfile/php.dockerfile
args:
@@ -115,6 +115,8 @@ services:
- ./.env:/mirror/.env
- ./update:/update
- ./.git:/.git
- ./singbox_windows:/singbox
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
IP: ${IP}
VER: ${VER}
@@ -141,7 +143,7 @@ services:
timeout: 5s
retries: 5
service:
image: mercurykd/vpnbot-php:1.2
image: mercurykd/vpnbot-php:1.5
build:
dockerfile: dockerfile/php.dockerfile
args:
@@ -156,6 +158,7 @@ services:
- ./logs/:/logs/
- ./update:/update
- ./scripts/start_service.sh:/start_service.sh
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
IP: ${IP}
VER: ${VER}
@@ -188,7 +191,7 @@ services:
- oc
- np
proxy:
image: mercurykd/vpnbot-ss:1.1
image: mercurykd/vpnbot-ss:1.2
build:
dockerfile: dockerfile/shadowsocks.dockerfile
args:
@@ -335,7 +338,7 @@ services:
entrypoint: ["/bin/sh", "/start_ad.sh"]
logging: *default-logging
ss:
image: mercurykd/vpnbot-ss:1.1
image: mercurykd/vpnbot-ss:1.2
build:
dockerfile: dockerfile/shadowsocks.dockerfile
args:
@@ -396,7 +399,7 @@ services:
ipv4_address: 10.10.0.8
logging: *default-logging
xr:
image: mercurykd/vpnbot-xr:1.2
image: mercurykd/vpnbot-xr:1.3
build:
dockerfile: dockerfile/xray.dockerfile
args:
@@ -489,3 +492,36 @@ services:
default:
ipv4_address: 10.10.0.12
logging: *default-logging
wp:
image: mercurykd/vpnbot-wp:1.2
build:
dockerfile: dockerfile/warp.dockerfile
args:
image: ${IMAGE}
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ./config/.profile:/root/.ashrc:ro
- ./ssh:/ssh
- ./config/sshd_config:/etc/ssh/sshd_config
- ./config:/config
- ./certs:/certs
- ./scripts/start_wp.sh:/start_wp.sh
hostname: warp
container_name: warp-${VER}
depends_on:
php:
condition: service_healthy
env_file:
- path: ./.env
required: true # default
- path: ./override.env
required: false
stop_grace_period: 1s
command: ["/bin/sh", "/start_wp.sh"]
networks:
default:
ipv4_address: 10.10.0.13
logging: *default-logging
+7 -1
View File
@@ -4,6 +4,7 @@ RUN apk add --no-cache --update php81 \
php81-mbstring \
php81-session \
php81-phar \
php81-zip \
php81-curl \
php81-opcache \
php81-openssl \
@@ -25,5 +26,10 @@ RUN apk add --no-cache --update php81 \
&& tar -xf dnslookup-linux-amd64-v1.9.1.tar.gz \
&& mv linux-amd64/dnslookup /usr/bin \
&& rm dnslookup-linux-amd64-v1.9.1.tar.gz \
&& rm -rf /linux-amd64
&& rm -rf /linux-amd64 \
&& wget https://github.com/SagerNet/sing-box/releases/download/v1.8.11/sing-box-1.8.11-linux-amd64.tar.gz \
&& tar -xf sing-box-1.8.11-linux-amd64.tar.gz \
&& mv sing-box-1.8.11-linux-amd64/sing-box /usr/bin \
&& rm sing-box-1.8.11-linux-amd64.tar.gz \
&& rm -rf /sing-box-1.8.11-linux-amd64
ENV ENV="/root/.ashrc"
+6 -6
View File
@@ -2,16 +2,16 @@ ARG image
FROM $image
RUN apk add openssh git xz \
&& mkdir /root/.ssh \
&& wget https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.15.3/shadowsocks-v1.15.3.x86_64-unknown-linux-musl.tar.xz \
&& tar -xf shadowsocks-v1.15.3.x86_64-unknown-linux-musl.tar.xz \
&& wget https://github.com/teddysun/v2ray-plugin/releases/download/v5.7.0/v2ray-plugin-linux-amd64-v5.7.0.tar.gz \
&& tar -xf v2ray-plugin-linux-amd64-v5.7.0.tar.gz \
&& wget -O shadowsocks-rust.x86_64-unknown-linux-musl.tar.xz $(wget -q -O - https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep browser_download_url | cut -d\" -f4 | egrep '.x86_64-unknown-linux-musl.tar.xz$') \
&& tar -xf shadowsocks-rust.x86_64-unknown-linux-musl.tar.xz \
&& wget -O v2ray-plugin-linux-amd64.tar.gz $(wget -q -O - https://api.github.com/repos/teddysun/v2ray-plugin/releases/latest | grep browser_download_url | cut -d\" -f4 | egrep 'v2ray-plugin-linux-amd64') \
&& tar -xf v2ray-plugin-linux-amd64.tar.gz \
&& mv sslocal /usr/bin/ \
&& mv ssserver /usr/bin/ \
&& mv ssmanager /usr/bin/ \
&& mv ssservice /usr/bin/ \
&& mv ssurl /usr/bin/ \
&& mv v2ray-plugin_linux_amd64 /usr/bin/v2ray-plugin \
&& rm v2ray-plugin-linux-amd64-v5.7.0.tar.gz\
&& rm shadowsocks-v1.15.3.x86_64-unknown-linux-musl.tar.xz
&& rm v2ray-plugin-linux-amd64.tar.gz \
&& rm shadowsocks-rust.x86_64-unknown-linux-musl.tar.xz
ENV ENV="/root/.ashrc"
+16
View File
@@ -0,0 +1,16 @@
FROM ubuntu:22.04 AS build
RUN apt update && apt install -y curl gpg lsb-release \
&& curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/cloudflare-client.list \
&& apt update && apt install -y cloudflare-warp
FROM alpine:3.17
ARG GLIBC_VERSION=2.34-r0
COPY --from=build /usr/bin/warp-cli /usr/bin/warp-svc /usr/local/bin/
RUN apk add --no-cache dbus-libs wget socat openssh-server jq curl \
&& mkdir /tmp/glibc-pkgs \
&& for PKG in glibc-$GLIBC_VERSION.apk glibc-bin-$GLIBC_VERSION.apk; do wget -q --directory-prefix /tmp/glibc-pkgs https://github.com/sgerrand/alpine-pkg-glibc/releases/download/$GLIBC_VERSION/$PKG; done \
&& apk add --no-cache --allow-untrusted --force-overwrite /tmp/glibc-pkgs/* \
&& rm -rf /tmp/glibc-pkgs \
&& /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib \
&& mkdir /root/.ssh
+3 -1
View File
@@ -1,6 +1,8 @@
ARG image
FROM $image
RUN apk add --no-cache --virtual .build-deps alpine-sdk git go \
COPY --from=golang:1.22.3-alpine /usr/local/go/ /usr/local/go/
ENV PATH="/usr/local/go/bin:${PATH}"
RUN apk add --no-cache --virtual .build-deps alpine-sdk git \
&& apk add iproute2 linux-headers iptables xtables-addons openssh wireguard-tools jq bash htop \
&& git clone https://github.com/amnezia-vpn/amneziawg-go \
&& git clone https://github.com/amnezia-vpn/amneziawg-tools.git \
+1 -1
View File
@@ -2,7 +2,7 @@ ARG image
FROM $image
RUN apk add openssh openssl jq \
&& mkdir /root/.ssh \
&& wget https://github.com/XTLS/Xray-core/releases/download/v1.8.10/Xray-linux-64.zip \
&& wget -O Xray-linux-64.zip $(wget -q -O - https://api.github.com/repos/XTLS/Xray-core/releases/latest | grep browser_download_url | cut -d\" -f4 | egrep 'Xray-linux-64.zip$') \
&& unzip Xray-linux-64.zip \
&& mv xray /usr/bin/ \
&& rm Xray-linux-64.zip \
+3 -3
View File
@@ -3,13 +3,13 @@ b:
u: # запуск контейнеров
bash ./update/update.sh &
touch ./override.env
IP=$(shell curl https://ipinfo.io/ip) VER=$(shell git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate
IP=$(shell curl ipinfo.io/ip) VER=$(shell git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate
d: # остановка контейнеров
-kill -9 $(shell cat ./update/update_pid) > /dev/null
docker compose down --remove-orphans
dv: # остановка контейнеров
docker compose down -v
r: d cleanf u cleanf
r: d u
ps: # список контейнеров
docker compose ps
l: # логи из контейнеров
@@ -31,7 +31,7 @@ up: # консоль сервиса
ad: # консоль сервиса
docker compose exec ad /bin/sh
wp: # консоль сервиса
docker compose exec wp bash
docker compose exec wp /bin/sh
proxy: # консоль сервиса
docker compose exec proxy /bin/sh
tg: # консоль сервиса
Regular → Executable
View File
+4
View File
@@ -6,6 +6,10 @@ telegram bot to manage servers (inside the bot)
- change secret
- qr/config
- change fake domain
- multiple users
- subscriptions with routing
- routing templates per user
- steal from yourself
<img src="https://github.com/mercurykd/vpnbot/assets/30900414/39bdf4e0-96a6-4257-b61e-30a14122e236" width="200">
### NaiveProxy
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
+5 -1
View File
@@ -16,7 +16,11 @@ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
apt install -y docker-ce docker-ce-cli containerd.io
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.29.6/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
git clone https://github.com/mercurykd/vpnbot.git
cd ./vpnbot
echo "<?php
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
+18
View File
@@ -0,0 +1,18 @@
cat /ssh/key.pub > /root/.ssh/authorized_keys
ssh-keygen -A
exec /usr/sbin/sshd -D -e "$@" &
off=$(cat /config/pac.json | jq -r .warpoff)
key=$(cat /config/pac.json | jq -r .warp)
if [ "$off" == 'null' ]
then
warp-svc > /dev/null &
sleep 3
warp-cli --accept-tos registration new
if [ ! -z "$key" ]
then
warp-cli --accept-tos registration license $key
fi
warp-cli --accept-tos mode proxy
warp-cli --accept-tos connect
fi
socat TCP-LISTEN:4000,fork TCP:127.0.0.1:40000
Regular → Executable
View File
Binary file not shown.
+17
View File
@@ -0,0 +1,17 @@
<service>
<id>singbox</id>
<name>singbox</name>
<description>singbox</description>
<executable>%BASE%\sing-box.exe</executable>
<arguments>run -c %BASE%\config.json</arguments>
<logmode>rotate</logmode>
<onfailure action="restart" delay="10 sec" />
<onfailure action="restart" delay="20 sec" />
<onfailure action="restart" delay="30 sec" />
<onfailure action="none" />
<onexit action="restart" />
<onexit action="restart" />
<onexit action="restart" />
<onexit action="none" />
<download from="~url~" to="%BASE%\config.json"/>
</service>
Regular → Executable
+10 -1
View File
@@ -9,16 +9,25 @@ do
branch=$(cat $pwd/update/branch 2>/dev/null)
if [[ -n "$cmd" ]]
then
key=$(cat $pwd/update/key)
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "останавливаю бота"/')"
docker compose down --remove-orphans
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "очищаю директорию"/')"
git reset --hard && git clean -fd
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "скачиваю обновление"/')"
git fetch
if [[ -n "$branch" ]]
then
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "меняю ветку"/')"
git checkout -t origin/$branch || git checkout $branch
fi
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "применяю обновления"/')"
git pull > ./update/message
IP=$(curl https://ipinfo.io/ip) VER=$(git describe --tags) docker compose up -d --force-recreate
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "запускаю бота"/')"
IP=$(curl ipinfo.io/ip) VER=$(git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate
bash $pwd/update/update.sh &
> $pwd/update/key
> $pwd/update/curl
exit 0
fi
sleep 1
+116
View File
@@ -1,3 +1,119 @@
06.10.2024 v1.64.1
- добавление html заглушки через меню
06.10.2024 v1.64
- возможность установить свою html-заглушку
06.10.2024 v1.63
- приоритет правила block над остальными в стандартном шаблоне sing-box
30.09.2024 v1.62
- импорт профиля xray в karing
30.09.2024 v1.61.1
- фикс удаления ключа варпа через ноль
29.09.2024 v1.61
- включение/отключение процесса warp
29.09.2024 v1.60
- ускорение сборки архива sing-box windows
23.09.2024 v1.59
- docker compose v2.29.6 (при установке бота)
22.09.2024 v1.58
- фикс запуска бота с правильными параметрами после обновления
22.09.2024 v1.57
- выбор типа endpoint для wireguard/amnezia
22.09.2024 v1.56.2
- фикс разных доменов при указании cdn для xray
19.09.2024 v1.56.1
- cdn для xray
17.09.2024 v1.55
- возможность подменить домен в ссылках на конфиги
16.09.2024 v1.54.2
- фикс нэйминга клиентов в adguardHome: замена на uuid
16.09.2024 v1.54.1
- фикс нэйминга клиентов в adguardHome
16.09.2024 v1.54
- ~dns~ в шаблоне сингбокса подменяятся на https://DOMAIN/dns-query/USERNAME
- при добавлении пользователя в XRAY, он также добавляется в AdguardHome как сохраненый клиент
10.09.2024 v1.53
- домен в endpoint для амнезии
10.09.2024 v1.52
- фикс спамящего уведомления о просрочке сертификата
10.09.2024 v1.51
- фикс ipinfo
08.09.2024 v1.50
- fix import with transport
08.09.2024 v1.49
- fix add user xray with transport
08.09.2024 v1.48
- fix change xray transport, save private key xray
08.09.2024 v1.47
- fix websocket -> reality
03.09.2024 v1.46.2
- fix link v2ray
03.09.2024 v1.46.1
- fix import
- fix websocket domain
03.09.2024 v1.46
- возможность добавить кастомный поддомен для Letsencrypt
03.09.2024 v1.45
- выбор транспорта reality/websocket
26.08.2024 v1.44
- qr для xtls
- фикс действий на элементом списков
21.08.2024 v1.43
- singbox:поддержка кастомных outbound для ruleset
16.08.2024 v1.42.1
- фикс добавления рулсетов с длинными урл
16.08.2024 v1.42
- добавлена возможность сохранять/восстанавливать список доменов/правил маршрутизации
- изменена ссылка на сингбокс-конфиг для совместимости с клиентом сингбокса (фикс импорта в sing-box)
- sing-box: добавлена возможность добавлять свои packagename (outbound:proxy)
- sing-box: добавлена возможность добавлять свои ruleset с указанием outbound и временем обновления
- sing-box: списки доменов pac/warp/block трансформируются в собственный ruleset и присутствуют в шаблоне origin всегда, даже если они пустые. это дает возможность не ждать перезагрузки конфига клиентом
09.08.2024 v1.41.1
- фикс для "удалить все" в списках доменов
06.08.2024 v1.41
- возможность очистить РАС лист
03.08.2024 v1.40
- возможность менять MTU для Wireguard/Amnezia
- раздельный qr для AmneziaWG + AmneziaVPN
18.05.2024 v1.39
- изменен автобэкап
04.05.2024 v1.38
- changelog в сообщении новой версии
04.05.2024 v1.37.1
- warp на образе alpine (thx @zmeyzloy)
- фикс выбора шаблона singbox
22.04.2024 v1.35
- очистка старых образов
19.04.2024 v1.34
- формирование rule_set из шаблона singbox
18.04.2024 v1.33
- вывод статуса warp в меню
18.04.2024 v1.32
- фиксы в названии и отображении выбранного шаблона xtls
18.04.2024 v1.31
- возможность устанавливать ключ для warp
16.04.2024 v1.30.1
- улучшение сообщения об обновлениях
16.04.2024 v1.30
- улучшение скрипта обновления
16.04.2024 v1.29
- рефакторинг подписок
- кнопки импорта для различных клиентов
- шаблоны для v2ray
15.04.2024 v1.28
- xtls: список блокировки, список warp
- улучшение отображения таймера
14.04.2024 v1.27.1
- singbox windows: замена winsw на winsw3, + скрипт обновления подписки
13.04.2024 v1.27
- архив сингбокса для windows, работает как служба
12.04.2024 v1.26
- имя клиента xtls подтягивается по подписке из бота
11.04.2024 v1.25
- подпись дефолтного шаблона в разделе пользователя xtls
11.04.2024 v1.24
- обновлен раздел PAC, добавлена возможность добавить домены из https://community.antifilter.download/
11.04.2024 v1.23
- фикс совместимости старого конфига xray из бэкапа
11.04.2024 v1.22
- улучшение гибкости выбора шаблона sing-box
11.04.2024 v1.21