feat: end to end api type safety with redis rate limiting (#573)

* feat: support hono rpc

* add wrangler file

* update name of wrangler file

* add wrangler as a dependency

* add compatibility_flags

* trigger ci

* core: add health check to docker file

* expose port 80

* update custom healthcheck

* feat: implement openapi

* install dependencies in root

* debug yml

* update yml

* update port

* update dockerfile with envs

* completely move away from apiClient

* rename backend to api

* refactor: update server descriptions and comment out local spec saving

* update lock file

* use api.classroomio.com

* add support for redis

* fix: add missing line break in WelcomeModal.svelte

* refactor: remove wrangler configuration and update Vite config for API integration
This commit is contained in:
Rotimi Best
2025-09-21 19:35:41 +01:00
committed by GitHub
parent a6880f1b54
commit 6d68351a46
102 changed files with 2938 additions and 1633 deletions
+8 -8
View File
@@ -1,15 +1,15 @@
# ClassroomIO
# Project: Self-hosted Backend and Dashboard
# Description: This docker-compose file sets up the backend and dashboard services for self-hosting.
# Project: Self-hosted API and Dashboard
# Description: This docker-compose file sets up the api and dashboard services for self-hosting.
# Author: rotimi-best
# Date: 2024-09-18
version: '3.8'
services:
backend:
api:
build:
context: ./apps/backend
context: ./apps/api
dockerfile: Dockerfile
args:
- PUBLIC_SUPABASE_ANON_KEY=${PUBLIC_SUPABASE_ANON_KEY}
@@ -27,9 +27,9 @@ services:
- '3002:3002'
volumes:
# Node modules (optional - for faster development)
- ./apps/backend/node_modules:/app/node_modules
- ./apps/api/node_modules:/app/node_modules
# Build output directory (if you want to access built files)
- ./apps/backend/dist:/app/dist
- ./apps/api/dist:/app/dist
environment:
- NODE_ENV=production
# Supabase - Database
@@ -78,7 +78,7 @@ services:
- PRIVATE_APP_SUBDOMAINS=${PRIVATE_APP_SUBDOMAINS} # app (if you are using app.yourdomain.com for the dashboard)
- UNSPLASH_API_KEY=${UNSPLASH_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- PUBLIC_SERVER_URL=${PUBLIC_SERVER_URL} # this is the url to the backend service
- PUBLIC_SERVER_URL=${PUBLIC_SERVER_URL} # this is the url to the api service
- PUBLIC_IP_REGISTRY_KEY=${PUBLIC_IP_REGISTRY_KEY}
depends_on:
- backend
- api