# Agenda culturel L'agenda culturel est un projet django créé à partir de [Django Docker Quickstard](https://github.com/godd0t/django-docker-quickstart/) pour faciliter son développemnt et déploiement. Voir ci-dessous le readme issu de ce projet. ## Django Docker Quickstart This quickstart provides an easy way to initiate a Django project using Docker. It comes with pre-configured services including PostgreSQL, Redis, Celery (worker and beat), Nginx, and Traefik, ready to run a Django web application. Additionally, it provides a few handy shortcuts for easier development. --- ### Features 🚀 - **Django** web application framework - **PostgreSQL** database - **Redis** in-memory data structure store - **Celery** worker and beat services for running background tasks asynchronously - **Nginx** web server for serving static and media files, and proxying requests to the Django application - **Traefik** reverse proxy for routing requests to the appropriate service and providing SSL termination ### Included Packages and Tools 🛠️ - **Pytest**: Testing framework - **Pytest Sugar**: A pytest plugin for a better look - **Pytest Django**: A pytest plugin providing useful tools for testing Django applications - **Coverage**: Test coverage tool - **Ruff**: Linter - **Black**: Code formatter ### Requirements 📋 - Docker & Docker Compose - [Install and Use Docker](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04) - Python 3.10 or higher - Make (optional for shortcuts) --- ### Getting Started 🏁 1. **Clone the repository:** ```bash git clone https://github.com/jmtrivial/agenda-culturel.git ``` 2. **Change directory into the project:** ```bash cd agenda-culturel ``` 3. **Copy the `env.example` file to `.env` and update the values as needed:** - **For Linux/macOS:** ```bash cp env.example .env ``` - **For Windows (Command Prompt):** ```cmd Copy-Item -Path env.example -Destination .env ``` --- ### Initial Setup ⚙️ #### Development Prerequisites 1. **Create a virtual environment:** ```bash python -m venv venv ``` 2. **Activate the virtual environment:** ```bash source venv/bin/activate ``` 3. **(Optional) Install the development requirements specific to your IDE for enhanced functionality and support.** ```bash pip install -r src/requirements-dev.txt ``` 4. **Build the image and run the container:** - If buildkit is not enabled, enable it and build the image: ```bash DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.yml up --build -d ``` - If buildkit is enabled, build the image: ```bash docker-compose -f docker-compose.yml up --build -d ``` - Or, use the shortcut: ```bash make build-dev ``` You can now access the application at http://localhost:8008. The development environment allows for immediate reflection of code changes. #### Production Setup 1. **Build the image and run the container:** - If buildkit is not enabled, enable it and build the image: ```bash DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.prod.yml up --build -d ``` - If buildkit is enabled, build the image: ```bash docker-compose -f docker-compose.prod.yml up --build -d ``` - Or, use the shortcut: ```bash make build-prod ``` --- ### Shortcuts 🔑 This project includes several shortcuts to streamline the development process: - **Create migrations:** ```bash make make-migrations ``` - **Run migrations:** ```bash make migrate ``` - **Run the linter:** ```bash make lint ``` - **Run the formatter:** ```bash make format ``` - **Run the tests:** ```bash make test ``` - **Create a super user:** ```bash make super-user ``` - **Build and run dev environment:** ```bash make build-dev ``` - **Build and run prod environment:** ```bash make build-prod ``` ---