Keeper
Keeper is an open-source calendar syncing tool. It pulls events from iCal/ICS links, CalDAV, iCloud, Fastmail, Google Calendar and Outlook, and pushes them to one or many destination calendars, removing copies again when the source event is deleted. Self-hosted instances get every Pro feature.
Keeper
Installation
Default install:
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/keeper.sh)"
Notes
There is no default account: open the web UI and register one with a username and password. Registration stays open to anyone who can reach port 3000, so keep the container off the public internet or behind an authenticating proxy.
BETTER_AUTH_URL and TRUSTED_ORIGINS in /opt/keeper_data/.env are set to http://:3000 at install; auth requests from any other origin fail with "Invalid origin". When the IP changes or you add a domain, update them (TRUSTED_ORIGINS takes a comma-separated list) and run ## Web Interface## Links - [Official Website](https://www.keeper.sh/) - [Documentation](https://github.com/ridafkih/keeper.sh#self-hosted) ---
systemctl restart keeper-api.</div> </div>iCal/ICS links and CalDAV accounts (iCloud, Fastmail, Nextcloud, ...) work out of the box. Google Calendar and Outlook need your own OAuth app: put the credentials into GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET and MICROSOFT_CLIENT_ID/MICROSOFT_CLIENT_SECRET in /opt/keeper_data/.env, then run
systemctl restart keeper-api keeper-cron keeper-worker.Google and Microsoft only accept HTTPS redirect URIs on a real domain, so OAuth needs a reverse proxy in front of port 3000. Set BETTER_AUTH_URL and TRUSTED_ORIGINS in /opt/keeper_data/.env to that URL and register [BETTER_AUTH_URL]/api/auth/callback/google, /api/sources/callback/google, /api/auth/callback/microsoft and /api/sources/callback/outlook as redirect URIs.
Web UI (port 3000), API (3001), cron and worker run as keeper-web, keeper-api, keeper-cron and keeper-worker. Database, Redis, secrets and OAuth settings live outside /opt/keeper, which is rebuilt on every update.