{"repo":"imsks/Chitthi","free":true,"listed":false,"github":"https://github.com/imsks/Chitthi","clone":"git clone https://github.com/imsks/Chitthi.git","description":"Send emails without limits. Self-hosted. Built in Go.","language":"TypeScript","stars":16,"topics":["contribute","golang","opensource","opensource-projects","apis","go","sendgrid"],"license":null,"category":"self-hosted-apps","readme_excerpt":"📬 Chitthi Email microservice in Go with BYOK (bring your own provider keys), optional Next.js UI in web/ , Postgres , and Redis — all runnable with Docker Compose . --- Table of contents - Quick start - PostgreSQL (single DATABASE URL) - API - Providers - Configuration - Migrations & testing --- Quick start Requires: Docker with Compose. Create schema (Postgres must be up; run this once after first docker compose up or start only db first): Start the stack (Go API with Air, Next.js, Postgres, Redis): Or in the background: Next.js hot reload in Docker: web/ is bind-mounted while node modules lives in the web node modules volume. On each start, web/docker-entrypoint.sh runs npm ci when package-lock.json changes or expected packages (e.g. next , next-auth ) are missing—so new dependencies are picked up without relying on host npm install . The API always gets REDIS URL / DATABASE URL pointed at Compose service names ( redis , db ), and the API waits until Redis passes redis-cli ping . Redis on the host: if port 6379 is already taken (another Redis, Homebrew, etc.), Compose publishes Redis on localhost:${CHITTHI REDIS PORT:-16379} by default. Set CHITTHI REDIS PORT in .env to change it. app still uses redis://redis:6379 on the Docker network. Stop: URLs Service URL ------- --- API http://localhost:8080 Web http://localhost:3000 Docs (in app) http://localhost:3000/docs The web container sets NEXT PUBLIC API URL=http://app:8080 so Next.js can proxy /api/ to the Go service inside t","default_branch":null,"files":null,"tree":[],"storefront":"/r/imsks","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/imsks/Chitthi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}