{"id":24839160,"url":"https://github.com/hecalderong/nodejs-docker","last_synced_at":"2026-04-15T19:31:58.986Z","repository":{"id":272799955,"uuid":"917648350","full_name":"hecalderong/nodejs-docker","owner":"hecalderong","description":"Este proyecto proporciona un entorno de desarrollo completo para Node.js usando Docker, configurado con una estructura moderna y herramientas de desarrollo esenciales.","archived":false,"fork":false,"pushed_at":"2025-01-17T16:30:44.000Z","size":475,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T04:35:09.160Z","etag":null,"topics":["docker","docker-compose","nodejs"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hecalderong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-01-16T11:43:41.000Z","updated_at":"2025-01-17T17:46:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"a5d2caf1-0d7d-4f99-b5b8-d77351f4924c","html_url":"https://github.com/hecalderong/nodejs-docker","commit_stats":null,"previous_names":["hecalderong/nodejs-docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hecalderong/nodejs-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hecalderong%2Fnodejs-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hecalderong%2Fnodejs-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hecalderong%2Fnodejs-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hecalderong%2Fnodejs-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hecalderong","download_url":"https://codeload.github.com/hecalderong/nodejs-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hecalderong%2Fnodejs-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266261149,"owners_count":23901285,"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","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":["docker","docker-compose","nodejs"],"created_at":"2025-01-31T06:36:52.502Z","updated_at":"2026-04-15T19:31:53.957Z","avatar_url":"https://github.com/hecalderong.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/hecalderong/nodejs-docker/blob/main/images/node-docker.png\" alt=\"Dockerizando NodeJS\" width=\"100%\"\u003e\n\n# Node.js Docker Development Environment\n\nEste proyecto proporciona un entorno de desarrollo completo para Node.js usando Docker, configurado con una estructura moderna y herramientas de desarrollo esenciales.\n\n## 📋 Tabla de Contenidos\n\n- [Requisitos Previos](#requisitos-previos)\n- [Estructura del Proyecto](#estructura-del-proyecto)\n- [Servicios Incluidos](#servicios-incluidos)\n- [Configuración Inicial](#configuración-inicial)\n- [Uso](#uso)\n- [Configuración de Servicios](#configuración-de-servicios)\n- [Comandos Útiles](#comandos-útiles)\n- [Solución de Problemas](#solución-de-problemas)\n\n## 🔧 Requisitos Previos\n\n- Docker (versión 20.10 o superior)\n- Docker Compose (versión 2.0 o superior)\n- Git (opcional)\n\n## 📁 Estructura del Proyecto\n\n```\nproyecto/\n├── docker/\n│   ├── nginx/\n│   │   └── conf.d/\n│   │       └── app.conf\n│   └── init.sh\n├── src/                 # Código fuente de Node.js\n├── docker-compose.yml\n└── Dockerfile\n```\n\n## 🚀 Servicios Incluidos\n\n### 1. Aplicación Node.js\n- Node.js 18\n- Nodemon para desarrollo\n- Express.js preconfigurado\n- Hot-reload activado\n- Puerto: 3000 (configurable)\n\n### 2. Nginx\n- Proxy inverso configurado\n- Balanceo de carga\n- Puerto: 8000 (configurable)\n\n### 3. MySQL\n- Versión: 8.0\n- Persistencia de datos\n- Puerto: 3306\n- Credenciales configurables\n\n### 4. PHPMyAdmin\n- Interfaz web para MySQL\n- Puerto: 8080 (configurable)\n- Acceso directo a la base de datos\n\n## ⚙️ Configuración Inicial\n\n1. Crea la estructura de directorios:\n```bash\nmkdir -p mi-proyecto/docker/nginx/conf.d\ncd mi-proyecto\n```\n\n2. Copia los archivos de configuración:\n- `docker-compose.yml` en la raíz\n- `Dockerfile` en la raíz\n- `app.conf` en `docker/nginx/conf.d/`\n- `init.sh` en `docker/`\n\n3. Configura permisos:\n```bash\nchmod +x docker/init.sh\n```\n\n## 🚀 Uso\n\n### Primera Ejecución\n\n```bash\ndocker-compose up --build -d\n```\n\nEste comando:\n1. Construye las imágenes\n2. Crea un nuevo proyecto Node.js si no existe\n3. Instala dependencias básicas\n4. Inicia todos los servicios\n\n### Ejecuciones Posteriores\n\n```bash\ndocker-compose up -d\n```\n\n### Detener Servicios\n\n```bash\ndocker-compose down\n```\n\n## 🔧 Configuración de Servicios\n\n### Node.js\n- Ubicación del código: `./src`\n- URL API: `http://localhost:3000`\n- URL Nginx: `http://localhost:8000`\n\n### MySQL\n- Host: `db`\n- Puerto: `3306`\n- Base de datos: `nodejs_db`\n- Usuario: `nodejs_user`\n- Contraseña: `user_password`\n- Root Password: `root_password`\n\n### PHPMyAdmin\n- URL: `http://localhost:8080`\n- Usuario: `nodejs_user`\n- Contraseña: `user_password`\n\n## 📝 Comandos Útiles\n\n### Acceder al Contenedor Node.js\n```bash\ndocker-compose exec app sh\n```\n\n### Instalar Nuevas Dependencias\n```bash\ndocker-compose exec app npm install [paquete]\n```\n\n### Ver Logs\n```bash\ndocker-compose logs -f [servicio]\n```\n\n### Ejecutar Scripts NPM\n```bash\ndocker-compose exec app npm run [script]\n```\n\n## 🔍 Solución de Problemas\n\n### Problemas con node_modules\nSi hay problemas con los módulos:\n```bash\ndocker-compose down\nrm -rf src/node_modules\ndocker-compose up --build -d\n```\n\n### Error de Conexión a MySQL\nSi la API no puede conectar a MySQL:\n1. Verifica el servicio:\n```bash\ndocker-compose ps\n```\n2. Comprueba las variables de entorno\n3. Confirma que el host sea `db`\n\n### Problemas con Nodemon\nSi el hot-reload no funciona:\n1. Verifica los logs:\n```bash\ndocker-compose logs app\n```\n2. Comprueba la configuración de volúmenes\n\n## 🔒 Seguridad\n\n- Modifica las contraseñas por defecto\n- Revisa los permisos de archivos\n- Actualiza las imágenes regularmente\n- Configura CORS apropiadamente\n- Usa variables de entorno para secrets\n\n## 📦 Personalización\n\n### Modificar Puertos\nEn `docker-compose.yml`:\n```yaml\nports:\n  - \"nuevo_puerto:3000\"  # Para Node.js\n  - \"nuevo_puerto:80\"    # Para nginx\n```\n\n### Añadir Dependencias Globales\nEn `Dockerfile`:\n```dockerfile\nRUN npm install -g [paquete]\n```\n\n### Configurar Nginx\nEdita `docker/nginx/conf.d/app.conf`\n\n## 🛠️ Desarrollo\n\n### Estructura de API Recomendada\n```\nsrc/\n├── controllers/\n├── models/\n├── routes/\n├── middleware/\n├── config/\n└── index.js\n```\n\n### Scripts NPM Incluidos\n- `npm start`: Inicia la aplicación\n- `npm run dev`: Inicia con nodemon\n\n### Debugging\n1. Configura el inspect flag:\n```yaml\ncommand: node --inspect=0.0.0.0 index.js\n```\n2. Conecta usando Chrome DevTools\n\n## 🤝 Contribuir\n\n1. Fork el proyecto\n2. Crea tu rama de feature\n3. Commit tus cambios\n4. Push a la rama\n5. Crea un Pull Request\n\n## 📝 Notas Adicionales\n\n- El proyecto usa Express.js por defecto\n- Configurado con las mejores prácticas de Docker\n- Optimizado para desarrollo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhecalderong%2Fnodejs-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhecalderong%2Fnodejs-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhecalderong%2Fnodejs-docker/lists"}