Update README.md
This commit is contained in:
parent
cc30aa668c
commit
05a6c435fb
1 changed files with 77 additions and 28 deletions
105
README.md
105
README.md
|
|
@ -1,8 +1,8 @@
|
|||
<p align="center">
|
||||
<a href="#">
|
||||
<img src="https://img.shields.io/badge/AutoScript-v4.0-blue.svg" alt="AutoScript Version">
|
||||
<img src="https://img.shields.io/badge/AutoScript-v4.1-blue.svg" alt="AutoScript Version">
|
||||
</a>
|
||||
<a href="#6-licencja">
|
||||
<a href="#8-licencja">
|
||||
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License">
|
||||
</a>
|
||||
<a href="#">
|
||||
|
|
@ -10,45 +10,85 @@
|
|||
</a>
|
||||
</p>
|
||||
|
||||
<h1 align="center">AutoScript: Zautomatyzowana Platforma Mastodon</h1>
|
||||
<h1 align="center">AutoScript: Zautomatyzowana Platforma Serwerowa</h1>
|
||||
|
||||
**AutoScript to w pełni zautomatyzowane, bezpieczne i gotowe do użycia rozwiązanie do wdrażania i zarządzania serwerem Mastodon oraz jego kompletnym środowiskiem.** Zapomnij o ręcznej konfiguracji – ten projekt przekształca "surowy" serwer w gotową do pracy, zabezpieczoną i monitorowaną platformę za pomocą kilku prostych komend.
|
||||
**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. [Filozofia Projektu](#1-filozofia-projektu)
|
||||
2. [Kluczowe Funkcje](#2-kluczowe-funkcje)
|
||||
3. [Architektura w Pigułce](#3-architektura-w-pigułce)
|
||||
4. [Instalacja (Szybki Start)](#4-instalacja-szybki-start)
|
||||
5. [Przewodnik po Komendach](#5-przewodnik-po-komendach)
|
||||
1. [Architektura Platformy: Co zostanie zainstalowane?](#1-architektura-platformy-co-zostanie-zainstalowane)
|
||||
2. [Przewodnik Konfiguracyjny: Zdobywanie Kluczy](#2-przewodnik-konfiguracyjny-zdobywanie-kluczy)
|
||||
3. [Instalacja (Szybki Start)](#3-instalacja-szybki-start)
|
||||
4. [Przewodnik po Komendach](#4-przewodnik-po-komendach)
|
||||
5. [Aspekty Bezpieczeństwa](#5-aspekty-bezpieczeństwa)
|
||||
6. [Licencja](#6-licencja)
|
||||
|
||||
---
|
||||
|
||||
## 1. Filozofia Projektu
|
||||
## 1. Architektura Platformy: Co zostanie zainstalowane?
|
||||
|
||||
- **Automatyzacja ponad wszystko**: Od instalacji pakietów, przez hardening systemu, po wdrożenie Mastodona – wszystko jest zautomatyzowane.
|
||||
- **Bezpieczeństwo Domyślnie (Secure by Default)**: Wdrażamy najlepsze praktyki bezpieczeństwa od samego początku, nie jako opcję.
|
||||
- **Idempotentność i Niezawodność**: Skrypt można bezpiecznie uruchamiać wielokrotnie. Zawsze doprowadzi system do pożądanego stanu.
|
||||
AutoScript buduje wielowarstwową, nowoczesną platformę serwerową. Oto komponenty, które zostaną wdrożone i skonfigurowane:
|
||||
|
||||
## 2. Kluczowe Funkcje
|
||||
| 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. |
|
||||
|
||||
- **Automatyczne Wdrożenie Mastodona**: Pełna instalacja i konfiguracja Mastodona, włącznie z bazą danych i Redis.
|
||||
- **Hardening Systemu**: Wzmacnianie zabezpieczeń SSH, firewall UFW, `CrowdSec` i `Fail2ban`.
|
||||
- **Zintegrowany Monitoring i Logowanie**: Pełny stos monitoringu (Prometheus, Grafana) i logów (Loki, Promtail) z automatycznym odkrywaniem usług.
|
||||
- **Automatyczne Certyfikaty SSL**: Integracja Traefika z Let's Encrypt i Cloudflare.
|
||||
- **Bezpieczne Zarządzanie Sekretami**: Szyfrowanie wszystkich wrażliwych danych za pomocą `sops`.
|
||||
- **Walidacja Konfiguracji**: Sprawdzanie poprawności ustawień przed wprowadzeniem zmian w systemie.
|
||||
## 2. Przewodnik Konfiguracyjny: Zdobywanie Kluczy
|
||||
|
||||
## 3. Architektura w Pigułce
|
||||
Plik `autoscript.conf` wymaga podania dwóch kluczowych informacji. Oto jak je zdobyć:
|
||||
|
||||
- **Modularność**: Każdą operację wykonuje się dedykowaną komendą (np. `./start.sh deploy_traefik`).
|
||||
- **Idempotentność**: Skrypt śledzi ukończone instalacje. Można go bezpiecznie uruchamiać wielokrotnie.
|
||||
- **Walidacja "Pre-flight"**: Komenda `validate` sprawdza poprawność konfiguracji *przed* dokonaniem jakichkolwiek zmian.
|
||||
### Klucz Publiczny SSH (`PUBLIC_KEY`)
|
||||
|
||||
## 4. Instalacja (Szybki Start)
|
||||
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:**
|
||||
|
||||
```bash
|
||||
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**:
|
||||
|
||||
```bash
|
||||
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:**
|
||||
|
||||
```bash
|
||||
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](https://dash.cloudflare.com).
|
||||
2. Przejdź do sekcji **"My Profile"** (w prawym górnym rogu) > **"API Tokens"**.
|
||||
- *Bezpośredni link:* [https://dash.cloudflare.com/profile/api-tokens](https://dash.cloudflare.com/profile/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:**
|
||||
|
|
@ -59,7 +99,7 @@
|
|||
3. **Skonfiguruj AutoScript:**
|
||||
```bash
|
||||
cp autoscript.conf.example autoscript.conf
|
||||
nano autoscript.conf # Wypełnij wszystkie zmienne
|
||||
nano autoscript.conf # Wypełnij zmienne zgodnie z przewodnikiem powyżej
|
||||
```
|
||||
4. **Sprawdź poprawność konfiguracji:**
|
||||
```bash
|
||||
|
|
@ -70,7 +110,7 @@
|
|||
sudo ./start.sh install
|
||||
```
|
||||
|
||||
## 5. Przewodnik po Komendach
|
||||
## 4. Przewodnik po Komendach
|
||||
|
||||
| Komenda | Opis |
|
||||
| ----------------------- | -------------------------------------------------------------------------------------- |
|
||||
|
|
@ -84,6 +124,15 @@
|
|||
| `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.
|
||||
Projekt jest udostępniany na licencji MIT.
|
||||
Loading…
Reference in a new issue