📅 memo.tru.ar

Versión v1.0.0 · Generado: 2026-07-15 12:33:26 · https://memo.tru.ar

Calendario personal Flask + MySQL + Google Calendar OAuth. Resúmenes diarios 8AM y semanales lunes 8AM por WhatsApp.

📝 Cambios de esta versión:
[Snapshot maestro semanal]
🔐 CONFIDENCIAL. Este documento contiene credenciales. NO compartir. Si tu Gmail se compromete, rotar todas las claves listadas.

📋 Overview

Stack

FrameworkFlask + Gunicorn (1 worker para que APScheduler corra estable)
Path/home/ubuntu/memo
Puerto5056 (gunicorn local)
OAuthGoogle (provider tru-ar-oauth)
Vhost/etc/nginx/sites-available/memo
Servicememo.service

🗄️ Base de datos

MySQL

Hostlocalhost
DBmemo_ar
Usermemo_app
PasswordMemo2026xP9mQrL

CLI

sudo mysql memo_ar

🔌 APIs e integraciones

Google OAuth (tru-ar-oauth)

Client ID328634792981-qpjs4kllrp78ls3ji4340uqjmjnjqin3.apps.googleusercontent.com
Client SecretGOCSPX-FloBiErFR4q5J7ICdnT0EBc2RK9a
Redirect URIhttps://memo.tru.ar/oauth2/callback

SMTP (Gmail para resúmenes mail)

Hostsmtp.gmail.com
Port587
User[email protected]
Passwordathn ygfc zdvc bgqt
Destino[email protected]

WhatsApp (CallMeBot)

Phone5493513922702
API key3221530

Flask SECRET_KEY

Valuememo-secret-cambiame-2026
UsoSesión Flask + signing

⚙️ Servicio systemd

memo.service

[Unit]
Description=memo.tru.ar Flask app
After=network.target mysql.service

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/memo
EnvironmentFile=/home/ubuntu/memo/.env
ExecStart=/home/ubuntu/.local/bin/gunicorn -w 1 -b 127.0.0.1:5056 app:app
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

🛠️ Comandos

Restart

sudo systemctl restart memo
sudo systemctl status memo --no-pager

Logs

sudo journalctl -u memo -n 100 --no-pager
sudo journalctl -u memo -f

Bump versión

sudo /opt/backup-system/bump.sh memo patch "Descripción"

Backup DB

sudo mysqldump memo_ar > memo_$(date +%Y%m%d).sql