Ir al contenido principal

Deploy de Quarkus + SQLite en Producción (Ubuntu Server)

Guía práctica para instalar y ejecutar una aplicación Quarkus en un servidor Linux usando SQLite.


1. Ir al directorio de instalación

cd /opt

2. Clonar el repositorio

git clone https://github.com/hugomrj/jkude
cd jkude
Esto copia el proyecto en /opt/jkude.

3. Instalar Gradle

sudo snap install gradle --classic

Verificar instalación:

gradle -v

4. Compilar el proyecto Quarkus

sudo ./gradlew build
El archivo ejecutable quedará en: /opt/jkude/build/quarkus-app/

5. Preparar la base de datos SQLite

Crear carpeta data en el build

sudo mkdir /opt/jkude/build/quarkus-app/data

Copiar la base de datos

sudo cp /opt/jkude/data/jkude.db /opt/jkude/build/quarkus-app/data/
Esto respeta la configuración:
jdbc:sqlite:./data/jkude.db

6. Ejecutar la aplicación

cd /opt/jkude/build/quarkus-app
sudo java -jar quarkus-run.jar
Si todo está bien, verás el mensaje de arranque y el puerto:
http://0.0.0.0:8001

7. Habilitar Swagger UI en producción

Agregar en application.properties:

quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.path=/doc/swagger

Acceso:

http://localhost:8001/doc/swagger

8. (Opcional) Configurar como servicio systemd

Crear el archivo del servicio

sudo nano /etc/systemd/system/jkude.service

Contenido

[Unit]
Description=JKUDE Quarkus Service
After=network.target

[Service]
WorkingDirectory=/opt/jkude/build/quarkus-app
ExecStart=/usr/bin/java -jar quarkus-run.jar
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Activar el servicio

sudo systemctl daemon-reload
sudo systemctl enable jkude
sudo systemctl start jkude
systemctl status jkude

🎉 Listo

Quarkus corriendo en producción correctamente.

API:

http://IP:8001/

Swagger:

http://IP:8001/doc/swagger

Comentarios