Files
janssen/EmailsImport/DockerCustomApp/Trash/app_v2.1.md
T
2026-06-10 20:16:38 +02:00

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: 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.