moa-lite는 MOA의 화면과 플레이어를 그대로 옮겨, 서버 없이 Vercel 무료 요금제에서 돌아가게 만든 개인용 영상 앱입니다. 아래 세 단계를 따라 하면 내 앱이 만들어집니다.
영상과 확장 저장소는 들어 있지 않습니다. 처음에는 빈 앱이고, 쓸 Mangayomi JS 저장소는 직접 추가합니다. 무엇을 추가하고 보는지는 사용자의 책임입니다. 면책 조항
첫 관리자 계정을 만들 때 쓰는 설정 코드와, 로그인·저장된 API 키를 보호하는 앱 비밀키입니다. 이 브라우저 안에서만 만들어지고 어디에도 전송되지 않습니다.
값은 자동으로 저장되지 않으니 파일로 보관해 두세요. 설정 코드는 3단계에서 한 번 더 씁니다. 앱 비밀키는 업데이트할 때도 바꾸지 마세요. 바꾸면 저장한 TMDB·Gemini 키를 다시 넣어야 합니다.
원클릭 배포는 처음 설치하기 간편하지만, 내 저장소가 Fork가 아닌 복사본으로 만들어져 이후 업데이트가 조금 번거롭습니다. 업데이트를 자주 받을 생각이면 아래 Fork로 배포하기도 좋습니다.
먼저 1단계에서 두 값을 만들어 주세요.
1이 미리 들어가 있어요. 그대로 두세요.계정 연결과 약관 동의는 직접 진행해야 합니다. 배포가 끝나면 앱 미리보기를 눌러 내 앱 주소(이름.vercel.app)를 엽니다.
/__moa/setup을 붙여 엽니다.다른 사람은 계정과 초대에서 초대합니다. 휴대폰에서는 브라우저 메뉴의 홈 화면에 추가로 앱처럼 쓸 수 있습니다.
이미 Upstash 저장 공간을 만든 적 있는 계정에서는 2단계 새 창에 Free 없이 유료 요금제만 보일 수 있습니다. 이때는 Upstash 콘솔에서 Free 저장 공간을 직접 만들고, 저장소를 Fork해서 배포합니다. Fork는 GitHub의 Sync fork 버튼으로 업데이트할 수 있어 편합니다. 1단계의 두 값은 그대로 씁니다.
주소는 https://로 시작하는 REST 주소입니다. redis://나 rediss://로 시작하는 주소는 쓰지 않습니다. 붙여 넣은 값은 C단계에서 한꺼번에 복사하는 데만 쓰입니다.
./, 빌드 설정은 그대로 둡니다. 저장소의 vercel.json을 씁니다.1GitHub에서 Star를 눌러 주시면 프로젝트를 이어 가는 데 큰 힘이 됩니다. 내 서버에서 Aniyomi 확장·내 영상 파일·FFmpeg 변환까지 쓰고 싶다면 Docker판 MOA를 둘러보세요.
필요한 환경변수가 빠졌거나 형식이 맞지 않는 상태입니다. 내 앱 주소 뒤에 /api/health를 붙여 열면 빠진 항목이 missing에 표시됩니다. "ok": true가 나오면 정상입니다.
APP_SECRET — 32자 이상이어야 합니다. 1단계에서 만든 64자 값을 쓰세요.SETUP_CODE — AB12-CD34-EF56-7890처럼 영문·숫자 4자리씩 네 묶음이어야 합니다.UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN — 저장 공간이 연결되지 않았습니다. 아래 항목을 보세요.값을 고친 뒤에는 Deployments → ⋯ → Redeploy를 눌러야 적용됩니다.
이렇게 연결하면 Vercel이 KV_REST_API_URL·KV_REST_API_TOKEN을 넣어 주며, moa-lite는 이 이름도 읽습니다. Upstash 콘솔에서 직접 복사했다면 UPSTASH_REDIS_REST_URL·UPSTASH_REDIS_REST_TOKEN으로 넣습니다. 주소는 https://로 시작해야 합니다.
이미 Upstash 저장 공간을 만든 적 있는 계정에서는 Vercel 화면에 Pay as you go나 Fixed 같은 유료 요금제만 보일 수 있습니다. Pay as you go는 Free의 무료 사용량이 따로 남지 않고 처음부터 사용량만큼 요금이 붙으니 고르지 마세요.
대신 Fork로 배포하기를 따라 Upstash 콘솔에서 Free 저장 공간을 직접 만들어 연결하세요.
Vercel 프로젝트의 Settings → Environment Variables에서 SETUP_CODE 값을 확인할 수 있습니다. 새 코드로 바꾸려면 이 페이지에서 다시 만들어 값을 바꾸고 Redeploy합니다. 설정 코드는 관리자 계정이 하나도 없을 때만 쓰입니다.
Fork로 배포했다면 GitHub에서 내 저장소의 main 브랜치를 선택하고 Sync fork → Update branch를 누릅니다. Vercel이 자동으로 새로 배포합니다.
Vercel 배포 시작으로 배포했다면 내 저장소가 Fork가 아닌 복사본이라 이 버튼이 없습니다. 배포 문서의 새 버전 받기 명령으로 가져옵니다.
Redeploy만으로 원본의 최신 코드를 가져오지는 않습니다. 선택한 기존 배포를 다시 빌드하는 기능입니다. APP_SECRET과 Upstash 저장 공간을 그대로 두면 계정과 기록이 유지됩니다.
Deployment Blocked와 커밋 작성자 권한 오류가 나오면 아래 항목을 확인하세요.
The deployment was blocked because the commit author did not have contributing access 오류에 해당합니다. Vercel Hobby의 비공개 저장소는 커밋 작성자가 프로젝트를 소유한 Hobby 계정과 연결되어 있어야 합니다. 원본 코드를 가져와도 작성자는 원본 개발자로 남을 수 있습니다. Vercel 공식 안내
<!-- deployment check -->를 추가합니다. 이미 있으면 주석 안에 날짜 등을 붙여 바꿉니다. 이 주석은 README 화면에 표시되지 않습니다.Vercel에 배포해도 원본 사이트의 접근 제한·Cloudflare 인증·데이터센터 IP 차단은 풀리지 않고, 쓸 수 있는 소스도 저장소마다 다릅니다. 영상은 브라우저가 원본에서 직접 받으므로 브라우저가 바로 재생할 수 있는 HTTPS MP4·WebM·HLS만 재생됩니다. WebView가 필요한 소스나 FFmpeg 변환이 필요한 포맷은 지원하지 않습니다.
PC에서는 선택 사항인 연결 확장을 설치하면 내 브라우저로 원본에 접속합니다. 설치 방법은 배포 문서를 참고하세요.
Vercel Hobby와 Upstash Free의 사용량 한도 안에서는 무료입니다. 한도는 무제한이 아니며, Vercel Hobby는 개인·비상업 용도로만 쓸 수 있습니다. 관리자 계정의 설정 → 운영 → 진단 · 할당량에서 한도와 공식 사용량 화면 링크를 확인할 수 있습니다. 유료 요금제를 고르면 요금이 나올 수 있으니 직접 확인하세요.