La aplicación de servidor es una aplicación Java (Spring Boot).
- Spring Boot 3.0.1
- JDK 17+
- Postgres 15 con la extensión PostGIS 3.3.2
- Instalar Postgres y PostGIS
Versiones:
- Postgres 15
- PostGIS 3.3.2
En este documento no se explica como instalar esto.
- Crear usuario/s de base de datos
Idealmente se debería crear un usuario que no sea administrador. No es el fin de este documento explicar como realizar esto.
- Ejecutar Scripts de BBDD
Antes de poder usar la BBDD es necesario crear la base de datos mapmap, y darle permisos al usuario de lectura y escritura. En la carpeta mapmap-server/scripts-bbdd hay dos scripts de SQL: * schema.sql para crear la estructura de BBDD * data.sql para insertar unos datos iniciales necesarios para que funcione la aplicación
- Instalar dependencias de Java
Versiones: * Java 17+ * Maven 3.9.1+
En este documento no se explica como instalar esto.
- Descargar el código del proyecto
- Configurar la conexión con BBDD
En el fichero mapmap-server/src/main/resources/application.properties se configuran varios aspectos de la aplicación.
La configuracion de BBDD se define con las variables:
spring.datasource.url
spring.datasource.username
spring.datasource.password
- Correr el proyecto
Es necesario asegurarse de que Postgres está corriendo y se han creado correctamente las tablas y se han insertado los datos de los scripts schema.sql y data.sql.
Desde el raiz del proyecto ejecutar:
mvn -f mapmap-server/pom.xml spring-boot:run
O desde la carpeta mapmap-server ejecutar:
mvn spring-boot:run
- Instalar Postgres y PostGIS en el servidor
- Instalar dependencias de Java
- En la maquina de desarrollo crear el JAR
Desde el raiz del proyecto ejecutar:
mvn -f mapmap-server/pom.xml package -DskipTests
O desde la carpeta mapmap-server ejecutar:
mvn package -DskipTests
- Copiar el JAR al servidor. Este se encuentra en la carpeta
mapmap-server/target/XXX.jar
- En el servidor ejecutar
java -jar XXX.jar
Todos estos pasos son en el servidor de producción
- Instalar Docker
En este documento no se explica como instalar esto.
- Crear un fichero con variables de entorno
touch .env
En la carpeta docker hay un fichero de ejemplo con las variables de entorno que son configurables
DATABASE_URL=jdbc:postgresql://postgres/mapmap
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
LOGGIN_LEVEL=INFO
POSTGRES_PASSWORD=postgres
3A. Crear una imagen de Docker
Usando como referencia el fichero docker/Dockerfile crear una imagen del servidor
3B. Crear un fichero de Docker Compose
touch docker-compose.yml
En la carpeta docker hay un fichero de ejemplo de Docker Compose
- Levantar solo el servicio de BBDD
docker compose up postgres
Mientras está corriendo, copiar los ficheros SQL al contenedor de Postgres
docker cp ./schema.sql XXX:/schema.sql
docker cp ./data.sql XXX:/data.sql
Siendo XXX el ID del contenedor de Postgres. Este se puede obtener ejecutando 'docker ps'.
Una vez copiados los ficheros al contenedor los ejecutamos dentro de la instancia
docker exec -u postgres XXX psql postgres postgres -f schema.sql
docker exec -u postgres XXX psql postgres postgres -f data.sql
Esto dependerá del usuario y contraseña configurado como administrador en Postgres.
Hecho esto, se puede detener el contenedor de Postgres.
- Levantar todo con Docker Compose
Una vez inicializada la BBDD ya se puede levantar todo el proyecto
docker compose up