1. 홈
  2. 블로그
  3. 셀프 호스팅

웹 호스팅, Docker, nginx에 마크다운 에디터를 직접 설치하는 방법

실시간 미리 보기가 되는 마크다운 에디터를 몇 분 만에 직접 호스팅하세요. 웹 호스팅(cPanel), Docker, nginx, Caddy별 단계별 설치 방법. 데이터베이스나 백엔드는 필요 없습니다.

마크다운 에디터를 직접 호스팅하면 팀 전체가 내 도메인에서 익숙한 도구 하나를 함께 쓸 수 있습니다. 계정도, 구독도 없고, 다른 회사의 서비스가 계속 운영되기를 바랄 필요도 없습니다. 에디터가 정적 웹 앱이라면 호스팅은 HTML 파일 몇 개를 올리는 것만큼 간단합니다. 관리할 데이터베이스도, 업데이트할 서버 측 코드도 없고, 서버 부하도 거의 없습니다.

이 가이드에서는 Markdown Preview Editor를 예로 듭니다. 무료 오픈 소스(MIT)이며, 같은 단계를 어떤 정적 웹 애플리케이션에도 적용할 수 있습니다.

왜 마크다운 에디터를 직접 호스팅할까?

  • 내 도메인, 내 규칙. markdown.your-company.com처럼 내가 관리하는 주소에서 에디터를 쓸 수 있고, 모든 사용자에게 똑같이 작동합니다.
  • 관리할 것이 없습니다. 정적 사이트에는 백엔드가 없으므로 서버 코드 보안 패치도, 데이터베이스 백업도 필요 없습니다.
  • 문서는 로컬에 머뭅니다. Markdown Preview Editor는 모든 것을 방문자의 브라우저에서 렌더링합니다. 서버는 앱 파일만 전달할 뿐, 문서를 받지 않습니다.
  • 운영 비용이 들지 않습니다. 공유 웹 호스팅 요금제, 작은 VPS, 컨테이너 플랫폼이면 충분합니다.

준비물

HTTPS로 정적 파일을 제공할 수 있는 웹 서버라면 무엇이든 됩니다.

  • cPanel, Plesk, DirectAdmin이 있는 공유 웹 호스팅(Apache 또는 LiteSpeed),
  • Docker가 설치된 서버,
  • VPS의 nginx 또는 Caddy,
  • 로컬에서 쓸 거라면 내 컴퓨터도 가능합니다.

서버에 PHP, Node.js, 데이터베이스는 필요 없습니다.

방법 1: 웹 호스팅(cPanel 등)

가장 빠른 방법이며 명령줄이 필요 없습니다.

  1. 사이트 압축 파일 다운로드. 최신 릴리스에서 markdown-preview-editor-site.zip을 받으세요. 미리 빌드된 웹사이트가 들어 있습니다.
  2. 주소 정하기. 메인 도메인을 쓰거나, 호스팅 관리 패널에서 markdown.example.com 같은 서브도메인을 만드세요. 서브도메인의 문서 루트(document root) 폴더를 확인해 두세요.
  3. HTTPS 켜기. 대부분의 호스팅 업체는 무료 인증서(AutoSSL 또는 Let’s Encrypt)를 자동으로 발급합니다. 도메인이나 서브도메인에 인증서가 활성화되어 있는지 확인하세요.
  4. 업로드하고 압축 풀기. 파일 관리자를 열고 문서 루트로 이동해 zip 파일을 올린 뒤 압축 풀기(Extract)를 선택하세요. 숨김 파일인 .htaccess를 포함한 모든 파일이 하위 폴더가 아니라 문서 루트 바로 아래에 있어야 합니다.
  5. 도메인 열기. 에디터가 준비되었습니다.

함께 들어 있는 .htaccess는 Apache와 LiteSpeed 서버에서 HTTP를 HTTPS로 리디렉션하고, 보안 헤더를 설정하고, 캐싱을 구성합니다.

팁

호스팅의 업로드 검사기가 JavaScript 파일이 든 zip 압축 파일을 거부한다면(일부 백신 규칙에서 알려진 오탐입니다), 같은 릴리스의 .tar.gz 압축 파일을 쓰거나 FTP로 파일을 올리세요.

방법 2: Docker

