calink/QUICKSTART.md
2026-02-20 15:50:32 +02:00

3.1 KiB

Calink Quick Start Guide

Get Calink running in under 5 minutes!

Requirements: Docker and Docker Compose

# Clone or navigate to the project
cd ics-generator

# Start everything
docker-compose up -d

# View logs
docker-compose logs -f

# Access the app
open http://localhost

That's it! Calink is now running on http://localhost

To stop:

docker-compose down

Option 2: Local Development

Requirements: Python 3.11+, Node.js 18+

Terminal 1 - Backend

cd backend
pip install -r requirements.txt
python main.py

Backend runs on: http://localhost:8000

Terminal 2 - Frontend

cd frontend
npm install
npm run dev

Frontend runs on: http://localhost:5173

Option 3: Kubernetes with Helm

Requirements: Kubernetes cluster, Helm 3+

# Install Calink
helm install calink ./helm/calink

# Check status
helm status calink

# Get access info
kubectl get ingress

First Steps

  1. Create an Event

    • Open the web UI
    • Fill in event title and start date/time
    • Add reminders using quick buttons or custom values
    • Click "Download .ics"
  2. Use History

    • Switch to "History" tab
    • Click "Load" on any past event to reuse it
    • Click "Delete" to remove old events
  3. Create Templates

    • Set up your favorite reminder configuration
    • Switch to "Templates" tab
    • Click "Save Current Reminders"
    • Name your template
    • Apply it anytime in future events

API Examples

Generate ICS File

curl -X POST "http://localhost:8000/api/ics" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Team Meeting",
    "start_dt": "2026-03-01T10:00:00Z",
    "reminders": [
      {"amount": 10, "unit": "minutes"}
    ]
  }' \
  --output meeting.ics

Get History

curl http://localhost:8000/api/history

Create Template

curl -X POST "http://localhost:8000/api/templates" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Standard Reminders",
    "reminders": [
      {"amount": 10, "unit": "minutes"},
      {"amount": 1, "unit": "hours"},
      {"amount": 1, "unit": "days"}
    ]
  }'

Troubleshooting

"Failed to fetch" in UI:

  • Ensure backend is running on port 8000
  • Check browser console for errors
  • Verify CORS is enabled (it should be by default)

Docker: "Port already allocated":

# Stop conflicting service
docker-compose down

# Or change ports in docker-compose.yml

Backend: "No module named 'fastapi'":

cd backend
pip install -r requirements.txt

Frontend: Build errors:

cd frontend
rm -rf node_modules package-lock.json
npm install

Next Steps

  • Read the full README.md for detailed documentation
  • Explore API documentation at http://localhost:8000/docs
  • Customize Helm values for production deployment
  • Set up ingress for custom domain

Support


Happy event creating! 🎉