Self-hosted Notion 대안 5종 비교
AppFlowy, Outline, Docmost, BookStack, Obsidian을 데이터베이스, 협업, 모바일 접근성, 호스팅 부담 기준으로 비교합니다. Notion과 가장 가까운 도구부터 1인용 선택지까지 확인합니다.
짧은 답변
Self-hosted Notion 대안은 3개 그룹으로 나뉩니다. 적합한 도구를 고르는 일은 대부분 Notion의 어떤 기능을 실제로 사용하는지 결정하는 과정입니다. 페이지 안에 페이지를 만들고 데이터베이스 보기를 사용하는 Notion과 유사한 환경이 필요하다면 AppFlowy를 실행합니다. 검색 성능이 뛰어난 빠른 팀 위키가 필요하다면 Outline을 실행합니다. 새 서버에서 작동하는 workspace까지 가장 빠르게 구성하려면 Docmost를 실행합니다.
이 검색에서 자주 언급되는 도구가 2개 더 있으며, 두 도구 모두 다른 요구 사항에 적합합니다. 실제로 필요한 것이 구조화된 documentation이라면 BookStack을 선택합니다. workspace의 사용자가 정확히 1명, 즉 본인뿐이라면 Obsidian을 선택합니다.
비교 방법
이는 각 프로젝트의 공식 문서, 공개된 환경 샘플, 공개 compose 파일을 바탕으로 문서화된 기능을 비교한 결과입니다. 2026년 7월에 확인했습니다. 각 프로젝트를 1년 동안 실제 운영한 결과를 보고하는 내용은 아닙니다. 아래에 제한 사항이 명시된 경우에는 해당 프로젝트의 문서나 저장소에서 가져온 내용이며, 이 가이드에서 출처를 밝힙니다. 이 점은 중요합니다. 이러한 유형의 비교 자료 대부분은 확인하지 않은 내용을 조용히 임의로 추가하기 때문입니다.
아래의 4가지 기준은 사람들이 실제로 질문하는 항목이며, 질문하는 순서대로 정리했습니다. 데이터베이스 및 테이블 보기, 실시간 공동 작업, 모바일 액세스, 호스팅 부담입니다.
AppFlowy: Notion에 가장 가깝지만 라이선스에 주의해야 함
AppFlowy는 여기에서 Notion의 데이터 모델을 본격적으로 복제한 유일한 프로젝트입니다. 페이지, 보드, 그리드, 캘린더 보기를 모두 사용할 수 있습니다. 데스크톱 및 모바일 앱은 네이티브 앱입니다. 또한 local-first 설계 덕분에 서버가 작동하지 않을 때도 앱이 계속 작동합니다.
Self-hosting은 git clone과 compose 파일만으로 설정할 수 있습니다.
git clone https://github.com/AppFlowy-IO/AppFlowy-Cloud
cd AppFlowy-Cloud
cp deploy.env .env
docker compose up -d마지막 명령을 실행하기 전에 .env를 편집합니다. FQDN와 SCHEME은 public address를 설정합니다. GOTRUE_ADMIN_EMAIL와 GOTRUE_ADMIN_PASSWORD은 첫 번째 admin account를 설정합니다. GOTRUE_ADMIN_PASSWORD=password을 그대로 두면 추측하기 쉬운 admin login을 사용하는 public server가 배포됩니다.
여기에는 중요한 제한 사항이 있습니다. 이 글에서 가장 중요한 사실입니다. AppFlowy Cloud는 open-core 모델로 전환했습니다. AppFlowy Cloud README에 따르면 self-hosted Free tier는 "인스턴스당 사용자 1명"과 공유한 페이지에서 최대 guest editor 3명을 제공합니다. 따라서 대부분의 사용자가 "self-hosted Notion"이라고 부르는 버전은 free tier에서 제한된 guest만 사용할 수 있는 개인 workspace입니다. 유료 self-hosted tier에서는 이러한 제한이 해제됩니다. 10명 규모로 배포할 계획이라면 먼저 현재 tier를 확인합니다.
Outline: 이미 single sign-on을 사용 중인 경우 가장 적합한 검색 기능
Outline은 이 그룹에서 순수한 작성 및 읽기 경험이 가장 뛰어납니다. 검색이 빠르고 실제로 원하는 내용을 찾습니다. 편집기는 안정적이며, 구조는 데이터베이스 엔진이 아니라 컬렉션과 중첩 문서로 구성됩니다. 문서를 많이 작성하는 팀은 대체로 Outline을 계속 사용합니다.
Outline에는 PostgreSQL과 Redis가 필요하며, 앱은 port 3000에서 수신 대기합니다. 2개의 secret이 필요합니다. 샘플 환경 파일에 secret을 만드는 정확한 방법이 나와 있습니다.
openssl rand -hex 32 # SECRET_KEY
openssl rand -hex 32 # UTILS_SECRET그런 다음 URL을 public HTTPS 주소로 설정하고, DATABASE_URL 및 REDIS_URL도 설정합니다. 사람들이 가장 의외라고 느끼는 부분은 인증입니다. Outline에는 기본 제공 username 및 password 로그인이 없습니다. Outline의 자체 .env.sample에는 타사 로그인 자격 증명에 대해 "작동하는 설치에 이러한 항목 중 적어도 ONE이 필요합니다. 그렇지 않으면 로그인 옵션이 없습니다"라고 명시되어 있습니다. 지원되는 옵션은 Google, Microsoft Entra, Slack, Discord 및 일반 OpenID Connect (OIDC) provider입니다.
이는 실제 비용으로 이어집니다. 이미 identity provider를 운영하고 있지 않다면, Outline을 self-hosting하기 전에 Outline을 사용할 수 있도록 다른 service 하나를 더 self-hosting해야 합니다. 이미 identity provider를 운영하고 있다면 이는 장점이며, Outline이 적합한 선택일 가능성이 높습니다.
Docmost: 가장 빠르게 구축할 수 있는 제품
Docmost는 세 제품 중 가장 최신이며, 실행하는 데 필요한 작업이 가장 적습니다. 실시간 협업 편집, 페이지 트리, 공간, 댓글, 내장 이메일 및 비밀번호 계정을 지원하므로 먼저 identity provider를 구성할 필요가 없습니다.
공식 설치 페이지에는 4개의 명령이 있습니다.
mkdir docmost
cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml
openssl rand -hex 32compose 파일의 APP_SECRET에 해당 hex 문자열을 입력하고, APP_URL을 실제로 사용할 주소로 설정합니다. 두 곳에 나타나는 STRONG_DB_PASSWORD도 모두 바꾼 다음 시작합니다.
docker compose up -d
docker compose ps모든 서비스가 running을 읽어야 합니다. 브라우저에서 해당 주소를 열면 Docmost 설정 페이지가 표시됩니다. 여기에서 첫 번째 workspace와 첫 번째 admin user를 생성합니다. 이 스택은 Docmost, PostgreSQL 및 Redis로 구성되며, 문서에서는 최소 요구 사항으로 2 vCPU와 4 GB RAM을 제시합니다.
문서에서 반복해서 강조할 만한 주의 사항이 하나 있습니다. 편집기는 WebSockets를 사용합니다. WebSocket upgrade header를 전달하지 않는 reverse proxy 뒤에 배치하면 페이지는 로드되지만 두 번째 브라우저에서 수행한 편집 내용이 표시되지 않습니다. 두 사용자 모두 오류를 확인할 수 없습니다. 앞단에서 TLS를 종료한다면, 한 서버에서 여러 앱을 처리하는 Traefik reverse proxy가 기본적으로 upgrade를 올바르게 처리합니다.
BookStack: 작업 공간이 아니라 문서화가 필요할 때
BookStack은 콘텐츠를 선반, 책, 장, 페이지로 구성합니다. 이 고정된 계층 구조가 핵심입니다. 누구도 구조를 새로 정할 필요가 없으며, 1년이 지나도 위키를 탐색할 수 있습니다. 권한 관리 기능이 강력하고 편집기가 잘 갖춰져 있습니다. 인프라 문서화에 필요한 방식으로 단순합니다.
데이터베이스 보기나 블록 방식 편집 기능은 제공하지 않습니다. 따라서 앞의 3개 제품과 같은 의미의 Notion 대체 제품은 아닙니다. BookStack에는 PHP 8.2 이상과 MySQL 8.0 또는 MariaDB 10.6 이상이 필요합니다. 이 프로젝트는 자체 Docker 이미지를 공개하지 않고 커뮤니티 이미지 사용을 안내합니다. 가장 많이 사용되는 이미지는 LinuxServer.io 이미지입니다.
docker pull lscr.io/linuxserver/bookstack:latest이 이미지는 커뮤니티에서 유지 관리하므로 latest를 추적하지 말고 버전을 고정해야 합니다. 필요한 변수는 해당 이미지의 자체 문서에서 확인해야 합니다.
Obsidian: 서버 앱이 아니며, 그것이 핵심입니다
Obsidian은 컴퓨터의 폴더에 일반 Markdown 파일을 저장합니다. 서버가 없으므로 직접 호스팅할 대상도 없고, 새벽 3시에 장애가 발생할 대상도 없습니다. 한 사람이 노트를 작성하는 경우, 속도와 소프트웨어보다 파일이 오래 유지된다는 확실성 측면에서 위의 모든 옵션보다 뛰어납니다.
호스팅해야 하는 부분은 동기화입니다. 유료 자사 동기화 서비스, 커뮤니티 LiveSync 플러그인을 구동하는 CouchDB 인스턴스, 또는 Syncthing이나 WebDAV 공유와 같은 일반 파일 동기화를 사용할 수 있습니다. 여러 사람이 실시간으로 편집하는 기능은 제공되지 않습니다. 따라서 두 사람이 동시에 같은 페이지를 사용해야 한다면 Obsidian은 적합한 도구가 아닙니다.
데이터베이스와 테이블: 대부분의 대안이 한계에 도달하는 지점
이 기능이 검색 범위를 결정합니다. Notion을 대체하지 못해 불편함을 느끼는 사용자는 대부분 데이터베이스를 중요하게 여깁니다. 데이터베이스는 형식이 지정된 필드가 있는 테이블이며, 동일한 행을 여러 보기로 표시하고 필터를 적용할 수 있습니다.
AppFlowy는 grid, board 및 calendar 보기를 통해 이 기능을 제공합니다. Outline, Docmost 및 BookStack에는 이 기능이 없습니다. 이러한 제품의 문서에는 단순한 테이블을 삽입할 수 있지만, 이는 같은 기능이 아닙니다. 행을 쿼리할 수 없고 행을 다른 보기로 표시할 수 없기 때문입니다. Notion 데이터베이스에 업무를 저장하고 있다면 이 그룹에서 실제로 선택할 수 있는 제품은 AppFlowy뿐입니다. 도입하기 전에 AppFlowy 무료 요금제의 사용자 수 제한이 팀 규모에 맞는지 테스트해야 합니다.
호스팅 리소스 요구량: 각 스택이 실제로 실행하는 구성 요소
Docmost와 Outline은 모두 app, PostgreSQL, Redis의 3개 컨테이너를 실행합니다. 둘 다 소형 VPS에서 무리 없이 실행됩니다. BookStack은 app과 MySQL 또는 MariaDB 데이터베이스를 실행하며, 4개 제품 중 리소스 사용량이 가장 적습니다.
AppFlowy Cloud는 단연 가장 무겁습니다. 제공되는 compose 파일은 nginx, 객체 스토리지용 MinIO, pgvector 확장이 포함된 PostgreSQL, Redis, 인증용 GoTrue, AppFlowy Cloud 서비스 자체, admin frontend, worker, search service, AI service, web app을 실행합니다. 실제 데이터베이스 1개, 객체 스토리지 1개, 그리고 대략 10개의 컨테이너로 구성됩니다. 이에 맞게 메모리를 할당하고, 파일을 편집하기 전에 Docker Compose 서비스, 볼륨 및 네트워크가 함께 작동하는 방식을 읽어 보십시오.
어떤 것을 선택해야 하는가
한 사람이 메모와 초안을 작성하고 서버를 원하지 않는다면: 자체 동기화를 사용하는 Obsidian을 선택합니다.
한 사람 또는 매우 작은 그룹이 Notion 스타일의 데이터베이스를 원한다면: 먼저 무료 요금제의 사용자 수 제한을 확인한 후 AppFlowy를 선택합니다.
많은 문서를 작성하고 이미 Google Workspace, Entra 또는 OIDC 공급자를 사용하는 팀이라면: Outline을 선택합니다.
ID 공급자 없이 오늘 오후부터 사용할 수 있는 공유 작업 공간을 원하는 팀이라면: Docmost를 선택합니다.
많은 사람이 읽고 소수의 사람만 편집하는 인프라 또는 제품 문서라면: BookStack을 선택합니다.
설치 후 발생하는 문제
이러한 프로젝트에서 지원 문의의 대부분은 3가지 장애와 관련이 있습니다. 세 가지 모두 버그가 아니라 구성 문제입니다.
첫 번째는 앱 URL입니다. Docmost APP_URL 및 Outline URL에는 https://를 포함하여 브라우저에서 실제로 사용하는 주소를 설정해야 합니다. 이를 localhost으로 설정하고 앱을 도메인 뒤에 배치하지 않으면 로그인 리디렉션이 사용자의 장치가 아닌 다른 시스템으로 사용자를 보냅니다.
두 번째는 위에서 설명한 WebSockets입니다. 앱은 정상적으로 보이지만 공동 편집은 조용히 중단됩니다.
세 번째는 백업입니다. 이러한 앱은 모두 사용자가 볼 수 있는 파일이 아니라 PostgreSQL 또는 MySQL에 콘텐츠를 저장합니다. 따라서 실행 중인 데이터베이스의 볼륨 디렉터리를 복사하는 것은 신뢰할 수 있는 백업이 아닙니다. 일정에 따라 데이터베이스를 덤프하고 서버 외부에 덤프를 저장해야 합니다. 이는 restic을 사용한 예약된 암호화 백업으로 다른 상태 저장 서비스도 처리하는 방식과 같습니다. 이와 함께 실행할 서비스를 선택할 때는 올해 자체 호스팅할 가치가 있는 앱의 전체 목록을 참고하면 한 서버에 어느 정도의 부하를 맡겨야 하는지 판단하는 데 도움이 됩니다.
FAQ
Notion에 가장 가까운 self-hosted Notion 대안은 무엇입니까?
AppFlowy입니다. 이 프로젝트들 중 실제 database 개념을 제공하는 유일한 프로젝트입니다. 즉, 동일한 행에 대해 typed field와 grid, board, calendar view를 제공합니다. Outline, Docmost, BookStack은 page hierarchy를 사용하는 document 도구입니다. 문서 작성에는 매우 적합하지만 Notion database를 대체하지는 않습니다.
Notion 자체를 self-host할 수 있습니까?
아니요. Notion은 self-hosted edition이나 공개된 server component가 없는 상용 hosted product입니다. 이 가이드의 모든 선택지는 Notion 기능의 일부를 제공하는 별도의 open source project입니다. Migration은 동일한 software를 그대로 이전하는 방식이 아니라 export와 import로 수행합니다.
이러한 도구에는 mobile app이 있습니까?
AppFlowy는 native iOS 및 Android app을 제공합니다. app에서 사용자의 instance를 지정하면 자체 server와 통신합니다. Outline과 Docmost는 mobile browser를 통해 사용하며, 읽기와 간단한 편집에는 두 도구 모두 이러한 방식으로 사용할 수 있습니다. Obsidian은 완전한 mobile app을 제공하지만 sync는 별도로 구성해야 합니다. BookStack은 first-party mobile app이 없는 responsive web application입니다.
VPS에 RAM이 얼마나 필요합니까?
Docmost는 최소 사양으로 2 vCPU와 4 GB RAM을 명시합니다. 소규모 팀에서는 Outline과 BookStack도 비슷한 수준이 필요합니다. AppFlowy Cloud는 예외입니다. compose file이 pgvector를 사용하는 PostgreSQL과 MinIO object storage를 포함해 약 10개의 service로 시작하기 때문입니다. 따라서 AppFlowy Cloud에는 훨씬 더 많은 memory와 disk space를 계획해야 합니다.
Google 또는 Microsoft sign-in 없이 Outline을 사용할 수 있습니까?
예. 그러나 어떤 identity provider도 없이 사용할 수 있는 것은 아닙니다. Outline은 명시된 provider와 함께 generic OpenID Connect provider를 지원하므로 self-hosted OIDC server를 사용할 수 있습니다. 지원하지 않는 방식은 일반적인 local username과 password입니다. 또한 자체 environment sample에는 최소 1개의 third-party provider를 구성해야 하며, 그렇지 않으면 installation에 sign-in option이 없다고 명시되어 있습니다.