Files
tier-maker/docs/ugreen-nas-deploy.md

3.1 KiB

UGREEN NAS 배포 가이드

개요

  • 운영 기본 컨테이너는 mariadb, backend, frontend 3개다.
  • phpmyadmin은 필요할 때만 admin 프로필로 추가 실행한다.
  • 외부 공개는 frontend 컨테이너 하나만 하고, /api, /uploads, /health는 내부적으로 backend로 프록시한다.
  • 도메인은 https://tmaker.sori.studio 기준으로 설정한다.

파일

1. 프로젝트 업로드

  • NAS 작업 폴더에 현재 프로젝트를 그대로 업로드한다.
  • 기존 로컬 MariaDB 내용은 무시하고 새 운영 DB로 시작해도 된다.

2. 환경변수 파일 준비

  • 루트에서 .env.production.example를 복사해 .env.production으로 만든다.
  • 최소 변경값:
    • MARIADB_ROOT_PASSWORD
    • MARIADB_PASSWORD
    • SESSION_SECRET

예시:

MARIADB_ROOT_PASSWORD=very-strong-root-password
MARIADB_DATABASE=tier_cursor
MARIADB_USER=tier_cursor
MARIADB_PASSWORD=very-strong-app-password
SESSION_SECRET=very-strong-random-session-secret

3. 컨테이너 실행

docker compose --env-file .env.production -f docker-compose.prod.yml up -d --build
  • phpMyAdmin까지 같이 띄우려면:
docker compose --env-file .env.production -f docker-compose.prod.yml --profile admin up -d --build

4. NAS 리버스 프록시

  • 외부 도메인: tmaker.sori.studio
  • 내부 대상 프로토콜: http
  • 내부 대상 호스트: NAS IP 또는 localhost
  • 내부 대상 포트: 8080

즉 NAS 리버스 프록시는 frontend 컨테이너의 8080만 바라보면 된다.

5. HTTPS / 쿠키

  • 현재 프로덕션 컴포즈는 SESSION_COOKIE_SECURE=true를 사용한다.
  • 따라서 tmaker.sori.studio에는 HTTPS 인증서가 연결되어 있어야 한다.
  • NAS 리버스 프록시가 HTTPS 종료를 하고 내부는 http://frontend:80 또는 localhost:8080으로 전달하면 된다.

6. 데이터 위치

  • MariaDB 데이터: Docker volume tmaker_mariadb_data
  • 업로드 파일: Docker volume tmaker_uploads
  • 세션 파일: Docker volume tmaker_sessions

7. 점검 포인트

  • 메인 접속: https://tmaker.sori.studio
  • 헬스체크: https://tmaker.sori.studio/health
  • 관리자 로그인 후:
    • 게임 생성
    • 썸네일 업로드
    • 티어표 저장
    • 이미지 다운로드

8. 참고

  • 현재 업로드 이미지는 서버 저장 전에 리사이즈/압축하지 않는다.
  • 운영 중 원본 이미지가 많이 쌓이면 이후 sharp 기반 최적화 단계를 추가하는 것이 좋다.