# 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//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`.