initial commit

This commit is contained in:
sysnaptik-main
2026-06-25 12:29:14 +00:00
commit 93bd980516
8 changed files with 176 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
name: mindflux-ci
on:
push:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Maven Build
run: mvn clean package -DskipTests
+20
View File
@@ -0,0 +1,20 @@
FROM maven:3.9.8-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn clean package -DskipTests
FROM eclipse-temurin:21-jdk
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
+17
View File
@@ -0,0 +1,17 @@
services:
mindflux:
image: registry:5000/mindflux:latest
container_name: mindflux
restart: unless-stopped
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/mindfluxdb
SPRING_DATASOURCE_USERNAME: mindflux
SPRING_DATASOURCE_PASSWORD: mindflux_pass
networks:
- backend_network
ports:
- "8081:8080"
networks:
backend_network:
external: true
+59
View File
@@ -0,0 +1,59 @@
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mindflux</groupId>
<artifactId>mindflux</artifactId>
<version>1.0.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.2</version>
</parent>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<!-- Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- PostgreSQL -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<!-- JPA optional aber sinnvoll -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-database-postgresql</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,19 @@
package com.mindflux;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
public class HelloController {
@GetMapping("/")
public Map<String, String> hello() {
return Map.of(
"app", "mindflux",
"status", "running",
"message", "Hello from Spring Boot 🚀"
);
}
}
@@ -0,0 +1,11 @@
package com.mindflux;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MindfluxApplication {
public static void main(String[] args) {
SpringApplication.run(MindfluxApplication.class, args);
}
}
@@ -0,0 +1,8 @@
server.port=8080
spring.datasource.url=jdbc:postgresql://postgres:5432/mindfluxdb
spring.datasource.username=mindflux
spring.datasource.password=mindflux_pass
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.show-sql=true
@@ -0,0 +1,20 @@
CREATE TABLE users (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
username VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(255),
role VARCHAR(50) NOT NULL,
profile_picture VARCHAR(255)
);
CREATE TABLE achievements (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
username VARCHAR(100),
title VARCHAR(255),
description TEXT,
icon VARCHAR(255),
date_achieved TIMESTAMP
);
CREATE INDEX idx_achievements_username
ON achievements (username);