Dokumentacja / v1.4.2

Keyo, dokumentacja

Wszystko, czego potrzebujesz, żeby postawić Keyo na swojej sieci: instalacja, config, zaufani, limity, Discord, AI i połączenie z panelem Pterodactyl.

Wymagania

ElementWersjaUwagi
Java21+Taka sama jak dla Paper 1.21
Velocity3.3 lub 3.4Opcjonalnie, Keyo działa też na pojedynczym serwerze
Paper / Purpur1.20 do 1.21.11Agent na każdym podserwerze
LuckPerms5.4+Wymagany, Keyo pilnuje jego zmian
CoreProtect22+Opcjonalnie, do rollbacku WorldEdita
Pterodactyl1.11+Opcjonalnie, tylko dla ochrony konsoli panelu

Instalacja

  1. Proxy. Wrzuć Keyo-Velocity.jar do plugins/ na Velocity i zrestartuj proxy. Powstanie plugins/keyo/config.yml.
  2. Podserwery. Wrzuć Keyo-Paper.jar na każdy podserwer. Agent sam połączy się z proxy przez kanał pluginu, nie potrzebuje osobnej bazy ani portu.
  3. Licencja. W konsoli proxy wpisz klucz, który dostałeś na Discordzie:
    keyo license KY-XXXX-XXXX-XXXX
  4. Pierwszy zaufany. Wejdź do panelu Keyo, zaloguj się przez Discorda, włącz 2FA i dodaj swój nick do zaufanych. Z konsoli ani z gry nie da się tego zrobić.
Gotowe. Od teraz każda groźna zmiana uprawnień, ban, edycja WorldEdita czy transakcja ekonomii przechodzi przez Keyo.

config.yml

Plik leży w plugins/keyo/config.yml na proxy. Keyo pilnuje go sam: zmiana z gry albo przez plugin zostanie cofnięta, dozwolona jest tylko edycja pliku i keyo reload z konsoli.

# Zaufani są ustawiani tylko w panelu Keyo, tu nic nie wpiszesz
trusted: panel

# Uprawnienia, które dostaje tylko zaufany
dangerous: ["*", "group.admin", "group.owner", "luckperms.*"]

limits:
  ban: 5            # na minutę, na osobę
  kick: 10
  worldedit-blocks: 500000
  eco-max: 50000     # największa jednorazowa wypłata
  entities-chunk: 600

punishment: quarantine  # quarantine | kick | ban
lockdown:
  auto-after: 2       # kwarantanny staffu w 60 s

discord:
  token: "BOT_TOKEN"
  alerts: "#keyo-logi"
  audit: "#keyo-audyt"

ai:
  model: auto        # auto | ikazuchi | claude | gpt | gemini

panel:
  enabled: false     # patrz: Panel Pterodactyl
KluczDomyślnieOpis
trustedpanelZawsze panel. Listę zaufanych serwer dostaje podpisaną z panelu Keyo, zmiana tego pola nic nie da
dangerous*, admin, ownerUprawnienia i grupy pilnowane przez strażnika
limits.*jak wyżejProgi, po których przekroczeniu włącza się kwarantanna
punishmentquarantineCo dzieje się z osobą, która przekroczy limit
lockdown.auto-after2Ile kwarantann staffu w minutę włącza lockdown. 0 wyłącza automat
ai.modelautoauto sam dobiera model do zdarzenia. Możesz też wymusić ikazuchi, claude, gpt albo gemini, bez własnego klucza API
panel.enabledfalseOchrona konsoli Pterodactyla. Włączysz ją dopiero po autoryzacji

Zaufani i 2FA

Zaufanych zmieniasz tylko w panelu Keyo. Nie z konsoli proxy, nie z konsoli Pterodactyla, nie z gry i nie z pliku. Dzięki temu nawet ktoś z dostępem do konsoli albo SFTP nie dopisze się sam.

Panel Keyo to strona, na którą logujesz się przez Discorda. Każda zmiana listy zaufanych wymaga kodu 2FA, a dodanie nowej osoby musi potwierdzić właściciel sieci. Serwer dostaje listę podpisaną kluczem Keyo i odrzuca każdą, której nie podpisał panel.

