====== Radicale ====== | Port | https://www.freshports.org/www/radicale/ | ===== Setup ===== Install and configure a [[https://radicale.org/|Radicale]] server on %%FreeBSD%%. Depending on the version of %%FreeBSD%% you run, you may to adapt the instructions. **You must to follow the next instructions as root.** ==== Prerequisites ==== *Apache 2.4 (for ''%%htpasswd%%'' tool) *Python 3.6 *''%%pip%%'' (Python package manager) *Required Python libraries for Radicale pkg inst apache24 python36 \ py36-pip py36-bcrypt py36-passlib py36-cffi py36-six py36-vobject ==== User radicale ==== To improve security, it is highly recommended to run Web application as a dedicated and restricted user. pw useradd \ -n radicale -c "Radicale user" -s /usr/sbin/nologin -h - -d /nonexistent ==== Install ==== python3.6 -m pip install radicale ==== Configuration ==== Create directories mkdir -p \ /var/db/radicale/collections \ /usr/local/etc/radicale \ /var/log/radicale Set permissions chown -R radicale:radicale /var/db/radicale /var/log/radicale chmod 750 /var/db/radicale /var/log/radicale ==== Create /usr/local/etc/radicale/config ==== [server] hosts = 0.0.0.0:5232 [auth] type = htpasswd htpasswd_filename = /usr/local/etc/radicale/users htpasswd_encryption = bcrypt [rights] type = owner_only [storage] filesystem_folder = /var/db/radicale/collections [logging] config = /usr/local/etc/radicale/logging [[https://radicale.org/configuration/|More]] ==== Create /usr/local/etc/radicale/logging ==== [loggers] keys = root [handlers] keys = file [formatters] keys = full [logger_root] level = WARNING handlers = file [handler_file] class = handlers.TimedRotatingFileHandler args = ("/var/log/radicale/radicale.log", "midnight", 1, 7) formatter = full [formatter_full] format = %(asctime)s - [%(thread)x] %(levelname)s: %(message)s [[https://radicale.org/logging/|More]] ==== Manage Radicale’s users ==== Create an user with ''%%htpasswd%%'' to create the file which contains the users htpasswd -Bc /usr/local/etc/radicale/users johndoe Set permissions to the file chown root:radicale /usr/local/etc/radicale/users chmod 640 /usr/local/etc/radicale/users To add an user or modify his password htpasswd -B /usr/local/etc/radicale/users katsmith To delete an user htpasswd -D /usr/local/etc/radicale/users katsmith [[https://httpd.apache.org/docs/current/programs/htpasswd.html|More]] ==== rc script ==== Create ''%%/etc/rc.d/radicale%%'' #!/bin/sh # PROVIDE: radicale # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name=radicale rcvar=radicale_enable pidfile=/var/run/${name}/${name}.pid start_precmd=do_precmd load_rc_config $name : ${radicale_enable:=NO} : ${radicale_user:=radicale} : ${radicale_group:=radicale} : ${radicale_config:=/usr/local/etc/radicale/config} command=/usr/local/bin/python3.6 command_args="-m radicale -d -p ${pidfile} -C ${radicale_config}" do_precmd() { if [ ! -d ${pidfile%/*} ] then install -d -o ${radicale_user} ${pidfile%/*} fi } run_rc_command "$1" Set permissions chmod 555 /etc/rc.d/radicale [[https://www.freebsd.org/doc/en/articles/rc-scripting/index.html|More]] ==== Start ==== sysrc radicale_enable=YES service radicale start ---- {{tag>HowTo Ports}}