O meu sistema (não vou colocar o código todo aqui, pois é muito grande) — enfim, quero tanto uma sugestão para colocar o meu sistema em cloud quanto esclarecer o seguinte:
Na parte de conexão, o meu sistema funciona assim:
Manual (db_manual.py) → Conecta como superusuário (DB_USER=postgres) no banco postgres, cria o usuário da aplicação (DB_APP_USER) e cria o banco (DB_APPLICATION_DATABASE) com esse usuário como dono. Roda apenas no startup (SetupBancoService).
ORM (db_orm.py) → No dia a dia, conecta como o usuário comum da aplicação (com privilégio mínimo) no banco que foi criado. É o que atende as requisições.
Esse padrão "superusuário só para o setup + usuário limitado para rodar" é exatamente o que funciona em uma VM (onde você é dono do Postgres).
De forma mais simples: o banco manual cria o usuário com limitações, e esse usuário gerencia o banco, mas tendo limitações — como apenas criar e executar comandos DML (SELECT, INSERT, DELETE, etc.).
Olhando para subir em serviços como AWS RDS ou Render, não seria possível, pois não terei como criar um superusuário. Porém, pesquisando sobre isso, o meu sistema poderia funcionar usando uma abordagem de IaaS (Infrastructure as a Service), ou seja, instalando tudo eu mesmo — por exemplo, usando o Oracle Cloud Free Tier. Se possível, gostaria de uma sugestão com base no que expliquei.