IONOS Agent Docs v1.0 just launched!⭐ Star us on GitHub
docsProject Structure

Project Structure

IONOS-simple-chatbot/
├─ .env                             # Environment variables (create from template)
├─ .env.template                    # Environment template
├─ .github/                         # GitHub workflows and configurations
├─ .gitignore                       # Git ignore rules
├─ backend/                         # FastAPI service + agent
│  ├─ .env                          # Backend-specific environment variables
│  ├─ main.py                       # API entrypoint (GET/POST /)
│  ├─ chatbot_agent.py              # LangGraph ReAct agent + tools
│  ├─ requirements.txt              # Python dependencies
│  ├─ Dockerfile                    # Docker container config
│  └─ Makefile                      # Build automation

├─ frontends/
│  ├─ next-js-starter/              # Next.js app (TypeScript)
│  │  ├─ app/                       # App router pages/layout
│  │  ├─ components/                # UI components
│  │  ├─ lib/                       # Utilities
│  │  └─ public/                    # Static assets
│  └─ streamlit-starter/
│     ├─ app.py                     # Streamlit chat UI
│     ├─ requirements.txt           # Python dependencies
│     └─ Dockerfile                 # Docker container config

├─ docs/                            # Nextra/Next.js documentation site
│  ├─ pages/docs/                   # MDX documentation
│  ├─ package.json
│  └─ next.config.mjs

├─ assets/
│  └─ images/                       # Repo images (cover.jpg, screenshot.png)

├─ docker-compose.yml               # Docker Compose configuration
├─ kubernetes_config.tpl            # Kubernetes deployment template
├─ pyproject.toml                   # Root Python project metadata
├─ uv.lock                          # uv lockfile
├─ README.md
├─ LICENSE
└─ CODE_OF_CONDUCT.md

Notes

  • The backend can run standalone via uvicorn main:app --host 127.0.0.1 --port 8000 --reload (from backend directory).
  • Frontends are optional; use either Next.js or Streamlit.