A monorepo application to optimize your vacation days around Portuguese holidays.
backend/- Go API server with SQLite databasefrontend/- React TypeScript app with Material UI
- ๐ Year calendar view with Portuguese holidays
- ๐งฎ Vacation optimization algorithms
- ๐ฌ AI-powered chat to interact with calendar
- โ๏ธ Configurable settings (work week, ports, API keys)
- ๐ Multiple year support with independent configurations
- ๐ Internationalization (English and Portuguese)
docker run -d \
--name vacation-planner \
-p 8080:80 \
-v vacation-planner-data:/app/data \
ghcr.io/brunoaclopes/vacation-planner:latestThe app will be available at http://localhost:8080
- Go to Apps โ Discover Apps โ Custom App
- Configure:
- Image:
ghcr.io/brunoaclopes/vacation-planner:latest - Port: Map container port
80to your desired host port (e.g.,8080) - Storage: Mount a host path or volume to
/app/datafor persistence
- Image:
- Deploy and access at
http://TRUENAS_IP:8080
# Clone the repo
git clone https://github.com/brunoaclopes/vacation-planner.git
cd vacation-planner
# Build and start containers
docker compose up -d
# View logs
docker compose logs -f
# Stop containers
docker compose down# Install dependencies and start dev servers
make all
# Or separately:
make install # Install dependencies
make dev # Start both serverscd backend
go mod download
go run cmd/server/main.gocd frontend
npm install
npm run devmake docker-build # Build Docker images
make docker-up # Start containers
make docker-down # Stop containers
make docker-logs # View logs
make docker-clean # Remove containers, images, and volumesDefault ports:
- Backend: 8080
- Frontend: 5173 (dev) / 80 (Docker)
Data is stored in SQLite at /app/data/vacation_planner.db.
| Image | Description |
|---|---|
ghcr.io/brunoaclopes/vacation-planner:latest |
All-in-one (recommended) |
ghcr.io/brunoaclopes/vacation-planner-backend:latest |
Backend only |
ghcr.io/brunoaclopes/vacation-planner-frontend:latest |
Frontend only |
MIT