DOCS / 01
첫 프로젝트를
공개해보세요.
코드는 GitHub에 남습니다. JuContentBox에는 사용 가능한 릴리즈(Release)만 연결됩니다. 별도의 JuContentBox 비밀번호는 없습니다.
- GITHUB코드와 파일은 여기 그대로
- JUCRelease 정보만 읽어서
- JU CONTENTBOX사람들이 찾을 수 있게 연결
00 / 먼저 알아둘 것
- juc가 뭔가요?
- 터미널(명령어를 입력하는 검은 창)에서 실행하는 작은 프로그램입니다. GitHub에 올려둔 프로젝트를 JuContentBox에 "여기 새 버전이 있어요"라고 알리는 역할만 합니다. 이 저장소 안에서는
node cli/juc.mjs가 같은 명령입니다. - 내 소스 코드가 업로드되나요?
- 아니요. 소스 코드,
.env같은 설정 파일, 실행 파일(바이너리), Git 기록은 전부 GitHub에만 있습니다. JuContentBox는 그 어느 것도 받지 않습니다. - 계정을 또 만들어야 하나요?
- 아니요. GitHub 계정으로만 로그인합니다. JuContentBox 전용 비밀번호나 토큰을 직접 복사할 일은 없습니다.
- juc push는 실제로 무엇을 보내나요?
- 프로젝트 이름, GitHub 주소, Release 버전 번호(예: v0.3.1), Release 페이지 주소, 릴리즈 노트 글. 이 다섯 가지 텍스트뿐입니다.
GIT PUSH
코드 → GitHub
여러분이 이미 쓰는 명령. 파일이 GitHub로 올라갑니다.
JUC PUSH
Release 정보 → JuContentBox
새 Release가 있다는 신호만 보냅니다. 파일은 움직이지 않습니다.
JuContentBox가 받지 않는 것: 소스 코드 · .env · 실행 파일(바이너리) · Git 기록
자주 나오는 말
- 저장소 (repository)
- GitHub에 올려둔 프로젝트 하나. 주소가 github.com/내아이디/프로젝트이름 모양입니다.
- Release
- GitHub 저장소 페이지 오른쪽 "Releases"에서 만드는 배포 버전입니다. v1.0.0 같은 이름을 붙이고, 다운로드 파일과 설명을 함께 올릴 수 있습니다. JuContentBox는 이 Release만 봅니다.
- origin
- 내 컴퓨터의 프로젝트 폴더가 어느 GitHub 저장소와 연결되어 있는지 적힌 주소입니다.
git clone으로 받은 폴더에는 이미 있습니다. - 토큰 · 인증
- "이 컴퓨터는 @내아이디가 쓰는 게 맞다"는 표시입니다.
juc login이 브라우저 승인으로 자동으로 만들어 내 컴퓨터에만 보관하고, 화면에 보여주지 않습니다. - 메타데이터
- 파일 자체가 아닌, 파일에 대한 설명 글입니다. 프로젝트 이름, 버전 번호, 주소 같은 것. JuContentBox가 다루는 전부입니다.
처음 한 번 순서
- 1 GITHUB 로그인사이트 오른쪽 위 Sign in
- 2 JUC LOGIN터미널에서 로그인, 브라우저가 열림
- 3 프로젝트 폴더 이동cd 내프로젝트
- 4 JUC INIT이 폴더를 JuContentBox에 연결
- 5 GITHUB RELEASE 생성GitHub 웹에서 v1.0.0 만들기
- 6 JUC STATUS새 Release가 보이는지 확인
- 7 JUC PUSH공개
터미널에서 juc만 입력하면 이 순서를 그대로 보여줍니다. 막히면 juc help.
juc
01 / LOGIN — 로그인
브라우저가 열리고 GitHub 계정으로 로그인합니다. 새 계정이나 비밀번호는 없습니다.
juc login
- CLI터미널이 브라우저를 엽니다
- WEBGitHub 로그인 상태를 확인
- AUTHORIZEAUTHORIZE 버튼을 누릅니다
- VERIFIED터미널에 ✓ Signed in as @내아이디
브라우저가 안 열리면 터미널에 적힌 승인 페이지 주소를 복사해서 브라우저 주소창에 붙여 넣으세요. 그 페이지에서 AUTHORIZE를 누르면 터미널이 이어서 진행됩니다.
승인을 오래 두면(약 10분) 만료됩니다. 그때는 juc login 을 다시 실행하면 됩니다.
로그아웃
juc logout
이 컴퓨터에 저장된 로그인 정보를 지우고, 서버에 있던 인증도 해제합니다. 공용 컴퓨터를 쓴 뒤에는 꼭 실행하세요.
02 / INIT — 폴더 연결
공개할 프로젝트 폴더로 이동한 뒤 처음 한 번만 실행합니다. 폴더의 GitHub 주소(origin)를 자동으로 읽습니다.
cd my-project juc init
- GIT REMOTE폴더의 GitHub 주소를 찾습니다 (HTTPS, SSH 모두 가능)
- OWNERSHIP그 저장소가 로그인한 계정의 것인지 GitHub에 확인
- PROJECT.jucontent.yml 파일을 만듭니다. 비밀 값 없음
만들어지는 파일은 이 두 줄이 전부입니다.
project: jurelay source: https://github.com/ju0o/JuRelay
본인 계정 아래의 공개 저장소만 연결할 수 있습니다. 조직(Organization) 저장소는 아직 지원하지 않습니다. 이미 등록된 프로젝트라면 새로 만들지 않고 폴더만 연결합니다.
03 / STATUS — 상태 보기
GitHub의 최신 Release와 JuContentBox에 공개된 버전을 나란히 보여줍니다. 아무것도 바꾸지 않으니 언제든 실행해도 됩니다.
juc status
GitHub Release v0.3.1 JuContentBox v0.3.1 현재 최신 상태입니다. ✓
GitHub 쪽이 더 새로우면 이렇게 알려줍니다.
새로운 Release 1개를 찾았습니다. GitHub v0.4.0 JuContentBox v0.3.1 공개하려면: juc push
04 / PUSH — 공개
이것은 git push가 아닙니다. git push는 코드를 GitHub로 보내고, juc push는 Release 정보를 JuContentBox로 보냅니다.
juc push
- GITHUB RELEASE가장 최신 공개 Release를 읽습니다
- NEW VERSION아직 JuContentBox에 없는 버전인지 확인
- JUC SIGNAL공개할까요? [Y/n] 에 Y
- DISCOVERABLE프로젝트 페이지에 새 버전이 보입니다
새 Release를 발견했습니다. JuRelay v0.4.0 JuContentBox에는 파일을 업로드하지 않습니다. GitHub Release 정보만 연결합니다. 공개할까요? [Y/n]
두 곳의 버전이 이미 같으면 "새 Release가 없습니다"라고 말하고 끝납니다. 같은 버전을 두 번 공개할 수는 없습니다.
05 / EDIT — 프로젝트 정보 고치기
로그인 후 My JU → 프로젝트 → EDIT. 이름, 한 줄 소개, 종류, 분류, 웹사이트 주소, GitHub 주소를 바꿀 수 있습니다.
GitHub 주소를 바꾸면 그 저장소가 본인 것인지 다시 확인합니다. 소유자, 프로젝트 주소(slug), 이미 공개된 버전 번호는 바꿀 수 없습니다. 릴리즈 노트는 고칠 수 있고, 잘못 올린 Release는 보관(archive) 처리해 최신 목록에서 내릴 수 있습니다.
06 / SAFETY — 안전, .jucignore
JuContentBox CLI does not upload your .env. — juc는 .env 파일을 열지도, 보내지도 않습니다.
juc가 읽는 파일은 프로젝트 폴더 맨 위의 README, LICENSE, package.json, pyproject.toml, Cargo.toml, go.mod, .jucontent.yml 만입니다. 이름과 한 줄 소개를 자동으로 채우기 위해서입니다. 열쇠 파일(.pem, .key), credentials, .aws, .ssh, node_modules, .git 은 절대 읽지 않습니다.
.jucignore 파일에 이름을 적으면 위 목록에서도 그 파일은 읽지 않습니다. 보내는 글에 비밀 값처럼 보이는 문자열이 있으면 어느 항목인지 알려주고 멈춥니다. 값 자체는 화면에 찍지 않습니다.
폴더에 .env 가 있어도 공개는 막히지 않습니다. 그냥 건드리지 않을 뿐입니다.
07 / TROUBLESHOOTING — 안 될 때
- "아직 로그인하지 않았습니다"
juc login을 먼저 실행하세요. 브라우저에서 AUTHORIZE 까지 눌러야 끝납니다.- "Git 저장소를 찾지 못했습니다"
- 지금 있는 폴더가 GitHub와 연결된 폴더가 아닙니다.
cd로 프로젝트 폴더에 들어간 뒤 다시 실행하세요. - "이 저장소는 현재 로그인한 GitHub 계정의 프로젝트가 아닙니다"
- 본인이 만든 저장소만 직접 공개할 수 있습니다. 다른 사람의 프로젝트는 추천해주세요.
- "아직 이 폴더는 JuContentBox 프로젝트로 연결되지 않았습니다"
- 그 폴더에서 처음 한 번
juc init을 실행하세요. - "GitHub Release를 찾지 못했습니다"
- GitHub 저장소 페이지 → Releases → Draft a new release 에서 v1.0.0 같은 태그로 Release를 만들고 Publish 한 뒤 다시
juc status. - "새 Release가 없습니다"
- 정상입니다. GitHub와 JuContentBox의 버전이 같아서 할 일이 없습니다.
- "이 버전은 이미 JuContentBox에 공개되어 있습니다"
- 같은 버전은 두 번 올릴 수 없습니다. GitHub에서 새 Release를 만든 뒤 다시 push 하세요.
- "비밀 값처럼 보이는 문자열을 찾았습니다"
- 알려준 항목(예: 릴리즈 노트)에서 그 문자열을 지운 뒤 다시 실행하세요.
- "GitHub에 연결하지 못했습니다"
- 인터넷 연결 문제이거나 GitHub의 요청 횟수 제한입니다. 잠시 후 다시 실행하세요.
- 브라우저가 열리지 않아요
- 터미널에 적힌 승인 페이지 주소를 복사해서 브라우저에 직접 붙여 넣으세요.
그래도 막히면 juc help 를 실행하거나 이 페이지(https://jucontentbox.pages.dev/docs)를 다시 확인하세요.
08 / CLI REFERENCE — 명령어 모음
명령어는 이 여섯 개가 전부입니다.
juc
juc
처음 사용자용 순서 안내를 보여줍니다.
juc help
juc help
모든 명령어와 한 줄 설명, 예시.
juc login
juc login
GitHub 계정으로 로그인. 브라우저가 열리고 끝나면 ✓ Signed in as @내아이디.
juc logout
juc logout
이 컴퓨터의 로그인 정보를 지우고 서버 인증도 해제. 끝나면 ✓ Signed out.
juc init
juc init
현재 폴더를 JuContentBox 프로젝트로 연결. 끝나면 .jucontent.yml 이 생깁니다. 선택: --project 이름, --category 분류, --yes.
juc status
juc status
GitHub Release와 JuContentBox 버전 비교. "현재 최신 상태입니다. ✓" 또는 "새로운 Release 1개를 찾았습니다."
juc push
juc push
새 GitHub Release를 JuContentBox에 공개. 파일은 올리지 않습니다. 끝나면 ✓ Published 프로젝트 v버전. 선택: --yes 로 확인 질문 건너뛰기.