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

Wszystkie obrazy Docker są publikowane na GitHub Container Registry (ghcr.io/open-ksef/*) i nie wymagają autentykacji.

ObrazOpis
openksef-keycloakKeycloak 26 z wbudowanym realmem OpenKSeF (3 klienty OAuth: API, mobile, portal-web)
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)

Keycloak i gateway mają 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)
GOOGLE_CLIENT_IDGoogle OAuth Client ID (dla logowania przez Google)
GOOGLE_CLIENT_SECRETGoogle OAuth Client Secret
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 trzy tryby:

TrybOpis
TokenUwierzytelnianie tokenem (domyślnie)
CertificateUwierzytelnianie certyfikatem
AutoToken do 1 stycznia 2027, potem certyfikat

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