2.7 KiB
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
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)
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:
sshpassnení 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_KEYDROPBOX_APP_SECRETDROPBOX_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-dbumí komprimovanou+šifrovanou DB (.db.xz.enc) odjnj_mailbox_sync >= v1.2. Staré.dbse smažou až po úspěšném dešifrování/rozbalení (při chybě zůstane poslední dobrá DB). Vyžadujelzma(stdlib) — ověřeno v kontejneru. Nasazení = jen restart (app.py je bind-mount), bez rebuildu.
Pozn. k nasazení:
app.pyje bind-mountovaný (/mnt/user/appdata/msgreceiver→/app), takže pro změnu KÓDU stačí přepsat soubor +docker restart msgreceiver.docker buildje potřeba jen při změněrequirements.txt.