Skip to content

Repository files navigation

CeliacBot

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.

Tech stack

  • 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

Deployment

  1. SSH into a Linux server with ports 80 and 443 open, with your DOMAIN_NAME pointing to it.
  2. Clone the repo and set up environment variables at .env or globally (see example env file).
  3. Ensure Caddy and uv are installed.
  4. Run ./scripts/deploy.sh.
  5. 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).

Contributing

Please refer to AGENTS.md file.