설치 문서
준비부터 첫 앨범까지,
한 단계씩 따라오세요.
이 문서는 장비를 설치·관리하는 분을 위한 안내입니다. 초대받은 가족은 서버를 설정하지 않고 준비된 앨범 주소로 접속합니다.
현재 릴리스와 설치 설정 파일 →STEP 1
준비물과 설치 사전점검
집 장비에서 실행하는 StarFrame 프로그램을 Family Node라고 부릅니다. 상시 켜둘 장비와 별도의 백업 위치부터 준비하세요.
- NAS·PC
- 2 코어 / 2 GB 이상 권장. 원본 사진·영상을 담을 여유 공간
- 실행 환경
- Docker·Docker Compose 또는 시놀로지 Container Manager. linux/amd64·linux/arm64 지원, 관리 권한 필요
- 장비 주소
- 공유기 DHCP 예약 등을 이용한 고정 사설 IP
- 포트
- NAS 관리 화면 등에서 80·443 포트를 사용하는지 확인
- 장비 시각
- 정확한 시각과 시간대(Asia/Seoul)
- 백업 위치
- 앨범 원본과 분리된 디스크 또는 별도 저장 위치
모든 NAS의 호환을 보장하지 않습니다. 기존 포트를 바꾸기 전에는 관리 화면에 다시 접속할 방법을 확인하세요.
준비했다면 설치로 →STEP 2
설정 파일을 받아 실행하기
무료 설치 안내에서 현재 릴리스의 설정 파일을 받습니다.
시놀로지 Container Manager
- 프로젝트 › 생성 › 직접 작성을 선택합니다.
- 내려받은 설정 파일 내용을 붙여넣고 프로젝트를 실행합니다.
- starframe이 실행 중인지 확인합니다. media-runtime은 도구를 공유 볼륨에 설치하고 정상 종료합니다.
NAS에 브라우저가 없으면 DSM 역방향 프록시를 먼저 설정한 뒤 HTTPS 주소로 초기 설정에 진입합니다. 다른 PC의 127.0.0.1은 NAS를 가리키지 않습니다.
일반 Docker 환경
서버에서 받은 파일이 있는 폴더를 열어 실행합니다.
docker compose up -d
docker compose ps -astarframe은 실행 중·healthy, media-runtime은 Exited (0)이 정상입니다. 이미지 내려받기나 실행이 실패하면 문제 해결로 이동하세요.
STEP 3
서버 자신에서 첫 접속·초기 설정
서버의 브라우저에서 http://127.0.0.1:8080을 엽니다. 이 주소는 서버 자신에서만 접근할 수 있습니다. 기본 바인딩을 외부 공개로 바꾸지 말고, 다른 기기는 리버스 프록시와 HTTPS를 통해 연결하세요.
- 서버 점검: 설정 마법사의 부족한 항목을 확인합니다.
- 가족 소개·앱 이름: 설치할 가족의 정보와 테마를 설정합니다.
- 소유자 계정: 이 장비를 관리할 계정을 만듭니다.
- 복구 코드: 한 번만 표시되는 코드를 안전한 곳에 보관합니다. 지원 메일에는 보내지 마세요.
초기 설정을 마치고 앨범에 들어가면 성공입니다. 마법사가 열리지 않으면 기동 상태와 접속 위치를 확인하세요.
설정했다면 가족 초대로 →STEP 4
HTTPS 주소를 준비하고 가족 초대하기
먼저 HTTPS 설정을 완료하고 담당자가 해당 주소에서 로그인과 업로드를 확인합니다. STARFRAME_PUBLIC_URL은 가족에게 안내할 실제 HTTPS 주소로 설정합니다.
- 관리자 › 초대에서 초대를 생성하고 해당 가족에게만 전달합니다.
- 가족은 초대받은 주소로 접속해 각자의 계정으로 참여합니다.
- 브라우저에서 사진·영상을 열고, 권한이 있는 가족은 업로드·댓글을 사용합니다.
홈 화면 추가와 알림은 HTTPS 및 기기·브라우저 지원이 필요합니다. iPhone 알림은 홈 화면 추가가 전제입니다. 미리보기의 iOS 설치 안내는 완성된 흐름으로 보장하지 않습니다.
초대 토큰과 복구 코드를 공개하거나 지원 문의에 붙여넣지 마세요.
가족 연결 후 백업 준비 →STEP 5
HTTPS와 제한 모드
HTTP에서는 기본 앨범 열람이 가능하더라도 홈 화면 설치·서비스 워커·알림 등이 꺼진 제한 모드입니다. 신뢰된 인증서가 있는 HTTPS를 준비해야 합니다. 자체 서명 인증서의 경고를 무시하는 방식은 해결책이 아닙니다.
무료 사용자는 도메인/DDNS와 인증서 발급·갱신을 직접 구성합니다. 시놀로지 DDNS와 DSM 인증서, 도메인을 가진 서버의 Caddy·nginx, 사설망의 HTTPS 등 환경에 맞는 경로를 선택합니다.
리버스 프록시에서 꼭 맞출 세 가지
- 원래 Host 보존: 요청의 Host가 바뀌면 업로드·댓글이 CSRF 검사에서 거절됩니다.
- HTTPS 전달과 신뢰 대역: 프록시는
X-Forwarded-Proto: https를 보내고, Family Node의STARFRAME_TRUSTED_PROXIES는 실제 프록시의 주소 대역만 신뢰하도록 설정합니다. 비어 있으면 전달 헤더를 신뢰하지 않습니다. - 업로드·스트리밍: nginx의 업로드 크기·버퍼링·시간 제한을 확인합니다. 큰 영상이나 스트리밍이 중간에 끊기지 않아야 합니다.
nginx에서는 기존 TLS 구성의 해당 location에 다음 항목을 확인합니다. 완성된 서버 설정 전체가 아니며 인증서와 업스트림은 환경에 맞춰야 합니다.
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 0;
proxy_request_buffering off;
proxy_buffering off;
proxy_read_timeout 1h;
proxy_send_timeout 1h;HTTPS에서 로그인 유지와 사진 업로드를 확인하세요. 0.2.0부터는 관리 › 외부 접속·앱 설치 화면에서 지금 접속이 HTTPS로 인식되는지, 초대 링크 주소가 공개 HTTPS 주소인지 바로 볼 수 있습니다. 서버가 발급한 __Host-sf_session 쿠키가 있어야 합니다. 안 되면 전달 헤더와 신뢰 대역부터 확인하고 인증을 끄지 마세요.
시놀로지 DSM 역방향 프록시
제어판 › 로그인 포털 › 고급 › 역방향 프록시에서 소스는 신뢰된 인증서가 연결된 HTTPS 주소·443, 대상은 같은 NAS의 HTTP localhost:8080으로 설정합니다.
X-Forwarded-Proto를 https로 전달합니다. DSM 프록시는 같은 NAS에 있지만 컨테이너 안에서는 도커 네트워크 게이트웨이에서 온 요청으로 보이므로 127.0.0.1/32로는 맞지 않습니다. 앨범의 관리 › 외부 접속·앱 설치 화면에 보이는 그 주소 하나를 /32로 STARFRAME_TRUSTED_PROXIES에 넣으세요(예: 172.18.0.1/32). 큰 영상이 실패하면 DSM 업로드 제한도 확인하세요.
STEP 6
집 밖에서 접속하기
외부접속에는 접근 가능한 주소와 네트워크 경로가 필요합니다. 직접 운영하는 경우 도메인/DDNS, HTTPS, 포트포워딩을 사용자가 설정합니다.
공인 IPv4가 없고 직접 접근 가능한 IPv6도 없는 회선(CGNAT 환경)에서는 외부 직접접속이 성립하지 않습니다. 집 안 전용 HTTPS 구성이나 VPN 계열 사설 네트워크 경로를 검토해야 합니다.
사진과 영상은 가족 기기와 집 장비 사이에서 오갑니다. StarFrame 중앙 서버가 미디어를 저장하거나 릴레이하는 경로는 제공하지 않습니다.
Connect 접속 조건
*.nodes.starframe.kr 주소와 인증서·네트워크 설정 지원은 Connect 가입자 전용 유료 범위입니다. 무료 Core에 기본 제공되는 주소는 아닙니다.
공인 IPv4 또는 직접 접근 가능한 IPv6, CGNAT, 이중 NAT, 자동 포트매핑 지원, 포트 충돌을 먼저 확인합니다. 외부 직접접속이 확인된 환경에서만 사용하며 어느 회선에서나 된다고 보장하지 않습니다.
집 안에서만 주소가 열리지 않나요? DNS 상세 점검
주소가 사설 IP를 가리키면 공유기·리졸버의 DNS 재바인딩 방어가 차단할 수 있습니다. 인증서가 발급돼도 주소를 못 찾을 수 있습니다.
- 해당 집에서 실제로 사용하는 DNS 리졸버의 응답을 확인합니다. 공용 리졸버만 확인하지 마세요.
- 필요하면 공유기의
nodes.starframe.kr재바인딩 예외 또는 해당 이름에만 LAN IP를 응답하는 split DNS를 설정합니다. 방어 기능 전체를 끄지 않습니다. - split DNS를 쓰더라도 DNS-01 인증서 검증용 ACME TXT 레코드는 공개 DNS에 유지합니다.
- 집 안 HTTPS 구성도 어렵다면 VPN 계열 사설 네트워크 경로를 검토합니다.
STEP 7
백업과 업데이트를 별도로 준비하세요.
관리자 › 백업에서 백업을 설정·실행합니다. 백업 기능이 있어도 백업본을 안전한 위치에 보관하는 책임은 담당자에게 있습니다. 사진 업로드를 휴대폰 사진 자동 백업이나 외부 사본 생성으로 오해하지 마세요.
RAID는 백업을 대신하지 않습니다. 원본과 다른 저장장치에 사본을 두고 가능하면 집 밖에도 보관하세요. 성공 표시뿐 아니라 실제 복원 가능 여부도 확인해야 합니다. StarFrame은 고객 원본의 사본을 보관하지 않습니다.
업데이트·되돌리기 전에 확인할 것
현재 이미지 다이제스트와 설정을 기록하고 사진 원본·DB·설정을 포함한 별도 백업을 먼저 확보합니다. 새 릴리스의 안내를 확인한 뒤 업데이트하고 실행 상태와 로그인·열람을 확인하세요.
업데이트 도구의 스키마 스냅샷은 사진 원본을 포함하는 전체 백업이 아닙니다. 구버전은 더 새 스키마의 DB를 열지 않으므로 이미지 변경만으로 되돌릴 수 없는 경우가 있습니다. 백업 복원을 포함한 대응이 필요합니다.
알림 키 설정이 빠진 백업으로 복원하면 가족 기기의 알림 재구독이 필요할 수 있습니다. 복원 때 원본·DB·설정을 함께 점검하세요.
STEP 8
막힌 단계부터 확인하세요.
- 화면이 안 열림
- 서버에서 실행했는지, starframe이 healthy인지 확인합니다. 다른 기기의 127.0.0.1은 서버 주소가 아닙니다. 첫 접속
- 로그인·업로드 실패
- Host, HTTPS 전달 헤더, 신뢰 프록시, 업로드 제한을 확인합니다. HTTPS 설정
- 집 밖에서 실패
- 공인 IP·이중 NAT·포트 충돌과 실제 외부 경로를 확인합니다. 접속 조건
- 집 안에서 실패
- DNS 재바인딩·split DNS와 신뢰된 인증서를 확인합니다. Connect 조건
기동 로그 확인 명령입니다. 로그를 문의에 첨부하기 전 주소·계정·토큰 등 민감한 내용은 제거하세요.
docker compose logs --tail=50 starframe어디서 막혔는지 알려주세요.
장비 기종, 운영 환경, 필요한 도움과 막힌 단계만 적어 주세요. 비밀번호·API 키·가족 사진·초대 토큰은 보내지 마세요.
메일 앱을 열 뿐, 문의가 자동 접수되는 것은 아닙니다. 주소 복사는 페이지 아래에서 할 수 있습니다.