| templates | ||
| .gitattributes | ||
| autoscript.conf.example | ||
| README.md | ||
| start.sh | ||
AutoScript: Zintegrowana Platforma Serwerowa
AutoScript to w pełni zintegrowane, zautomatyzowane i bezpieczne rozwiązanie do wdrażania i zarządzania kompletną, wielousługową platformą serwerową. Ten projekt przekształca "surowy" serwer w gotowe do pracy, zabezpieczone i monitorowane środowisko, zdolne do hostowania szerokiej gamy aplikacji jednocześnie.
Spis Treści
- Architektura Platformy: Przegląd Usług
- Przewodnik Konfiguracyjny: Zdobywanie Kluczy
- Instalacja (Szybki Start)
- Przewodnik po Komendach
- Kopie Zapasowe i Odtwarzanie
- Aspekty Bezpieczeństwa
- Licencja
1. Architektura Platformy: Przegląd Usług
AutoScript buduje kompleksowy ekosystem usług, gotowych do użycia zaraz po instalacji:
| Kategoria | Usługa | Rola w Systemie |
|---|---|---|
| Sieci Społecznościowe | Mastodon | Zdecentralizowana, federacyjna sieć społecznościowa. |
| Forum Dyskusyjne | Discourse | Nowoczesna, w pełni funkcjonalna platforma do prowadzenia forów internetowych. |
| System Blogowy | WordPress | Najpopularniejszy na świecie system zarządzania treścią (CMS), idealny do prowadzenia bloga lub strony. |
| Czytnik RSS | FreshRSS | Osobisty agregator wiadomości i czytnik kanałów RSS, hostowany na własnym serwerze. |
| Poczta E-mail | Własny serwer poczty | Kompletny, samowystarczalny serwer pocztowy (IMAP/SMTP) z panelem administracyjnym. |
| Synchronizacja Poczty | imapsync | Narzędzie do masowej migracji i synchronizacji kont e-mail między serwerami. |
| Monitoring i Status | Uptime Kuma | Pulpit do monitorowania dostępności wszystkich Twoich usług z publiczną stroną statusu. |
| Infrastruktura | Traefik, Docker, PostgreSQL, etc. | Solidny fundament składający się z reverse proxy, konteneryzacji i baz danych. |
2. Przewodnik Konfiguracyjny: Zdobywanie Kluczy
(Ta sekcja pozostaje taka sama jak w poprzedniej wersji, opisując pozyskiwanie klucza SSH i tokenu Cloudflare. Dodatkowo należy opisać pozyskiwanie kluczy do Backblaze B2).
Klucze do Kopii Zapasowych (Backblaze B2)
- Zaloguj się na swoje konto Backblaze.
- Przejdź do sekcji "B2 Cloud Storage" > "Buckets" i stwórz nowy, prywatny bucket.
- Przejdź do "App Keys" i wygeneruj nowy klucz aplikacyjny z dostępem do Twojego bucketa. Będziesz potrzebował
applicationKeyId(jakoB2_ACCOUNT_ID) orazapplicationKey(jakoB2_ACCOUNT_KEY).
3. Instalacja (Szybki Start)
Proces instalacji pozostaje taki sam jak w poprzednich wersjach, ale teraz wdraża znacznie więcej usług!
4. Przewodnik po Komendach
AutoScript jest sterowany za pomocą prostych, logicznych komend. Wszystkie komendy należy uruchamiać z folderu /root/autoscript z uprawnieniami sudo.
Komendy Główne
-
sudo ./start.sh installMeta-komenda, której użyjesz raz na początku. Uruchamia w odpowiedniej kolejności wszystkie niezbędne moduły instalacyjne: walidację, hardening systemu, wdrażanie Traefika, monitoringu i wszystkich skonfigurowanych usług. Idealna do szybkiego startu. -
sudo ./start.sh uninstallBARDZO NIEBEZPIECZNE! Ta komenda całkowicie usuwa wszystko, co zostało stworzone przez AutoScript: kontenery, dane aplikacji, wolumeny, obrazy Docker, a nawet odinstalowuje pakiety. Używaj tylko wtedy, gdy chcesz całkowicie wyczyścić serwer. Skrypt poprosi o potwierdzenie, aby zapobiec przypadkowemu użyciu. -
sudo ./start.sh validateTwoja siatka bezpieczeństwa. Sprawdza poprawność plikuautoscript.conf, weryfikuje klucze API i tokeny, ale nie wprowadza żadnych zmian w systemie. Zawsze uruchamiaj tę komendę po zmianie konfiguracji.
Komendy do Zarządzania Usługami
Możesz zarządzać każdą usługą niezależnie. Jest to przydatne do ponownego wdrożenia lub aktualizacji konkretnego komponentu.
sudo ./start.sh deploy_mastodonsudo ./start.sh deploy_discoursesudo ./start.sh deploy_wordpresssudo ./start.sh deploy_freshrsssudo ./start.sh deploy_mailsudo ./start.sh deploy_statussudo ./start.sh deploy_monitoringsudo ./start.sh deploy_traefik
Komendy do Zarządzania Kopiami Zapasowymi
-
sudo ./start.sh backup:initInicjalizuje nowe, puste repozytorium kopii zapasowych w Twoim buckecie Backblaze B2. Musisz to zrobić raz, zanim zadziała automatyczny backup. -
sudo ./start.sh backup:runRęcznie uruchamia proces tworzenia nowej, szyfrowanej kopii zapasowej całego folderu/opt/services. -
sudo ./start.sh backup:listWyświetla listę wszystkich dostępnych migawek (snapshotów) w Twoim repozytorium kopii zapasowych. -
sudo ./start.sh backup:restore <ID_MIGAWKI>Odtwarza wybraną migawkę do folderu/opt/services.restored. Nie nadpisuje istniejących danych, dając Ci pełną kontrolę nad procesem przywracania.
Komendy Narzędziowe
-
sudo ./start.sh secrets:edit <nazwa_usługi>Bezpiecznie otwiera zaszyfrowany plik z sekretami dla danej usługi (np.mastodon) w domyślnym edytorze. Po zapisaniu plik jest automatycznie ponownie szyfrowany. -
sudo ./start.sh secrets:view <nazwa_usługi>Bezpiecznie wyświetla na ekranie odszyfrowaną zawartość pliku z sekretami, nie zapisując jej nigdzie w formie jawnego tekstu. -
sudo ./start.sh self-updateAktualizuje skrypt AutoScript do najnowszej wersji z repozytorium Git. Zalecane do regularnego uruchamiania.
5. Kopie Zapasowe i Odtwarzanie
AutoScript jest w pełni zintegrowany z Restic i Backblaze B2, aby zapewnić bezpieczeństwo Twoich danych.
- Automatyzacja: Po poprawnej konfiguracji, skrypt automatycznie tworzy zadanie
cron, które codziennie wykonuje szyfrowaną kopię zapasową całego folderu/opt/services(zawierającego wszystkie dane aplikacji) do Twojego bucketa B2. - Odtwarzanie: W razie awarii, możesz użyć komendy
sudo ./start.sh backup:restore <ID_MIGAWKI>, aby przywrócić dane.
6. Aspekty Bezpieczeństwa: Architektura "Secure by Default"
AutoScript nie traktuje bezpieczeństwa jako opcji, ale jako fundamentalny element wbudowany w każdy aspekt platformy. Oto kluczowe mechanizmy obronne, które są wdrażane automatycznie:
Poziom Systemu Operacyjnego
- Minimalizacja Powierzchni Ataku: Skrypt instaluje tylko niezbędne pakiety. Nie ma zbędnego oprogramowania, które mogłoby stanowić potencjalne zagrożenie.
- Wzmocnione Uwierzytelnianie: Logowanie hasłem do SSH jest całkowicie wyłączone. Dostęp jest możliwy tylko za pomocą kluczy kryptograficznych. Dodatkowo, dostęp do uprawnień
root(przezsudo) jest chroniony przez uwierzytelnianie dwuetapowe (TOTP). - Ograniczenie Dostępu: Logowanie na konto
rootjest zablokowane. Dedykowany użytkownikadminma ograniczone uprawnienia, które może podnieść tylko za pomocąsudo(z weryfikacją 2FA). - Firewall (UFW): Zapora sieciowa jest skonfigurowana w trybie "blokuj wszystko, zezwalaj na wybrane". Otwierane są tylko porty niezbędne do działania wdrożonych usług.
Poziom Aplikacji i Sieci
- Proaktywna Ochrona przed Włamaniami (IPS):
CrowdSecanalizuje zachowanie w sieci i proaktywnie blokuje adresy IP znane ze złośliwej aktywności na całym świecie.Fail2bandodatkowo monitoruje logi w poszukiwaniu prób ataków brute-force. - Szyfrowanie End-to-End: Cały ruch do Twoich usług jest automatycznie szyfrowany za pomocą certyfikatów SSL/TLS od Let's Encrypt, zarządzanych przez Traefik.
- Izolacja Kontenerów: Wszystkie usługi działają w kontenerach Docker, co izoluje je od siebie i od systemu hosta. Dodatkowo, włączenie
userns-remapmapuje użytkownikarootwewnątrz kontenera na zwykłego użytkownika na hoście, co drastycznie ogranicza potencjalne szkody w razie "ucieczki" z kontenera.
Poziom Danych
- Zarządzanie Sekretami (
sops): Wszystkie wrażliwe dane – klucze API, hasła do baz danych, tokeny – są szyfrowane na dysku za pomocąsopsi kluczaage. Nigdy nie są przechowywane jako jawny tekst. - Szyfrowane Kopie Zapasowe: Wszystkie kopie zapasowe tworzone przez
Resticsą szyfrowane end-to-end przed wysłaniem ich do zewnętrznej lokalizacji (Backblaze B2). Bez hasła do repozytorium nikt nie jest w stanie odczytać Twoich danych.
7. Kroki po Instalacji: Co Dalej?
Gratulacje! Twoja platforma jest w pełni zainstalowana, zabezpieczona i gotowa do pracy. Oto co powinieneś zrobić teraz, aby w pełni przejąć nad nią kontrolę i zacząć z niej korzystać.
1. Pierwsze Logowanie i Konfiguracja Aplikacji
Każda z zainstalowanych usług jest teraz dostępna pod domeną, którą skonfigurowałeś w pliku autoscript.conf. Czas je odwiedzić i dokończyć ich konfigurację z poziomu interfejsu webowego.
- Mastodon (
https://twoja-domena.ovh): Przejdź na stronę główną i zarejestruj swoje pierwsze konto. Pierwsze zarejestrowane konto automatycznie otrzymuje rolę właściciela instancji. - Discourse (
https://forum.twoja-domena.ovh): Podobnie jak w Mastodonie, zarejestruj konto administratora, aby zacząć konfigurować kategorie i ustawienia forum. - WordPress (
https://blog.twoja-domena.ovh): Przejdź przez słynny "pięciominutowy instalator" WordPressa, aby ustawić tytuł strony, stworzyć konto administratora i zacząć pisać. - FreshRSS (
https://rss.twoja-domena.ovh): Zaloguj się i zacznij dodawać swoje ulubione kanały RSS. - Serwer Poczty (
https://twoja-domena.ovh/admin): Zaloguj się do panelu administracyjnego poczty, używając hasłaMAIL_ADMIN_PASSWORDz pliku konfiguracyjnego. Tutaj możesz dodawać domeny i skrzynki pocztowe. - Pulpit Statusu (
https://status.twoja-domena.ovh): Skonfiguruj Uptime Kuma, tworząc monitory dla wszystkich swoich nowych usług, aby śledzić ich dostępność.
2. Dostęp do Danych i Sekretów
Wszystkie dane Twoich aplikacji (bazy danych, wgrane pliki) znajdują się w folderze /opt/services/. Możesz je przeglądać jako użytkownik admin.
Jeśli potrzebujesz sprawdzić wygenerowane hasło do bazy danych lub inny sekret, użyj wbudowanej komendy:
sudo ./start.sh secrets:view <nazwa_usługi>
# Przykład:
sudo ./start.sh secrets:view mastodon
3. Zarządzanie Kopiami Zapasowymi
Kopie zapasowe są skonfigurowane, ale warto sprawdzić ich status. Możesz ręcznie uruchomić backup lub wylistować istniejące migawki.
# Ręczne uruchomienie kopii zapasowej
sudo ./start.sh backup:run
# Wyświetlenie listy wszystkich kopii w repozytorium
sudo ./start.sh backup:list
4. Monitorowanie Systemu
Zapoznaj się z pulpitem Grafany, aby zobaczyć, jak pracuje Twój serwer.
- Grafana (
https://grafana.twoja-domena.ovh): Zaloguj się, używając hasłaGRAFANA_ADMIN_PASSWORDz pliku konfiguracyjnego. Znajdziesz tam prekonfigurowane dashboardy pokazujące użycie CPU, pamięci, stan kontenerów i wiele więcej. - Alertmanager (
https://alertmanager.twoja-domena.ovh): Tutaj możesz zobaczyć aktywne alerty. Domyślnie są one wysyłane na TwójADMIN_EMAIL.
5. Aktualizacje
Pamiętaj, aby regularnie aktualizować zarówno system operacyjny, jak i sam skrypt AutoScript.
# Aktualizacja pakietów systemowych
sudo apt update && sudo apt upgrade -y
# Aktualizacja AutoScript do najnowszej wersji
sudo ./start.sh self-update
Twoja platforma jest teraz w pełni w Twoich rękach. Eksperymentuj, twórz i ciesz się wolnością posiadania własnej, potężnej infrastruktury!
8. Licencja
Projekt jest udostępniany na licencji MIT.