# apt update # apt install git python3-pip python3-venv # useradd -r -m -d /var/lib/radicale -s /bin/bash radicale # mkdir /etc/radicale # nano /etc/radicale/radicale.conf [server] # Bind to all IP addresses (0.0.0.0) instead of just localhost hosts = 0.0.0.0:5232 [auth] type = htpasswd htpasswd_filename = /etc/radicale/users htpasswd_encryption = bcrypt [storage] filesystem_folder = /var/lib/radicale/collections [web] type = radicale_infcloud # htpasswd -c -B /etc/radicale/users yourusername # htpasswd -B /etc/radicale/users anotheruser # ufw allow 5232/tcp # ufw reload # su radicale $ cd ~ $ python3 -m venv venv $ source venv/bin/activate $ pip install radicale bcrypt git+https://github.com/Unrud/RadicaleInfCloud.git $ radicale --config /etc/radicale/radicale.conf http://your-server-ip:5232/ $ exit # nano /etc/systemd/system/radicale.service [Unit] Description=Radicale CalDAV and CardDAV Server After=network.target [Service] User=radicale Group=radicale ExecStart=/var/lib/radicale/venv/bin/radicale --config /etc/radicale/radicale.conf WorkingDirectory=/var/lib/radicale Restart=on-failure LimitNOFILE=4096 [Install] WantedBy=multi-user.target # systemctl daemon-reload # systemctl enable radicale # systemctl start radicale # systemctl status radicale # apt install apache2 certbot python3-certbot-apache # nano /etc/apache2/sites-available/radicale.conf <VirtualHost *:80> ServerName your_domain.com ProxyPass / http://localhost:5232/ ProxyPassReverse / http://localhost:5232/ </VirtualHost> # ufw allow 80/tcp # ufw allow 443/tcp # ufw reload # certbot --apache -d your_domain.com https://your_domain.com # sudo systemctl status certbot.timer # sudo certbot renew --dry-run