DRF_Template/README.md

39 lines
1.9 KiB
Markdown
Raw Normal View History

## DRF-Template
2024-09-05 16:29:11 +08:00
![Build Status](https://woodpecker.06222001.xyz/api/badges/1/status.svg)
2024-09-24 22:25:49 +08:00
![Demo Page Status](https://stats.06222001.xyz/api/badge/119/status)
This is a Django template that I personally use for my projects. This covers the following
- Emails (and templated email designs)
- Celery (For asynchronous tasks)
- Celery Beat (For scheduled tasks)
- Caching (via Redis)
- Performance profiling (via Django Silk)
- Selenium (Optional, for webscraping with support for Chrome and Firefox drivers)
- Stripe Subscriptions (Optional, with regular and pro-rated subscription support)
- Notifications (via traditional RESTful endpoints)
- A working Woodpecker CI/CD template for automated deployments
2024-08-30 22:46:40 +08:00
2024-09-26 10:25:36 +08:00
A live API demo can be found [here](https://api.template.06222001.xyz/api/v1/swagger)
### Development
- Create a copy of the `.env.sample` file and name it as `.env` in the same directory
- Populate .env with values
2024-08-30 22:46:40 +08:00
- Run `docker-compose -f docker-compose.dev.yml up`
2024-09-06 23:35:31 +08:00
When using `docker-compose.dev.yml`, the entire project directory is mounted onto the container allowing for hot-reloading. Make sure DEBUG is set to True for this to work! Be sure to follow through the steps shown in the `stripe-listener` container for initial setup with Stripe!
### Deployment
2024-09-23 17:31:15 +08:00
A sample `docker-compose.demo.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 so make sure to specify an external SMTP server to process emails properly.
### URLs
2024-09-25 19:47:09 +08:00
- [Django Admin Panel](http://localhost:8000/api/v1/admin)
- [OpenAPI Swagger](http://localhost:8000/api/v1/swagger) (For documenting endpoints)
- [Inbucket](http://localhost:8025) (For email testing)
- [Flower](http://localhost:5555/) (For monitoring Celery tasks)
2024-09-25 19:47:09 +08:00
- [Django Silk](http://localhost:8000/api/v1/silk) (For performance profiling)