Samo uprawnienie to jeszcze nie zaufanie. Nawet jeśli ktoś ma w LuckPerms prawo edycji, groźne uprawnienie z listy dangerous nada tylko osoba z trusted. Każdy, kto dostaje takie uprawnienie, też musi być na liście, inaczej zmiana zostanie zatrzymana.

Częsty błąd. Dajesz komuś OP albo grupę admin, a zapominasz dopisać go do zaufanych. Keyo zatrzyma to jak próbę przejęcia i obie osoby trafią do kwarantanny. Zaufany cofa to jednym kliknięciem "Przywróć" na Discordzie, a potem dodaje brakującą osobę w panelu Keyo.

Staff z groźnymi uprawnieniami może mieć włączone 2FA. Po wejściu z nowego IP uprawnienia śpią, dopóki gracz nie wpisze /keyo auth KOD z aplikacji. Trzy złe kody z rzędu to kwarantanna i alert.

keyo 2fa require group.admin
keyo 2fa reset Nick

Kwarantanna i przywracanie

Kwarantanna to nie ban. Gracz zostaje na serwerze i może grać, ale traci wszystkie uprawnienia staffu i trafia do grupy quarantine. Przed karą Keyo zapisuje kopię jego uprawnień.

  • Przywróć na Discordzie albo keyo restore Nick oddaje uprawnienia z kopii.
  • Zostaw karę zapisuje decyzję w #keyo-audyt, kopia zostaje na 30 dni.
  • Bany z ostatniej minuty i edycje WorldEdita są cofane automatycznie, niezależnie od decyzji.

Lockdown

Lockdown nikogo nie wyrzuca. Gracze grają dalej, a groźne akcje (zmiany w LuckPerms, bany, WorldEdit, ekonomia, komendy z konsoli panelu) działają tylko dla zaufanych. Włącza się sam po serii kwarantann albo ręcznie:

keyo lockdown on
keyo lockdown off

Bot na Discordzie

  1. Utwórz aplikację na Discord Developer Portal, dodaj bota i skopiuj token do discord.token.
  2. Zaproś bota z uprawnieniami: wyświetlanie kanałów, wysyłanie wiadomości, osadzanie linków.
  3. Utwórz kanały #keyo-logi (alerty z przyciskami) i #keyo-audyt (pełny log, tylko do odczytu).
  4. Połącz konta zaufanych: każdy wpisuje na Discordzie /keyo link, a potem w grze kod, który dostanie.

Alerty są wysyłane jako wiadomości Components V2 (flaga IS_COMPONENTS_V2, 32768): kontener z kolorowym paskiem, nagłówek z głową gracza, separatory i przyciski. Przyciski działają tylko dla połączonych kont zaufanych.

Ocena AI

Każde zdarzenie dostaje ocenę ryzyka od 0 do 1 i krótkie wyjaśnienie w alercie. Do wyboru jest Ikazuchi od Narakai oraz Claude, GPT i Gemini, które działają przez partnerstwo z EpsilonCode, więc nie potrzebujesz własnego klucza API.

WartośćCo robi
autoDomyślnie. Keyo sam wybiera model do zdarzenia, a gdy któryś nie odpowiada, przełącza się na kolejny
ikazuchiModel Ikazuchi od Narakai
claude, gpt, geminiWybrany model przez EpsilonCode
AI nie karze. Kary nakłada strażnik według limitów z configu. AI tylko ocenia i opisuje, co się stało.

Panel Pterodactyl

Domyślnie wyłączone. Ochrona konsoli panelu nie działa od razu po instalacji. Wymaga dodania naszego konta jako subusera i autoryzacji połączenia, bo daje dostęp do Twojego serwera. Autoryzacja jest automatyczna, gdy wszystko się zgadza.

Po włączeniu Keyo widzi komendy wpisane w konsoli panelu, zatrzymuje groźne, ustala z logu aktywności, kto je wpisał, i może odebrać mu dostęp do serwera i SFTP.

1. Dodaj subusera

