Dla administratorów
← Wszystkie tematy

Instalacja na własnym serwerze

Jak zbudowana jest instalacja: paczka i licencja, usługi, HTTPS, updater, ustawienia w .env i co gdzie leży.

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ługaCo robi
dbbaza danych MariaDB – przechowuje wszystko: ustawienia, wytyczne, wiadomości, szkice, zaszyfrowane sekrety. Nic z innej maszyny jej nie dotyka
workerczyta skrzynki, wywołuje modele, pisze szkice, uczy się, wykonuje kroki kreatora. Może ich działać kilka
web-blue, web-greeninterfejs webowy i API w dwóch kolorach: jeden obsługuje ruch, drugi czeka na następną wersję – dlatego aktualizacje nie powodują przerwy
proxywejście z zewnątrz: przełącza między kolorami interfejsu i opcjonalnie kończy HTTPS
updateropcjonalnie: wykonuje to, co operator zleci w części Instalacja (aktualizacja, powrót, liczba procesów, wymiana klucza)
cloudflaredopcjonalnie: 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ć

HTTPS

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.

ZmiennaDo czego
DRAFTEN_VERSION, DRAFTEN_EDITIONdziałająca wersja i edycja (onprem)
DB_ROOT_PASSWORD, DB_PASSWORDhasła do bazy danych
MASTER_KEYklucz szyfrujący sekrety w bazie danych (klucze API, dostęp do skrzynek, klienci logowania). Przechowuj kopię poza serwerem
MASTER_KEY_PREVIOUSpoprzedni klucz po jego wymianie, dopóki backups/ zawiera zrzuty sprzed niej
WEB_APP_SECRETlosowy ciąg podpisujący sesje
WEB_PUBLIC_URLadres, pod którym ludzie otwierają interfejs; na jego podstawie powstają adresy przekierowania przy logowaniu
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BINDgdzie nasłuchują HTTP i HTTPS
COMPOSE_PROFILESusługi opcjonalne: updater, tunnel
DRAFTEN_BACKUPSile zrzutów bazy danych sprzed aktualizacji przechowywać w backups/ (domyślnie 3)
CLOUDFLARE_TUNNEL_TOKENtylko przy Cloudflare Tunnel
INTERVAL_SECONDS, WORKER_CONCURRENCYdomyślny odstęp sprawdzania i liczba równoczesnych sprawdzań (lepiej ustawiać w interfejsie)
WORKER_REPLICASile 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

.envustawienia 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.mdco zmieniło zainstalowane wydanie

Dalej

Wersja tekstowa