Nokia123543 commited on
Commit
75792a2
·
verified ·
1 Parent(s): b176113

PLUS: обход предупреждения serveo через заголовок + ключ для постоянного имени

Browse files
Files changed (1) hide show
  1. plus/serveo_key.py +60 -0
plus/serveo_key.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Ключ для serveo: закрепить постоянный поддомен за собой.
2
+
3
+ python3 plus/serveo_key.py # создать ключ и показать, что вставить
4
+ python3 plus/serveo_key.py --show # только показать существующий
5
+ """
6
+
7
+ import argparse
8
+ import os
9
+ import pathlib
10
+ import subprocess
11
+ import sys
12
+
13
+ KEY = pathlib.Path.home() / ".ssh" / "id_ed25519"
14
+ PUB = pathlib.Path(str(KEY) + ".pub")
15
+
16
+
17
+ def ensure_key() -> str:
18
+ if not KEY.exists():
19
+ KEY.parent.mkdir(parents=True, exist_ok=True)
20
+ subprocess.run(["ssh-keygen", "-t", "ed25519", "-N", "", "-C", "serveo",
21
+ "-f", str(KEY)], check=True, capture_output=True)
22
+ print("ключ создан: %s" % KEY)
23
+ else:
24
+ print("ключ уже есть: %s" % KEY)
25
+ return PUB.read_text(encoding="utf-8").strip()
26
+
27
+
28
+ def main() -> int:
29
+ parser = argparse.ArgumentParser(description="Ключ serveo для постоянного поддомена")
30
+ parser.add_argument("--show", action="store_true", help="не создавать, только показать")
31
+ parser.add_argument("--name", default=os.environ.get("MUSCRIPTOR_SUBDOMAIN",
32
+ "nokia1709"))
33
+ args = parser.parse_args()
34
+
35
+ if args.show:
36
+ if not PUB.exists():
37
+ print("ключа нет, запусти без --show")
38
+ return 1
39
+ key = PUB.read_text(encoding="utf-8").strip()
40
+ else:
41
+ key = ensure_key()
42
+
43
+ print("\nпубличный ключ (копировать целиком, одной строкой):\n")
44
+ print(key)
45
+ print("""
46
+ как закрепить имя %s на бесплатном плане serveo:
47
+ 1. открой https://console.serveo.net и войди (аккаунт бесплатный)
48
+ 2. раздел SSH keys → Add key → вставь строку выше
49
+ 3. раздел Domains → зарезервируй %s
50
+ 4. перезапусти пускач: python3 plus/serve_muscriptor.py --device cuda
51
+ имя %s останется твоим и между перезапусками, и когда ноутбук выключен
52
+ """ % (args.name, args.name, args.name))
53
+ print("примечание: бесплатный тариф serveo показывает посетителю предупреждение,")
54
+ print("но прокси уже добавляет заголовок обхода в запросы интерфейса,")
55
+ print("поэтому панель и транскрипция работают.")
56
+ return 0
57
+
58
+
59
+ if __name__ == "__main__":
60
+ sys.exit(main())