Deploy sem rebuild: código bind-mount; sudo docker restart rede-restaurantes-app (~7s). Armadilha: o compose bind-monta arquivos individuais — todo módulo novo precisa entrar no volumes: do docker-compose.yml (ex.: garcom_routes.py).
Multi-tenant: cada restaurante é uma linha em casas (slug único). casa_atual() resolve por sessão em /admin e /garcom, e por host no site público. Quase toda tabela tem casa_id. Config por casa em casas.empresa_config (JSON).
Migrações automáticas: no boot, db.create_all() + 31 funções _ensure_* que fazem ALTER TABLE idempotente (ex.: _ensure_operador_papel_column, _ensure_kds_columns, _ensure_pedido_producao_columns).