Post

Proxmox VM Alpine Linux - Radicale serveur CalDAV CardDAV

Proxmox VM Alpine Linux - Radicale serveur CalDAV CardDAV

Radicale est un serveur CalDAV petit mais puissant (calendriers, listes de choses à faire) et CardDAV (contacts)

*À propos de Radicale**

  • Partage des calendriers et des listes de contacts via CalDAV, CardDAV et HTTP.
  • Prend en charge les événements, les todos, les entrées de journaux et les cartes de visite.
  • Fonctionne à l’extérieur, pas de configuration ou de configuration compliquée requis.
  • Offre des options d’authentification flexibles.
  • Peut limiter l’accès par autorisation.
  • Peut sécuriser les connexions avec TLS.
  • Fonctionne avec de nombreux CalDAV et CardDAV clients.
  • Stocke toutes les données sur le système de fichiers dans un dossier simple structure.
  • Peut être étendu avec des plugins.
  • Est un logiciel gratuit GPLv3-licensed.

Proxmox VM Radicale

VM pvm-alpine01

Créer une VM avec Alpine sous Proxmox

Télécharger l’image ISO
local (pve) –> Images ISO –> Télécverser alpine-standard-3.22.2-x86_64.iso

Créer une VM avec alpine3.22 - Modèle (Disque 5GB , Ram 128MB)

Se connecter en utilisateur rad

Connexion ssh sur un autre port avec un jeu de clés

Générer une paire de clé sur l’ordinateur de bureau PC1
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec la machine virtuelle pvm-alpine01

1
2
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/pvm-alpine01
chmod 600 ~/.ssh/pvm-alpine01

Copier la clé publique cat ~/.ssh/pvm-alpine01.pub dans le presse-papier

1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMmkrE2ZdxnE1GfwmHMrzEXCv4FF2EfITNvtL44oTFc7 yann@pc

On se connecte sur la machine virtuelle alpine linux “pvm-alpine01” en proxy avec le serveur cwwk (192.168.0.205)

1
ssh rad@192.168.0.221

Créer le répertoire et ouvrir nouveau fichier

1
2
mkdir -p $HOME/.ssh/
nano $HOME/.ssh/authorized_keys

Coller le contenu du presse-papier , sauver le fichier et sortir

Modifier les droits

1
chmod 600 $HOME/.ssh/authorized_keys

Passer en mode su

1
su -

Modifier la configuration serveur SSH

1
nano /etc/ssh/sshd_config

Modifier

1
2
Port = 55221
PasswordAuthentication no

Relancer le serveur

1
service sshd restart

Test connexion depuis un poste sur le réseau

1
ssh rad@192.168.0.221 -p 55221 -i /home/yann/.ssh/pvm-alpine01

Passer en root

1
su -

Ajout dépôt communauté
Editer la configuration des dépôts

1
nano /etc/apk/repositories

Trouvez maintenant la ligne qui se termine dans /community
Ensuite, retirez le # au début de la ligne.
Le fichier résultant devrait ressembler à ceci

1
2
3
#/media/cdrom/apks
http://mirrors.ircam.fr/pub/alpine/v3.20/main
http://mirrors.ircam.fr/pub/alpine/v3.20/community

Installer sudo

1
2
apk update
apk add sudo

Ajouter un utilisateur avec les privlèges root

1
echo "rad     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/20-rad

