update 23
This commit is contained in:
12
.idea/dataSources.xml
generated
Normal file
12
.idea/dataSources.xml
generated
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||
<data-source source="LOCAL" name="loghunter" uuid="431b313c-b303-45ce-85bb-58c2bc8cb968">
|
||||
<driver-ref>sqlite.xerial</driver-ref>
|
||||
<synchronize>true</synchronize>
|
||||
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
|
||||
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/data/loghunter.db</jdbc-url>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/data_source_mapping.xml
generated
Normal file
6
.idea/data_source_mapping.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourcePerFileMappings">
|
||||
<file url="file://$APPLICATION_CONFIG_DIR$/consoles/db/431b313c-b303-45ce-85bb-58c2bc8cb968/console.sql" value="431b313c-b303-45ce-85bb-58c2bc8cb968" />
|
||||
</component>
|
||||
</project>
|
||||
5
.idea/log-hunter.iml
generated
5
.idea/log-hunter.iml
generated
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
|
||||
2
.idea/modules.xml
generated
2
.idea/modules.xml
generated
@@ -2,7 +2,7 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/log-hunter.main.iml" filepath="$PROJECT_DIR$/.idea/modules/log-hunter.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/log-hunter.iml" filepath="$PROJECT_DIR$/.idea/log-hunter.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
61
src/main/java/research/loghunter/config/DatabaseConfig.java
Normal file
61
src/main/java/research/loghunter/config/DatabaseConfig.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package research.loghunter.config;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
/**
|
||||
* 데이터베이스 및 앱 디렉토리 초기화 설정
|
||||
*
|
||||
* 앱 실행 시 필요한 디렉토리를 자동으로 생성합니다.
|
||||
* - ~/.loghunter/data/ : SQLite DB 파일
|
||||
* - ~/.loghunter/exports/ : 내보내기 파일
|
||||
*/
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class DatabaseConfig {
|
||||
|
||||
@Value("${app.base-path}")
|
||||
private String basePath;
|
||||
|
||||
@Value("${app.export.path}")
|
||||
private String exportPath;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
try {
|
||||
// 기본 디렉토리 생성
|
||||
Path baseDir = Paths.get(basePath);
|
||||
createDirectoryIfNotExists(baseDir);
|
||||
|
||||
// 데이터 디렉토리 생성
|
||||
Path dataDir = baseDir.resolve("data");
|
||||
createDirectoryIfNotExists(dataDir);
|
||||
|
||||
// 내보내기 디렉토리 생성
|
||||
Path exportsDir = Paths.get(exportPath);
|
||||
createDirectoryIfNotExists(exportsDir);
|
||||
|
||||
log.info("LogHunter 디렉토리 초기화 완료: {}", basePath);
|
||||
log.info(" - 데이터: {}", dataDir);
|
||||
log.info(" - 내보내기: {}", exportsDir);
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error("디렉토리 생성 실패: {}", e.getMessage());
|
||||
throw new RuntimeException("LogHunter 디렉토리 초기화 실패", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void createDirectoryIfNotExists(Path dir) throws IOException {
|
||||
if (!Files.exists(dir)) {
|
||||
Files.createDirectories(dir);
|
||||
log.info("디렉토리 생성: {}", dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ spring:
|
||||
name: log-hunter
|
||||
|
||||
datasource:
|
||||
url: jdbc:sqlite:./data/loghunter.db
|
||||
url: jdbc:sqlite:${user.home}/.loghunter/data/loghunter.db
|
||||
driver-class-name: org.sqlite.JDBC
|
||||
|
||||
jpa:
|
||||
@@ -28,7 +28,8 @@ spring:
|
||||
|
||||
# 앱 설정
|
||||
app:
|
||||
base-path: ${user.home}/.loghunter
|
||||
crypto:
|
||||
key: ${LOGHUNTER_CRYPTO_KEY:LogHunterDefaultKey32Bytes!!}
|
||||
export:
|
||||
path: ./exports
|
||||
path: ${user.home}/.loghunter/exports
|
||||
|
||||
24
start.sh
Executable file → Normal file
24
start.sh
Executable file → Normal file
@@ -6,25 +6,40 @@ cd "$(dirname "$0")"
|
||||
export JAVA_HOME="/Users/coziny/Library/Java/JavaVirtualMachines/temurin-21.0.9/Contents/Home"
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
|
||||
# 앱 데이터 경로
|
||||
LOGHUNTER_HOME="$HOME/.loghunter"
|
||||
|
||||
echo "=========================================="
|
||||
echo " LogHunter 시작"
|
||||
echo "=========================================="
|
||||
echo " Java: $(java -version 2>&1 | head -1)"
|
||||
echo " Data: $LOGHUNTER_HOME"
|
||||
echo "=========================================="
|
||||
|
||||
# 포트 정리
|
||||
echo "[1/4] 8080 포트 정리..."
|
||||
echo "[1/5] 8080 포트 정리..."
|
||||
lsof -ti:8080 | xargs kill -9 2>/dev/null
|
||||
|
||||
# 기존 DB 마이그레이션 (최초 1회)
|
||||
echo "[2/5] 데이터 디렉토리 확인..."
|
||||
if [ -f "./data/loghunter.db" ] && [ ! -f "$LOGHUNTER_HOME/data/loghunter.db" ]; then
|
||||
echo " → 기존 DB 파일 발견, 새 위치로 마이그레이션..."
|
||||
mkdir -p "$LOGHUNTER_HOME/data"
|
||||
cp "./data/loghunter.db" "$LOGHUNTER_HOME/data/loghunter.db"
|
||||
echo " ✓ 마이그레이션 완료: $LOGHUNTER_HOME/data/loghunter.db"
|
||||
else
|
||||
echo " ✓ 데이터 경로 준비됨"
|
||||
fi
|
||||
|
||||
# 프론트엔드 빌드
|
||||
echo "[2/4] 프론트엔드 빌드..."
|
||||
echo "[3/5] 프론트엔드 빌드..."
|
||||
cd frontend
|
||||
npm install --include=dev
|
||||
npm run build
|
||||
cd ..
|
||||
|
||||
# static 폴더 확인
|
||||
echo "[3/4] 빌드 결과 확인..."
|
||||
echo "[4/5] 빌드 결과 확인..."
|
||||
if [ -f "src/main/resources/static/index.html" ]; then
|
||||
echo " ✓ index.html 확인됨"
|
||||
else
|
||||
@@ -33,10 +48,11 @@ else
|
||||
fi
|
||||
|
||||
# 서버 실행
|
||||
echo "[4/4] 서버 실행..."
|
||||
echo "[5/5] 서버 실행..."
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " http://localhost:8080"
|
||||
echo " DB: $LOGHUNTER_HOME/data/loghunter.db"
|
||||
echo " 종료: Ctrl+C"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user