플러그인 설치

이 페이지

EmDash 플러그인은 두 가지 방법으로 설치할 수 있습니다: 관리 대시보드를 통해 마켓플레이스에서 설치하거나 Astro 구성에 직접 추가합니다. 마켓플레이스 플러그인은 격리된 샌드박스에서 실행됩니다; 구성 기반 플러그인은 인프로세스로 실행됩니다.

마켓플레이스에서

관리 대시보드에는 플러그인을 검색, 설치 및 관리할 수 있는 마켓플레이스 브라우저가 포함되어 있습니다.

전제 조건

마켓플레이스 플러그인을 설치하려면 사이트에 다음이 필요합니다:

  1. 샌드박스 러너 구성 — 마켓플레이스 플러그인은 격리된 V8 워커에서 실행되며, 이를 위해서는 샌드박스 런타임이 필요합니다:

    import { emdash } from "emdash/astro";
    
    export default defineConfig({
      integrations: [
        emdash({
          marketplace: "https://marketplace.emdashcms.com",
          sandboxRunner: true,
        }),
      ],
    });
  2. 관리 액세스 — 관리자만 플러그인을 설치하거나 제거할 수 있습니다.

탐색 및 설치

  1. 관리 패널을 열고 플러그인 > 마켓플레이스로 이동
  2. 플러그인 탐색 또는 검색
  3. 플러그인 카드를 클릭하여 세부 정보 페이지 확인 — README, 스크린샷, 기능 및 보안 감사 결과
  4. 설치 클릭
  5. 기능 동의 대화상자 검토 — 플러그인이 액세스할 수 있는 항목 표시
  6. 설치 확인

플러그인이 다운로드되어 사이트의 R2 버킷에 저장되고 샌드박스 러너에 로드됩니다. 즉시 활성화됩니다.

기능 동의

설치 전에 플러그인이 액세스해야 하는 항목을 나열하는 대화상자가 표시됩니다:

기능의미
read:content콘텐츠 읽기
write:content콘텐츠 생성, 업데이트 및 삭제
read:media미디어 라이브러리 액세스
write:media미디어 업로드 및 관리
network:fetch특정 호스트로 네트워크 요청

보안 감사

마켓플레이스의 모든 플러그인 버전은 자동 보안 감사를 거쳤습니다. 감사 결과가 플러그인 카드에 표시됩니다:

  • 통과 — 문제 없음
  • 경고 — 사소한 우려 사항 플래그됨 (결과 검토)
  • 실패 — 심각한 보안 문제 감지

플러그인의 세부 정보 페이지에서 개별 발견 사항 및 심각도를 포함한 전체 감사 보고서를 볼 수 있습니다.

업데이트

설치된 플러그인의 새 버전이 사용 가능할 때:

  1. 관리 패널의 플러그인으로 이동
  2. 마켓플레이스 플러그인에 업데이트 가능 배지 표시
  3. 업데이트를 클릭하여 변경 로그 및 기능 변경 사항 확인
  4. 새 버전에 추가 기능이 필요한 경우 차이점이 표시되고 승인이 필요합니다
  5. 확인하여 업데이트

제거

  1. 관리 패널의 플러그인으로 이동
  2. 제거하려는 마켓플레이스 플러그인 클릭
  3. 제거 클릭
  4. 플러그인의 저장된 데이터를 유지할지 삭제할지 선택
  5. 확인

플러그인의 샌드박스 코드가 R2 버킷에서 제거되고 즉시 실행이 중지됩니다.

구성에서

네이티브 플러그인(자신의 코드 또는 npm을 통해 설치한 패키지)의 경우 Astro 구성에 직접 추가합니다:

import { defineConfig } from "astro/config";
import { emdash } from "emdash/astro";
import seoPlugin from "@emdash-cms/plugin-seo";

export default defineConfig({
  integrations: [
    emdash({
      plugins: [
        seoPlugin({ generateSitemap: true }),
      ],
    }),
  ],
});

네이티브 플러그인:

  • 인프로세스로 실행 (샌드박스화되지 않음)
  • Node.js API에 대한 전체 액세스 권한
  • 빌드 시 및 모든 서버 시작 시 로드
  • 관리 UI에서 설치하거나 제거할 수 없음

마켓플레이스 vs 구성: 어떤 것을 사용할까

마켓플레이스 (샌드박스화)구성 (네이티브)
설치 방법관리 UI에서 원클릭코드 변경 + npm install + 배포
실행격리된 V8 isolate인프로세스
기능런타임에 강제 적용권고 사항만
Node.js API사용 불가전체 액세스
React 관리 페이지아니오 (대신 Block Kit)
PT 렌더링 컴포넌트아니오
업데이트관리에서 원클릭버전 업 + 배포
최적 용도대부분의 플러그인빌드 시 통합이 필요한 플러그인