컨테이너를 운영한다면 저장소를 복제하고 포함된 Compose 파일로 실행하세요.

bashgit clone https://github.com/ovasendin/markdown_preview_editor.git
cd markdown_preview_editor
PORT=8080 docker compose -f deploy/docker-compose.yml up -d --build

http://localhost:8080(또는 지정한 포트)을 여세요. 이미지는 사이트를 빌드하고 같은 보안 헤더를 적용해 nginx로 제공합니다. 공개 도메인에서 쓰려면 평소 쓰는 HTTPS 리버스 프록시 뒤에 컨테이너를 두세요.

방법 3: nginx

사이트를 빌드하거나(또는 릴리스 압축 파일을 풀고) 파일을 웹 루트에 복사하세요.

bashnpm ci && npm run build
sudo cp -r dist/* /var/www/markdown/

저장소의 deploy/nginx.conf에 보안 헤더와 캐싱 규칙이 포함된 설정이 준비되어 있습니다. 정적 사이트 설정의 핵심은 짧습니다.

nginxserver {
    listen 443 ssl;
    server_name markdown.example.com;
    # ssl_certificate와 ssl_certificate_key 설정은 여기에

    root /var/www/markdown;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

sudo nginx -s reload로 nginx를 다시 불러온 뒤 도메인을 여세요.

방법 4: Caddy

Caddy는 HTTPS 인증서를 자동으로 발급받으므로 VPS에서 가장 간단한 선택입니다.

bashSITE_ADDRESS=markdown.example.com caddy run --config deploy/Caddyfile

먼저 빌드된 파일을 /srv에 복사하세요. 포함된 Caddyfile이 다른 방법과 같은 헤더로 파일을 제공합니다.

방법 5: 로컬에서 실행

개인적으로 쓴다면 서버가 아예 필요 없습니다.

bashnpm ci
npm run dev

출력된 로컬 주소를 브라우저에서 여세요.

최신 상태로 유지하기

정적 사이트를 업데이트한다는 것은 파일을 교체한다는 뜻입니다. 새 릴리스 압축 파일을 받아 기존 파일 위에 풀고 페이지를 새로 고치세요. 앱의 파일 이름에 콘텐츠 해시가 들어 있으므로, 브라우저가 오래된 캐시 없이 새 버전을 불러옵니다. 새 버전 알림을 받으려면 GitHub 저장소를 Watch하세요(Watch → Custom → Releases).

배포 후 체크리스트

  • 사이트가 https://로 열리고, http://가 그쪽으로 리디렉션된다.
  • 마크다운 파일을 편집기로 끌어 놓으면 새 탭에서 열린다.
  • 설정에서 테마와 언어를 바꿀 수 있다.
  • 테스트 문서를 HTML로 내보내 다운로드가 되는지 확인한다.

에디터가 가동되면 팀과 마크다운 문법 총정리를 공유하고, 마크다운 미리 보기와 HTML·PDF 내보내기 가이드도 북마크해 두세요.

자주 묻는 질문

공유 웹 호스팅에 마크다운 에디터를 올릴 수 있나요?

네. Markdown Preview Editor 같은 정적 마크다운 에디터는 HTML, CSS, JavaScript 파일일 뿐입니다. 릴리스 압축 파일을 도메인이나 서브도메인의 문서 루트에 올리고 풀기만 하면 되며, 데이터베이스나 서버 측 언어는 필요 없습니다.

직접 호스팅한 에디터가 문서를 내 서버로 보내나요?

아니요. 서버는 애플리케이션 파일만 전달합니다. 문서는 각 방문자의 브라우저에서 열리고 렌더링되며 업로드되지 않습니다.

서브도메인 대신 하위 폴더에 호스팅할 수 있나요?

네, example.com/markdown/ 같은 하위 폴더에서도 앱이 작동합니다. 다만 별도의 서브도메인을 권장합니다. 같은 도메인의 다른 앱과 에디터의 브라우저 저장소가 분리되기 때문입니다.

서버 자원은 얼마나 필요한가요?

거의 필요 없습니다. 서버는 방문자마다 정적 파일을 한 번 보낼 뿐이고, 그 뒤로는 브라우저에 캐시됩니다. 모든 작업은 방문자의 기기에서 이뤄집니다.