[REPO REFACTOR]: changed to a better git repository structure with branches

This commit is contained in:
2025-10-31 03:32:24 +01:00
parent ad689049d5
commit 8360c7e8e0
212 changed files with 15955 additions and 0 deletions

1
bootstrap/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/target/

90
bootstrap/pom.xml Normal file
View File

@@ -0,0 +1,90 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>net.miarma.api</groupId>
<artifactId>miarma-ecosystem</artifactId>
<version>1.2.0</version>
</parent>
<artifactId>bootstrap</artifactId>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>23</maven.compiler.source>
<maven.compiler.target>23</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<repository>
<id>MiarmaGit</id>
<url>https://git.miarma.net/api/packages/Gallardo7761/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>backlib</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>huertos</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>huertosdecine</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>miarmacraft</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.miarma.api</groupId>
<artifactId>mpaste</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<finalName>MiarmaEcosystem</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>net.miarma.api.AppInitializer</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,75 @@
package net.miarma.api;
import net.miarma.api.backlib.ConfigManager;
import net.miarma.api.backlib.Constants;
import net.miarma.api.backlib.security.SecretManager;
import net.miarma.api.backlib.vertx.VertxJacksonConfig;
import net.miarma.api.backlib.util.MessageUtil;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import io.vertx.core.Launcher;
/**
* Punto de entrada para inicializar la aplicación.
* Se encarga de:
* - Crear directorios base si no existen
* - Copiar el fichero default.properties
* - Inicializar ConfigManager y secretos
* - Configurar Jackson para Vert.x
* - Desplegar el Verticle Master
*/
public class AppInitializer {
public static void main(String[] args) {
AppInitializer initializer = new AppInitializer();
initializer.init();
initializer.deployMaster();
Constants.LOGGER.info("✅ App initialized successfully!");
}
private final ConfigManager configManager;
public AppInitializer() {
this.configManager = ConfigManager.getInstance();
}
public void init() {
initializeDirectories();
copyDefaultConfig();
configManager.loadConfig();
SecretManager.getOrCreateSecret();
VertxJacksonConfig.configure();
}
private void initializeDirectories() {
File baseDir = new File(configManager.getBaseDir());
if (!baseDir.exists() && baseDir.mkdirs()) {
Constants.LOGGER.info("Created base directory: " + baseDir.getAbsolutePath());
}
}
private void copyDefaultConfig() {
File configFile = configManager.getConfigFile();
if (!configFile.exists()) {
try (InputStream in = getClass().getClassLoader().getResourceAsStream("default.properties")) {
if (in != null) {
Files.copy(in, configFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
Constants.LOGGER.info("Copied default.properties to: " + configFile.getAbsolutePath());
} else {
Constants.LOGGER.error(MessageUtil.notFound("Default config", "resources"));
}
} catch (IOException e) {
Constants.LOGGER.error(MessageUtil.failedTo("copy", "default config", e));
}
}
}
private void deployMaster() {
Launcher.executeCommand("run", MasterVerticle.class.getName());
}
}

View File

@@ -0,0 +1,66 @@
package net.miarma.api;
import java.util.Set;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;
import io.vertx.core.Promise;
import net.miarma.api.backlib.Constants;
import net.miarma.api.backlib.LogAccumulator;
import net.miarma.api.backlib.util.DeploymentUtil;
import net.miarma.api.microservices.core.verticles.CoreMainVerticle;
import net.miarma.api.microservices.huertos.verticles.HuertosMainVerticle;
import net.miarma.api.microservices.huertosdecine.verticles.CineMainVerticle;
import net.miarma.api.microservices.miarmacraft.verticles.MMCMainVerticle;
import net.miarma.api.microservices.mpaste.verticles.MPasteMainVerticle;
public class MasterVerticle extends AbstractVerticle {
@Override
public void start(Promise<Void> startPromise) {
deploy()
.onSuccess(v -> {
vertx.setTimer(300, id -> {
LogAccumulator.flushToLogger(Constants.LOGGER);
startPromise.complete();
});
})
.onFailure(startPromise::fail);
}
private Future<Void> deploy() {
Promise<Void> promise = Promise.promise();
Future<String> core = vertx.deployVerticle(new CoreMainVerticle())
.onSuccess(id -> LogAccumulator.add(DeploymentUtil.successMessage(CoreMainVerticle.class)))
.onFailure(err -> LogAccumulator.add(DeploymentUtil.failMessage(CoreMainVerticle.class, err)));
Future<String> huertos = vertx.deployVerticle(new HuertosMainVerticle())
.onSuccess(id -> LogAccumulator.add(DeploymentUtil.successMessage(HuertosMainVerticle.class)))
.onFailure(err -> LogAccumulator.add(DeploymentUtil.failMessage(HuertosMainVerticle.class, err)));
Future<String> mmc = vertx.deployVerticle(new MMCMainVerticle())
.onSuccess(id -> LogAccumulator.add(DeploymentUtil.successMessage(MMCMainVerticle.class)))
.onFailure(err -> LogAccumulator.add(DeploymentUtil.failMessage(MMCMainVerticle.class, err)));
Future<String> cine = vertx.deployVerticle(new CineMainVerticle())
.onSuccess(id -> LogAccumulator.add(DeploymentUtil.successMessage(CineMainVerticle.class)))
.onFailure(err -> LogAccumulator.add(DeploymentUtil.failMessage(CineMainVerticle.class, err)));
Future<String> mpaste = vertx.deployVerticle(new MPasteMainVerticle())
.onSuccess(id -> LogAccumulator.add(DeploymentUtil.successMessage(MPasteMainVerticle.class)))
.onFailure(err -> LogAccumulator.add(DeploymentUtil.failMessage(MPasteMainVerticle.class, err)));
Future.all(core, huertos, mmc, cine, mpaste)
.onSuccess(_ -> promise.complete())
.onFailure(promise::fail);
return promise.future();
}
@Override
public void stop(Promise<Void> stopPromise) {
vertx.deploymentIDs().forEach(id -> vertx.undeploy(id));
stopPromise.complete();
}
}

View File

@@ -0,0 +1,41 @@
# DB Configuration
db.protocol=jdbc:mariadb
db.host=localhost
db.port=3306
db.name=miarma
db.user=root
db.password=root
dp.poolSize=5
# HTTP Server Configuration
inet.host=localhost
sso.logic.port=8080
sso.data.port=8081
mmc.logic.port=8100
mmc.data.port=8101
huertos.logic.port=8120
huertos.data.port=8121
cine.data.port = 8140
cine.logic.port = 8141
mpaste.data.port = 8160
mpaste.logic.port = 8161
# Security Configuration
jwt.secret=
jwt.expiration=604800
jwt.expiration.short=3600
# Mail Configuration
smtp.server=
smtp.port=
imap.server=
imap.port=
smtp.password.presidente=
smtp.password.secretaria=
smtp.password.tesoreria=
smtp.password.admin=
smtp.password.noreply=
# Discord Configuration
discord.webhook=

View File

@@ -0,0 +1,20 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%cyan([%d{HH:mm:ss}]) %highlight(%-5level) %green(%logger{20}) - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
<logger name="io.netty" level="WARN"/>
<logger name="io.vertx" level="INFO"/>
<logger name="io.vertx.core.impl.launcher" level="INFO"/>
<logger name="io.vertx.core.logging" level="INFO"/>
</configuration>