runv-server

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

13-troubleshooting.md (3028B)


      1 # Resolução de problemas
      2 
      3 [← Índice](README.md)
      4 
      5 ## Bolhas / constelação não aparecem
      6 
      7 1. Confirmar que existe **`DocumentRoot/data/members.json`** (não só `site/public/data/members.json` no clone).
      8 2. Ver mensagem de **`create_runv_user.py`**: AVISO se DocumentRoot inexistente ou se `genlanding --sync-public-only` falhou (ver log / comando manual sugerido).
      9 3. Browser: em viewport ≤768px o JS **omitido** de propósito (`app.js`).
     10 
     11 ## `members.json` vazio
     12 
     13 - `users.json` inexistente → `build_directory.py` assume `[]` com aviso em stderr.
     14 - JSON inválido → script termina com erro.
     15 
     16 ## Página `Index of /~USER`
     17 
     18 - O Apache mostra listagem quando `~/public_html/` existe mas falta `~/public_html/index.html`.
     19 - Repare sem sobrescrever conteúdo existente:
     20 
     21 ```bash
     22 sudo python3 REPO/scripts/admin/repair_user.py --user USER --dry-run --verbose
     23 sudo python3 REPO/scripts/admin/repair_user.py --user USER
     24 ```
     25 
     26 - O reparador também corrige `~` para `755`, cria `.ssh`, `public_html`, `public_gopher`, `public_gemini` se faltarem, e cria modelos ausentes de `index.html`, `gophermap` e `index.gmi`. Ver [16-repair-users.md](16-repair-users.md).
     27 
     28 ## Email não envia (entre / Mailgun)
     29 
     30 - Verificar `/etc/runv-email.json`, segredos, `admin_email`, `email_package_root` / `RUNV_EMAIL_ROOT`.
     31 
     32 ## Apache
     33 
     34 - `apache2ctl configtest` após alterações de vhost.
     35 - `genlanding.py` imprime erros se `build_directory` falhar.
     36 
     37 ## Feed RSS descarrega em vez de abrir no browser
     38 
     39 - O `mod_mime` trata `.rss` como `application/rss+xml`; o Chromium costuma **descarregar**. Com `genlanding` ≥ 0.08 o snippet usa **`RemoveType`**, **`Header set Content-Type`** (requer **`mod_headers`**) e **`a2enconf runv-landing-rss-mime`**. Verifique: `curl -sI https://runv.club/news/feed.rss | grep -i content-type` → deve ser **`text/xml`**.
     40 - Com `genlanding` ≥ 0.07 e < 0.08: confirme **`/etc/apache2/conf-available/runv-landing-rss-mime.conf`**, symlink em `conf-enabled`, DocumentRoot correcto; volte a correr o **`genlanding` completo** (0.08+) para aplicar `Header` + `headers`.
     41 - Instalações antigas só com `ForceType` no `:80`: corra o `genlanding` completo de novo ou veja [06-site-and-apache.md](06-site-and-apache.md).
     42 
     43 ## Quotas
     44 
     45 - FS não ext4 → automatização de `starthere.py` pode recusar; configurar manualmente ou usar volume ext4.
     46 
     47 ## SSH `entre`
     48 
     49 - Sessão fecha de imediato: rever PAM / modo `empty-password` / logs em `/var/log/runv/entre.log`.
     50 - `/usr/bin/python3: can't open file '/opt/runv/terminal/entre_app.py': [Errno 13] Permission denied`: permissões da instalação em `/opt/runv/terminal` ficaram restritivas ou inconsistentes. Reexecute `sudo python3 REPO/terminal/setup_entre.py --yes` (com as mesmas flags de `--auth-mode` usadas em produção, se não forem as padrão) para reaplicar dono e modos: `/opt/runv` atravessável, árvore do módulo `root:entre` com diretórios `0750` e ficheiros `0640`.
     51 
     52 Próximo: [14-smoke-tests-and-validation.md](14-smoke-tests-and-validation.md).