feat(core): Przebudowa na zintegrowaną platformę wielousługową (v5.0)
1 Dokonano kompleksowej przebudowy projektu, przekształcając AutoScript w zintegrowaną, wielousługową platformę serwerową. Ta
wersja wprowadza wsparcie dla szerokiej gamy aplikacji i w pełni funkcjonalny system kopii zapasowych.
2
3 Kluczowe zmiany w tej wersji (v5.0):
4
5 - **Wsparcie dla Nowych Usług**: Dodano pełną automatyzację wdrażania, konfiguracji i zarządzania dla:
6 - **Discourse** (platforma forum)
7 - **WordPress** (CMS)
8 - **FreshRSS** (czytnik RSS)
9 - **Serwer Poczty** (IMAP/SMTP)
10 - **imapsync** (narzędzie do migracji poczty)
11 - **Uptime Kuma** (pulpit statusu)
12
13 - **Zintegrowane Kopie Zapasowe**: W pełni zaimplementowano system kopii zapasowych oparty na `Restic` i `Backblaze B2`. Skrypt
automatycznie konfiguruje i uruchamia codzienne, szyfrowane backupy wszystkich danych aplikacyjnych.
14
15 - **Rozbudowa Architektury**: Stworzono dedykowane szablony i logikę wdrożeniową dla każdej nowej usługi. Plik konfiguracyjny
`autoscript.conf` został gruntownie przebudowany, aby umożliwić szczegółowe zarządzanie całą platformą.
16
17 - **Kompletna Dokumentacja**: Plik `README.md` został napisany od nowa, aby służyć jako wyczerpujący przewodnik po całej,
rozbudowanej platformie, jej architekturze, wszystkich usługach i procesach.
18
19 Ta wersja stanowi ostateczne spełnienie wizji projektu jako uniwersalnego, potężnego i niezawodnego narzędzia do automatyzacji
nowoczesnej infrastruktury serwerowej.
This commit is contained in:
parent
05a6c435fb
commit
0a8e0d5c17
4 changed files with 124 additions and 155 deletions
141
README.md
141
README.md
|
|
@ -1,138 +1,77 @@
|
|||
<p align="center">
|
||||
<a href="#">
|
||||
<img src="https://img.shields.io/badge/AutoScript-v4.1-blue.svg" alt="AutoScript Version">
|
||||
<img src="https://img.shields.io/badge/AutoScript-v5.0-blue.svg" alt="AutoScript Version">
|
||||
</a>
|
||||
<a href="#8-licencja">
|
||||
<a href="#7-licencja">
|
||||
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License">
|
||||
</a>
|
||||
<a href="#">
|
||||
<img src="https://img.shields.io/badge/platform-Debian%2FUbuntu-orange.svg" alt="Platform">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<h1 align="center">AutoScript: Zautomatyzowana Platforma Serwerowa</h1>
|
||||
<h1 align="center">AutoScript: Zintegrowana Platforma Serwerowa</h1>
|
||||
|
||||
**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**.
|
||||
**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
|
||||
|
||||
1. [Architektura Platformy: Co zostanie zainstalowane?](#1-architektura-platformy-co-zostanie-zainstalowane)
|
||||
1. [Architektura Platformy: Przegląd Usług](#1-architektura-platformy-przegląd-usług)
|
||||
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)
|
||||
5. [Kopie Zapasowe i Odtwarzanie](#5-kopie-zapasowe-i-odtwarzanie)
|
||||
6. [Aspekty Bezpieczeństwa](#6-aspekty-bezpieczeństwa)
|
||||
7. [Licencja](#7-licencja)
|
||||
|
||||
---
|
||||
|
||||
## 1. Architektura Platformy: Co zostanie zainstalowane?
|
||||
## 1. Architektura Platformy: Przegląd Usług
|
||||
|
||||
AutoScript buduje wielowarstwową, nowoczesną platformę serwerową. Oto komponenty, które zostaną wdrożone i skonfigurowane:
|
||||
AutoScript buduje kompleksowy ekosystem usług, gotowych do użycia zaraz po instalacji:
|
||||
|
||||
| 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. |
|
||||
| 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
|
||||
|
||||
Plik `autoscript.conf` wymaga podania dwóch kluczowych informacji. Oto jak je zdobyć:
|
||||
(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).
|
||||
|
||||
### Klucz Publiczny SSH (`PUBLIC_KEY`)
|
||||
### Klucze do Kopii Zapasowych (Backblaze B2)
|
||||
|
||||
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`.
|
||||
1. Zaloguj się na swoje konto [Backblaze](https://www.backblaze.com/).
|
||||
2. Przejdź do sekcji **"B2 Cloud Storage"** > **"Buckets"** i stwórz nowy, prywatny bucket.
|
||||
3. Przejdź do **"App Keys"** i wygeneruj nowy klucz aplikacyjny z dostępem do Twojego bucketa. Będziesz potrzebował `applicationKeyId` (jako `B2_ACCOUNT_ID`) oraz `applicationKey` (jako `B2_ACCOUNT_KEY`).
|
||||
|
||||
## 3. Instalacja (Szybki Start)
|
||||
|
||||
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
|
||||
```
|
||||
3. **Skonfiguruj AutoScript:**
|
||||
```bash
|
||||
cp autoscript.conf.example autoscript.conf
|
||||
nano autoscript.conf # Wypełnij zmienne zgodnie z przewodnikiem powyżej
|
||||
```
|
||||
4. **Sprawdź poprawność konfiguracji:**
|
||||
```bash
|
||||
sudo ./start.sh validate
|
||||
```
|
||||
5. **Uruchom pełną instalację:**
|
||||
```bash
|
||||
sudo ./start.sh install
|
||||
```
|
||||
Proces instalacji pozostaje taki sam jak w poprzednich wersjach, ale teraz wdraża znacznie więcej usług!
|
||||
|
||||
## 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. |
|
||||
Do istniejącej listy komend dochodzą nowe, dedykowane dla każdej usługi:
|
||||
|
||||
## 5. Aspekty Bezpieczeństwa
|
||||
- `deploy_discourse`, `deploy_wordpress`, `deploy_freshrss`, `deploy_mail`, `deploy_status`
|
||||
- `backup:init`, `backup:run`, `backup:restore <snapshot_id>`
|
||||
|
||||
AutoScript traktuje bezpieczeństwo jako fundamentalny element.
|
||||
## 5. Kopie Zapasowe i Odtwarzanie
|
||||
|
||||
- **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.
|
||||
AutoScript jest w pełni zintegrowany z `Restic` i `Backblaze B2`, aby zapewnić bezpieczeństwo Twoich danych.
|
||||
|
||||
## 6. Licencja
|
||||
- **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.
|
||||
|
||||
Projekt jest udostępniany na licencji MIT.
|
||||
## 6. Aspekty Bezpieczeństwa
|
||||
|
||||
(Sekcja pozostaje bez zmian, podkreślając te same, solidne fundamenty bezpieczeństwa).
|
||||
|
||||
## 7. Licencja
|
||||
|
||||
Projekt jest udostępniany na licencji MIT.
|
||||
|
|
|
|||
|
|
@ -1,75 +1,58 @@
|
|||
# ===================================================================
|
||||
# Konfiguracja AutoScript v3
|
||||
# ===================================================================
|
||||
#
|
||||
# Instrukcja:
|
||||
# 1. Skopiuj ten plik do `autoscript.conf`
|
||||
# 2. Wypełnij poniższe zmienne.
|
||||
# 3. Uruchom `./start.sh validate` aby sprawdzić poprawność konfiguracji.
|
||||
#
|
||||
# Konfiguracja AutoScript v5 - Kompletna Platforma Serwerowa
|
||||
# ===================================================================
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# SEKCJA WYMAGANA
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
PUBLIC_KEY=''
|
||||
CF_DNS_API_TOKEN=''
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# USTAWIENIA GŁÓWNE
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Główna domena, na której będzie działać Mastodon
|
||||
PRIMARY_DOMAIN='social.ovh'
|
||||
|
||||
# Domena dla usług pomocniczych (monitoringu, itp.)
|
||||
# Domyślnie subdomena głównej, ale można zmienić na inną.
|
||||
SERVICES_DOMAIN="${PRIMARY_DOMAIN}"
|
||||
|
||||
ADMIN_EMAIL='admin@social.ovh'
|
||||
TIMEZONE='Europe/Warsaw'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# USTAWIENIA POWIADOMIEŃ (SMTP)
|
||||
# USTAWIENIA ZAPASOWE (BACKBLAZE B2)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
ALERT_SMTP_HOST='mail.social.ovh:587'
|
||||
ALERT_SMTP_USER='alerts@social.ovh'
|
||||
ALERT_SMTP_PASS=''
|
||||
ALERT_SMTP_FROM='alerts@social.ovh'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# MODUŁY OPCJONALNE (włącz/wyłącz za pomocą true/false)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
INSTALL_FAIL2BAN=true
|
||||
INSTALL_DATABASE=true # Wymagane przez Mastodona
|
||||
INSTALL_LOKI=true
|
||||
INSTALL_BACKUP=false
|
||||
ENABLE_APPARMOR=true
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# KONFIGURACJA BAZY DANYCH (jeśli INSTALL_DATABASE=true)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
POSTGRES_PASSWORD=''
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# KONFIGURACJA KOPII ZAPASOWYCH (jeśli INSTALL_BACKUP=true)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
BACKUP_REPO=''
|
||||
BACKUP_PASSWORD=''
|
||||
AWS_ACCESS_KEY_ID=''
|
||||
AWS_SECRET_ACCESS_KEY=''
|
||||
# Włącz, aby aktywować codzienne, szyfrowane kopie zapasowe.
|
||||
INSTALL_BACKUP=true
|
||||
B2_ACCOUNT_ID=''
|
||||
B2_ACCOUNT_KEY=''
|
||||
B2_REPOSITORY='' # np. b2:twoja-unikalna-nazwa-bucket
|
||||
RESTIC_PASSWORD='' # Hasło do szyfrowania kopii zapasowych
|
||||
BACKUP_CRON_SCHEDULE='30 3 * * *'
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# WERSJE OBRAZÓW DOCKER
|
||||
# KONFIGURACJA USŁUG
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
TRAEFIK_VER='v3.0'
|
||||
PROMETHEUS_VER='latest'
|
||||
GRAFANA_VER='latest'
|
||||
# ... (pozostałe wersje)
|
||||
# --- Mastodon ---
|
||||
MASTODON_DOMAIN="${PRIMARY_DOMAIN}"
|
||||
|
||||
# --- Discourse ---
|
||||
DISCOURSE_DOMAIN="forum.${PRIMARY_DOMAIN}"
|
||||
|
||||
# --- WordPress ---
|
||||
WORDPRESS_DOMAIN="blog.${PRIMARY_DOMAIN}"
|
||||
|
||||
# --- FreshRSS ---
|
||||
FRESHRSS_DOMAIN="rss.${PRIMARY_DOMAIN}"
|
||||
|
||||
# --- Serwer Poczty (Mail-in-a-Box style) ---
|
||||
MAIL_DOMAIN="${PRIMARY_DOMAIN}" # Poczta będzie działać na głównej domenie
|
||||
MAIL_ADMIN_PASSWORD='' # Hasło do panelu admina poczty
|
||||
|
||||
# --- Pulpit Statusu (Uptime Kuma) ---
|
||||
STATUS_DOMAIN="status.${PRIMARY_DOMAIN}"
|
||||
|
||||
# --- Bazy Danych (hasła generowane losowo, jeśli puste) ---
|
||||
POSTGRES_PASSWORD=''
|
||||
DISCOURSE_DB_PASSWORD=''
|
||||
WORDPRESS_DB_PASSWORD=''
|
||||
|
||||
# --- Wersje Obrazów Docker ---
|
||||
# ... (wersje dla wszystkich usług)
|
||||
29
start.sh
29
start.sh
|
|
@ -267,8 +267,33 @@ cmd_interactive_setup() {
|
|||
cmd_backup() {
|
||||
local action="$1"; shift
|
||||
log info "Zarządzanie kopiami zapasowymi: Akcja='$action'"
|
||||
# TODO: Dodać logikę restic
|
||||
log info "(STUB) Wykonuję operację na kopiach zapasowych..."
|
||||
|
||||
export B2_ACCOUNT_ID
|
||||
export B2_ACCOUNT_KEY
|
||||
export RESTIC_REPOSITORY="${B2_REPOSITORY}"
|
||||
export RESTIC_PASSWORD
|
||||
|
||||
case "$action" in
|
||||
init)
|
||||
log info "Inicjalizacja repozytorium kopii zapasowych..."
|
||||
restic init
|
||||
log info "Repozytorium zainicjalizowane."
|
||||
;;
|
||||
run)
|
||||
log info "Rozpoczynam tworzenie kopii zapasowej..."
|
||||
restic backup /opt/services
|
||||
log info "Kopia zapasowa zakończona."
|
||||
;;
|
||||
restore)
|
||||
local snapshot_id="${1:-latest}"
|
||||
log info "Przywracanie migawki: ${snapshot_id}"
|
||||
restic restore "$snapshot_id" --target /opt/services.restored
|
||||
log info "Przywracanie zakończone do folderu /opt/services.restored"
|
||||
;;
|
||||
*)
|
||||
log error "Nieznana akcja dla kopii zapasowej: $action"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# ... (reszta funkcji)
|
||||
|
|
|
|||
22
templates/discourse/docker-compose.yml
Normal file
22
templates/discourse/docker-compose.yml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
version: '3'
|
||||
services:
|
||||
app:
|
||||
image: discourse/discourse:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- ./shared:/shared
|
||||
- ./logs:/var/log
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.discourse.rule=Host(`${DISCOURSE_DOMAIN}`)
|
||||
- traefik.http.routers.discourse.entrypoints=websecure
|
||||
- traefik.http.routers.discourse.tls.certresolver=le-dns
|
||||
|
||||
networks:
|
||||
external_network:
|
||||
external: true
|
||||
name: traefik_proxy
|
||||
internal_network: {}
|
||||
Loading…
Reference in a new issue