DOCS / 01

첫 프로젝트를
공개해보세요.

코드는 GitHub에 남습니다. JuContentBox에는 사용 가능한 릴리즈(Release)만 연결됩니다. 별도의 JuContentBox 비밀번호는 없습니다.

  1. GITHUB코드와 파일은 여기 그대로
  2. JUCRelease 정보만 읽어서
  3. 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. 1 GITHUB 로그인사이트 오른쪽 위 Sign in
  2. 2 JUC LOGIN터미널에서 로그인, 브라우저가 열림
  3. 3 프로젝트 폴더 이동cd 내프로젝트
  4. 4 JUC INIT이 폴더를 JuContentBox에 연결
  5. 5 GITHUB RELEASE 생성GitHub 웹에서 v1.0.0 만들기
  6. 6 JUC STATUS새 Release가 보이는지 확인
  7. 7 JUC PUSH공개

터미널에서 juc만 입력하면 이 순서를 그대로 보여줍니다. 막히면 juc help.

juc

01 / LOGIN — 로그인

브라우저가 열리고 GitHub 계정으로 로그인합니다. 새 계정이나 비밀번호는 없습니다.

juc login
  1. CLI터미널이 브라우저를 엽니다
  2. WEBGitHub 로그인 상태를 확인
  3. AUTHORIZEAUTHORIZE 버튼을 누릅니다
  4. VERIFIED터미널에 ✓ Signed in as @내아이디

브라우저가 안 열리면 터미널에 적힌 승인 페이지 주소를 복사해서 브라우저 주소창에 붙여 넣으세요. 그 페이지에서 AUTHORIZE를 누르면 터미널이 이어서 진행됩니다.

승인을 오래 두면(약 10분) 만료됩니다. 그때는 juc login 을 다시 실행하면 됩니다.

로그아웃

juc logout

이 컴퓨터에 저장된 로그인 정보를 지우고, 서버에 있던 인증도 해제합니다. 공용 컴퓨터를 쓴 뒤에는 꼭 실행하세요.

02 / INIT — 폴더 연결

공개할 프로젝트 폴더로 이동한 뒤 처음 한 번만 실행합니다. 폴더의 GitHub 주소(origin)를 자동으로 읽습니다.

cd my-project
juc init
  1. GIT REMOTE폴더의 GitHub 주소를 찾습니다 (HTTPS, SSH 모두 가능)
  2. OWNERSHIP그 저장소가 로그인한 계정의 것인지 GitHub에 확인
  3. 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
  1. GITHUB RELEASE가장 최신 공개 Release를 읽습니다
  2. NEW VERSION아직 JuContentBox에 없는 버전인지 확인
  3. JUC SIGNAL공개할까요? [Y/n] 에 Y
  4. 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 로 확인 질문 건너뛰기.