ics-to-rss/README.md

2.2 KiB

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

Installation

  1. Repository klonen:

    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:

    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=<ICS_URL>

Ersetze <ICS_URL> 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=<ICS_URL>
  • Für heutige Events: /rss?ics=<ICS_URL>&range=today
  • Für Events dieser Woche: /rss?ics=<ICS_URL>&range=week
  • Für Events dieses Monats: /rss?ics=<ICS_URL>&range=month

Docker Compose Datei

Hier ist der Inhalt der docker-compose.yml Datei:

version: '3.8'

services:
  ics-to-rss:
    build: .
    ports:
      - "8080:8080"

Dockerfile

Stelle sicher, dass du auch eine Dockerfile im selben Verzeichnis hast:

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