A modern, high-performance, and lightweight REST API built with Hono, Drizzle ORM, and Bun. Designed as a perfect starting point for scalable TypeScript applications.
- Blazing Fast: Powered by Bun and Hono framework
- Type-Safe: 100% TypeScript with Drizzle ORM
- Modern Database: PostgreSQL with UUIDs and relational integrity
- Containerized: Docker & Docker Compose ready
- Production Ready: CI/CD with GitHub Actions and automated deployments
| Component | Technology |
|---|---|
| Runtime | Bun |
| Framework | Hono |
| ORM | Drizzle |
| Database | PostgreSQL |
| Language | TypeScript |
| Container | Docker & Docker Compose |
- Bun installed
- Docker & Docker Compose (optional)
-
Clone the repository
git clone https://github.com/awaiden/kekik-api.git cd kekik-api -
Install dependencies
bun install
-
Set up environment variables
cp .env.example .env
Create a
.envfile with:DB_USER=postgres DB_PASSWORD=your_secure_password DB_NAME=kekik_db DB_HOST=localhost DB_PORT=5432 DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}
-
Start PostgreSQL (Docker)
docker-compose up -d
-
Run migrations
bun db:push bun db:seed
-
Start development server
bun dev
The API will be available at http://localhost:3000
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Health check |
GET |
/users |
Get all users |
GET |
/users/:id |
Get user by ID |
GET |
/posts |
Get all posts |
GET |
/posts/:id |
Get post by ID |
GET |
/comments |
Get all comments |
GET |
/comments/:id |
Get comment by ID |
src/
├── index.ts # Application entry point & routes
└── db/
├── index.ts # Database connection
└── schema.ts # Drizzle ORM schema definitions
scripts/
└── seed.ts # Database seeding script
deploy/
└── docker-compose.yml # Production deployment config
# Development
bun dev # Start dev server with hot reload
# Database
bun db:push # Apply schema changes
bun db:studio # Open Drizzle Studio UI
bun db:seed # Seed database with sample data
# Production
bun build # Build for production
bun start # Run production build
# Docker
docker-compose up -d # Start PostgreSQL
docker-compose down # Stop PostgreSQLdocker-compose up -ddocker pull ghcr.io/awaiden/kekik-api:latest
docker run -p 3000:3000 --env-file .env ghcr.io/awaiden/kekik-api:latestThis project is licensed under the MIT License. See LICENSE file for details.
Contributions are welcome! Feel free to open issues and submit pull requests.
For questions or support, please reach out via GitHub issues.