28 lines
1.2 KiB
Text
28 lines
1.2 KiB
Text
|
|
# 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
|