Add CardDav and CalDav servers (#80)

* Add CardDav and CalDav servers

This implements the servers, but not the clients (yet). The implementation is essentially a proxy to Radicale (as a container in `docker-compose.yml`), with certain security assurances.

If you're upgrading, basically you'll need to create a new `data-radicale` directory, and everything else should just work.

This will also release v2.3.0 with those enabled by default. Tested with Thunderbird and Apple Calendar + Contacts.

To disable these, simply add the new config details and comment out or don't add the new `radicale` service from `docker-compose.yml`.

Related to #56
This commit is contained in:
Bruno Bernardino
2025-07-20 10:35:32 +01:00
committed by GitHub
parent 5d324aac9e
commit 781df673dc
17 changed files with 475 additions and 11 deletions

View File

@@ -36,6 +36,14 @@ export class AppConfig {
host: 'localhost',
port: 465,
},
contacts: {
enableCardDavServer: true,
cardDavUrl: 'http://127.0.0.1:5232',
},
calendar: {
enableCalDavServer: true,
calDavUrl: 'http://127.0.0.1:5232',
},
};
}
@@ -176,4 +184,16 @@ export class AppConfig {
return this.config.email;
}
static async getContactsConfig(): Promise<Config['contacts']> {
await this.loadConfig();
return this.config.contacts;
}
static async getCalendarConfig(): Promise<Config['calendar']> {
await this.loadConfig();
return this.config.calendar;
}
}