Skip to content

Proyecto para desplegar las aplicaciones a producción usando Docker, Traefik, Lets Encrypt y git submodules

Notifications You must be signed in to change notification settings

CrissAlvarezH/cristian-projects-server

Repository files navigation

Descripción

Proyecto para desplegar las aplicaciones a producción en un servidor usando Docker, con Traefik se configura el reverse proxy para el redireccionamiento a los contenedores usando los dominios y el Let's encrypt configurado para cada uno, por ejemplo el contenedor que tiene el codigo ubicor-api tiene el dominio api.ubicor.alvarezcristian.com configurado en el docker-compose.yaml.

¿Que servicios contiene este repo?

1. Ubicor

Ubicor es un proyecto para presentar y ubicar los bloques y salones de las universidades en el mapa, para mas información puede consultar ubicor-api y ubicor-frontend.

2. Base de datos en Postgres

Para la persistencia de datos, se usa la imagen de docker postgres:14-alpine

3. Proxy reverse

Para el proxy reverse encargado del routing, lets encrypt, middleware, etc. se usa Traefik

4. Backups automaticos

Se realizan backups a las bases de datos y a los archivos estaticos de los proyectos que corren bajo este repositorio, por ejemplo, la base de datos de ubicor-api y las imagenes de los bloques universitarios. Estos archivos son comprimidos y enviados a un bucket en aws s3. Para este proceso usamos la imagen docker del proyecto en github automate-backups-to-s3, el cual podemos encontrar en docker hub aquí

Desplegar

A continuación se enumeran los pasos para realizar el despliegue de los proyectos usando este repositorio

Configurar las variables de entorno

Algunas imagenes de docker requiren variables de entorno, para esto hay que crear un .env correspondiente a cada servicio. Dentro de la carpeta .env-services.example veremos los .env de ejemplo para crear las versiones de producción, esto se puede hacer a mano pero lo indicado es utilizar el script creado para esto, este script se encarga de generar las contraseñas y demas secretos que se alojan en los .env.

make generate-env

Iniciar los contenedores

Para iniciar los contenedores se utiliza docker compose, para esto corremos el siguiente comando:

make start

Configurar hosts

En caso de que los pasos anteriores se estén realizando para hacer pruebas locales será necesario modificar el archivo de hosts en el computador para el correcto funcionamiento de los dominios configurados en el docker-compose.yaml. Dependiendo del sistema operativo este archivo tiene distinta ubicación:

  • windows C:\Windows\System32\drivers\etc\hosts
  • linux y mac /etc/hosts

La edición de este archivo consiste en agregar estas dos lineas al final

127.0.0.1 ubicor.alvarezcristian.com
127.0.0.1 api.ubicor.alvarezcristian.com

Nota: a medida que se agreguen nuevos proyectos tambien será necesario agregar mas dominios al archivo hosts

💓 ¡Y LISTO, YA TENEMOS LOS PROYECTOS CORRIENDO! 💓

Actualizar versiones

Cuando se lance una nueva versión de algunas de las imagenes que tenemos en el docker-compose.yaml podemos ejecutar el siguiente comando para hacer un despliegue a las ultimas versiónes

make update

About

Proyecto para desplegar las aplicaciones a producción usando Docker, Traefik, Lets Encrypt y git submodules

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published