# ICS to RSS Converter Dieses Projekt ist eine Go-Anwendung, die ICS-Kalenderdateien in RSS-Feeds konvertiert. Die Anwendung wird in einem Docker-Container ausgeführt und kann mit Docker Compose einfach bereitgestellt werden. ## Voraussetzungen - [Docker](https://www.docker.com/get-started) - [Docker Compose](https://docs.docker.com/compose/install/) ## Installation 1. **Repository klonen:** ```bash git clone https://github.com/dein-benutzername/ics-to-rss.git cd ics-to-rss ``` 2. **Docker Compose starten:** Stelle sicher, dass Docker und Docker Compose installiert sind und führe dann den folgenden Befehl aus: ```bash docker-compose up -d --build ``` Dieser Befehl baut das Docker-Image und startet den Container. ## Verwendung Die Anwendung läuft auf `http://localhost:8080`. Um eine ICS-Datei in einen RSS-Feed zu konvertieren, verwende die folgende URL-Struktur: ``` http://localhost:8080/rss?ics= ``` Ersetze `` durch die URL deiner ICS-Datei. Und Optional wenn nur die Events des heutigen Tages, Woche, oder Monats ausgegeben werden soll: - Für alle Events: `/rss?ics=` - Für heutige Events: `/rss?ics=&range=today` - Für Events dieser Woche: `/rss?ics=&range=week` - Für Events dieses Monats: `/rss?ics=&range=month` ## Docker Compose Datei Hier ist der Inhalt der `docker-compose.yml` Datei: ```yaml version: '3.8' services: ics-to-rss: build: . ports: - "8080:8080" ``` ## Dockerfile Stelle sicher, dass du auch eine `Dockerfile` im selben Verzeichnis hast: ```dockerfile # Verwende ein offizielles Golang-Image als Build-Umgebung FROM golang:1.20 as builder WORKDIR /app # Kopiere den Go-Modul-Dateien und installiere Abhängigkeiten COPY go.mod go.sum ./ RUN go mod download # Kopiere den Rest des Codes COPY . . # Baue die Anwendung RUN CGO_ENABLED=0 GOOS=linux go build -o main . # Verwende ein schlankes Image für die Produktion FROM alpine:3.18 WORKDIR /root/ # Kopiere das gebaute Go-Binary aus der vorherigen Stufe COPY --from=builder /app/main . # Exponiere Port 8080 und starte die Anwendung EXPOSE 8080 CMD ["./main"] ``` ## Lizenz Dieses Projekt steht unter der MIT-Lizenz. Weitere Informationen findest du in der `LICENSE` Datei.