Skip to content

wronai/fixell

Repository files navigation

Fixell - Zdalna naprawa systemu Linux z AI

Python 3.8+ License: MIT Ollama Linux

Narzędzie do naprawy systemów Linux (Fedora, Ubuntu, Debian) w trybie awaryjnym poprzez komunikację z modelem AI (Ollama).

Architektura

[Komputer z problemem]     [Komputer z GPU/Ollama]
     (Fedora)                    (nvidia)
        |                           |
   fixer.sh  ----TCP:8088---->  fixer-server.py
        |                           v
        v                    Ollama + qwen2.5:14b
  Wykonuje komendy           (diagnozuje i naprawia)
  (z potwierdzeniem)

Szybki start

Na komputerze z GPU (serwer):

# Upewnij się, że Ollama działa z modelem qwen2.5:14b
ollama pull qwen2.5:14b
ollama serve

# Uruchom serwer naprawczy
./fixer-server.py 8088

Na komputerze z problemem (klient):

# Minimalny skrypt - wystarczy bash i /dev/tcp
./fixer.sh nvidia-host:8088

Użycie w trybie awaryjnym Fedora

  1. Uruchom Fedorę w trybie awaryjnym (rescue mode)
  2. Skopiuj fixer.sh na USB lub pobierz przez sieć
  3. Połącz się z serwerem: ./fixer.sh 192.168.1.100:8088
  4. Opisz problem - AI zaproponuje komendy diagnostyczne
  5. Potwierdź każdą komendę przed wykonaniem (t/n/q)

Testowanie z Docker Compose

# Ollama musi działać lokalnie na porcie 11434
docker-compose up --build

# W osobnych terminalach:
docker attach fixell-client   # interakcja jako klient
docker attach fixell-server   # podgląd serwera

Instalacja

# Metoda 1: pip
pip install fixell

# Metoda 2: Ze źródeł
git clone https://github.com/wronai/fixell.git
cd fixell && pip install -e .

Klient bez instalacji (one-liner)

# Opcja 1: Pobierz i uruchom skrypt
curl -sO https://raw.githubusercontent.com/wronai/fixell/main/fixer.sh && bash fixer.sh server:8088

# Opcja 2: Bezpośrednio przez netcat (ultra-minimalne)
nc server 8088

# Opcja 3: Curl one-liner
curl -sL https://raw.githubusercontent.com/wronai/fixell/main/fixer-curl.sh | bash -s -- server:8088

Pliki

Plik Opis
fixer.sh Minimalny klient bash (~30 linii)
fixer-curl.sh Ultra-minimalny klient (curl/nc)
fixell/ Paczka Python (serwer + klient)
docker-compose.yml Test środowiska
docs/ Pełna dokumentacja

Rekomendowane modele

Model VRAM Jakość
qwen2.5:14b ~10GB ⭐⭐⭐⭐⭐
qwen2.5:7b ~5GB ⭐⭐⭐⭐
codellama:13b ~8GB ⭐⭐⭐⭐
llama3:8b ~5GB ⭐⭐⭐

Pełna lista: docs/models.md

Komendy serwera

Po uruchomieniu make run-server operator może wysyłać komendy do podłączonych klientów:

Komenda Opis
run: <cmd> Wyślij komendę do automatycznego wykonania (bez potwierdzenia)
exec: <cmd> Wyślij komendę z potwierdzeniem (klient pyta t/n)
to: <msg> Wyślij wiadomość tekstową do klientów
status Pokaż liczbę aktywnych klientów i sesji HTTP
config Pokaż aktualną konfigurację
help Pokaż pomoc

Przykłady:

SERVER> run: uname -a
# Klient automatycznie wykonuje i wysyła wynik

SERVER> exec: systemctl restart NetworkManager
# Klient pyta: "Wykonać? (t/n):"

SERVER> to: Sprawdzam logi, proszę czekać...
# Klient wyświetla wiadomość

SERVER> status
# Aktywnych klientów: 1, sesji HTTP: 0

Tryb curl (prosty)

Dla klientów bez skryptu - komunikacja przez HTTP:

# Zadaj pytanie
curl -X POST http://192.168.1.100:8089/ask -d "system nie startuje"

# AI odpowiada z gotową komendą curl do skopiowania:
# curl -X POST http://192.168.1.100:8089/result -d "$(journalctl -xb | tail -100)"

# Wyślij wynik komendy
curl -X POST http://192.168.1.100:8089/result -d "$(journalctl -xb | tail -100)"

# Reset sesji
curl -X POST http://192.168.1.100:8089/reset

Bezpieczeństwo

  • ✅ Każda komenda wymaga potwierdzenia użytkownika (tryb exec:)
  • ✅ Tryb run: tylko dla operatora serwera
  • ✅ Wykrywanie niebezpiecznych komend (rm -rf /, dd, etc.)
  • ✅ Operator serwera widzi wszystkie akcje
  • ✅ Pełne logi sesji w logs/conversation_*.md

Dokumentacja

About

agentic based fixing pc

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published