Backend API for the Epistudium project, managed with Docker to ensure easy deployment across different environments. This README explains how to set up and run the project. For the full API reference (GraphQL schema, queries/mutations, REST helpers, auth and examples), see: API_REFERENCE.md.
Before running the project, make sure you have the following installed on your computer:
git clone https://github.com/Epistudium/api
cd apiin root, create .env.development.local and .env.test.local
docker compose builddocker compose up
To run in the background, use:docker compose up -d
- Stop the containers:
docker compose down- View container logs:
docker compose logs -f- Access the container shell:
docker compose exec api bash- Run unit tests:
docker compose run -e DOTENV_CONFIG_PATH=.env.test.local app npm run testapi/
├─ prisma/ # Prisma code
├─ src/ # API source code
├─ test/ # Tests
├─ docker-compose.yml # Container configuration
├─ Dockerfile # API image configuration
└─ README.md # This file
For local development (outside Docker) you will need:
- Node.js (v24+ recommended)
- npm
- Set up environment variables in
.env
Running the project locally without Docker is optional but useful for debugging or quick testing.
- Most GraphQL operations require Clerk JWT in the Authorization header:
Authorization: Bearer <CLERK_JWT>
- Public operations are annotated with
@Public()and do not require auth. - Admin-only operations use
@Admin()and requireprivateMetadata.isAdmin=trueon Clerk user.
For questions or suggestions, open a GitHub issue or contact the project team.
This project is licensed under the MIT License.