update 23

This commit is contained in:
2026-01-10 22:05:33 +09:00
parent a6a5a291ac
commit d0ba4161e5
7 changed files with 105 additions and 10 deletions

12
.idea/dataSources.xml generated Normal file
View 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
View 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
View File

@@ -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
View File

@@ -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>

View 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);
}
}
}

View File

@@ -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
View 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 ""