Le Wiki de Tchack

Guides et documentation sur le serveur tchack.xyz

Outils pour utilisateurs

Outils du site


adminsys:apps

Administration des services

Les services proposés par le serveur Tchack sont organisés au travers de l'infrastructure Yunohost, qui facilite (prémâche :-D) le travail d'administrateur système.

Il suffit d'utiliser les paquets (officiels ou communautaires) situés sur le dépôt github du projet pour installer directement un nouveau service, par l'interface web ou la ligne de commande. Les paramètres de création (adresse, nom, privé/public, administrateur) ne sont pas modifiables par la suite (pour le moment 12/09/17).

La mise à jour des services est facilitée par ce système, accessible en web ou ligne de commande.

Yunohost

L'infrastructure Yunohost permet d'installer la majeure partie des services/applications proposés par le serveur, de manière très aisée, en ligne de commande ou par l'interface web d'administration. Le front-office est alors constitué de simples tuiles colorées (style “tableau périodique des éléments”), cf services.

Applis Directes

La seule application installée directement sur le système était RPi-Monitor sur le RaspberryPi, qui sert les pages sur le port 8888. Une redirection est configurée avec Yunohost, permettant une bonne intégration via une tuile simple.


Services Admin

Certains services sont visibles uniquement de l'administrateur :

  • un accès ssh par le web (désactivé au quotidien pour limiter la surface d'attaque)
  • un moniteur poussé (graphes statiques) inclus dans Yunohost : Monitorix
  • un moniteur rapide et dynamique de l'état du serveur : RPi-Monitor

RPi-Monitor

Ce monitoring n'est pas un paquet de Yunohost, mais est utilisée pour des raisons esthétiques et pratiques (indépendance). Le paquet Rpi-monitor est proposé par Xavier Berger sur https://github.com/XavierBerger/RPi-Monitor. Le paquet debian de l'application est servi par son dépôt personnel sur giteduberger.fr, qui est donc ajouté aux listes de “apt-get” sur le système.

Le service est accessible par le web, via une simple tuile “redir-app”(proxy) dans yunohost. Les données historiques du système, au pas 10 min, sont stockées dans des fichiers round-robin (.rrd) facilement exportables.


Services Usagers

Webapp

L'application **Custom Web App** avec accès sftp crée un utilisateur restreint au SFTP, avec un chroot dans /var/www/my_webapp(__#).

Pour pouvoir utiliser une connexion sans mot de passe (pour automatiser l'upload), il faut ranger une clé publique dans %chroot/.ssh/authorized_keys, et non pas dans /home/webapp#.

Pour gérer un wordpress et les permalinks, une section manque dans le code, une ligne à ajouter dans le fichier nginx /etc/nginx/conf.d/$DOMAIN.d/my_webapp.conf que l’on doit rééditer à la mano après les mises à jours des my_webapp qui hébergent des wordpress :

  # Remove index.php from URL
  if (!-e $request_filename)
   {
   rewrite ^(.*)$ /index.php?q=$1 last;
   }

:!: 09/2023 : en webapp 1.0~ynh14 il existe un sous-dossier de conf nginx, dans lequel ranger un fichier dédié à cette modification, et qui ne sera donc pas réécrit par un prochain upgrade.

Réputation du site web

La réputation du site web et son indexation par Google peuvent être contrôlés via ce lien : https://transparencyreport.google.com/safe-browsing/search

Sondage

Le service dispose d'une page d'administration, accessible par l'administrateur désigné à la création (jaxom) à l'adresse /admin.

Partage

Le service dispose d'une page d'administration, accessible par l'administrateur désigné à la création (jaxom) à l'adresse /admin.php.

WebChat

Service suspendu en 2020

Yunohost embarque un serveur XMPP (metronome), qui configure directement un accès HTTP avec Bosh. Celui-ci est disponible sur localhost:5290. Pour que les clients web l'utilisent, il faut donc y configurer une redirection publique (Nginx Proxy_pass vers bosh.tchack.xyz), via une appli 'redirect_ynh'.

Pour permettre la discussion sans compte, il faut autoriser dans Metronome les connexions anonymes avec anonymous_login = true

Enfin, le client web utilisé est Conversation.js, qui peut être servi par n'importe quelle page web, avec un fonctionnement en plein écran tel https://inverse.chat/ . La configuration de l'application est ajoutée directement dans la page html, avec un salon de départ qui est public@muc.tchack.xyz.

Une version avec les réglages en plein écran est proposée sur tchack.xyz/chat et une version mobile sur tchack.xyz/chat/mob. La version utilisée est la 3.2.1, car la 3.3.0+ ne s'affichait pas sur Firefox (à débugguer).

Cloud

La page migrationCloud résumait le passage d'owncloud à Nextcloud pour les utilisateurs.

Lorsque des serveurs distants disparaissent sans avoir supprimé leurs partages, il faut nettoyer à la main la base de données des références obsolètes, car les fichiers/dossiers concernés restent en 'erreur'. Cf ce ticket github.

Les upgrade perdent parfois la config, notamment la ligne 'allow_local_remote_servers' ⇒ true, nécessaire pour les aplications externes comme les intégrations (mattermost, OnlyOffice…)

L'utilisation de la commance occ nécessite le bon utilisateur et la bonne version de php. Pour autant, il peut manquer le paramètre “MemCache APCu” (voir issue : https://github.com/nextcloud/server/issues/27781). Dans ce cas, il faut l'ajouter à la main dans la commande, avec l'option -\-define apc.enable_cli=1 . LA commande finale devient :

sudo -u www-data php –define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:repair

OnlyOffice

TTRSS

Le débit des logs est réduit via cette manip : https://discourse.tt-rss.org/t/systemd-daemon-is-too-verbose-in-syslog/757/3 ie : ajouter StandardOutput=null StandardError=syslog dans la partie [Service] du daemon tt-rss qu est situé dans /etc/systemd/system

HedgeDocs

Anciennement CodiMD et HackMD : utilise une base de données postgresql. Il faut s'y connecter avec l'user posgres : sudo su postgres puis psql.

Email

BlackList

Pour se faire dé-blacklister de chez Microsoft, suivre la procédure :

Suivi Microsoft

Comme les points ci-dessus ne suffisent pas à rester hors BL, j'ai décidé de capter tous les messages sortants vers Microsoft (pour les renvoyer à la main depuis une autre boite perso). Notamment pour les messages de réinit mdp de mattermost… Je me sers d'un réglage postfix : http://www.postfix.org/postconf.5.html#recipient_bcc_maps

WhiteList

Pour placer des domaines sur liste blanche de postfix, même s'ils sont sur des RBL de spam, le tuto suivant a été réalisé : https://help.endian.com/hc/en-us/articles/218144758-RBL-Whitelisting-in-Postfix.

En bref :

  1. créer le fichier /etc/postfix/rbl_override avec des lignes domaine OK,
  2. l'ajouter dans la configuration /etc/postfix/main.cf, sous la forme check_client_access hash:/etc/postfix/rbl_override, dans les sections smtpd_sender_restrictions et smtpd_client_restrictions
  3. :!: exécuter un postmap /etc/postfix/rbl_override après chaque modification du fichier de whitelist et relancer le service postfix.

Monitoring

Le programme pflogsumm est utilisé pour produire des statistiques de mail à partir des journaux postfix, d'après ce fil de forum. Il est appelé par cron tous les soirs, et produit un fichier .txt dans le dossier web servi par rainloop.

59 23 * * * pflogsumm -u 0 -h 5 –problems-first /var/log/mail.log > /var/www/rainloop/pflogsumm.txt

On peut ainsi lire les stats (si on est connecté) à l'adresse : https://tchack.xyz/rainloop/pflogsumm.txt.

Ajout du monitoring dans zabbix (toujours avec pflogsumm) via ce template : https://github.com/rafael747/zabbix-postfix/blob/master/README_passive.md

Catégorie Signification
Received emails reçus d'autres serveurs OK
Delivered emails envoyés à d'autres serveurs OK
Deferred emails envoyés et en attente d'acceptation
Bounced email envoyés qui ont été refusés par d'autres serveurs
Rejected emails reçus que Yunohost a rejeté
adminsys/apps.txt · Dernière modification : 2023/10/09 13:04 de jaxom