This project leverages K8S features to run a various-functioned chatbot system, which includes member signup, member authentication, pushing messages to members regularly.
I wrote a blog post about this project in Chinese, and here is link.
├── api-users # RESTful API about members
├── manifest # K8S resources definition
├── prepare # KInD and MetalLB and Traefik configuration
├── push-msg # Push message regularly
├── register-web
| ├── client # Register web frontend
| └── server # Register web backend
└── webhook # Handle LINE Webhook events
- Kubernetes
- KInD
- Traefik
- Docker
- (optional) localtunnel (free reverse proxy)
- User is required to signup through
Register frontend
andRegister backend
Register backend
stores user's information to database throughUsers API
- User sends message via LINE App which sends a webhook event to our
Webhook
service Webhook
handles webook events from LINE and authenticates withUsers API
CronJob
executes pushing messages scripts regularly