1 Przeprowadzono gruntowną refaktoryzację i rozbudowę skryptu, przekształcając go w modularne i w pełni funkcjonalne narzędzie do
zarządzania cyklem życia serwera.
2
3 Kluczowe zmiany w tej wersji (v2.0):
4
5 - **Modularna architektura**: Skrypt obsługuje teraz komendy (np. `install`, `uninstall`, `deploy_monitoring`), co pozwala na
elastyczne zarządzanie poszczególnymi komponentami bez potrzeby uruchamiania całości.
6
7 - **Idempotentność**: Wszystkie operacje sprawdzają stan systemu przed wykonaniem, co gwarantuje bezpieczeństwo i
przewidywalność przy wielokrotnym uruchamianiu.
8
9 - **Separacja konfiguracji**: Konfiguracje usług (Docker Compose, Prometheus itp.) zostały przeniesione do folderu `templates/`,
oddzielając logikę skryptu od danych konfiguracyjnych.
10
11 - **Nowe moduły opcjonalne**: Dodano możliwość łatwej instalacji i konfiguracji:
12 - `Fail2ban` dla dodatkowego bezpieczeństwa.
13 - Bazy danych `PostgreSQL`.
14 - Systemu agregacji logów `Loki`.
15 - Systemu kopii zapasowych `Restic`.
16
17 - **Ulepszone logowanie i bezpieczeństwo**: Skrypt weryfikuje kompatybilność OS, a wszystkie jego działania są logowane do pliku
`/var/log/autoscript.log`.
18
19 - **Funkcja `uninstall`**: Dodano możliwość czystego i bezpiecznego usunięcia wszystkich komponentów wdrożonych przez skrypt.
20
21 - **Aktualizacja dokumentacji**: `README.md` i `CHANGELOG.md` zostały w pełni zaktualizowane, aby odzwierciedlać nową
funkcjonalność.
22
23 Ta wersja stanowi kamień milowy w rozwoju projektu, czyniąc go potężnym i niezawodnym narzędziem dla administratorów.
114 lines
No EOL
3.9 KiB
Text
114 lines
No EOL
3.9 KiB
Text
# ===================================================================
|
|
# Konfiguracja AutoScript v2
|
|
# ===================================================================
|
|
#
|
|
# Instrukcja:
|
|
# 1. Skopiuj ten plik do `autoscript.conf`
|
|
# cp autoscript.conf.example autoscript.conf
|
|
# 2. Wypełnij poniższe zmienne.
|
|
#
|
|
# ===================================================================
|
|
|
|
# -------------------------------------------------------------------
|
|
# 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'
|
|
PRIMARY_DOMAIN='orzech.me'
|
|
|
|
# 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@orzech.me'
|
|
|
|
# Strefa czasowa serwera.
|
|
# Pełna lista: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
# Przykład: TIMEZONE='Europe/London'
|
|
TIMEZONE='Europe/Warsaw'
|
|
|
|
# -------------------------------------------------------------------
|
|
# USTAWIENIA POWIADOMIEŃ (SMTP)
|
|
# -------------------------------------------------------------------
|
|
|
|
ALERT_SMTP_HOST='mail.drap.ovh:587'
|
|
ALERT_SMTP_USER='alerts@drap.ovh'
|
|
ALERT_SMTP_PASS='' # Pozostaw puste, aby wygenerować losowe
|
|
ALERT_SMTP_FROM='alerts@drap.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_BACKUP=false
|
|
|
|
# -------------------------------------------------------------------
|
|
# 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 * * *'
|
|
|
|
# -------------------------------------------------------------------
|
|
# WERSJE OBRAZÓW DOCKER
|
|
# -------------------------------------------------------------------
|
|
|
|
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' |