autoscript/README.md
2025-08-03 13:07:44 +02:00

8 KiB
Raw Blame History

AutoScript Version License Platform

AutoScript: Zautomatyzowana Platforma Serwerowa

AutoScript to w pełni zautomatyzowane, bezpieczne i gotowe do użycia rozwiązanie do wdrażania i zarządzania kompletnym środowiskiem serwerowym. Projekt ten przekształca "surowy" serwer w gotową do pracy, zabezpieczoną i monitorowaną platformę, na której główną, przykładową aplikacją jest Mastodon.


Spis Treści

  1. Architektura Platformy: Co zostanie zainstalowane?
  2. Przewodnik Konfiguracyjny: Zdobywanie Kluczy
  3. Instalacja (Szybki Start)
  4. Przewodnik po Komendach
  5. Aspekty Bezpieczeństwa
  6. Licencja

1. Architektura Platformy: Co zostanie zainstalowane?

AutoScript buduje wielowarstwową, nowoczesną platformę serwerową. Oto komponenty, które zostaną wdrożone i skonfigurowane:

Warstwa Komponent Rola w Systemie
Aplikacja Mastodon Główna aplikacja platformy zdecentralizowana sieć społecznościowa.
Baza Danych PostgreSQL Niezawodna, obiektowo-relacyjna baza danych, wymagana przez Mastodona.
Proxy i SSL Traefik Nowoczesny reverse proxy, który automatycznie zarządza ruchem i certyfikatami SSL od Let's Encrypt.
Konteneryzacja Docker Platforma do uruchamiania wszystkich aplikacji w izolowanych, bezpiecznych kontenerach.
Monitoring Prometheus System do zbierania metryk wydajnościowych ze wszystkich komponentów platformy.
Grafana Narzędzie do wizualizacji metryk zebranych przez Prometheus w formie pięknych i czytelnych dashboardów.
Alertmanager System do wysyłania powiadomień (e-mail) w razie wykrycia problemów (np. wysokiego użycia CPU).
Logowanie Loki & Promtail System do centralnego zbierania i przeszukiwania logów ze wszystkich aplikacji i z samego systemu operacyjnego.
Bezpieczeństwo UFW, Hardened SSH, CrowdSec, Fail2ban Wielowarstwowy system zabezpieczeń: firewall, wzmocnione SSH, proaktywna ochrona przed włamaniami.

2. Przewodnik Konfiguracyjny: Zdobywanie Kluczy

Plik autoscript.conf wymaga podania dwóch kluczowych informacji. Oto jak je zdobyć:

Klucz Publiczny SSH (PUBLIC_KEY)

Klucz SSH służy do bezpiecznego logowania na serwer bez hasła. Skrypt zablokuje logowanie hasłem, więc ten krok jest niezbędny.

1. Sprawdź, czy masz już klucz:

ls ~/.ssh/id_ed25519.pub

Jeśli plik istnieje, przejdź do kroku 2. Jeśli nie, wygeneruj nowy klucz, wpisując w terminalu na swoim lokalnym komputerze:

ssh-keygen -t ed25519 -C "twoj_email@example.com"

Naciśnij Enter, aby zaakceptować domyślną lokalizację zapisu. Możesz opcjonalnie podać hasło do klucza dla dodatkowego bezpieczeństwa.

2. Wyświetl i skopiuj klucz publiczny:

cat ~/.ssh/id_ed25519.pub

Skopiuj całą wyświetloną linię (zaczynającą się od ssh-ed25519 ...) i wklej ją jako wartość zmiennej PUBLIC_KEY w pliku autoscript.conf.

Token API Cloudflare (CF_DNS_API_TOKEN)

Ten token pozwala Traefikowi na automatyczne potwierdzenie, że jesteś właścicielem domeny, co jest niezbędne do generowania certyfikatów SSL.

  1. Zaloguj się na swoje konto Cloudflare.
  2. Przejdź do sekcji "My Profile" (w prawym górnym rogu) > "API Tokens".
  3. Kliknij przycisk "Create Token".
  4. Znajdź szablon "Edit zone DNS" i kliknij "Use template".
  5. Skonfiguruj token:
    • Permissions: Upewnij się, że jest Zone:DNS:Edit.
    • Zone Resources: Wybierz Include > Specific zone > i wybierz z listy swoją domenę (social.ovh w domyślnej konfiguracji).
  6. Kliknij "Continue to summary", a następnie "Create Token".
  7. Skopiuj wygenerowany token. To jedyny moment, kiedy jest on w pełni widoczny. Wklej go jako wartość zmiennej CF_DNS_API_TOKEN w pliku autoscript.conf.

3. Instalacja (Szybki Start)

  1. Zaloguj się jako root na nowym serwerze (Debian/Ubuntu).
  2. Zainstaluj git i sklonuj repozytorium:
    apt update && apt install -y git
    git clone https://github.com/pawelorzech/autoscript.git && cd autoscript
    
  3. Skonfiguruj AutoScript:
    cp autoscript.conf.example autoscript.conf
    nano autoscript.conf # Wypełnij zmienne zgodnie z przewodnikiem powyżej
    
  4. Sprawdź poprawność konfiguracji:
    sudo ./start.sh validate
    
  5. Uruchom pełną instalację:
    sudo ./start.sh install
    

4. Przewodnik po Komendach

Komenda Opis
install Główna instalacja. Uruchamia walidację i wdraża wszystkie podstawowe moduły.
validate Sprawdza poprawność pliku autoscript.conf i połączeń z zewnętrznymi API.
deploy_mastodon Wdraża i konfiguruje aplikację Mastodon.
deploy_traefik Wdraża i konfiguruje reverse proxy Traefik.
deploy_monitoring Wdraża stos monitoringu (Prometheus, Grafana, Alertmanager).
secrets:edit <nazwa> Otwiera zaszyfrowany plik z sekretami dla danej usługi w edytorze.
secrets:view <nazwa> Wyświetla odszyfrowaną zawartość pliku z sekretami.
self-update Aktualizuje skrypt AutoScript do najnowszej wersji z repozytorium Git.
uninstall Niebezpieczne! Usuwa wszystkie komponenty, dane i konfiguracje stworzone przez skrypt.

5. Aspekty Bezpieczeństwa

AutoScript traktuje bezpieczeństwo jako fundamentalny element.

  • Hardening Systemu: Skrypt automatycznie zmienia domyślny port SSH, blokuje logowanie na konto root, wyłącza logowanie hasłem (wymuszając użycie kluczy SSH) i konfiguruje uwierzytelnianie dwuetapowe (TOTP) dla komendy sudo.
  • Firewall (UFW): Konfigurowana jest zapora sieciowa, która domyślnie blokuje cały ruch przychodzący, otwierając tylko niezbędne porty.
  • Ochrona przed Włamaniami: Instalowany jest CrowdSec (nowoczesny, oparty na reputacji IPS) oraz Fail2ban (klasyczna ochrona logów).
  • Bezpieczeństwo Kontenerów: Docker jest konfigurowany z userns-remap, co znacząco ogranicza potencjalne szkody w razie "ucieczki" z kontenera.

6. Licencja

Projekt jest udostępniany na licencji MIT.