114 lines
3.1 KiB
Markdown
114 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
|
|
|
|
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
|
|
``` |