Przejdź do głównej zawartości

Konfiguracja

OpenKSeF konfiguruje się na trzy sposoby (w kolejności priorytetu):

  1. Kreator konfiguracji (zalecany) -- webowy wizard pod /admin-setup, zapisuje ustawienia w bazie danych (system_config)
  2. Plik .env -- zmienne środowiskowe obok docker-compose.yml
  3. Wartości domyślne -- wbudowane w docker-compose.yml

Priorytet: Kreator (baza danych) > plik .env > wartości domyślne

Dla standardowej instalacji nie musisz tworzyć pliku .env -- wystarczy uruchomić stack i przejść przez kreator konfiguracji. Plik .env jest przydatny gdy chcesz zmienić porty, hasła do bazy lub publiczny URL przed pierwszym uruchomieniem.

Architektura kontenerów​

Obrazy aplikacji są publikowane na GitHub Container Registry (ghcr.io/open-ksef/*) i nie wymagają autentykacji. Keycloak korzysta z oficjalnego obrazu (quay.io/keycloak/keycloak:26.0).

ObrazOpis
keycloak/keycloak:26.0Keycloak 26 (oficjalny obraz). Realm openksef i klienty OAuth tworzone przez kreator konfiguracji
openksef-gatewayNginx z wbudowaną konfiguracją reverse proxy (portal /, API /api/*, Keycloak /auth/*)
openksef-apiBackend .NET 8
openksef-workerWorker .NET 8 (synchronizacja faktur w tle)
openksef-portal-webPortal React (SPA)

Gateway ma konfigurację wbudowaną w obraz. Nie trzeba montować plików konfiguracyjnych ani wolumenów (poza wolumenem danych PostgreSQL).

Wymagane zmienne (API / Worker)​

ZmiennaOpisDomyślnie
ConnectionStrings__DbConnection string PostgreSQLHost=postgres;Database=openksef;...
Auth__AuthorityURL Keycloak realmhttp://keycloak:8080/auth/realms/openksef
ENCRYPTION_KEYKlucz AES-256 do szyfrowania tokenów KSeF(generowany przez kreator)
KSeF__BaseUrlAdres API KSeFhttps://ksef-test.mf.gov.pl/api

Wymagane zmienne (Portal Web)​

ZmiennaOpisDomyślnie
VITE_API_BASE_URLURL API dla portalu/api
VITE_AUTH_AUTHORITYURL Keycloak dla OIDC/auth/realms/openksef
VITE_AUTH_CLIENT_IDClient ID w Keycloakopenksef-portal-web

Zmienne infrastruktury​

ZmiennaOpisDomyślnie
POSTGRES_USERUżytkownik PostgreSQLopenksef
POSTGRES_PASSWORDHasło PostgreSQLopenksef_dev_password
KEYCLOAK_ADMINLogin admina Keycloakadmin
KEYCLOAK_ADMIN_PASSWORDHasło admina Keycloakadmin
KC_DB_USERNAMEUżytkownik bazy Keycloak (jeśli inny niż Postgres)wartość POSTGRES_USER
KC_DB_PASSWORDHasło bazy Keycloak (jeśli inne niż Postgres)wartość POSTGRES_PASSWORD
Produkcja

Dla wdrożeń produkcyjnych zmień domyślne hasła w pliku .env. Domyślne wartości (openksef_dev_password, admin) są przeznaczone wyłącznie do celów deweloperskich.

Opcjonalne zmienne​

ZmiennaOpis
APP_EXTERNAL_BASE_URLPubliczny URL instancji (np. http://192.168.1.50:8080)
API_CLIENT_SECRETSecret klienta openksef-api w Keycloak (generowany przez kreator)
FIREBASE_CREDENTIALS_JSONFirebase service account JSON (dla direct push)
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORDKonfiguracja poczty (email fallback)

Środowiska KSeF​

ŚrodowiskoURLZastosowanie
Testhttps://ksef-test.mf.gov.pl/apiRozwój i testowanie
Produkcjahttps://ksef.mf.gov.pl/apiPrawdziwe faktury
Uwaga

Środowisko produkcyjne KSeF operuje na rzeczywistych danych podatkowych. Upewnij się, że instancja jest odpowiednio zabezpieczona przed przełączeniem na produkcję.

Tryb uwierzytelniania KSeF​

Zmienna KSeF__AuthMode obsługuje dwa tryby:

TrybOpis
TokenUwierzytelnianie tokenem (domyślnie)
CertificateUwierzytelnianie certyfikatem

Porty​

Porty można dostosować w .env:

APP_HOST_PORT=8080
API_HOST_PORT=8081
KEYCLOAK_HOST_PORT=8082
PORTAL_WEB_HOST_PORT=8083
POSTGRES_HOST_PORT=5432