3.1 KiB
3.1 KiB
UGREEN NAS 배포 가이드
개요
- 운영 기본 컨테이너는
mariadb,backend,frontend3개다. phpmyadmin은 필요할 때만admin프로필로 추가 실행한다.- 외부 공개는
frontend컨테이너 하나만 하고,/api,/uploads,/health는 내부적으로backend로 프록시한다. - 도메인은
https://tmaker.sori.studio기준으로 설정한다.
파일
- 프로덕션 컴포즈: docker-compose.prod.yml
- 백엔드 이미지: backend/Dockerfile
- 프런트 이미지: frontend/Dockerfile
- 프런트 Nginx 프록시: frontend/nginx.conf
- 환경변수 예시: .env.production.example
1. 프로젝트 업로드
- NAS 작업 폴더에 현재 프로젝트를 그대로 업로드한다.
- 기존 로컬 MariaDB 내용은 무시하고 새 운영 DB로 시작해도 된다.
2. 환경변수 파일 준비
- 루트에서
.env.production.example를 복사해.env.production으로 만든다. - 최소 변경값:
MARIADB_ROOT_PASSWORDMARIADB_PASSWORDSESSION_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기반 최적화 단계를 추가하는 것이 좋다.