z230
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# msgreceiver — deployment instrukce
|
||||
|
||||
## Soubory
|
||||
- Zdrojový skript: `U:\PythonProject\Janssen\EmailsImport\DockerCustomApp\app.py`
|
||||
- Network share: `\\tower\appdata\msgreceiver\app.py`
|
||||
- Unraid cesta: `/mnt/user/appdata/msgreceiver/`
|
||||
|
||||
## Přihlašovací údaje
|
||||
- **Unraid SSH:** `root@192.168.1.76`, heslo: `7309208104`
|
||||
- **Docker kontejner:** `msgreceiver`
|
||||
|
||||
## Postup při nové verzi app.py
|
||||
|
||||
### 1. Zkopírovat app.py na server
|
||||
```powershell
|
||||
Copy-Item "U:\PythonProject\Janssen\EmailsImport\DockerCustomApp\app.py" "\\tower\appdata\msgreceiver\app.py" -Force
|
||||
```
|
||||
|
||||
### 2. Připojit se přes SSH a přebuildovat Docker (přes Python paramiko)
|
||||
```python
|
||||
import paramiko
|
||||
c = paramiko.SSHClient()
|
||||
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
c.connect('192.168.1.76', username='root', password='7309208104')
|
||||
|
||||
# Build
|
||||
_, stdout, stderr = c.exec_command('docker build -t msgreceiver /mnt/user/appdata/msgreceiver/ 2>&1')
|
||||
print(stdout.read().decode())
|
||||
|
||||
# Restart
|
||||
_, stdout, stderr = c.exec_command('docker restart msgreceiver')
|
||||
print(stdout.read().decode())
|
||||
|
||||
c.close()
|
||||
```
|
||||
|
||||
> Poznámka: `sshpass` není na tomto Windows stroji k dispozici, Windows OpenSSH neumí neinteraktivní heslo — proto vždy použij **paramiko**.
|
||||
|
||||
## Struktura adresáře na serveru
|
||||
```
|
||||
/mnt/user/appdata/msgreceiver/
|
||||
├── Dockerfile
|
||||
├── app.py
|
||||
├── requirements.txt
|
||||
└── .env ← Dropbox credentials
|
||||
```
|
||||
|
||||
## Dropbox konfigurace (.env)
|
||||
Proměnné načítané z `.env`:
|
||||
- `DROPBOX_APP_KEY`
|
||||
- `DROPBOX_APP_SECRET`
|
||||
- `DROPBOX_APP_REFRESH_TOKEN`
|
||||
|
||||
Upload cesta v Dropboxu: `/!!!Days/Downloads Z230/{filename}`
|
||||
|
||||
## API endpointy
|
||||
Bearer token: `13e1bb01-9fd5-44a8-8ce9-4ee27133d340`
|
||||
|
||||
| Endpoint | Přijímá | Chování |
|
||||
|---|---|---|
|
||||
| `POST /upload` | `.msg` / `.emsg` | `.emsg` Fernet dešifruje → uloží `.msg` do `/msgs`, přeskočí pokud existuje; volitelně import do Graphu |
|
||||
| `POST /upload-db` | `.db` / `.db.xz.enc` | **v2.1:** `.db.xz.enc` Fernet dešifruje + lzma rozbalí → plain `.db`; pak smaže staré `.db` v `/msgs/db` a uloží. Plain `.db` bere i nadále (zpětná kompatibilita) |
|
||||
| `POST /upload-dropbox` | cokoliv | Nahraje do Dropboxu (overwrite) |
|
||||
|
||||
> **v2.1 (2026-06-10):** `/upload-db` umí komprimovanou+šifrovanou DB (`.db.xz.enc`)
|
||||
> od `jnj_mailbox_sync >= v1.2`. Staré `.db` se smažou **až po** úspěšném
|
||||
> dešifrování/rozbalení (při chybě zůstane poslední dobrá DB). Vyžaduje `lzma`
|
||||
> (stdlib) — ověřeno v kontejneru. Nasazení = jen restart (app.py je bind-mount),
|
||||
> bez rebuildu.
|
||||
|
||||
> **Pozn. k nasazení:** `app.py` je bind-mountovaný (`/mnt/user/appdata/msgreceiver` → `/app`),
|
||||
> takže pro změnu KÓDU stačí přepsat soubor + `docker restart msgreceiver`.
|
||||
> `docker build` je potřeba jen při změně `requirements.txt`.
|
||||
Reference in New Issue
Block a user