| templates | ||
| .gitattributes | ||
| autoscript.conf.example | ||
| README.md | ||
| start.sh | ||
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
- Architektura Platformy: Co zostanie zainstalowane?
- Przewodnik Konfiguracyjny: Zdobywanie Kluczy
- Instalacja (Szybki Start)
- Przewodnik po Komendach
- Aspekty Bezpieczeństwa
- 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.
- Zaloguj się na swoje konto Cloudflare.
- Przejdź do sekcji "My Profile" (w prawym górnym rogu) > "API Tokens".
- Bezpośredni link: https://dash.cloudflare.com/profile/api-tokens
- Kliknij przycisk "Create Token".
- Znajdź szablon "Edit zone DNS" i kliknij "Use template".
- Skonfiguruj token:
- Permissions: Upewnij się, że jest
Zone:DNS:Edit. - Zone Resources: Wybierz
Include>Specific zone> i wybierz z listy swoją domenę (social.ovhw domyślnej konfiguracji).
- Permissions: Upewnij się, że jest
- Kliknij "Continue to summary", a następnie "Create Token".
- Skopiuj wygenerowany token. To jedyny moment, kiedy jest on w pełni widoczny. Wklej go jako wartość zmiennej
CF_DNS_API_TOKENw plikuautoscript.conf.
3. Instalacja (Szybki Start)
- Zaloguj się jako
rootna nowym serwerze (Debian/Ubuntu). - Zainstaluj
giti sklonuj repozytorium:apt update && apt install -y git git clone https://github.com/pawelorzech/autoscript.git && cd autoscript - Skonfiguruj AutoScript:
cp autoscript.conf.example autoscript.conf nano autoscript.conf # Wypełnij zmienne zgodnie z przewodnikiem powyżej - Sprawdź poprawność konfiguracji:
sudo ./start.sh validate - 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 komendysudo. - 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) orazFail2ban(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.