
한 줄 요약
Wallabag은 웹 글을 저장하여 오프라인으로 읽고, 원본이 삭제되어도 영구 보관하는 셀프호스팅 “나중에 읽기” 서비스다.
왜 Wallabag인가?
문제: 글이 사라진다
개발자라면 이런 경험이 있을 것이다:
- 나중에 읽으려고 북마크한 기술 블로그가 404
- 참고했던 스택오버플로우 답변이 삭제됨
- 좋은 글을 발견했는데 저장 안 하고 까먹음
기존 서비스의 한계
| 서비스 | 문제점 |
|---|---|
| 무료 제한, 외부 서버 의존 | |
| Instapaper | 외부 서버, 개인정보 우려 |
| 브라우저 북마크 | 원본 삭제 시 접근 불가 |
| Evernote Web Clipper | 유료, 무거움 |
Wallabag의 해결책
- 완전한 아카이빙: 글 전체를 내 서버에 저장
- 오프라인 접근: 인터넷 없이도 저장된 글 읽기
- 영구 보관: 원본 사이트가 없어져도 내용 보존
- 셀프호스팅: 내 데이터는 내가 관리
Wallabag의 장점
1. 완전한 글 저장
단순 링크 저장이 아닌, 글 전체 내용을 저장:
- HTML 전문 저장
- 이미지 포함 저장 가능
- 원본 삭제되어도 열람 가능
2. 다양한 클라이언트
| 플랫폼 | 지원 |
|---|---|
| 웹 | ⭕ 반응형 웹 UI |
| iOS | ⭕ 공식 앱 |
| Android | ⭕ 공식 앱 |
| 브라우저 확장 | ⭕ Chrome, Firefox |
| E-Reader | ⭕ epub 내보내기 |
3. 강력한 연동
- Miniflux 연동: RSS 리더에서 바로 저장
- Pocket 가져오기: 기존 Pocket 데이터 마이그레이션
- API 제공: 자동화 및 커스텀 연동
- 태그 시스템: 저장한 글 체계적 분류
4. 읽기 편의 기능
- 광고/사이드바 제거된 깔끔한 읽기 모드
- 다크 모드 지원
- 읽기 시간 예측
- 읽음/안읽음 상태 관리
Docker Compose로 설치하기
docker-compose.yml
services:
wallabag:
image: wallabag/wallabag:latest
container_name: wallabag
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=db
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=wallabag
- SYMFONY__ENV__DATABASE_USER=wallabag
- SYMFONY__ENV__DATABASE_PASSWORD=wallapass
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DOMAIN_NAME=https://wallabag.example.com
- SYMFONY__ENV__SERVER_NAME="My Wallabag"
ports:
- "8080:80"
volumes:
- ./images:/var/www/wallabag/web/assets/images
- ./data:/var/www/wallabag/data
depends_on:
- db
- redis
db:
image: mariadb:10
container_name: wallabag-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- MYSQL_DATABASE=wallabag
- MYSQL_USER=wallabag
- MYSQL_PASSWORD=wallapass
volumes:
- ./mysql:/var/lib/mysql
redis:
image: redis:alpine
container_name: wallabag-redis
restart: unless-stopped
⚠️
SYMFONY__ENV__DOMAIN_NAME을 실제 접속 URL로 변경하세요.
실행
# 시작
docker compose up -d
# 접속
# http://서버IP:8080
# 기본 계정: wallabag / wallabag
⚠️ 보안 주의: 첫 로그인 후 반드시 비밀번호 변경!
Miniflux와 연동하기
Miniflux와 연동하면 RSS 피드에서 바로 글을 저장할 수 있다.
1. Wallabag에서 API 클라이언트 생성
- Wallabag 로그인 → 좌측 메뉴 →
API clients management Create a new client클릭

- Name 입력 후
Create a new client클릭

- Client ID와 Client Secret 메모

2. Miniflux에서 연동 설정
- Miniflux →
Settings→Integrations

- Wallabag 섹션 입력:
- API Endpoint: Wallabag URL
- Client ID: 위에서 생성한 값
- Client Secret: 위에서 생성한 값
- Username/Password: Wallabag 로그인 정보

- 연동 완료 후 Miniflux 글 목록에서 “Save” 버튼으로 Wallabag에 저장 가능
브라우저 확장 프로그램
설치 링크
설정 방법
- 확장 프로그램 설치
- Wallabag URL 입력
- API 클라이언트 정보 입력 (위에서 생성한 것과 동일)
- 로그인 후 사용
사용 방법
- 저장하고 싶은 페이지에서 확장 아이콘 클릭
- 또는 우클릭 → “Save to Wallabag”
모바일 앱 사용
iOS / Android
공식 앱 스토어에서 “Wallabag” 검색 후 설치
설정 방법
- 앱 실행 → 서버 URL 입력
- API 클라이언트 정보 입력
- 로그인
공유 기능 활용
- 브라우저에서 공유 → Wallabag 선택
- 다른 앱에서 URL 공유 → Wallabag 선택
단점 및 해결책
| 단점 | 해결책 |
|---|---|
| 초기 설정 복잡 | Docker Compose로 간소화 |
| 일부 사이트 저장 실패 | 브라우저 확장으로 수동 저장 |
| 저장 공간 필요 | 주기적 정리 또는 NAS 활용 |
비슷한 서비스 비교
| 서비스 | 셀프호스팅 | 완전 저장 | 무료 |
|---|---|---|---|
| Wallabag | ⭕ | ⭕ | ⭕ |
| ❌ | ❌ | ⚠️ 제한적 | |
| Instapaper | ❌ | ❌ | ⚠️ 제한적 |
| Omnivore | ⭕ | ⭕ | ⭕ |
| Shiori | ⭕ | ⭕ | ⭕ |
마무리
Wallabag은 **“읽고 싶은 글은 내가 보관한다”**는 철학에 맞는 최고의 도구다.
- 글 전체를 내 서버에 저장
- 원본이 사라져도 영구 보관
- Miniflux, 브라우저 확장 등 다양한 연동
나중에 읽을 글이 많다면, Wallabag을 강력 추천한다.