Files
ksef_app/README.md
Mateusz Gruszczyński 51da117ab4 switch to debian in docker
2026-03-20 09:40:56 +01:00

112 lines
3.1 KiB
Markdown

# 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
```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
```