1 Wprowadzono implementację kluczowych funkcji z roadmapy, przekształcając AutoScript w kompletne rozwiązanie do wdrażania i
zarządzania platformą Mastodon.
2
3 Kluczowe zaimplementowane funkcje:
4
5 - **Automatyzacja Wdrożenia Mastodona**: Komenda `deploy_mastodon` została w pełni zaimplementowana. Automatyzuje ona cały
proces: od generowania sekretów i plików konfiguracyjnych, przez uruchomienie kontenerów, aż po wykonanie migracji bazy danych.
6
7 - **Dynamiczne Odkrywanie Usług**: Prometheus został skonfigurowany do automatycznego odkrywania i monitorowania kontenerów na
podstawie etykiet Docker. Eliminuje to potrzebę ręcznej edycji statycznej listy celów i upraszcza dodawanie nowych usług.
8
9 - **Centralne Logowanie Hosta**: Promtail zbiera teraz logi nie tylko z kontenerów Docker, ale również z kluczowych plików
systemowych w `/var/log`. Umożliwia to korelację zdarzeń aplikacyjnych i systemowych w jednym miejscu (Grafana/Loki).
10
11 - **Rozbudowa Architektury**: Dodano nowe szablony dla Mastodona oraz zaktualizowano istniejące dla stosu monitoringu. Skrypt
`start.sh` został rozbudowany o nową logikę i komendy.
12
13 Ta wersja stanowi kulminację dotychczasowych prac, dostarczając w pełni funkcjonalne, zautomatyzowane i gotowe do użycia
narzędzie.
84 lines
2 KiB
YAML
84 lines
2 KiB
YAML
version: '3'
|
|
services:
|
|
db:
|
|
restart: always
|
|
image: postgres:${POSTGRES_VER}
|
|
shm_size: 256mb
|
|
networks:
|
|
- internal_network
|
|
healthcheck:
|
|
test: ['CMD', 'pg_isready', '-U', 'postgres']
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
|
|
redis:
|
|
restart: always
|
|
image: redis:7-alpine
|
|
networks:
|
|
- internal_network
|
|
healthcheck:
|
|
test: ['CMD', 'redis-cli', 'ping']
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
web:
|
|
image: tootsuite/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: bundle exec rails s -p 3000
|
|
networks:
|
|
- internal_network
|
|
- external_network
|
|
healthcheck:
|
|
# prettier-ignore
|
|
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
|
|
ports:
|
|
- '127.0.0.1:3000:3000'
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.mastodon-web.rule=Host(`${PRIMARY_DOMAIN}`)
|
|
- traefik.http.routers.mastodon-web.entrypoints=websecure
|
|
- traefik.http.routers.mastodon-web.tls.certresolver=le-dns
|
|
|
|
streaming:
|
|
image: tootsuite/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: node ./streaming
|
|
networks:
|
|
- internal_network
|
|
- external_network
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.mastodon-streaming.rule=Host(`${PRIMARY_DOMAIN}`) && PathPrefix(`/api/v1/streaming`)
|
|
- traefik.http.routers.mastodon-streaming.entrypoints=websecure
|
|
- traefik.http.routers.mastodon-streaming.tls.certresolver=le-dns
|
|
|
|
sidekiq:
|
|
image: tootsuite/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: bundle exec sidekiq
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
networks:
|
|
- internal_network
|
|
|
|
volumes:
|
|
postgres_data:
|
|
redis_data:
|
|
|
|
networks:
|
|
external_network:
|
|
external: true
|
|
name: traefik_proxy
|
|
internal_network: {}
|