171 lines
3.1 KiB
Markdown
171 lines
3.1 KiB
Markdown
# Calink Quick Start Guide
|
|
|
|
Get Calink running in under 5 minutes!
|
|
|
|
## Option 1: Docker Compose (Recommended)
|
|
|
|
**Requirements:** Docker and Docker Compose
|
|
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## Option 2: Local Development
|
|
|
|
**Requirements:** Python 3.11+, Node.js 18+
|
|
|
|
### Terminal 1 - Backend
|
|
|
|
```bash
|
|
cd backend
|
|
pip install -r requirements.txt
|
|
python main.py
|
|
```
|
|
|
|
Backend runs on: http://localhost:8000
|
|
|
|
### Terminal 2 - Frontend
|
|
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Frontend runs on: http://localhost:5173
|
|
|
|
## Option 3: Kubernetes with Helm
|
|
|
|
**Requirements:** Kubernetes cluster, Helm 3+
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
curl http://localhost:8000/api/history
|
|
```
|
|
|
|
### Create Template
|
|
|
|
```bash
|
|
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":**
|
|
```bash
|
|
# Stop conflicting service
|
|
docker-compose down
|
|
|
|
# Or change ports in docker-compose.yml
|
|
```
|
|
|
|
**Backend: "No module named 'fastapi'":**
|
|
```bash
|
|
cd backend
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
**Frontend: Build errors:**
|
|
```bash
|
|
cd frontend
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
- Read the full [README.md](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
|
|
|
|
- API Docs: http://localhost:8000/docs (when backend is running)
|
|
- Health Check: http://localhost:8000/health
|
|
- Full Documentation: [README.md](README.md)
|
|
|
|
---
|
|
|
|
**Happy event creating! 🎉**
|