J'ai créé une instance de Radicale avec Nginx effectuant une authentification de base, mais à chaque fois que je me connecte, il me dit que je n'ai pas la permission d'accéder à la collection. Est-ce que quelqu'un peut m'aider à trouver le problème?
Configuration de Radicale
# -*- mode: conf -*-
# vim:ft=cfg
# Fichier de configuration pour Radicale - Un serveur de calendrier simple
#
# Placez-le dans /etc/radicale/config (global)
# ou ~/.config/radicale/config (utilisateur)
#
# Les valeurs actuelles sont les valeurs par défaut
[server]
# Noms d'hôte du serveur CalDAV séparés par une virgule
# Syntaxe IPv4 : adresse:port
# Syntaxe IPv6 : [adresse]:port
# Par exemple : 0.0.0.0:9999, [::]:9999
# Les adresses IPv6 sont configurées pour autoriser uniquement les connexions IPv6
#hosts = 0.0.0.0:5232
hosts = 127.0.0.1:5232
# Indicateur de démon
#daemon = False
daemon = True
# Fichier stockant le PID en mode démon
#pid =
# Indicateur SSL, activer le protocole HTTPS
#ssl = False
# Chemin du certificat SSL
#certificate = /etc/apache2/ssl/server.crt
certificate = /etc/pki/tls/certs/localhost.crt
# Clé privée SSL
#key = /etc/apache2/ssl/server.key
# Protocole SSL utilisé. Voir le module ssl de Python pour les valeurs disponibles
#protocol = PROTOCOL_SSLv23
# Chiffres disponibles. Voir le module ssl de Python pour les chiffres disponibles
#ciphers =
# Résolution du DNS inverse pour résoudre l'adresse client dans les journaux
#dns_lookup = True
# URL racine de Radicale (commençant et se terminant par une barre oblique)
#custom_handler =
# Fichier pour la gestion des droits from_file
#file = ~/.config/radicale/rights
file = /etc/radicale/rights
[storage]
# Backend de stockage
# -------
# AVERTISSEMENT : SEUL "filesystem" EST DOCUMENTÉ ET TESTÉ,
# LES AUTRES BACKENDS NE SONT PAS PRÊTS POUR LA PRODUCTION.
# -------
# Valeur : filesystem | multifilesystem | database | custom
#type = filesystem
# Gestionnaire de stockage personnalisé
#custom_handler =
# Dossier pour stocker les collections locales, créé s'il n'est pas présent
#filesystem_folder = ~/.config/radicale/collections
filesystem_folder = /var/lib/radicale/collections
# URL de la base de données pour SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
# Par exemple : sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
# Voir http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
#database_url =
[logging]
# Fichier de configuration des journaux
# Si aucune configuration n'est donnée, des informations simples sont imprimées sur la sortie standard
# Pour plus d'informations sur la syntaxe du fichier de configuration, voir:
# http://docs.python.org/library/logging.config.html
#config = /etc/radicale/logging
# Définir le niveau de journalisation par défaut sur debug
#debug = False
# Stocker toutes les variables d'environnement (y compris celles définies dans le shell)
#full_environment = False
[headers]
# En-têtes HTTP supplémentaires
#Access-Control-Allow-Origin = *
Fichier de droits
[owner-write]
user: .+
collection: ^%(login)s(/.+)?$
permission: rw
Nginx
server {
listen 80 default;
location / {
return 301 https://$host$request_uri;
}
include /etc/nginx/servers.conf.d/*.conf;
}
server {
listen 443 ssl default http2;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
try_files $uri @radicale;
}
location @radicale {
auth_basic "Login";
auth_basic_user_file /etc/nginx/auth/radicale;
proxy_pass http://127.0.0.1:5232;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}