{"id":25925537,"url":"https://github.com/migbertweb/django_docker","last_synced_at":"2026-04-10T00:49:12.068Z","repository":{"id":108055630,"uuid":"544542826","full_name":"migbertweb/django_docker","owner":"migbertweb","description":"Mi Primera Aplicacion Django(python) en Docker y Docker-Compose -- excelente punto de partida para un website ","archived":false,"fork":false,"pushed_at":"2023-04-04T15:08:24.000Z","size":1491,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-20T08:58:09.576Z","etag":null,"topics":["django","docker","nginx","postgresql","python"],"latest_commit_sha":null,"homepage":"https://github.com/migbertweb/django_docker","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/migbertweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-02T18:34:48.000Z","updated_at":"2023-04-04T15:09:21.000Z","dependencies_parsed_at":"2025-07-23T03:32:43.389Z","dependency_job_id":null,"html_url":"https://github.com/migbertweb/django_docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/migbertweb/django_docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migbertweb%2Fdjango_docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migbertweb%2Fdjango_docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migbertweb%2Fdjango_docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migbertweb%2Fdjango_docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/migbertweb","download_url":"https://codeload.github.com/migbertweb/django_docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migbertweb%2Fdjango_docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276070744,"owners_count":25580129,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","docker","nginx","postgresql","python"],"created_at":"2025-03-03T18:50:21.072Z","updated_at":"2025-12-30T21:22:45.062Z","avatar_url":"https://github.com/migbertweb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Docker Project\n\nAplicación Python-Django corriendo sobre Docker con configuración para desarrollo y producción.\n\n## 📋 Descripción\n\nEste proyecto es una aplicación Django que incluye:\n\n- **API REST** para gestión de posts (título y contenido)\n- **Sistema de subida de archivos** (imágenes y multimedia)\n- **Configuración Docker** para desarrollo y producción\n- **PostgreSQL** como base de datos\n- **Nginx** como servidor web para producción\n- **Gunicorn** como servidor WSGI para producción\n\n## 🏗️ Arquitectura\n\nEl proyecto está estructurado en dos variantes:\n\n### Desarrollo\n- Django con servidor de desarrollo integrado\n- Volúmenes montados para hot-reload\n- Base de datos PostgreSQL en contenedor\n\n### Producción\n- Django con Gunicorn\n- Nginx como reverse proxy y servidor de archivos estáticos/media\n- Configuración optimizada para producción\n- Volúmenes persistentes para archivos estáticos y media\n\n## 📁 Estructura del Proyecto\n\n```\ndjango_docker/\n├── app/                          # Aplicación Django principal\n│   ├── hello_django/            # Configuración del proyecto Django\n│   │   ├── settings.py          # Configuración de Django\n│   │   ├── urls.py              # URLs principales\n│   │   ├── wsgi.py              # Configuración WSGI\n│   │   └── asgi.py              # Configuración ASGI\n│   ├── post/                    # App de posts con API REST\n│   │   ├── models.py            # Modelo Post\n│   │   ├── api/                 # API REST\n│   │   │   ├── views.py         # ViewSets de la API\n│   │   │   ├── serializers.py   # Serializadores\n│   │   │   └── router.py        # Router de la API\n│   │   └── admin.py             # Configuración del admin\n│   ├── upload/                  # App de subida de archivos\n│   │   ├── views.py             # Vista de subida de archivos\n│   │   ├── models.py            # Modelos (si los hay)\n│   │   └── templates/           # Plantillas HTML\n│   ├── manage.py                # Script de gestión de Django\n│   ├── requirements.txt         # Dependencias Python\n│   ├── Dockerfile               # Dockerfile para desarrollo\n│   ├── Dockerfile.prod          # Dockerfile para producción\n│   ├── entrypoint.sh            # Script de inicio (desarrollo)\n│   └── entrypoint.prod.sh       # Script de inicio (producción)\n├── nginx/                       # Configuración de Nginx\n│   ├── Dockerfile               # Dockerfile de Nginx\n│   └── nginx.conf               # Configuración de Nginx\n├── docker-compose.yml           # Configuración Docker Compose (desarrollo)\n├── docker-compose.prod.yml      # Configuración Docker Compose (producción)\n└── LICENSE                      # Licencia MIT\n\n```\n\n## 🚀 Requisitos Previos\n\n- Docker\n- Docker Compose\n- Git\n\n## 📦 Instalación\n\n### Desarrollo\n\n1. Clona el repositorio:\n```bash\ngit clone https://github.com/migbertweb/django_docker.git\ncd django_docker\n```\n\n2. Crea un archivo `.env.dev` en la raíz del proyecto:\n```env\nDEBUG=1\nSECRET_KEY=tu-secret-key-aqui\nDJANGO_ALLOWED_HOSTS=localhost 127.0.0.1\nSQL_ENGINE=django.db.backends.postgresql\nSQL_DATABASE=hello_django_dev\nSQL_USER=hello_django\nSQL_PASSWORD=hello_django\nSQL_HOST=db\nSQL_PORT=5432\n```\n\n3. Construye y ejecuta los contenedores:\n```bash\ndocker-compose up --build\n```\n\n4. Realiza las migraciones:\n```bash\ndocker-compose exec web python manage.py migrate\n```\n\n5. Crea un superusuario (opcional):\n```bash\ndocker-compose exec web python manage.py createsuperuser\n```\n\n6. Accede a la aplicación:\n   - Aplicación: http://localhost:8000\n   - Admin: http://localhost:8000/admin\n\n### Producción\n\n1. Crea un archivo `.env.prod` en la raíz del proyecto:\n```env\nDEBUG=0\nSECRET_KEY=tu-secret-key-seguro-aqui\nDJANGO_ALLOWED_HOSTS=tu-dominio.com www.tu-dominio.com\nSQL_ENGINE=django.db.backends.postgresql\nSQL_DATABASE=hello_django_prod\nSQL_USER=hello_django\nSQL_PASSWORD=password-seguro-aqui\nSQL_HOST=db\nSQL_PORT=5432\n```\n\n2. Crea un archivo `.env.prod.db`:\n```env\nPOSTGRES_USER=hello_django\nPOSTGRES_PASSWORD=password-seguro-aqui\nPOSTGRES_DB=hello_django_prod\n```\n\n3. Construye y ejecuta los contenedores:\n```bash\ndocker-compose -f docker-compose.prod.yml up --build -d\n```\n\n4. Realiza las migraciones:\n```bash\ndocker-compose -f docker-compose.prod.yml exec web python manage.py migrate\n```\n\n5. Recopila archivos estáticos:\n```bash\ndocker-compose -f docker-compose.prod.yml exec web python manage.py collectstatic --noinput\n```\n\n6. Crea un superusuario:\n```bash\ndocker-compose -f docker-compose.prod.yml exec web python manage.py createsuperuser\n```\n\n7. Accede a la aplicación:\n   - Aplicación: http://localhost (puerto 80)\n\n## 🔌 API REST\n\nLa API REST está disponible en `/api/` y proporciona endpoints para gestionar posts:\n\n### Endpoints disponibles:\n\n- `GET /api/post/` - Lista todos los posts\n- `POST /api/post/` - Crea un nuevo post\n- `GET /api/post/{id}/` - Obtiene un post específico\n- `PUT /api/post/{id}/` - Actualiza un post completo\n- `PATCH /api/post/{id}/` - Actualiza parcialmente un post\n- `DELETE /api/post/{id}/` - Elimina un post\n\n### Ejemplo de uso:\n\n```bash\n# Crear un post\ncurl -X POST http://localhost:8000/api/post/ \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\": \"Mi primer post\", \"content\": \"Contenido del post\"}'\n\n# Listar posts\ncurl http://localhost:8000/api/post/\n\n# Obtener un post específico\ncurl http://localhost:8000/api/post/1/\n```\n\n## 📤 Subida de Archivos\n\nLa aplicación incluye una funcionalidad de subida de archivos accesible en la ruta raíz (`/`).\n\n- Sube imágenes y archivos multimedia\n- Los archivos se guardan en `mediafiles/`\n- En producción, los archivos se sirven a través de Nginx\n\n## 🛠️ Comandos Útiles\n\n### Desarrollo\n\n```bash\n# Ver logs\ndocker-compose logs -f\n\n# Ejecutar comandos Django\ndocker-compose exec web python manage.py \u003ccomando\u003e\n\n# Acceder al shell de Django\ndocker-compose exec web python manage.py shell\n\n# Detener contenedores\ndocker-compose down\n\n# Detener y eliminar volúmenes\ndocker-compose down -v\n```\n\n### Producción\n\n```bash\n# Ver logs\ndocker-compose -f docker-compose.prod.yml logs -f\n\n# Ejecutar comandos Django\ndocker-compose -f docker-compose.prod.yml exec web python manage.py \u003ccomando\u003e\n\n# Detener contenedores\ndocker-compose -f docker-compose.prod.yml down\n\n# Reiniciar servicios\ndocker-compose -f docker-compose.prod.yml restart\n```\n\n## 📚 Tecnologías Utilizadas\n\n- **Django 4.1.1** - Framework web de Python\n- **Django REST Framework** - Framework para APIs REST\n- **PostgreSQL 14** - Base de datos relacional\n- **Docker** - Contenedorización\n- **Docker Compose** - Orquestación de contenedores\n- **Nginx** - Servidor web y reverse proxy\n- **Gunicorn** - Servidor WSGI para producción\n\n## 📝 Licencia\n\nEste proyecto está bajo la Licencia MIT. Ver el archivo [LICENSE](LICENSE) para más detalles.\n\n**Nota especial:** Se recomienda encarecidamente, aunque no es obligatorio, que las obras derivadas mantengan este mismo espíritu de código libre y abierto, especialmente cuando se utilicen con fines educativos o de investigación.\n\n## 👤 Autor\n\n**Migbertweb**\n\n- GitHub: [@migbertweb](https://github.com/migbertweb)\n- Repositorio: [https://github.com/migbertweb/django_docker](https://github.com/migbertweb/django_docker)\n\n## 🤝 Contribuciones\n\nLas contribuciones son bienvenidas. Por favor:\n\n1. Fork el proyecto\n2. Crea una rama para tu feature (`git checkout -b feature/AmazingFeature`)\n3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)\n4. Push a la rama (`git push origin feature/AmazingFeature`)\n5. Abre un Pull Request\n\n## 📧 Contacto\n\nPara preguntas o sugerencias, puedes abrir un issue en el repositorio.\n\n---\n\n**Nota:** Este proyecto usa Licencia MIT. Se recomienda (no obliga) mantener derivados como código libre, especialmente para fines educativos.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmigbertweb%2Fdjango_docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmigbertweb%2Fdjango_docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmigbertweb%2Fdjango_docker/lists"}