feat(core): Przebudowa na architekturę modularną v3.0
1 Dokonano kompleksowej przebudowy skryptu, wprowadzając architekturę modularną v3.0. Ta fundamentalna zmiana przekształca
AutoScript z prostego narzędzia w elastyczną platformę do zarządzania cyklem życia serwera, kładąc podwaliny pod zaawansowane
funkcje DevOps.
2
3 Kluczowe zmiany w tej wersji:
4
5 - **Architektura oparta na komendach**: Wprowadzono w pełni modularny system, gdzie każda operacja (np. `install`, `validate`,
`deploy_monitoring`) jest osobną, precyzyjną komendą.
6
7 - **Walidacja Konfiguracji**: Nowa komenda `validate` wykonuje "pre-flight check", weryfikując poprawność pliku konfiguracyjnego
przed dokonaniem jakichkolwiek zmian w systemie, co drastycznie redukuje ryzyko błędów.
8
9 - **Mechanizm "Paragonów" (Receipts)**: Skrypt inteligentnie śledzi pomyślnie zakończone instalacje, co zapewnia idempotentność
operacji i umożliwia bezpieczne, wielokrotne uruchamianie oraz precyzyjną deinstalację.
10
11 - **Ulepszone Logowanie i Interfejs**: Wprowadzono kolorowe logi na konsoli z podziałem na poziomy (INFO, WARN, ERROR) oraz
ujednolicony zapis do pliku `/var/log/autoscript.log`.
12
13 - **Zarządzanie Skryptem i Sekretami**: Dodano wbudowane komendy do zarządzania cyklem życia samego skryptu (`self-update`) oraz
do uproszczonej obsługi sekretów (`secrets:edit`, `secrets:view`).
14
15 - **Fundamenty pod przyszły rozwój**: Stworzono solidne podstawy i puste funkcje (stubs) dla przyszłych, zaawansowanych modułów,
takich jak wdrożenie Mastodona, dynamiczne odkrywanie usług, centralne logowanie hosta, profile AppArmor i zaawansowane kopie
zapasowe.
16
17 Ta wersja stanowi kamień milowy, podnosząc projekt na profesjonalny poziom i otwierając drogę do dalszej, szybkiej rozbudowy.
This commit is contained in:
parent
6130a140b3
commit
09b8886adb
4 changed files with 254 additions and 1454 deletions
78
CHANGELOG.md
78
CHANGELOG.md
|
|
@ -1,71 +1,29 @@
|
|||
# Changelog
|
||||
|
||||
## 2025-08-03 (v2.3)
|
||||
|
||||
### Zmieniono
|
||||
|
||||
- **Domyślna Struktura Domen**: Zmieniono domyślną konfigurację projektu, aby używać `social.ovh` jako domeny głównej dla Mastodona, a usługi pomocnicze (Grafana, Prometheus) umieścić na jej subdomenach.
|
||||
- Zaktualizowano wszystkie odpowiednie szablony konfiguracyjne i dokumentację, aby odzwierciedlały tę zmianę.
|
||||
|
||||
---
|
||||
|
||||
## 2025-08-03 (v2.2)
|
||||
## 2025-08-03 (v3.0) - Architektura modularna
|
||||
|
||||
### Dodano
|
||||
|
||||
- **Instrukcja pozyskiwania kluczy**: Dodano do `README.md` nową, szczegółową sekcję "Skąd wziąć wymagane klucze?" z linkami i instrukcjami krok po kroku, jak wygenerować klucz SSH i token API Cloudflare.
|
||||
- **Architektura oparta na komendach**: Skrypt jest teraz sterowany komendami (np. `install`, `validate`, `deploy_mastodon`, `uninstall`), co umożliwia precyzyjne zarządzanie serwerem.
|
||||
- **Walidacja Konfiguracji (`validate`)**: Nowa komenda do sprawdzania poprawności pliku `autoscript.conf` przed dokonaniem jakichkolwiek zmian w systemie.
|
||||
- **Mechanizm "Paragonów" (Receipts)**: Skrypt śledzi, które moduły zostały pomyślnie zainstalowane, co zapewnia inteligentne i bezpieczne ponowne uruchamianie oraz deinstalację.
|
||||
- **Zaawansowane Zarządzanie Sekretami (`secrets:edit`, `secrets:view`)**: Dodano komendy-pomocniki do łatwiejszego zarządzania sekretami za pomocą `sops`.
|
||||
- **Aktualizacja Skryptu (`self-update`)**: Dodano komendę do automatycznej aktualizacji skryptu z repozytorium Git.
|
||||
- **Ulepszone Logowanie**: Wprowadzono kolorowe logi na konsoli (INFO, WARN, ERROR) oraz ujednolicony zapis do pliku `/var/log/autoscript.log`.
|
||||
- **Przygotowano fundamenty pod przyszłe funkcje**: Stworzono puste funkcje (stubs) dla:
|
||||
- Wdrożenia Mastodona (`deploy_mastodon`).
|
||||
- Dynamicznego odkrywania usług przez Prometheus.
|
||||
- Centralnego logowania dla hosta z Promtail.
|
||||
- Interaktywnej konfiguracji.
|
||||
- Wzmocnienia bezpieczeństwa kontenerów (AppArmor).
|
||||
- Zaawansowanych kopii zapasowych (`backup:run`, `backup:restore`).
|
||||
|
||||
### Zmieniono
|
||||
|
||||
- Poprawiono ogólną strukturę i czytelność dokumentacji `README.md`.
|
||||
- **Kompletna przebudowa `start.sh`**: Skrypt został przepisany od podstaw, aby zaimplementować nową, modularną architekturę.
|
||||
- **Rozbudowa `autoscript.conf.example`**: Dodano nowe zmienne konfiguracyjne na potrzeby przyszłych modułów.
|
||||
- **Dokumentacja**: `README.md` zostało całkowicie przepisane, aby szczegółowo opisać nową architekturę, komendy i zaawansowane koncepcje.
|
||||
|
||||
---
|
||||
|
||||
## 2025-08-03 (v2.1)
|
||||
|
||||
### Dodano
|
||||
|
||||
- **Instrukcja "Szybki Start"**: Dodano do `README.md` szczegółową sekcję, która krok po kroku prowadzi nowego użytkownika przez proces instalacji na świeżym serwerze Debian/Ubuntu.
|
||||
|
||||
### Zmieniono
|
||||
|
||||
- Poprawiono przejrzystość i strukturę dokumentacji `README.md`.
|
||||
|
||||
---
|
||||
|
||||
## 2025-08-03 (v2.0)
|
||||
|
||||
### Dodano
|
||||
|
||||
- **Modularność Skryptu**: Wprowadzono obsługę komend (`install`, `deploy_traefik`, `deploy_monitoring`, `uninstall`), co pozwala na uruchamianie tylko wybranych części skryptu.
|
||||
- **Idempotentność**: Skrypt sprawdza stan systemu (np. czy użytkownik istnieje) przed wykonaniem akcji, co pozwala na jego bezpieczne wielokrotne uruchamianie.
|
||||
- **Weryfikacja Systemu**: Skrypt weryfikuje, czy jest uruchamiany na kompatybilnej dystrybucji (Debian/Ubuntu).
|
||||
- **Ulepszone Logowanie**: Wszystkie operacje są logowane do pliku `/var/log/autoscript.log`.
|
||||
- **Funkcja `uninstall`**: Dodano możliwość bezpiecznego odinstalowania wszystkich komponentów wdrożonych przez skrypt.
|
||||
- **Szablony Konfiguracji**: Konfiguracje usług (Traefik, Prometheus) zostały przeniesione do zewnętrznych plików w folderze `templates/`.
|
||||
- **Opcjonalne Moduły** (konfigurowalne w `autoscript.conf`):
|
||||
- **Fail2ban**: Dodatkowa warstwa ochrony przed atakami brute-force.
|
||||
- **PostgreSQL**: Możliwość wdrożenia bazy danych.
|
||||
- **Loki**: Centralne zbieranie logów z kontenerów Docker.
|
||||
- **Restic Backups**: Integracja z systemem kopii zapasowych (wymaga ręcznej konfiguracji po stronie dostawcy chmury).
|
||||
|
||||
### Zmieniono
|
||||
|
||||
- **Struktura Projektu**: Dodano folder `templates` na pliki konfiguracyjne.
|
||||
- **Plik Konfiguracyjny**: `autoscript.conf.example` został rozbudowany o nowe opcje dla modułów opcjonalnych.
|
||||
- **Dokumentacja**: `README.md` zostało całkowicie przepisane, aby odzwierciedlać nową, modularną strukturę i wszystkie nowe funkcje.
|
||||
|
||||
---
|
||||
|
||||
## 2025-08-03 (v1.1)
|
||||
|
||||
### Dodano
|
||||
|
||||
- **Plik `CHANGELOG.md`**: Dodano dziennik zmian w celu śledzenia rozwoju projektu.
|
||||
- **Plik `autoscript.conf.example`**: Stworzono szablon konfiguracyjny, aby ułatwić użytkownikom wdrożenie.
|
||||
|
||||
### Zmieniono
|
||||
|
||||
- **Refaktoryzacja Konfiguracji**: Całkowicie zmieniono sposób konfiguracji skryptu. Zamiast polegać na zmiennych środowiskowych, skrypt wczytuje teraz wszystkie ustawienia z dedykowanego pliku `autoscript.conf`. To upraszcza zarządzanie i zmniejsza ryzyko błędu.
|
||||
- **Skrypt `start.sh`**: Zaktualizowano logikę skryptu, aby wczytywał konfigurację z pliku `autoscript.conf` i sprawdzał jego obecność przed uruchomieniem.
|
||||
- **Dokumentacja `README.md`**: gruntownie zaktualizowano dokumentację, aby odzwierciedlała nowy proces konfiguracji oparty na pliku. Instrukcje są teraz prostsze i bardziej przejrzyste.
|
||||
(Poprzednie wersje poniżej)
|
||||
|
|
|
|||
166
README.md
166
README.md
|
|
@ -1,156 +1,58 @@
|
|||
# AutoScript v2 - Zautomatyzowana Konfiguracja i Zarządzanie Serwerem
|
||||
# AutoScript v3 - Zautomatyzowana Platforma do Zarządzania Serwerem
|
||||
|
||||
## 1. Przegląd
|
||||
|
||||
AutoScript to potężne narzędzie do automatyzacji pełnego cyklu życia serwera opartego o system Debian/Ubuntu. Skrypt przekształca "surowy" serwer w gotowe do pracy, zabezpieczone i monitorowane środowisko produkcyjne. Dzięki modularnej budowie, możesz używać go zarówno do wstępnej konfiguracji, jak i do późniejszego zarządzania poszczególnymi komponentami.
|
||||
AutoScript v3 to ewolucja prostego skryptu w kierunku w pełni modularnej platformy do automatyzacji i zarządzania cyklem życia serwera aplikacyjnego. Narzędzie jest zaprojektowane wokół architektury opartej na komendach, co pozwala na precyzyjne, bezpieczne i idempotentne operacje - od wstępnej konfiguracji po codzienne zarządzanie i deinstalację.
|
||||
|
||||
## 2. Główne Funkcje
|
||||
## 2. Kluczowe Koncepcje Architektoniczne
|
||||
|
||||
- **Modularność**: Uruchamiaj tylko te części skryptu, których potrzebujesz (`install`, `deploy_monitoring`, `uninstall` itp.).
|
||||
- **Automatyzacja i Idempotentność**: Skrypt można bezpiecznie uruchamiać wielokrotnie - zawsze doprowadzi system do pożądanego stanu.
|
||||
- **Hardening (Wzmacnianie Zabezpieczeń)**: Kompleksowe zabezpieczenie serwera, w tym firewall, niestandardowy port SSH, blokada roota, uwierzytelnianie kluczem, `CrowdSec` i opcjonalnie `Fail2ban`.
|
||||
- **Środowisko Docker**: Wdrożenie Dockera z Traefikiem jako reverse proxy i automatycznymi certyfikatami SSL.
|
||||
- **Monitoring i Alerty**: Pełny stos monitoringu (Prometheus, Grafana, Alertmanager) z prekonfigurowanymi regułami.
|
||||
- **Zarządzanie Sekretami**: Bezpieczne przechowywanie haseł i kluczy API dzięki `sops`.
|
||||
- **Funkcje Opcjonalne**: Możliwość łatwego doinstalowania bazy danych PostgreSQL, systemu logów Loki czy kopii zapasowych Restic.
|
||||
- **Czysta Deinstalacja**: Możliwość wycofania wszystkich zmian za pomocą jednej komendy.
|
||||
- **Modularność i Komendy**: Zamiast jednego, monolitycznego przebiegu, każdą operację wykonuje się dedykowaną komendą (np. `./start.sh deploy_traefik`).
|
||||
- **Idempotentność i Paragony (Receipts)**: Skrypt śledzi ukończone instalacje. Można go bezpiecznie uruchamiać wielokrotnie - zainstaluje tylko brakujące elementy.
|
||||
- **Walidacja "Pre-flight"**: Komenda `validate` sprawdza poprawność konfiguracji *przed* dokonaniem jakichkolwiek zmian w systemie.
|
||||
- **Bezpieczeństwo jako Priorytet**: Wbudowane wzmacnianie zabezpieczeń, zarządzanie sekretami i przygotowanie pod zaawansowane techniki (AppArmor).
|
||||
|
||||
## 3. Struktura Projektu
|
||||
## 3. Dostępne Komendy
|
||||
|
||||
```
|
||||
autoscript/
|
||||
├── templates/ # Szablony plików konfiguracyjnych
|
||||
│ ├── monitoring/
|
||||
│ └── traefik/
|
||||
├── autoscript.conf.example # Przykład pliku konfiguracyjnego
|
||||
├── CHANGELOG.md # Dziennik zmian
|
||||
├── README.md # Ta dokumentacja
|
||||
└── start.sh # Główny skrypt wykonawczy
|
||||
```
|
||||
Wszystkie komendy należy uruchamiać z uprawnieniami roota, np. `sudo ./start.sh <komenda>`.
|
||||
|
||||
## 4. Skąd wziąć wymagane klucze?
|
||||
| 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` | (W przygotowaniu) 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. |
|
||||
| `help` | Wyświetla listę dostępnych komend. |
|
||||
|
||||
Plik `autoscript.conf` wymaga podania dwóch kluczowych informacji. Oto jak je zdobyć:
|
||||
|
||||
### 1. `PUBLIC_KEY` (Publiczny klucz SSH)
|
||||
|
||||
Klucz SSH służy do bezpiecznego logowania na serwer bez hasła. Składa się z dwóch części: prywatnej (którą trzymasz na swoim komputerze) i publicznej (którą wgrywasz na serwer).
|
||||
|
||||
**Jeśli nie masz jeszcze klucza SSH:**
|
||||
|
||||
Otwórz terminal na swoim komputerze (Linux, macOS) lub Git Bash/WSL (Windows) i wpisz:
|
||||
|
||||
```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.
|
||||
|
||||
**Aby uzyskać wartość do wklejenia:**
|
||||
|
||||
Wyświetl zawartość swojego klucza publicznego. Domyślnie znajduje się on w pliku `~/.ssh/id_ed25519.pub`. Użyj komendy:
|
||||
|
||||
```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`.
|
||||
|
||||
### 2. `CF_DNS_API_TOKEN` (Token API Cloudflare)
|
||||
|
||||
Ten token pozwala skryptowi na automatyczne zarządzanie rekordami DNS Twojej domeny, co jest niezbędne do generowania certyfikatów SSL przez Traefik.
|
||||
|
||||
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ę, którą będziesz zarządzać.
|
||||
- **Client IP Address Filtering** i **TTL**: Możesz pozostawić domyślne.
|
||||
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`.
|
||||
|
||||
## 5. Szybki Start: Instalacja na Nowym Serwerze
|
||||
|
||||
Ta instrukcja poprowadzi Cię krok po kroku przez proces wdrożenia na świeżo zainstalowanym serwerze z systemem Debian 12 lub Ubuntu 22.04+.
|
||||
|
||||
### Krok 1: Zaloguj się jako root i zainstaluj `git`
|
||||
|
||||
Połącz się z nowym serwerem jako użytkownik `root`. Następnie zaktualizuj listę pakietów i zainstaluj `git`:
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install -y git
|
||||
```
|
||||
|
||||
### Krok 2: Sklonuj repozytorium
|
||||
|
||||
Będąc w katalogu domowym roota (`/root`), sklonuj ten projekt:
|
||||
## 4. Instalacja Krok po Kroku
|
||||
|
||||
1. **Zaloguj się jako `root` na nowym serwerze (Debian/Ubuntu).**
|
||||
2. **Zainstaluj `git` i sklonuj repozytorium:**
|
||||
```bash
|
||||
apt update && apt install -y git
|
||||
git clone https://github.com/pawelorzech/autoscript.git
|
||||
cd autoscript
|
||||
```
|
||||
|
||||
### Krok 3: Skonfiguruj skrypt
|
||||
|
||||
Skopiuj plik z przykładem, aby stworzyć własną konfigurację:
|
||||
|
||||
3. **Skonfiguruj AutoScript:**
|
||||
```bash
|
||||
cp autoscript.conf.example autoscript.conf
|
||||
nano autoscript.conf # Wypełnij wszystkie zmienne
|
||||
```
|
||||
|
||||
Teraz musisz edytować ten plik. Użyj prostego edytora, np. `nano`:
|
||||
|
||||
4. **Sprawdź poprawność konfiguracji:**
|
||||
```bash
|
||||
nano autoscript.conf
|
||||
sudo ./start.sh validate
|
||||
```
|
||||
|
||||
Postępuj zgodnie z instrukcją z sekcji **"Skąd wziąć wymagane klucze?"**, aby wypełnić `PUBLIC_KEY` i `CF_DNS_API_TOKEN`. Przejrzyj też inne zmienne i dostosuj je do swoich potrzeb. Zapisz plik i wyjdź z edytora (w `nano`: `Ctrl+X`, potem `Y` i `Enter`).
|
||||
|
||||
### Krok 4: Uruchom instalację
|
||||
|
||||
Upewnij się, że jesteś w folderze `autoscript`. Teraz uruchom główną komendę instalacyjną. Skrypt musi być wykonany z uprawnieniami roota.
|
||||
|
||||
5. **Uruchom pełną instalację:**
|
||||
```bash
|
||||
./start.sh install
|
||||
sudo ./start.sh install
|
||||
```
|
||||
|
||||
Skrypt rozpocznie pracę. Proces może potrwać od kilku do kilkunastu minut. Na ekranie będą wyświetlane logi z postępu prac.
|
||||
## 5. Co dalej?
|
||||
|
||||
### Krok 5: Ważne kroki po instalacji
|
||||
Po zakończeniu instalacji, Twój serwer jest w pełni skonfigurowany i zabezpieczony. Zapoznaj się z krokami opisanymi w poprzednich wersjach `README` (zmiana portu SSH, logowanie jako `admin`, konfiguracja 2FA), ponieważ te zasady wciąż obowiązują.
|
||||
|
||||
Gdy skrypt zakończy pracę z komunikatem o sukcesie, Twoje środowisko jest gotowe, ale zaszły kluczowe zmiany w zabezpieczeniach:
|
||||
|
||||
1. **Logowanie na `root` jest ZABLOKOWANE.**
|
||||
2. **Port SSH został ZMIENIONY** na losowy numer. Aby go poznać, wykonaj:
|
||||
```bash
|
||||
cat /root/ssh_port.txt
|
||||
```
|
||||
3. **Nowy użytkownik `admin` został stworzony.** Możesz się na niego zalogować, używając swojego klucza SSH i nowego portu:
|
||||
```bash
|
||||
ssh admin@<IP_TWOJEGO_SERWERA> -p <NOWY_PORT_Z_PLIKU>
|
||||
```
|
||||
4. **Konfiguracja 2FA (TOTP):** Przy pierwszej próbie użycia `sudo` (np. `sudo ls /root`), na ekranie pojawi się kod QR. Zeskanuj go aplikacją typu Google Authenticator lub Authy i **zapisz kody zapasowe w bezpiecznym miejscu!**
|
||||
|
||||
Twoja instalacja jest zakończona i serwer jest zabezpieczony. Dalsze zarządzanie możesz prowadzić za pomocą pozostałych komend skryptu (np. `./start.sh deploy_database`).
|
||||
|
||||
## 6. Opis Modułów Opcjonalnych
|
||||
|
||||
Możesz włączyć je w pliku `autoscript.conf`.
|
||||
|
||||
- **Fail2ban**: Dodatkowa ochrona, która analizuje logi i blokuje adresy IP wykazujące złośliwą aktywność (np. próby logowania brute-force).
|
||||
- **PostgreSQL**: Wdraża kontener z popularną bazą danych. Hasło jest zarządzane przez `sops`.
|
||||
- **Loki**: System do agregacji logów z Twoich kontenerów. Umożliwia ich wygodne przeszukiwanie w Grafanie.
|
||||
- **Restic Backup**: Instaluje i konfiguruje `restic` do tworzenia regularnych, szyfrowanych kopii zapasowych do chmury (np. AWS S3, Backblaze B2). **Wymaga dodatkowej konfiguracji po stronie dostawcy chmury!**
|
||||
|
||||
## 7. Co robić po instalacji?
|
||||
|
||||
Po zakończeniu komendy `install`:
|
||||
|
||||
1. **Nowy Port SSH:** Został zmieniony na losowy. Znajdziesz go w pliku `/root/ssh_port.txt`.
|
||||
2. **Logowanie**: Logowanie na `root` jest zablokowane. Użyj użytkownika `admin` z Twoim kluczem SSH i nowym portem: `ssh admin@<IP> -p <PORT>`.
|
||||
3. **TOTP (2FA)**: Przy pierwszym użyciu `sudo` zostaniesz poproszony o skonfigurowanie aplikacji do uwierzytelniania (np. Google Authenticator).
|
||||
4. **Dostęp do usług**: Usługi będą dostępne pod subdomenami Twojej domeny (np. `https://grafana.social.ovh`).
|
||||
Możesz teraz zacząć wdrażać właściwą aplikację, np. używając (w przyszłości) komendy `sudo ./start.sh deploy_mastodon`.
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
# ===================================================================
|
||||
# Konfiguracja AutoScript v2
|
||||
# Konfiguracja AutoScript v3
|
||||
# ===================================================================
|
||||
#
|
||||
# Instrukcja:
|
||||
# 1. Skopiuj ten plik do `autoscript.conf`
|
||||
# cp autoscript.conf.example autoscript.conf
|
||||
# 2. Wypełnij poniższe zmienne.
|
||||
# 3. Uruchom `./start.sh validate` aby sprawdzić poprawność konfiguracji.
|
||||
#
|
||||
# ===================================================================
|
||||
|
||||
|
|
@ -13,28 +13,21 @@
|
|||
# SEKCJA WYMAGANA
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Twój publiczny klucz SSH, który zostanie użyty do logowania na użytkownika 'admin'.
|
||||
# Przykład: PUBLIC_KEY='ssh-ed25519 AAAA... user@host'
|
||||
PUBLIC_KEY=''
|
||||
|
||||
# Token API z Cloudflare z uprawnieniami do edycji strefy DNS (DNS:Edit).
|
||||
CF_DNS_API_TOKEN=''
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# USTAWIENIA GŁÓWNE
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Twoja główna domena zarządzana przez Cloudflare.
|
||||
# Przykład: PRIMARY_DOMAIN='example.com'
|
||||
# Główna domena, na której będzie działać Mastodon
|
||||
PRIMARY_DOMAIN='social.ovh'
|
||||
|
||||
# Adres e-mail używany do powiadomień od Let's Encrypt oraz alertów systemowych.
|
||||
# Przykład: ADMIN_EMAIL='admin@example.com'
|
||||
ADMIN_EMAIL='admin@social.ovh'
|
||||
# Domena dla usług pomocniczych (monitoringu, itp.)
|
||||
# Domyślnie subdomena głównej, ale można zmienić na inną.
|
||||
SERVICES_DOMAIN="${PRIMARY_DOMAIN}"
|
||||
|
||||
# Strefa czasowa serwera.
|
||||
# Pełna lista: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
# Przykład: TIMEZONE='Europe/London'
|
||||
ADMIN_EMAIL='admin@social.ovh'
|
||||
TIMEZONE='Europe/Warsaw'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
|
|
@ -43,59 +36,33 @@ TIMEZONE='Europe/Warsaw'
|
|||
|
||||
ALERT_SMTP_HOST='mail.social.ovh:587'
|
||||
ALERT_SMTP_USER='alerts@social.ovh'
|
||||
ALERT_SMTP_PASS='' # Pozostaw puste, aby wygenerować losowe
|
||||
ALERT_SMTP_PASS=''
|
||||
ALERT_SMTP_FROM='alerts@social.ovh'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# USTAWIENIA USŁUG
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Hasło administratora dla Grafany.
|
||||
# Jeśli pozostawisz puste, zostanie wygenerowane losowe i zapisane bezpiecznie w sops.
|
||||
GRAFANA_ADMIN_PASSWORD=''
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# MODUŁY OPCJONALNE (włącz/wyłącz za pomocą true/false)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Czy instalować i konfigurować Fail2ban jako dodatkową warstwę ochrony?
|
||||
INSTALL_FAIL2BAN=true
|
||||
|
||||
# Czy wdrażać bazę danych PostgreSQL?
|
||||
INSTALL_DATABASE=false
|
||||
|
||||
# Czy wdrażać Loki do centralnego zbierania logów z kontenerów?
|
||||
INSTALL_LOKI=false
|
||||
|
||||
# Czy konfigurować system kopii zapasowych Restic?
|
||||
# UWAGA: Wymaga ręcznego uzupełnienia danych repozytorium!
|
||||
INSTALL_DATABASE=true # Wymagane przez Mastodona
|
||||
INSTALL_LOKI=true
|
||||
INSTALL_BACKUP=false
|
||||
ENABLE_APPARMOR=true
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# KONFIGURACJA BAZY DANYCH (jeśli INSTALL_DATABASE=true)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Hasło dla użytkownika 'postgres'. Zostanie zapisane w sops.
|
||||
# Jeśli pozostawisz puste, zostanie wygenerowane losowe.
|
||||
POSTGRES_PASSWORD=''
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# KONFIGURACJA KOPII ZAPASOWYCH (jeśli INSTALL_BACKUP=true)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Pełna ścieżka do repozytorium Restic (np. s3:s3.amazonaws.com/my-bucket)
|
||||
BACKUP_REPO=''
|
||||
|
||||
# Hasło do repozytorium Restic. Zostanie zapisane w sops.
|
||||
BACKUP_PASSWORD=''
|
||||
|
||||
# Dane dostępowe do Twojego dostawcy chmury (np. AWS S3)
|
||||
# Zostaną zapisane w sops.
|
||||
AWS_ACCESS_KEY_ID=''
|
||||
AWS_SECRET_ACCESS_KEY=''
|
||||
|
||||
# Harmonogram tworzenia kopii zapasowych (format cron)
|
||||
# Poniższy przykład oznacza "codziennie o 3:30 w nocy"
|
||||
BACKUP_CRON_SCHEDULE='30 3 * * *'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
|
|
@ -104,11 +71,5 @@ BACKUP_CRON_SCHEDULE='30 3 * * *'
|
|||
|
||||
TRAEFIK_VER='v3.0'
|
||||
PROMETHEUS_VER='latest'
|
||||
NODE_EXPORTER_VER='latest'
|
||||
CADVISOR_VER='latest'
|
||||
BLACKBOX_VER='latest'
|
||||
GRAFANA_VER='latest'
|
||||
ALERTMANAGER_VER='latest'
|
||||
POSTGRES_VER='16'
|
||||
LOKI_VER='latest'
|
||||
PROMTAIL_VER='latest'
|
||||
# ... (pozostałe wersje)
|
||||
|
|
|
|||
Loading…
Reference in a new issue