11-daily-operations.md (2005B)
1 # Operação diária (dia 2+) 2 3 [← Índice](README.md) 4 5 ## Adicionar membro 6 7 1. Pedido via `entre` ou processo interno. 8 2. `sudo python3 scripts/admin/create_runv_user.py …` (ver `--help` no servidor). 9 3. Confirmar linha **`landing (public + bolhas): sincronizado`** ou corrigir com `genlanding.py --sync-public-only` (ou só `build_directory.py` se bastar actualizar `members.json`). 10 11 ## Actualizar lista pública sem novo membro 12 13 Só regenerar **`members.json`**: 14 15 ```bash 16 sudo python3 REPO/site/build_directory.py \ 17 --users-json /var/lib/runv/users.json \ 18 -o /var/www/runv.club/html/data/members.json 19 ``` 20 21 Recopiar também **`site/public/`** (assets/HTML) para o DocumentRoot + `members.json`: 22 23 ```bash 24 sudo python3 REPO/site/genlanding.py --sync-public-only \ 25 --document-root /var/www/runv.club/html \ 26 --members-users-json /var/lib/runv/users.json 27 ``` 28 29 (Ajustar paths ao teu DocumentRoot.) 30 31 ## Após `git pull` no servidor 32 33 - `sudo python3 tools/tools.py` para MOTD/skel/bin conforme alterações. 34 35 ## Notícias 36 37 - Colocar `.md` em `site/news/`, executar **`sudo python3 REPO/site/news/publish_news.py`** em produção. O script grava `site/public/news/` (JSON, RSS, sitemap) e, se **`/var/www/runv.club/html`** existir, invoca **`site/genlanding.py --sync-public-only`** no fim (copia `site/public/` para o DocumentRoot + `data/members.json`). Se o DocumentRoot não existir no ambiente (ex.: só clone local), aparece um AVISO com o comando manual — a publicação em `site/public/` fica feita. 38 - **`--skip-genlanding`:** só gera ficheiros em `site/public/` sem copiar para Apache. 39 - Ajustar paths com `--landing-document-root`, `--members-users-json` e opcionalmente `--members-homes-root` se a tua instalação divergir dos defaults. 40 41 ## Wiki 42 43 - Fontes em `site/wiki/` com gerador `build_wiki.py` (estrutura no repo). 44 45 ## Email 46 47 - Testes documentados no módulo `email/` (`send_test_mail.sh`, etc., se presentes). 48 49 Próximo: [12-security-and-privacy.md](12-security-and-privacy.md).