Paillasse/ansible/roles/portail/templates/rclone-webdav.service.j2

28 lines
1.2 KiB
Text
Raw Permalink Normal View History

# Géré par Ansible (rôle portail) — ne pas modifier à la main.
# Bloc C (CLAUDE.md) : dossier de l'élève monté comme lecteur réseau.
# N'écoute qu'en local (127.0.0.1) : Nginx authentifie (délégué au portail)
# et restreint chaque élève à son sous-dossier avant de relayer ici — voir
# ansible/roles/portail/templates/nginx-portail.conf.j2 et
# App\Http\Controllers\WebdavAuthController.
[Unit]
Description=Serveur WebDAV (rclone) pour le dossier des élèves — Syllabus
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
# --dir-cache-time : sans ça, les dossiers créés par Laravel (un par élève,
# en dehors de rclone) restent invisibles jusqu'à 5 minutes (la valeur par
# défaut) — constaté le 2026-10-14, un nouveau dossier élève répondait 404
# tant que rclone ne l'avait pas découvert lui-même.
ExecStart=/usr/bin/rclone serve webdav {{ portail_dossier_app }}/storage/app/webdav --addr 127.0.0.1:{{ portail_port_webdav }} --no-modtime --vfs-cache-mode off --dir-cache-time 1s
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
ProtectSystem=strict
ReadWritePaths={{ portail_dossier_app }}/storage/app/webdav
[Install]
WantedBy=multi-user.target