EmDash 플러그인은 두 가지 방법으로 설치할 수 있습니다: 관리 대시보드를 통해 마켓플레이스에서 설치하거나 Astro 구성에 직접 추가합니다. 마켓플레이스 플러그인은 격리된 샌드박스에서 실행됩니다; 구성 기반 플러그인은 인프로세스로 실행됩니다.
마켓플레이스에서
관리 대시보드에는 플러그인을 검색, 설치 및 관리할 수 있는 마켓플레이스 브라우저가 포함되어 있습니다.
전제 조건
마켓플레이스 플러그인을 설치하려면 사이트에 다음이 필요합니다:
-
샌드박스 러너 구성 — 마켓플레이스 플러그인은 격리된 V8 워커에서 실행되며, 이를 위해서는 샌드박스 런타임이 필요합니다:
import { emdash } from "emdash/astro"; export default defineConfig({ integrations: [ emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: true, }), ], }); -
관리 액세스 — 관리자만 플러그인을 설치하거나 제거할 수 있습니다.
탐색 및 설치
- 관리 패널을 열고 플러그인 > 마켓플레이스로 이동
- 플러그인 탐색 또는 검색
- 플러그인 카드를 클릭하여 세부 정보 페이지 확인 — README, 스크린샷, 기능 및 보안 감사 결과
- 설치 클릭
- 기능 동의 대화상자 검토 — 플러그인이 액세스할 수 있는 항목 표시
- 설치 확인
플러그인이 다운로드되어 사이트의 R2 버킷에 저장되고 샌드박스 러너에 로드됩니다. 즉시 활성화됩니다.
기능 동의
설치 전에 플러그인이 액세스해야 하는 항목을 나열하는 대화상자가 표시됩니다:
| 기능 | 의미 |
|---|---|
read:content | 콘텐츠 읽기 |
write:content | 콘텐츠 생성, 업데이트 및 삭제 |
read:media | 미디어 라이브러리 액세스 |
write:media | 미디어 업로드 및 관리 |
network:fetch | 특정 호스트로 네트워크 요청 |
보안 감사
마켓플레이스의 모든 플러그인 버전은 자동 보안 감사를 거쳤습니다. 감사 결과가 플러그인 카드에 표시됩니다:
- 통과 — 문제 없음
- 경고 — 사소한 우려 사항 플래그됨 (결과 검토)
- 실패 — 심각한 보안 문제 감지
플러그인의 세부 정보 페이지에서 개별 발견 사항 및 심각도를 포함한 전체 감사 보고서를 볼 수 있습니다.
업데이트
설치된 플러그인의 새 버전이 사용 가능할 때:
- 관리 패널의 플러그인으로 이동
- 마켓플레이스 플러그인에 업데이트 가능 배지 표시
- 업데이트를 클릭하여 변경 로그 및 기능 변경 사항 확인
- 새 버전에 추가 기능이 필요한 경우 차이점이 표시되고 승인이 필요합니다
- 확인하여 업데이트
제거
- 관리 패널의 플러그인으로 이동
- 제거하려는 마켓플레이스 플러그인 클릭
- 제거 클릭
- 플러그인의 저장된 데이터를 유지할지 삭제할지 선택
- 확인
플러그인의 샌드박스 코드가 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 렌더링 컴포넌트 | 아니오 | 예 |
| 업데이트 | 관리에서 원클릭 | 버전 업 + 배포 |
| 최적 용도 | 대부분의 플러그인 | 빌드 시 통합이 필요한 플러그인 |