62 lines
1.8 KiB
Markdown
62 lines
1.8 KiB
Markdown
# Baïkal Calendar Sync
|
|
|
|
A Dockerized Python service that periodically synchronizes an external Outlook ICS calendar to a local Baïkal CalDAV server.
|
|
|
|
## Features
|
|
- **Automatic Sync**: Runs periodically (default: every 5 minutes).
|
|
- **Environment Configurable**: All credentials and URLs are set via environment variables.
|
|
- **Docker Ready**: Includes `Dockerfile` and `docker-compose.yml` for easy deployment.
|
|
|
|
## Prerequisites
|
|
- Docker & Docker Compose installed.
|
|
- A running Baïkal instance (included in the example `docker-compose.yml`).
|
|
- An Outlook ICS link.
|
|
|
|
## Configuration (Environment Variables)
|
|
|
|
| Variable | Description | Default |
|
|
| :--- | :--- | :--- |
|
|
| `ICS_URL` | The public ICS URL of your Outlook calendar. | **Required** |
|
|
| `BAIKAL_URL` | The URL to your Baïkal calendar (e.g., `http://baikal/dav.php/calendars/user/id/`). | **Required** |
|
|
| `BAIKAL_USER` | Your Baïkal username. | **Required** |
|
|
| `BAIKAL_PASS` | Your Baïkal password. | **Required** |
|
|
| `SYNC_FREQUENCY` | How often to sync in seconds. | `300` (5 mins) |
|
|
|
|
## Quick Start with Docker Compose
|
|
|
|
1. **Clone or download** this repository.
|
|
2. **Create a `.env` file** (optional but recommended) or export variables:
|
|
|
|
```bash
|
|
ICS_URL="https://outlook.office365.com/..."
|
|
BAIKAL_URL="http://localhost:8080/dav.php/calendars/Lago/beterna/"
|
|
BAIKAL_USER="Lago"
|
|
BAIKAL_PASS="secret"
|
|
```
|
|
|
|
3. **Run with Docker Compose**:
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
4. **Check Logs**:
|
|
|
|
```bash
|
|
docker compose logs -f baikal-sync
|
|
```
|
|
|
|
## Building & Publishing the Image manually
|
|
|
|
If you want to build and push the image to Docker Hub yourself:
|
|
|
|
1. **Build**:
|
|
```bash
|
|
docker build -t yourusername/baikal-sync:latest .
|
|
```
|
|
|
|
2. **Push**:
|
|
```bash
|
|
docker push yourusername/baikal-sync:latest
|
|
```
|