A Django REST Framework template for building RESTful APIs
  • Python 86.9%
  • Bru 5.8%
  • HTML 4%
  • Shell 1.7%
  • Dockerfile 1.6%
Find a file
2026-07-20 18:29:00 +08:00
.bruno Run linter, remove debug collection logger 2026-07-20 18:01:39 +08:00
.docker Add SKIP_STATIC env 2026-07-20 16:01:05 +08:00
.woodpecker Improve logging format and silence curl health check 2026-07-20 18:26:34 +08:00
src Hide HTML body responses in logging 2026-07-20 18:29:00 +08:00
.dockerignore Implement tests 2025-09-13 20:05:13 +08:00
.env.sample Fix bruno tests 2026-07-20 10:45:20 +08:00
.gitignore Move to uv/pyproject and overhaul project structure 2025-09-01 02:10:28 +08:00
.python-version Move to uv/pyproject and overhaul project structure 2025-09-01 02:10:28 +08:00
docker-compose.dev.yml Fix bruno tests 2026-07-20 10:45:20 +08:00
docker-compose.yml Fix bruno tests 2026-07-20 10:45:20 +08:00
Dockerfile Update Dockerfile 2025-10-17 01:07:14 +08:00
pyproject.toml Bump package versions 2025-12-03 06:03:14 +08:00
README.md Update lint step 2025-09-13 21:11:30 +08:00
uv.lock Bump package versions 2025-12-03 06:03:14 +08:00

DRF-Template

Build Status Demo Page Status

A barebones Django REST Framework template for personal use in projects.

  • Pre-templated emails
  • Caching via Redis
  • Debug mode profiling (via Django Silk)
  • Template CI/CD for automated builds/tests/linting/deployments (see service_queue for more info)

A live API demo can be found here

Development

  • Create a copy of the .env.sample file and name it as .env in the same directory
  • Populate .env with values
  • Run docker-compose -f docker-compose.dev.yml up

When using docker-compose.dev.yml, the entire project directory is mounted onto the container allowing for hot-reloading. This requires DEBUG to be set to True.

Also make sure to follow through the steps shown in the stripe-listener container for initial setup with Stripe.

Deployment

A sample docker-compose.yml is provided which I use in hosting the demo. DEBUG should be set to False when deploying as to not expose the URLs fro Celery Flower and the Django Silk Profiler. The local Inbucket container is not present with DEBUG turned off so make sure to specify an external SMTP server to process emails properly.

URLs