Mi framework favorito de Java es de hace unos años Micronaut por lo que lo usaremos para llegar a construir un binario Linux mediante GraalVM
Así mismo mi build tool preferida es Gradle (por encima de Maven). En principio sería fácil usar Maven simplemente
teniendo en cuenta los puntos que detallaré a continuación
La aplicación es super sencilla por lo que no usará ni base de datos, sólo carpetas y ficheros locales.
Tampoco tendrá un interface web.
Para comenzar usaremos el starter kit que ofrece Micronaut y crearemos un proyecto simple sin ninguna "feature"
especial
Una vez descomprimido el zip en una carpeta de trabajo, revisaremos el build.gradle prestando atención a estas partes:
build.gradle
dependencies {
annotationProcessor("io.micronaut:micronaut-http-validation")
annotationProcessor("io.micronaut.openapi:micronaut-openapi")
annotationProcessor("io.micronaut.openapi:micronaut-openapi-adoc")
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
implementation("io.micronaut.serde:micronaut-serde-jackson")
implementation("io.micronaut:micronaut-http-client")
compileOnly("io.micronaut.openapi:micronaut-openapi-annotations")
runtimeOnly("ch.qos.logback:logback-classic")
testImplementation("io.micronaut:micronaut-http-client")
implementation("org.tomitribe:tomitribe-http-signatures:1.1")
}
Incluiremos la ultima dependencia para que nos facilite la parte de generar la firma http, por lo demás como se
puede ver las dependencias son mínimas.
Para poder interactuar e incluso depurar la aplicación en desarrollo tenemos que poder acceder
desde "fuera" y además vía SSL. Yo uso ngrok que me crea un túnel entre mi máquina e internet
application.properties
fediphoto.domain=tu-dns.ngrok-free.app
fediphoto.users=data/users
En domain tienes que poner el dns que te haya asignado Ngrok o el proxy que uses