Memos: Hướng dẫn Wiki & Ghi chú cá nhân
I. Giới thiệu Memos
Memos là một ứng dụng ghi chú (note-taking) nhẹ, mã nguồn mở dùng để tạo wiki cá nhân, ghi chú nhanh, và quản lý kiến thức. Điều này rất hữu ích khi:
- Bạn muốn ghi chú những thông tin quan trọng
- Cần tạo wiki cá nhân cho dự án
- Muốn lưu giữ knowledge base riêng
- Cần app ghi chú tự host (không dùng Notion, Evernote)
- Muốn chia sẻ ghi chú với team
Chức năng chính:
- Tạo ghi chú nhanh (Memos) với Markdown
- Tổ chức bằng tags
- Tìm kiếm ghi chú
- Chia sẻ ghi chú công khai/riêng tư
- Hỗ trợ hình ảnh & file attachment
- Export/Import dữ liệu
- API cho tích hợp
- Giao diện đơn giản, dễ sử dụng
So sánh Memos với các tool khác:
| Tính năng | Memos | Notion | Obsidian |
|---|---|---|---|
| Giá | Miễn phí (open source) | Miễn phí / Pro | Miễn phí / Pro |
| Self-hosted | Có (Docker) | Không | Có (local) |
| Online/Offline | Online (web) | Online | Offline (local) |
| Collaboration | Có (sharing) | Có (team) | Hạn chế |
| Ease of use | Rất dễ | Dễ | Trung bình |
II. Triển khai Memos với Docker
1. Docker Compose
version: '3.8'
services:
memos:
image: elestio/memos:v0.24.2
container_name: wiki-memos
volumes:
- /root/memos:/var/opt/memos
networks:
- docker-net
mem_limit: 1024m
cpus: 0.1
ports:
- 5230:5230
restart: unless-stopped
networks:
docker-net:
external: true
Giải thích cấu hình:
- image: elestio/memos:v0.24.2 (phiên bản ổn định)
- volumes: Lưu dữ liệu ghi chú vào /root/memos
- ports: 5230 (host) → 5230 (container)
- networks: Sử dụng docker-net (mạng external)
- mem_limit: Giới hạn RAM 1GB
- cpus: Giới hạn CPU 10%
- restart: unless-stopped: Tự động khởi động lại
2. Deploy qua Portainer
- Vào Portainer Dashboard
- Chọn Stacks → Add stack
- Đặt tên Stack:
memos - Copy/paste docker-compose vào Web editor
- Chọn network:
docker-net - Click Deploy the stack
Container khởi động, truy cập http://your-ip:5230 để vào Memos.
3. Cấu hình lần đầu
Khi mở lần đầu:
- Tạo tài khoản (username & password)
- Đăng nhập vào Memos
- Bắt đầu tạo ghi chú
III. Sử dụng Memos cơ bản
1. Tạo Memo (Ghi chú)
Để tạo ghi chú mới:
- Click Compose hoặc + New
- Viết nội dung (hỗ trợ Markdown)
- Thêm tags:
#tag1 #tag2 - Chọn visibility (Public/Private)
- Click Save hoặc Post
2. Định dạng Markdown
Memos hỗ trợ Markdown đầy đủ:
# Tiêu đề H1 ## Tiêu đề H2 ### Tiêu đề H3 **Bold text** *Italic text* ~~Strikethrough~~ - List item 1 - List item 2 1. Ordered item 1 2. Ordered item 2 [Link text](https://example.com)  \`code inline\` \`\`\` code block \`\`\` > Quote
3. Sử dụng Tags
Tags giúp organize ghi chú:
- Thêm tag bằng
#tag-nametrong nội dung - Click vào tag để xem tất cả ghi chú có tag đó
- Tìm kiếm theo tag
- Nested tags:
#project/feature
Ví dụ:
#docker #deployment #tutorial #project/infra/monitoring #bug/critical #2024
4. Chia sẻ Ghi chú
Memos hỗ trợ chia sẻ:
- Click vào ghi chú → Share
- Chọn visibility:
- Private: Chỉ mình tôi thấy
- Public: Ai cũng có thể xem (qua link)
- Friends: Chia sẻ với bạn bè (nếu có tính năng)
- Generate link chia sẻ
IV. Cấu hình Advanced
1. Proxy qua Nginx Proxy Manager
Để expose Memos qua domain public:
- Vào Nginx Proxy Manager → Hosts → Proxy Hosts
- Click Add Proxy Host
- Điền:
- Domain Names:
wiki.yourdomain.com - Scheme:
http - Forward Hostname/IP:
wiki-memos(tên container) - Forward Port:
5230 - Tab SSL: Request Let's Encrypt
- Click Save
Bây giờ có thể truy cập https://wiki.yourdomain.com
2. Backup Dữ liệu
Dữ liệu lưu trong /root/memos:
#!/bin/bash # Backup script BACKUP_DIR=/root/backups DATE=$(date +%Y%m%d_%H%M%S) # Backup Memos database cp -r /root/memos /root/backups/memos_$DATE # Optional: Compress tar -czf /root/backups/memos_$DATE.tar.gz /root/memos
3. Search & Filtering
Tìm kiếm advanced:
- Tìm theo từ khóa:
server monitoring - Tìm theo tag:
#docker - Tìm theo ngày:
created:2024-01 - Kết hợp:
#docker created:2024-01 server
V. Sử dụng Memos cho các trường hợp cụ thể
1. Knowledge Base cho Dev Team
Ví dụ cấu trúc ghi chú:
#infrastructure/docker #tutorial # Docker Best Practice - Use .dockerignore - Pin base image version - Multi-stage builds #infrastructure/monitoring #alert # Alert Configuration Monitor CPU usage > 80% ... #bug #critical #backend # Bug: API timeout in production Reported: 2024-01-15 ...
2. Ghi chú dự án
#project/website #todo # Website Redesign Project ## Phase 1 - [ ] Design mockup - [ ] Frontend setup - [ ] Database migration ## Timeline Start: 2024-01-20 End: 2024-02-28
3. Ghi chú hàng ngày
#daily #2024-01-15 # Daily Standup - 15 Jan 2024 ## Completed - Fixed database query - Reviewed PR #123 ## Today - Deploy to production - Team meeting 2PM ## Blockers - Waiting on API response
VI. Troubleshooting
Memos không tải được
- Kiểm tra port 5230 có mở không
- Xem logs:
docker logs wiki-memos - Kiểm tra volume mount đúng chưa
- Thử restart container
Dữ liệu bị mất sau restart
- Kiểm tra volume mount:
-/root/memos:/var/opt/memos - Kiểm tra folder /root/memos tồn tại
- Kiểm tra permission:
chmod 755 /root/memos
Không thể đăng nhập
- Kiểm tra database có corrupt không
- Xóa volume và recreate (mất dữ liệu cũ)
- Xem logs để tìm error
Performance chậm
- Kiểm tra RAM/CPU limit
- Tăng resource: mem_limit: 2048m
- Kiểm tra disk space của /root/memos
- Optimize database (xóa ghi chú cũ)
VII. Lưu ý quan trọng
- Backup dữ liệu: Thư mục /root/memos chứa toàn bộ dữ liệu, backup định kỳ
- Authentication: Memos có built-in auth, nhưng không quá mạnh. Nên proxy qua OAuth hoặc ngăn public access
- SSL/TLS: Nếu expose ra internet, phải dùng HTTPS (qua Nginx Proxy Manager + Let's Encrypt)
- Database: Memos sử dụng SQLite (file-based), không cần external database
- Sharing: Public memo có thể được tìm thấy, không hoàn toàn bảo mật
- Version: Kiểm tra version thường xuyên để cập nhật bảo mật
- Resource usage: Memos rất nhẹ, phù hợp chạy trên VPS nhỏ
VIII. Best Practice
- Sử dụng tags có cấu trúc (nested tags) để organize
- Viết ghi chú định kỳ (hàng ngày, hàng tuần) để tạo thói quen
- Backup dữ liệu hàng tuần
- Sử dụng Markdown format cho consistent
- Chia sẻ public memo cho công khai kiến thức
- Tích hợp với Uptime Kuma để monitor availability
- Kết hợp với Nginx Proxy Manager cho access bảo mật
- Ghi lại lesson learned sau mỗi dự án
IX. Tích hợp với các tool khác
1. Uptime Kuma Monitoring
Monitor Memos availability:
- Vào Uptime Kuma → Add Monitor
- URL:
https://wiki.yourdomain.com - Interval: 300 (5 phút)
2. Cloudflare Tunnel
Expose Memos qua Cloudflare Tunnel:
- Cấu hình Public Hostname trong Cloudflare
- Point tới:
http://wiki-memos:5230 - Truy cập qua:
https://wiki.yourdomain.com
3. Backup Script tích hợp
Tạo backup script chạy định kỳ:
#!/bin/bash # /root/scripts/backup-memos.sh BACKUP_DIR=/root/backups mkdir -p $BACKUP_DIR DATE=$(date +%Y%m%d_%H%M%S) tar -czf $BACKUP_DIR/memos_$DATE.tar.gz /root/memos # Keep only last 7 days find $BACKUP_DIR -name "memos_*.tar.gz" -mtime +7 -delete
Chạy qua cron hàng ngày:
0 2 * * * /bin/bash /root/scripts/backup-memos.sh
Vậy là bạn đã hoàn thành cấu hình Memos để tạo wiki cá nhân và ghi chú tự host!