Initialisiere VoTiAn NG mit Docker-Build, .env-Konfiguration und Cookie-Sitzungen
This commit is contained in:
commit
1a30233269
63 files changed
+12138
No files matched your search
@@ -0,0 +1,46 @@
|
||||
package de.stadtbote.votian;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import de.stadtbote.votian.database.DatabaseDiagnostics;
|
||||
import java.util.Arrays;
|
||||
import org.springframework.boot.Banner;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.WebApplicationType;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
|
||||
@SpringBootApplication
|
||||
public class VotianApplication {
|
||||
public static void main(String[] args) {
|
||||
if (Arrays.asList(args).contains("--database-check")) {
|
||||
System.exit(databaseCheck());
|
||||
}
|
||||
SpringApplication.run(VotianApplication.class, args);
|
||||
}
|
||||
|
||||
private static int databaseCheck() {
|
||||
SpringApplication application = new SpringApplication(VotianApplication.class);
|
||||
application.setWebApplicationType(WebApplicationType.NONE);
|
||||
application.setBannerMode(Banner.Mode.OFF);
|
||||
application.setLogStartupInfo(false);
|
||||
DatabaseDiagnostics.Result result;
|
||||
// Keep stdout machine-readable and prevent JDBC startup errors exposing connection details.
|
||||
try (ConfigurableApplicationContext context = application.run(
|
||||
"--spring.main.web-application-type=none", "--spring.main.banner-mode=off",
|
||||
"--logging.level.root=OFF", "--logging.level.com.zaxxer.hikari=OFF",
|
||||
"--logging.level.org.mariadb.jdbc=OFF")) {
|
||||
result = context.getBean(DatabaseDiagnostics.class).check();
|
||||
} catch (RuntimeException error) {
|
||||
result = DatabaseDiagnostics.failure("CONFIGURATION_ERROR",
|
||||
"Backend-Konfiguration oder Datenbankverbindung prüfen.", null);
|
||||
}
|
||||
try {
|
||||
System.out.println(new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(result.details()));
|
||||
} catch (JsonProcessingException error) {
|
||||
System.out.println("{\"connected\":false,\"reason\":\"DIAGNOSTIC_ERROR\",\"message\":\"Diagnose konnte nicht ausgegeben werden.\",\"writes\":0}");
|
||||
return 1;
|
||||
}
|
||||
return result.exitCode();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user