Este repositorio tiene como objetivo automatizar el despliegue de una base de datos Mongo en un contenedor de Docker, proporcionando una solución para el almacenamiento de archivos binarios para el proyecto de Smart-Shell ( Facturador Electronico ) y Platform-Training ( Plataforma de Capacitacion )
Repositorios referidos al BACKEND y FRONTEND de la aplicacion Smart-Shell y Platform-Training.
Repositorios relacionado a la automatizacion de despliegue.
Repositorios relacionados a otras bases de datos del proyecto Smart-Shell.
-
Clonar el Repositorio
git clone https://github.com/luis122448/smart-shell-mongo.git
-
Ingresar al directorio del proyecto
cd smart-shell-mongo
-
Ejecutar el script de instalación
sudo bash dev-install.sh
-
Defina las credenciales en el archivo .env
nano .env
MONGO_USERNAME='' MONGO_PASSWORD='' MONGO_DATABASE=''
-
Crear (si no existe) el network
sudo docker network create smart-shell-net
El directorio scripts/init.js
contiene los scripts que se ejecutarán al iniciar el contenedor, en este caso se crea un usuario con permisos de administrador para la base de datos.
```javascript
const password = process.env.MONGO_PASSWORD || "default_password"; // Obtener el password de la variable de entorno o utilizar uno por defecto
db.createUser({
user: "user-smart-shell",
pwd: password,
roles: [
{
role: "readWrite",
db: "smart-shell"
}
]
});
```
Para el despliegue en producción se ha utilizado Docker y Docker Compose, puede revisar el archivo docker-compose.yml para conocer los detalles de la configuración. Asimismo no se olvide de modificar las variables de entono, en asi archivo .env
-
Ingresando al contededorf
sudo docker exec -it smart-shell-mongo bash
-
Realizando conexion
mongosh --username <username> --password <password>
-
Identificando la base de datos
use <database>
-
Creando coleccion
db.createCollection("test")
-
Insertar datos
db.test.insert({ "nombre": "Ejemplo", "edad": 30, "email": "ejemplo@email.com" })
-
Consultar datos
db.test.find()
Configuracion para un proyecto de JAVA con SPRING BOOT (application.properties).
```bash
# Configuración de Mongo
spring.data.mongodb.uri=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@localhost:27017/${MONGO_DATABASE}?retryWrites=true&w=majority
spring.data.mongodb.database=${MONGO_DATABASE}
spring.data.mongodb.username=${MONGO_USERNAME}
spring.data.mongodb.password=${MONGO_PASSWORD}
```
Las contribuciones son bienvenidas. Siéntete libre de mejorar este proyecto, agregar nuevas características o corregir problemas identificados. Para contribuir, crea un Pull Request o abre un Issue.
Este proyecto está bajo la licencia MIT License.