Skip to content

Monorepo for the Cosmo Core Services.

Notifications You must be signed in to change notification settings

bitargsolutions/cosmo

Repository files navigation

Cosmo Core Services

Banner de Cosmo


  1. Requisitos
  2. Empezá a desarrollar
  3. ¿Qué es Cosmo?
  4. Nuestra filosofía
  5. Documentación

Requisitos

Otras herramientas

  • Para administrar MariaDB, es recomendable DBeaver

Empezá a desarrollar

Primero hay que clonar

git clone git@github.com:bitargsolutions/cosmo.git

Después instalar y configurar el entorno. Primero deberías modificar las variables de entorno en docker-compose.yml. Vas a encontrar algo como esto:

x-rman-env: &rman-env # -- Set secure password. Should be differents
    MARIADB_PASSWORD: <secure_password>
    MARIADB_ROOT_PASSWORD: <secure_root_password>

    # -- Stage of the app
    #    It should be one of: dev, prod
    MODE: dev

    # -- It should be 128 hex characters
    #    It can be a SHA-512 hash. https://emn178.github.io/online-tools/sha512.html
    SECRET_KEY: <sha512_hash>

    # -- Don't need to modify these
    MARIADB_HOST: rman-mariadb
    COSMO_LOGGER: trace,info,warn,error
    MARIADB_DATABASE: rman
    MARIADB_USER: rman_service

En sí la configuración ya está lista para ejecutarse, pero es recomendable cambiar MARIADB_PASSWORD y MARIADB_ROOT_PASSWORD

Ahora hay que configurar y compilar los proyectos. Esto se hace a través de un contenedor de Docker. Usá el siguiente comando:

docker compose --profile setup up

Es probable que te aparezca un error de Failed pull image o algo similar. Esto es normal y no afecta en el proceso.

Por último, solo queda ejecutar los proyectos y empezar a desarrollar. Usá:

docker compose --profile services up

Los servicios tienen hot-reloading, es decir, no hace falta reiniciar el servidor para que se actualicen los cambios.

¿Qué es Cosmo?

¿Qué es Cosmo? Podríamos definirlo como un conjunto de herramientas digitales que posibilitan la construcción de una amplia gama de aplicaciones, desde tiendas en línea hasta sistemas de gestión de contenido o aplicaciones móviles.

Cosmo es como un arsenal de herramientas digitales. Dentro de este arsenal, encontrarás una variedad de piezas denominadas microservicios. Cada uno de estos microservicios tiene una función específica, como gestionar la autenticación de usuarios, administrar un catálogo de productos o procesar pagos.

Lo destacable de Cosmo es que tú puedes seleccionar las herramientas que necesitas. No te bombardearemos con un montón de funcionalidades que tal vez nunca utilices. En lugar de eso, te proporcionamos una versión básica con las funcionalidades esenciales y te permitimos elegir e integrar las que mejor se adapten a tu proyecto específico.

¿Por qué es esto tan bueno? Bueno, te permite ahorrar dinero, ya que solo pagas por lo que usas. También evita esa sensación de "sobrecarga" al tener solo lo que necesitas, sin sentirte abrumado por opciones innecesarias. Además, te otorga más libertad para desarrollar, ya que puedes integrar Cosmo con otros servicios con facilidad.

Y aquí viene lo más interesante: Cosmo es de código abierto. Esto significa que puedes utilizarlo libremente en tus proyectos, modificarlo según tus necesidades y compartirlo con otros desarrolladores. Nos entusiasma la idea de formar una comunidad activa y colaborativa en torno a Cosmo, donde todos puedan contribuir y mejorar juntos.

Nuestro objetivo es hacer que el proceso de desarrollo sea lo más fluido posible. Por eso, te ofrecemos un enfoque de tres pasos: Clonar, Ejecutar y Desarrollar. Con solo unos pocos comandos, podrás comenzar a construir tu aplicación con Cosmo.

Nuestra filosofía

Cosmo se basa en una filosofía centrada en la libertad, flexibilidad y control para los desarrolladores. Nuestra visión es proporcionar un ecosistema de servicios backend que sea tanto poderoso como adaptable a una amplia gama de casos de uso. Algunos principios clave de nuestra filosofía incluyen:

  • Libertad de elección: Creemos en empoderar a los desarrolladores para que elijan las herramientas y servicios que mejor se adapten a sus necesidades específicas. Cosmo ofrece un core de código abierto que puede ser extendido y personalizado según los requerimientos del proyecto.

  • Flexibilidad y modularidad: Nuestra arquitectura modular permite a los usuarios integrar y combinar los servicios que necesiten, evitando el abrumador exceso de funcionalidades no deseadas. Esto garantiza una infraestructura backend ágil y optimizada para cada aplicación.

  • Comunidad activa: Fomentamos una comunidad de desarrollo vibrante y colaborativa en torno a Cosmo. A través de nuestra política de código abierto y nuestro enfoque en la experiencia del desarrollador, buscamos inspirar la innovación y el intercambio de ideas entre nuestros usuarios.

  • Autonomía y control: Con Cosmo, los desarrolladores tienen la libertad de autohospedar su infraestructura backend, lo que les brinda un mayor control sobre su entorno de desarrollo y producción. Esto reduce la dependencia de proveedores externos y promueve la autonomía tecnológica.

Documentación

Para ver más información, guías y documentación técnica, centralizamos todo en un proyecto de Notion.

Documentación de Cosmo - Notion


Hecho por BitArg