# Installing Radicale on Debian

Installation
-------------

```shell distribution="Debian"
sudo apt update
sudo apt install radicale python3-ldap3
```

```shell
sudo chown -R radicale:root /var/lib/radicale
sudo chmod 750 /var/lib/radicale
```

Configuration
--------------

```toml filename="/etc/radicale/config"
[server]
hosts = 0.0.0.0:5232

[auth]
type = ldap

ldap_uri = ldaps://10.30.30.30:9235
ldap_base = ou=users,o=libregraph-idm

ldap_reader_dn = uid=reva,ou=sysusers,o=libregraph-idm
ldap_reader_password = YOUR_REVA_PASSWORD

ldap_filter = (uid={0})

[rights]
type = owner_only
```

#### Use ownCloud LDAP

```shell
lxc network create radicale-ldap \
    ipv4.address=10.30.30.1/24 \
    ipv4.dhcp=true \
    ipv6.address=none

lxc network set radicale-ldap ipv4.nat false
lxc network set radicale-ldap ipv4.routing true
lxc network set net30 raw.dnsmasq "dhcp-option=3"
```

```shell
lxc network attach radicale-ldap data eth1
lxc network attach radicale-ldap contacts eth1
lxc config device set data eth1 ipv4.address 10.30.30.30
lxc config device set data eth1 ipv4.address 10.30.30.32
```

```shell filename="/etc/default/owncloud"
IDM_LDAPS_ADDR=10.30.30.30:9235
OCIS_LDAP_URI=ldaps://10.30.30.30:9235
```

```shell
nft add table inet isolate
nft add chain inet isolate fwd.radicale-ldap '{ type filter hook forward priority -10; policy accept; }'
nft add rule inet isolate fwd.radicale-ldap ip saddr 10.30.30.0/24 ip daddr != 10.30.30.0/24 drop
nft add rule inet isolate fwd.radicale-ldap ip daddr 10.30.30.0/24 ip saddr != 10.30.30.0/24 drop
```