Files
myProfile/README.md
T
2026-05-31 21:05:59 +09:00

4.0 KiB

포트폴리오 사이트 - 설치 가이드

JSON + PHP 기반의 가벼운 포트폴리오 사이트입니다. Synology NAS Web Station에서 동작하도록 설계되었습니다.

📁 파일 구조

portfolio/
├── index.html              # 메인 페이지 (프로젝트 목록)
├── profile.html            # 프로필 페이지
├── generate_password.php   # 비밀번호 해시 생성기 (사용 후 삭제!)
├── api/
│   ├── config.php          # 설정 (비밀번호 해시 위치)
│   ├── auth.php            # 로그인/로그아웃 API
│   ├── projects.php        # 프로젝트 CRUD API
│   ├── profile.php         # 프로필 수정 API
│   └── upload.php          # 이미지 업로드 API
├── data/
│   ├── projects.json       # 프로젝트 데이터
│   ├── profile.json        # 프로필 데이터
│   └── .htaccess           # 직접 접근 차단
└── uploads/
    └── .htaccess           # PHP 실행 차단

🚀 설치 (Synology NAS 기준)

1. Web Station 설치 및 PHP 활성화

  • Package Center에서 Web Station 설치
  • Web Station → Web Service Portal에서 PHP 8.x 활성화
  • Web Service에서 사이트의 PHP 버전을 8.x로 지정

2. 파일 업로드

  • File Station에서 /web/portfolio/ 폴더 생성
  • 위 모든 파일을 해당 폴더에 업로드

3. 권한 설정

다음 폴더는 PHP가 쓸 수 있어야 합니다:

  • data/ (JSON 쓰기)
  • uploads/ (이미지 업로드)

File Station에서 두 폴더의 권한을 http 그룹에 쓰기 가능하게 설정하세요.

4. 비밀번호 설정 (⚠️ 매우 중요)

(A) 해시 생성 브라우저에서 접속:

http://your-nas/portfolio/generate_password.php

원하는 비밀번호를 입력하면 해시가 출력됩니다.

(B) config.php 수정 api/config.php 파일을 열어 아래 줄을 찾고:

define('ADMIN_PASSWORD_HASH', '$2y$10$YourHashWillGoHere...');

방금 생성된 해시로 교체합니다.

(C) generate_password.php 삭제 보안을 위해 반드시 삭제하세요!

5. 접속

  • 메인: http://your-nas/portfolio/
  • 관리자 로그인: 페이지 하단 우측 방패 아이콘(🛡️) 클릭

🎯 기능

일반 방문자

  • 프로젝트 목록 보기
  • 프로필 페이지에서 자기소개/스킬/타임라인/연락처 확인

관리자 (로그인 후)

  • 새 프로젝트 등록
  • 기존 프로젝트 수정/삭제
  • 프로필 정보 편집 (이름, 사진, 자기소개)
  • 기술 스택 추가/수정/삭제 (스킬 바)
  • 타임라인 추가/수정/삭제
  • SNS 링크 관리

🔒 보안 체크리스트

  • generate_password.php 삭제했는가?
  • config.php의 ADMIN_PASSWORD_HASH를 실제 해시로 교체했는가?
  • HTTPS 설정 (NAS의 Reverse Proxy 또는 Let's Encrypt)
  • 비밀번호는 8자 이상, 영문/숫자/기호 조합
  • data/, uploads/ 폴더의 .htaccess 파일이 동작하는지 확인

💾 백업

데이터는 모두 텍스트 파일이므로 Git으로 관리할 수 있습니다:

cd /web/portfolio
git init
git remote add origin http://your-nas:3000/your-name/portfolio.git
git add .
git commit -m "initial"
git push -u origin main

data/*.json 파일이 변경 이력으로 남아 언제든 복구 가능합니다.

🐛 문제 해결

"데이터를 읽을 수 없습니다" 오류data/ 폴더의 쓰기 권한을 확인하세요.

로그인이 안 됨config.php의 ADMIN_PASSWORD_HASH가 올바르게 교체되었는지 확인하세요.

.htaccess가 동작하지 않음 → Web Station에서 Apache 사용 + mod_rewrite, AllowOverride All 설정 필요. nginx를 쓴다면 nginx 설정으로 동일한 차단 규칙을 추가해야 합니다.

🔄 향후 확장 아이디어

  • 프로젝트별 상세 페이지 (markdown 지원)
  • 태그/카테고리 필터링
  • 방문자 통계
  • 다국어 지원 (i18n)
  • Gitea API 연동으로 저장소 정보 자동 가져오기