Table of Contents

AgenDAV

AgenDAV is a CalDAV web client which features an AJAX interface to allow users to manage their own calendars and shared ones. It can connect to your Radicale server and let you interact and show your calendars from a web page.

Unfortunately i didn't managed to make it work with Authelia authentication so i gave up. Also, it might not work as sub-path, and i didn't want to spin up an additional subdomain just for this. The project overall seems abandoned since a few years, anyway.

Installation

I didn't want to create a dedicated user, since i already have one for Radicale.

So create the following docker-compose.yml:

docker-compose.yml
version: "2"

services:
  agendav:
    image: ghcr.io/nagimov/agendav-docker:latest
    container_name: agendav
    environment:
      - AGENDAV_SERVER_NAME=127.0.0.1
      - AGENDAV_TITLE=Agend
      - AGENDAV_FOOTER=Hosted by me
      - AGENDAV_ENC_KEY=xxxxxxxxx
      - AGENDAV_CALDAV_SERVER=https://radicale.mydomain.com/%u
      - AGENDAV_CALDAV_PUBLIC_URL=https://radicale.mydomain.com
      - AGENDAV_TIMEZONE=UTC
      - AGENDAV_LANG=en
      - AGENDAV_LOG_DIR=/tmp/
    ports:
      - "8099:8080"
Pick an available port.
 
then:
<code bash>
podman compose pull
podman compose up

Reverse Proxy Configuration

As for NGINX, this is my best attempt:

agendav.conf
location = /agendav {
        return 301 https://$host/agendav/;
}

location /agendav/ { # The trailing / is important!
        proxy_pass        http://127.0.0.1:8099/; # The / is important!
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header Authorization "";
}

but it didn't ever really worked.