draften możesz uruchomić na własnym serwerze. Poczta, szkice i klucze zostają wtedy u ciebie; wychodzi tylko to, co wysyłasz do dostawcy modelu językowego (albo nic, przy modelu lokalnym).
Ta strona to przegląd tego, jak zbudowana jest instalacja. Samo postępowanie opisuje strona Instalacja krok po kroku.
Paczka i licencja
Każde wydanie draften to jedna paczka, plik draften-<version>.tar. Zawiera obrazy wszystkich usług, pliki, które je uruchamiają, podpisaną listę całej zawartości i polecenie ./draften, które zarządza instalacją. Serwer nie potrzebuje niczego poza Dockerem.
Do uruchomienia potrzebujesz licencji – pliku, który dostajesz od nas i przesyłasz w interfejsie. Ogranicza liczbę skrzynek i asystentów, a jej klucz służy też do pobierania nowych wydań. Więcej w Licencji.
Z czego składa się instalacja
Wszystko działa w Dockerze przez docker compose:
| Usługa | Co robi |
|---|---|
db | baza danych MariaDB – przechowuje wszystko: ustawienia, wytyczne, wiadomości, szkice, zaszyfrowane sekrety. Nic z innej maszyny jej nie dotyka |
worker | czyta skrzynki, wywołuje modele, pisze szkice, uczy się, wykonuje kroki kreatora. Może ich działać kilka |
web-blue, web-green | interfejs webowy i API w dwóch kolorach: jeden obsługuje ruch, drugi czeka na następną wersję – dlatego aktualizacje nie powodują przerwy |
proxy | wejście z zewnątrz: przełącza między kolorami interfejsu i opcjonalnie kończy HTTPS |
updater | opcjonalnie: wykonuje to, co operator zleci w części Instalacja (aktualizacja, powrót, liczba procesów, wymiana klucza) |
cloudflared | opcjonalnie: publikacja interfejsu przez Cloudflare Tunnel |
Interfejs i worker nie komunikują się bezpośrednio – oba pracują z tą samą bazą danych; to, co potrzebuje poczty albo modelu, interfejs ustawia w kolejce jako zadanie dla workera.
Czego będziesz potrzebować
- serwera x86-64 z Linuksem i Dockerem 24 lub nowszym (z wtyczką compose), 4 GB pamięci i 20 GB dysku,
- adresu, pod którym interfejs będzie osiągalny, z HTTPS – certyfikat bezpośrednio w draften albo twoje reverse proxy lub tunel,
- dostępu do skrzynek: rejestracji aplikacji w Microsoft Entra, konta usługi Google Workspace albo danych IMAP,
- klucza API modeli (Anthropic, OpenAI) albo własnego serwera zgodnego z OpenAI,
- licencji od nas.
HTTPS
- W draften: podaj instalatorowi certyfikat i jego klucz (PEM). draften nasłuchuje wtedy na porcie 443 i przekierowuje z portu 80. Odnowiony certyfikat wdrażasz poleceniem
./draften certificate new.pem new.keybez utraty jednego żądania. Certyfikat zdobywasz samodzielnie (od urzędu certyfikacji albo klientem ACME). - Przed draften: bez certyfikatu draften nasłuchuje na
127.0.0.1:8085, a HTTPS kończy twoje proxy albo tunel.
Updater
Updater to opcjonalna usługa, która wykonuje to, co operator zleci w Instalacja → Instalacja: aktualizację do nowej wersji, powrót do poprzedniej, zmianę liczby procesów workera i wymianę klucza szyfrowania. Uruchamia do tego to samo ./draften, które można uruchomić ręcznie.
Updater ma dostęp do Dockera, co oznacza prawa roota na serwerze. Sam interfejs nigdy nie dotyka Dockera – zapisuje tylko zlecenie dla updatera w bazie danych. Włącza się go przy instalacji (COMPOSE_PROFILES=updater w .env); bez niego wszystko działa z wiersza poleceń.
Ustawienia w .env
Plik .env w katalogu instalacji zapisuje instalator i może go czytać tylko jego właściciel. Zawiera infrastrukturę i sekrety; wszystko, co dotyczy asystentów, jest w bazie danych i ustawia się w interfejsie.
| Zmienna | Do czego |
|---|---|
DRAFTEN_VERSION, DRAFTEN_EDITION | działająca wersja i edycja (onprem) |
DB_ROOT_PASSWORD, DB_PASSWORD | hasła do bazy danych |
MASTER_KEY | klucz szyfrujący sekrety w bazie danych (klucze API, dostęp do skrzynek, klienci logowania). Przechowuj kopię poza serwerem |
MASTER_KEY_PREVIOUS | poprzedni klucz po jego wymianie, dopóki backups/ zawiera zrzuty sprzed niej |
WEB_APP_SECRET | losowy ciąg podpisujący sesje |
WEB_PUBLIC_URL | adres, pod którym ludzie otwierają interfejs; na jego podstawie powstają adresy przekierowania przy logowaniu |
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BIND | gdzie nasłuchują HTTP i HTTPS |
COMPOSE_PROFILES | usługi opcjonalne: updater, tunnel |
DRAFTEN_BACKUPS | ile zrzutów bazy danych sprzed aktualizacji przechowywać w backups/ (domyślnie 3) |
CLOUDFLARE_TUNNEL_TOKEN | tylko przy Cloudflare Tunnel |
INTERVAL_SECONDS, WORKER_CONCURRENCY | domyślny odstęp sprawdzania i liczba równoczesnych sprawdzań (lepiej ustawiać w interfejsie) |
WORKER_REPLICAS | ile procesów worker działa na tej maszynie (domyślnie 1), zobacz Utrzymanie i przepustowość |
Wartość ze znakiem $ trzeba zapisać w .env jako $$ – inaczej część po dolarze po cichu przepadnie. Klucze generowane poleceniem openssl rand -hex 32 nigdy nie zawierają dolara.
Co gdzie leży
.env | ustawienia i sekrety instalacji |
compose.yaml, proxy/ | jak działają kontenery; każda aktualizacja je podmienia |
backups/ | zrzuty bazy danych sprzed aktualizacji |
data/ | dziennik i raporty workera |
updates/ | paczki czekające na instalację; tutaj pobiera też updater |
NOTES.md | co zmieniło zainstalowane wydanie |
Dalej
- Instalacja krok po kroku,
- Administracja instalacji – wersja, licencja, domyślne klucze i nadawca, organizacje,
- Aktualizacja przez updater i z wiersza poleceń,
- Utrzymanie i przepustowość,
- Kopia zapasowa i odtwarzanie,
- Rozwiązywanie problemów.