CeliacBot is a website where you can enter a neighborhood and an AI agent investigates restaurants for celiac diners so you don't have to. To gather information, the system browses the web and, if that's not enough, the agent calls the restaurants.
- Frontend: Jinja Templates, HTMX, vanilla CSS, vanilla JS
- Backend: Python, Flask, OpenAI SDK
- Data storing: SQLite, Unix file system
- Deployment: Caddy, Waitress, Bash
- Observability: log files,
journalctl
- SSH into a Linux server with ports 80 and 443 open, with your
DOMAIN_NAMEpointing to it. - Clone the repo and set up environment variables at
.envor globally (see example env file). - Ensure Caddy and uv are installed.
- Run
./scripts/deploy.sh. - It should now be available at
https://${DOMAIN_NAME}.
To re-deploy, just run the script again after pushing your changes.
The script pulls changes, installs dependencies, adds site configuration on the global Caddyfile, and configures systemd services (for the web app, worker, and blog post generation).
Please refer to AGENTS.md file.