Motd /etc/motd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  ___           _  _            _                                           
 | _ \ __ _  __| |(_) __  __ _ | | ___   ___ ___  _ _ __ __ ___  _  _  _ _  
 |   // _` |/ _` || |/ _|/ _` || |/ -_) (_-</ -_)| '_|\ V // -_)| || || '_| 
 |_|_\\__,_|\__,_||_|\__|\__,_||_|\___| /__/\___||_|   \_/ \___| \_,_||_|   
   ___        _     _              __ ___                _     _            
  / __| __ _ | | __| | __ _ __ __ / // __| __ _  _ _  __| | __| | __ _ __ __
 | (__ / _` || |/ _` |/ _` |\ V // /| (__ / _` || '_|/ _` |/ _` |/ _` |\ V /
  \___|\__,_||_|\__,_|\__,_| \_//_/  \___|\__,_||_|  \__,_|\__,_|\__,_| \_/ 
                              _        _              __   _                
  _ __ __ __ _ __  ___  __ _ | | _ __ (_) _ _   ___  /  \ / |               
 | '_ \\ V /| '  \|___|/ _` || || '_ \| || ' \ / -_)| () || |               
 | .__/ \_/ |_|_|_|    \__,_||_|| .__/|_||_||_|\___| \__/ |_|               
 |_|                            |_|                                         
  _  ___  ___     _   __  ___     __     ___  ___  _                        
 / |/ _ \|_  )   / | / / ( _ )   /  \   |_  )|_  )/ |                       
 | |\_, / / /  _ | |/ _ \/ _ \ _| () |_  / /  / / | |                       
 |_| /_/ /___|(_)|_|\___/\___/(_)\__/(_)/___|/___||_|                          

Radicale serveur CalDAV CardDAV

installer radicale sur l’alpine

Mise à jour et mise à niveau après l’installation

1
apk update && apk upgrade

Installer nano

1
apk add nano 

Editer la configuration des dépôts

1
nano /etc/apk/repositories

Trouvez maintenant la ligne qui se termine dans /community Ensuite, retirez le # au début de la ligne. Le fichier résultant devrait ressembler à ceci

1
2
3
#/media/cdrom/apks
http://dl-cdn.alpinelinux.org/alpine/v3.21/main
http://dl-cdn.alpinelinux.org/alpine/v3.21/community

Mise à jour des dépôts

1
apk update

Installer radicale, nano et apache2-utils

1
apk add radicale apache2-utils py3-bcrypt

Sécurité: Le stockage ne doit pas être lisible par d’autres. (Exécuter chmod -R o= /var/lib/radicale/collections comme racine.)

1
chmod -R o= /var/lib/radicale/collections

Obtenez votre adresse IP

1
ip addr

Modifier /etc/radicale/config pour la configuration de l’adresse ip et de la méthode d’authentification

1
nano /etc/radicale/config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[server]

# CalDAV server hostnames separated by a comma
# IPv4 syntax: address:port
# IPv6 syntax: [address]:port
# For example: 0.0.0.0:9999, [::]:9999
# Set your ip address
hosts = 192.168.0.221:5232

[auth]

# Authentication method
# Value: none | htpasswd | remote_user | http_x_remote_user
# Set htpasswd
type = htpasswd

# Htpasswd filename
# Set filename
htpasswd_filename = /etc/radicale/users

# Htpasswd encryption method
# Value: plain | bcrypt | md5
# bcrypt requires the installation of radicale[bcrypt].
# Set encryption method
htpasswd_encryption = bcrypt

Enregistrer le fichier

Créer l’utilisateur et le mot de passe

1
htpasswd -B -c /etc/radicale/users yann

Service de démarrage

1
rc-service radicale start

Ajouter un service au niveau d’exécution par défaut

1
rc-update add radicale

webbrowser login

1
192.168.0.221:5232

Sécurité: Le stockage ne doit pas être lisible par d’autres. (Exécuter chmod -R o= /var/lib/radicale/collections comme racine.)

1
chmod -R o= /var/lib/radicale/collections

proxy Nginx

Utilisation du proxy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/etc/nginx/conf.d/radicale.rnmkcy.eu.conf 
server {
    # ipv4 listening port/protocol
    listen       443 ssl;
    # ipv6 listening port/protocol
    listen           [::]:443 ssl;
    server_name  radicale.rnmkcy.eu;

    include /etc/nginx/conf.d/ssl-modern.inc;

    gzip on;

    location / {
    proxy_pass        http://192.168.0.221:5232/;
    proxy_set_header  X-Script-Name /radicale;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  Host $http_host;
    proxy_pass_header Authorization;
    }
}

Une fois que vous avez redémarré Nignx, vous devriez pouvoir accéder à radicale sur un port http ou https normal en naviguant vers http://example.com/radicale/ et vous devriez voir l’écran de connexion.

Connexion Radicale

Utilisez le nom d’utilisateur et le mot de passe que vous avez créés dans les étapes ci-dessus pour vous connecter au portail Radicale.

Collections

Créer une nouvelle collection ou ajouter à partir d’un fichier existant de type vcf pur le carnet d’adresses et ics pour les calendriers

Cliquer sur “Upload addressbook or calendar”

Refaire l’opération pour le carnet d’adresse

Android Calendrier et Contacts

DAVx5

Activation

Applications android Agenda et Contacts

Cet article est sous licence CC BY 4.0 par l'auteur.