Neurium Guide

GitHub ↔ Neurium 연동 가이드

게시됨

2026년 4월 17일

🚀 GitHub ↔ Neurium 연동 가이드

Neurium은 당신의 GitHub 레포지토리 문서(.md 파일)를 자동으로 동기화합니다. 이제 더 이상 문서를 두 곳에서 이중으로 관리할 필요가 없습니다.


🛠 시작하기 전에: 3단계 요약

  1. 🔑 API Key 발급 (Neurium 설정)
  2. 🔐 Secrets 등록 (GitHub 레포지토리 설정)
  3. ⚙️ Workflow 추가 (.github/workflows/)

🔑 1단계: API Key 발급

⚠️ 주의: 발급된 API Key는 보안상 최초 1회만 화면에 표시됩니다. 반드시 안전한 곳에 복사해두세요.

  1. Neurium 설정 페이지로 이동합니다.
  2. API Keys 섹션에서 [ + 새 API Key 발급 ] 버튼을 클릭합니다.
  3. 용도에 맞는 이름(예: github-sync)을 입력하고 발급을 완료합니다.
  4. 생성된 nrm_... 형태의 Key를 복사합니다.

🔐 2단계: GitHub Secrets 등록

동기화를 적용할 GitHub 레포지토리의 SettingsSecrets and variablesActions 메뉴로 이동하여 다음 두 가지 Repository secret을 추가합니다.

Secret NameSecret Value
NEURIUM_API_URLhttps://neurium.vercel.app
NEURIUM_API_KEY앞서 발급받은 API Key (nrm_...)

⚙️ 3단계: Workflow 파일 추가

레포지토리에 .github/workflows/sync-docs-to-neurium.yml 경로로 새 파일을 생성하고, 아래 내용을 복사해 넣으세요.

<details> <summary><b>📄 워크플로우 코드 보기 (클릭하여 펼치기)</b></summary>
name: 📚 Sync Docs → Neurium

on:
  push:
    branches: [main]
    paths:
      - '**/*.md'
  workflow_dispatch:
    inputs:
      mode:
        description: '동기화 모드'
        required: true
        default: changed
        type: choice
        options:
          - changed
          - all

jobs:
  sync:
    name: Sync to Neurium
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 2

      - name: Resolve files to sync
        id: files
        run: |
          MODE="${{ github.event.inputs.mode || 'changed' }}"
          if [ "$MODE" = "all" ]; then
            FILES=$(find . -name "*.md" \
              -not -path "*/node_modules/*" \
              -not -path "*/.git/*" \
              | sed 's|^\./||' | tr '\n' ' ')
          else
            FILES=$(git diff --name-only HEAD~1 HEAD -- '*.md' \
              | grep -v node_modules | tr '\n' ' ')
          fi
          echo "list=$FILES" >> $GITHUB_OUTPUT

      - name: Sync to Neurium
        if: steps.files.outputs.list != ''
        env:
          NEURIUM_API_URL: ${{ secrets.NEURIUM_API_URL }}
          NEURIUM_API_KEY: ${{ secrets.NEURIUM_API_KEY }}
          REPOSITORY: ${{ github.repository }}
        run: |
          for FILE in ${{ steps.files.outputs.list }}; do
            [ ! -f "$FILE" ] && continue
            TITLE=$(echo "$FILE" | sed 's/\.md$//')
            curl -s -X POST "$NEURIUM_API_URL/api/notes/upsert" \
              -H "Authorization: Bearer $NEURIUM_API_KEY" \
              -H "Content-Type: application/json" \
              -d "$(jq -n \
                --arg title "$TITLE" \
                --arg content "$(cat "$FILE")" \
                --arg repository "$REPOSITORY" \
                '{title:$title,content:$content,repository:$repository,status:"active"}')"
            echo "✅ $FILE"
          done
</details>

💡 어떻게 동작하나요?

🔄 자동화된 백그라운드 동기화

main 브랜치에 Markdown(.md) 파일이 Push될 때마다 Neurium으로 즉시 동기화됩니다.

📁 스마트한 폴더 분류

GitHub 레포지토리 이름에 맞춰 📦 owner/repo-name 형태의 Workspace 폴더가 Neurium에 자동으로 생성됩니다.

예시)

  • seeyoung/neurium📦 seeyoung/neurium
  • seeyoung/global-impact-hub📦 seeyoung/global-impact-hub

🎛 수동 트리거 지원

특정 상황에서 전체 문서를 강제로 다시 동기화하고 싶다면? GitHub의 Actions 탭📚 Sync Docs → Neurium 워크플로우를 선택한 후, Run workflow를 눌러 all 모드로 실행하세요.


👨‍💻 고급 활용: 직접 API 호출하기

GitHub Actions를 쓰지 않고, 자체 스크립트나 외부 시스템에서 직접 문서를 쏴주고 싶다면 POST /api/notes/upsert 엔드포인트를 활용하세요.

curl -X POST https://neurium.vercel.app/api/notes/upsert \
  -H "Authorization: Bearer nrm_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "docs/my-document",
    "content": "# 문서 내용",
    "repository": "owner/repo-name"
  }'

Tip: repository 필드를 넣어주면 자동으로 폴더 매핑이 이루어집니다!

이 노트에 대해 AI에게 더 묻기

선택한 도구의 새 창이 열리며, 노트 URL이 포함된 질문 프롬프트가 미리 채워지거나 클립보드에 복사됩니다. 이어서 궁금한 내용을 적어 주세요.