შეჯამება. ქვემოთ — რატომ ოთხი პროტოკოლი, როგორ მუშაობს მულტი-სერვერი და სად არის ბილინგის ტკივილი.
რატომ ოთხი პროტოკოლი. ერთი პროტოკოლი ყველა ამოცანას ვერ ხსნის. WireGuard სწრაფია, მაგრამ რუსეთსა და ირანში პროვაიდერებმა დიდი ხანია ისწავლეს UDP-handshake-ის ფინგერპრინტი და ჭრიან. Hysteria2 QUIC-ით 443-ე პორტზე იმალება, როგორც HTTPS-ტრაფიკი CDN-ისკენ — გვერდს უვლის ფილტრების უმეტესობას. HTTP-proxy საჭიროა, როცა მომხმარებელს მხოლოდ ბრაუზერის გადატანა უნდა, არა მთელი ტრაფიკის. SOCKS5 — fallback აპებისთვის, ვინც WireGuard-ს არ იცის და QUIC-ს ვერ ეგუება.
მულტი-სერვერი. vps1 Amsterdam-ში (ნიდერლანდების სამართალი, EU, დაბალი latency ევროპისთვის), vps2 New York-ში (US East), vps4 Salt Lake City-ში (US West, ვისთვისაც უფრო ახლოა). თითო სერვერი აღწერილია servers ცხრილში: SSH-წვდომა, WireGuard public key, Hysteria2 domain + obfs password, proxy-პორტები. ახალი კონფიგის თხოვნისას ბოტი SSH-ით ამატებს peer-ს არჩეულ სერვერზე და აბრუნებს მზა კონფიგურაციას + QR-ს.
ბილინგი და ლიმიტები. ლიმიტები ბოტის მხარეს ითვლება — თითო მომხმარებელს users.tariff ჩანაწერი აქვს დასაშვები კონფიგების რაოდენობითა და ტრაფიკით. cleanup.py cron-დან გადის, სერვერებზე SSH-ით, აგროვებს ტრაფიკის სტატისტიკას WireGuard wg show transfer-ით და Hysteria2-მეტრიკით, აახლებს usage_logs-ს. ლიმიტი გადააჭარბა — შეტყობინება Telegram-ში და დროებითი ბლოკი.
არხზე გამოწერა, როგორც gate. Subscription middleware ამოწმებს, რომ user-ი @izgoy4u-ზე გამოწერილია მენიუს თითო პასუხამდე. გამოწერა გააუქმა — ბოტი დუმს და სთხოვს თავიდან გამოწერას. ორგანული არხის ზრდა + დაცვა მულტი-ანგარიშებისგან.
არანაირი k8s, არანაირი Docker. ერთი SQLite-ფაილი, systemd-unit, paramiko SSH-ისთვის. 67 მომხმარებელი მეტს არაფერს ითხოვს, თუ არა aiogram-აპს ერთ პროცესში. გართულება მართლდება მხოლოდ რეალური საგადასახადო პროცესორითა და ათობით ათასი მომხმარებლით — მაგრამ მიმდინარე არქიტექტურა ათასებამდე გაიზრდება ცვლილებების გარეშე.