# STATUS APLIKACJI WIP ! # KSeF Flask App ## Start lokalny ```bash python -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env mkdir -p instance storage/archive storage/pdf storage/backups storage/certs flask --app run.py init-db flask --app run.py create-company flask --app run.py create-user python run.py ``` ## CLI w Docker ```bash docker compose run --rm web flask --app run.py flask --app run.py init-db # nie wymagane, baza się inicjuje automatycznie docker compose run --rm web flask --app run.py flask --app run.py create-company # opcjonalne docker compose run --rm web flask --app run.py flask --app run.py create-user # utworzenie pierwszego admina ``` ## Jak działa `.env` W `.env` trzymane są tylko ustawienia techniczne aplikacji. Dane biznesowe, takie jak KSeF, SMTP, Pushover, tokeny i certyfikaty, ustawia się z panelu WWW osobno dla każdej firmy. ### Pola w `.env.example` - `SECRET_KEY` — klucz Flask do sesji i CSRF. - `APP_MASTER_KEY` — klucz do szyfrowania danych w bazie, np. tokenów i certyfikatów. - `DATABASE_URL` — połączenie do bazy. Dla SQLite może zostać `sqlite:///instance/app.db`. - `APP_PORT` — port aplikacji. Pozstaw domyślny w docker. - `LOG_LEVEL` — poziom logowania. - `REDIS_URL` — opcjonalny Redis do rate-limitów, cache i zadań tła. - `ARCHIVE_PATH`, `PDF_PATH`, `BACKUP_PATH`, `CERTS_PATH` — katalogi plików lokalnych. - `APP_TIMEZONE` — strefa czasowa aplikacji. ## Redis — jak podać i po co Poprawne przykłady: ```env REDIS_URL=redis://127.0.0.1:6379/0 ``` W Dockerze: ```env REDIS_URL=redis://redis:6379/0 ``` Jeśli `REDIS_URL` jest puste, aplikacja przechodzi na fallback `memory://`. Dla konfiguracji docker ustaw: ```env REDIS_URL=redis://redis:6379/0 ``` ## Ważne - Dane biznesowe wprowadza się z panelu WWW. - Każda firma ma własną konfigurację KSeF, SMTP, Pushover, harmonogram i certyfikat. - Harmonogram działa w tle także w Dockerze, w procesie aplikacji Flask. - Ręczne pobieranie tylko pobiera dokumenty i generuje powiadomienia. Nie księguje i nie akceptuje faktur. - Tryb mock KSeF służy do testów lokalnych. Synchronizacja i wystawianie działają lokalnie i nie wysyłają danych do środowiska produkcyjnego KSeF. ## Docker ```bash docker compose up --build ``` Start: ```bash APP_DOMAIN=ksef.local:8785 ./deploy_docker.sh ``` Wszystkie polecenia startowe: ```bash git clone https://git.linuxiarz.pl/gru/ksef_app.git cp .env.example .env # ustaw zmienne APP_DOMAIN=ksef.local:8785 ./deploy_docker.sh ``` ## Konta Nie ma już wymogu seedów do logowania. Użyj CLI: ```bash flask --app run.py create-company flask --app run.py create-user ``` ## Role i dostęp do firm - `admin` — pełny dostęp i zarządzanie użytkownikami/firmami - `operator` — praca operacyjna - `readonly` — tylko odczyt - na poziomie firmy można przypisać `full` albo `readonly` ## CEIDG Klucz api konfigurowalny jest w panelu admina, Hurtownia https://dane.biznes.gov.pl/pl/portal/034872, tu można złożyć wniosek o darmowy klucz API. ## Migracja bazy w dockerze ```bash docker compose run --rm web flask --app run.py db upgrade ```