W panelu (na RaidVM to panel.raidvm.com) wejdź w serwer, potem Users i New User. Wpisz e-mail:

keyo@fanth.pl

2. Zaznacz uprawnienia

UprawnieniePo co
websocket.connectPodgląd konsoli na żywo
control.consoleAnulowanie groźnych komend
activity.readUstalenie, kto wpisał komendę
user.read, user.update, user.deleteOdebranie dostępu podejrzanemu subuserowi
file.read, file.updateKwarantanna podejrzanych pluginów w plugins/
Ważne. Subuser nie może nadać nikomu uprawnień, których sam nie ma, i nie może usunąć właściciela serwera. Jeśli chcesz, żeby Keyo mógł odcinać innych subuserów, sam musisz mieć prawa do zarządzania użytkownikami.

3. Wygeneruj kod

W konsoli proxy wpisz:

keyo panel link

Keyo pokaże UUID serwera i jednorazowy kod weryfikacyjny, na przykład KYP-7F3Q-92LD. Kod jest ważny 24 godziny.

4. Ustaw config

panel:
  enabled: true
  url: "https://panel.raidvm.com"
  server: "a1b2c3d4"   # krótkie UUID z adresu serwera w panelu

Potem keyo reload. Przez chwilę status będzie pending.

5. Autoryzacja

Po keyo reload Keyo sam sprawdza połączenie. Jeśli kod z kroku 3 pasuje do UUID serwera, licencja jest aktywna, a zaproszenie subusera keyo@fanth.pl czeka w panelu, połączenie autoryzuje się automatycznie, zwykle w mniej niż minutę. Na #keyo-logi przyjdzie wiadomość "Panel połączony".

Nigdy nie podawaj hasła do panelu ani klucza API konta właściciela. Nie są potrzebne. Zespół Keyo nigdy o nie nie poprosi, a ktoś, kto prosi, podszywa się pod nas.

Jeśli coś się nie zgadza (kod wygasł, licencja nieaktywna, brak zaproszenia), połączenie zostanie odrzucone, a bot napisze powód. Zespół Keyo może też zablokować połączenie albo licencję, na przykład przy nadużyciach lub zaległej płatności. Wtedy napisz na naszym Discordzie.

6. Sprawdź

keyo panel status
# panel: connected (panel.raidvm.com, a1b2c3d4) jako keyo@fanth.pl

Wyłączenie: usuń subusera keyo@fanth.pl w panelu albo ustaw panel.enabled: false. Dostęp znika od razu.

Komendy

KomendaGdzieOpis
keyo trust listkonsolaPokazuje zaufanych, tylko do odczytu. Zmiany robisz w panelu Keyo
keyo restore Nickkonsola, zaufanyPrzywraca uprawnienia z kopii
keyo lockdown on|offkonsola, zaufanyTryb ochronny całej sieci
keyo panel link|statuskonsolaPołączenie z Pterodactylem
keyo 2fa require|resetkonsolaUstawienia 2FA
keyo reloadkonsolaPrzeładowuje config
/keyo auth KODgraPotwierdzenie 2FA
/keyo statusgra, zaufanyStan ochrony i ostatnie alerty

Rozwiązywanie problemów

Agent na podserwerze się nie łączy
Sprawdź, czy wersje Keyo-Velocity i Keyo-Paper są takie same, i czy podserwer ma włączony forwarding Velocity.
Ktoś z zaufanych trafił do kwarantanny
Najczęściej dostał groźne uprawnienie od osoby spoza listy albo odwrotnie. Kliknij "Przywróć" i dodaj brakującą osobę w panelu Keyo.
Panel ma status pending
Autoryzacja zwykle trwa poniżej minuty. Sprawdź, czy zaproszenie subusera czeka w panelu i czy kod nie wygasł. Nowy wygenerujesz przez keyo panel link.
Przyciski na Discordzie nie działają
Twoje konto Discord nie jest połączone z nickiem z listy zaufanych. Użyj /keyo link.
Dalej nie działa? Napisz na Discordzie, odpowiadamy zwykle w ciągu godziny.