runv-server

server tooling for runv.club
Log | Files | Refs | README

09-terminal-entre.md (2067B)


      1 # Terminal SSH «entre»
      2 
      3 [← Índice](README.md)
      4 
      5 ## Papel
      6 
      7 - Utilizador Unix especial **`entre`**: ao ligar por SSH, o OpenSSH executa **`ForceCommand`** → `entre_app.py`.
      8 - **Recolhe** dados (username, email, presença online, chave pública), **valida** (`entre_core.py`), **grava** JSON na fila com criação exclusiva (`O_EXCL`), **regista** log, **opcionalmente** notifica admin por email.
      9 
     10 ## Limite explícito (facto de código)
     11 
     12 - **`entre_app.py` / `entre_core.py` não criam contas Linux de membros.** O utilizador `entre` em si é criado por **`setup_entre.py`** com `useradd` — isso é **bootstrap do sistema**, não provisionamento de membro.
     13 
     14 ## Ficheiros principais
     15 
     16 | Ficheiro | Função |
     17 |----------|--------|
     18 | `entre_app.py` | UI terminal, passos |
     19 | `entre_core.py` | Config TOML, validação, fila, log, sendmail/Mailgun |
     20 | `setup_entre.py` | Instalação: `entre`, `/opt/runv/terminal`, fila, logs, drop-in sshd, modos de auth |
     21 | `config.example.toml` | Modelo; `config.toml` gerado, não versionado no mesmo sítio |
     22 | `templates/*.txt` | Textos editáveis |
     23 | `systemd/*.path`, `*.service` | Opcional (notificações) |
     24 
     25 ## Configuração
     26 
     27 - `queue_dir` default `/var/lib/runv/entre-queue`
     28 - `log_file` default `/var/log/runv/entre.log`
     29 - Ver `terminal/config.example.toml`
     30 
     31 ## Modos de autenticação (`setup_entre.py`)
     32 
     33 - Documentados na docstring: `shared-password`, `key-only`, `empty-password` (estilo tilde.town), com avisos de segurança explícitos no código.
     34 
     35 ## Documentação histórica
     36 
     37 - O antigo `terminal/docs/ARCHITECTURE.md` referia `USO.md`, que **não existia** neste snapshot. O fluxo operacional está consolidado neste documento e em [10-user-provisioning-and-admin-ops.md](10-user-provisioning-and-admin-ops.md) (a documentação modular em `terminal/docs/` foi removida em favor de `docs/` — ver `DOCS_REBUILD_CHANGELOG.md` na raiz).
     38 
     39 Diagrama de sequência: [diagrams/architecture.mmd](diagrams/architecture.mmd).
     40 
     41 Próximo: [10-user-provisioning-and-admin-ops.md](10-user-provisioning-and-admin-ops.md).