65 lines
1.6 KiB
Markdown
65 lines
1.6 KiB
Markdown
|
|
# carddav-proxy
|
||
|
|
|
||
|
|
CardDAV Proxy mit einfacher Weboberfläche für Kontaktsuche (z. B. Zoho CardDAV).
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- `/api/search?q=...` für Kontakt-Suche
|
||
|
|
- Web UI unter `/`
|
||
|
|
- Zugangsdaten nur über Environment Variables
|
||
|
|
|
||
|
|
## Environment
|
||
|
|
|
||
|
|
- `PORT` (default `8096`)
|
||
|
|
- `CARDDAV_URL` (Addressbook URL)
|
||
|
|
- `CARDDAV_USERNAME`
|
||
|
|
- `CARDDAV_PASSWORD`
|
||
|
|
|
||
|
|
## Lokaler Start
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm install
|
||
|
|
CARDDAV_URL=... CARDDAV_USERNAME=... CARDDAV_PASSWORD=... npm start
|
||
|
|
```
|
||
|
|
|
||
|
|
## Docker
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker build -t registry.aquantico.lan/carddav-proxy:latest .
|
||
|
|
docker run --rm -p 8096:8096 \
|
||
|
|
-e CARDDAV_URL='https://.../addressbooks/default/' \
|
||
|
|
-e CARDDAV_USERNAME='...' \
|
||
|
|
-e CARDDAV_PASSWORD='...' \
|
||
|
|
registry.aquantico.lan/carddav-proxy:latest
|
||
|
|
```
|
||
|
|
|
||
|
|
## Portainer Stack (Copy/Paste)
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
services:
|
||
|
|
carddav-proxy:
|
||
|
|
image: registry.aquantico.lan/carddav-proxy:latest
|
||
|
|
container_name: carddav-proxy
|
||
|
|
restart: always
|
||
|
|
networks:
|
||
|
|
- traefik
|
||
|
|
environment:
|
||
|
|
- PORT=8096
|
||
|
|
- URL=https://contacts.zoho.eu/carddav/v1/principals/<user>/addressbooks/default/
|
||
|
|
- NAME=your-zoho-login
|
||
|
|
- PASSWORD=your-zoho-app-password
|
||
|
|
labels:
|
||
|
|
- "traefik.enable=true"
|
||
|
|
- "traefik.http.routers.carddav-proxy.rule=Host(`carddav-proxy.aquantico.lan`)"
|
||
|
|
- "traefik.http.routers.carddav-proxy.entrypoints=websecure"
|
||
|
|
- "traefik.http.routers.carddav-proxy.tls=true"
|
||
|
|
- "traefik.http.services.carddav-proxy.loadbalancer.server.port=8096"
|
||
|
|
- "traefik.docker.network=traefik"
|
||
|
|
|
||
|
|
networks:
|
||
|
|
traefik:
|
||
|
|
external: true
|
||
|
|
```
|
||
|
|
|
||
|
|
Hinweis: Der Proxy unterstützt sowohl `URL/NAME/PASSWORD` als auch `CARDDAV_URL/CARDDAV_USERNAME/CARDDAV_PASSWORD`.
|