MariaDB 완전 마이그레이션 및 NAS 배포 최적화

- MariaDB 환경별 자동 감지 (Windows/NAS/Linux)
- Unix Socket 및 TCP 연결 지원
- 완전한 UTF8MB4 스키마 적용
- 자동 초기화 스크립트 개선
- NAS 배포 스크립트 MariaDB 지원
- 환경변수 기반 설정 시스템
- 상세한 배포 가이드 문서화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-22 13:38:25 +09:00
parent ced3fd03e4
commit 7be1f2ed07
15 changed files with 833 additions and 44 deletions

60
test-login.html Normal file
View File

@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>Login Test</title>
</head>
<body>
<h1>Admin Login Test</h1>
<div>
<input type="email" id="email" value="admin@jaryo.com" placeholder="Email">
<input type="password" id="password" placeholder="Password">
<button onclick="testLogin()">Test Login</button>
</div>
<div id="result"></div>
<script>
async function testLogin() {
const email = document.getElementById('email').value;
const password = document.getElementById('password').value;
const result = document.getElementById('result');
console.log('Testing login with:', { email, password });
try {
const response = await fetch('/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
credentials: 'include',
body: JSON.stringify({ email, password })
});
console.log('Response status:', response.status);
console.log('Response headers:', response.headers);
const data = await response.json();
console.log('Response data:', data);
if (response.ok) {
result.innerHTML = '<p style="color: green;">✅ Login Success: ' + JSON.stringify(data, null, 2) + '</p>';
// Test session
const sessionResponse = await fetch('/api/auth/session', {
credentials: 'include'
});
const sessionData = await sessionResponse.json();
console.log('Session data:', sessionData);
result.innerHTML += '<p style="color: blue;">📋 Session: ' + JSON.stringify(sessionData, null, 2) + '</p>';
} else {
result.innerHTML = '<p style="color: red;">❌ Login Failed: ' + JSON.stringify(data, null, 2) + '</p>';
}
} catch (error) {
console.error('Login error:', error);
result.innerHTML = '<p style="color: red;">❌ Error: ' + error.message + '</p>';
}
}
</script>
</body>
</html>