
Overleaf Self Host
Hướng dẫn triển khai Overleaf Community Edition trên máy tính của bạn
Overleaf Self Host - Triển khai Overleaf Community Edition
Giới thiệu
Overleaf Community Edition (CE) là phiên bản mã nguồn mở cho phép bạn tự host Overleaf trên máy chủ của mình. Trong bài viết này, chúng ta sẽ tìm hiểu cách triển khai Overleaf CE sử dụng Overleaf Toolkit.
Yêu cầu hệ thống
Trước khi bắt đầu, hãy đảm bảo máy tính của bạn đáp ứng các yêu cầu sau:
- Docker: Phiên bản 20.10 trở lên
- Docker Compose: Phiên bản 2.0 trở lên
- RAM: Tối thiểu 4GB (khuyến nghị 8GB)
- Dung lượng ổ cứng: Tối thiểu 10GB trống
- Hệ điều hành: Linux, macOS, hoặc Windows với WSL2
Cài đặt Overleaf Toolkit
Bước 1: Clone repository
git clone https://github.com/overleaf/toolkit.git
cd toolkit
Bước 2: Cấu hình môi trường
Tạo file cấu hình môi trường:
bin/init
Lệnh này sẽ tự động tạo ra các file cấu hình trong thư mục config/
Chỉnh sửa file config/overleaf.rc với các thông tin cần thiết:
# Địa chỉ email admin
SHARELATEX_ADMIN_EMAIL=admin@example.com
# Mật khẩu admin
SHARELATEX_ADMIN_PASSWORD=your_password
# Tên miền (nếu có)
SHARELATEX_SITE_URL=http://localhost:5000
# Để cho phép truy cập Overleaf từ các máy tính khác trong mạng LAN,
# chỉnh sửa dòng sau trong file cấu hình `config/overleaf.rc`:
SHARELATEX_BIND_ADDRESS=0.0.0.0
# Điều này giúp Overleaf lắng nghe trên tất cả các địa chỉ mạng thay vì chỉ localhost.
Bước 3: Khởi động Overleaf
sudo bin/up -d
Lệnh này sẽ:
- Tải xuống các Docker images cần thiết
- Khởi động các services (ShareLaTeX, Redis, MongoDB)
- Thiết lập cơ sở dữ liệu
- Khởi động web server
Truy cập Overleaf
Sau khi khởi động thành công, bạn có thể truy cập Overleaf tại:
Để cấu hình tài khoản và mật khẩu
Tiếp theo là sẽ tải gói Tex đầy đủ
Lưu ý:
Phiên bản Overleaf tự host cài theo hướng dẫn trên chỉ mới là phiên bản tối giản, chưa có đầy đủ các gói TeX như trên overleaf.com đâu nhé!
- Nếu bạn chỉ biên dịch các project LaTeX cơ bản thì chừng đó là đủ.
- Tuy nhiên, với các template phức tạp, thiếu package là chuyện bình thường. Lúc đó bạn sẽ cần cài thêm gói (xem hướng dẫn bên dưới).
Để cài đặt TeX Live đầy đủ (Full):
Lệnh này sẽ vô được shell của docker
sudo bin/shell
Lệnh này sẽ tải toàn bộ Tex package về
tlgmr install schema-full
Một số lệnh cơ bản với tlmgr
Sau khi đã vào shell Docker như hướng dẫn trên, bạn có thể dùng tlmgr để quản lý các package TeX:
- Cập nhật tlmgr và các gói TeX:
tlmgr update --self --all - Cài đặt thêm một package cụ thể (ví dụ: xcolor):
tlmgr install xcolor - Tìm kiếm package liên quan đến một từ khóa (ví dụ: table):
tlmgr search --global --word table - Xem danh sách các gói đã cài:
tlmgr list --only-installed - Xóa một package:
tlmgr remove <tên-gói>
Lưu ý: Khi cài gói bằng
tlmgr, chỉ ảnh hưởng trong container Docker của Overleaf, không ảnh hưởng tới hệ điều hành máy chủ.
Xem thêm tài liệu: tlmgr - TeX Live Manager
Quá trình này có thể mất nhiều thời gian (~tải + cài > 5GB). Nhưng sau đó bạn sẽ có gần đủ mọi package như bản Overleaf chính thức.
Để kiểm tra gói đã có chưa, trên Overleaf vào "Logs and output files", xem lỗi thiếu package nào rồi cài tiếp!
Lưu ý: Sau khi đã cài đầy đủ các gói với
tlmgr, bạn nên chạy thêm lệnh sau để cập nhật đường dẫn các binary do TeX Live cài vào:tlmgr path add
Sau khi thao tác xong trong shell Docker, bạn chỉ cần chạy lệnh sau để thoát ra:
exit
Lưu lại thay đổi vào Docker Image mới
Mặc định, mọi thay đổi bạn thực hiện ở container (ví dụ cài thêm các gói TeX qua tlmgr) sẽ bị mất nếu bạn xóa hoặc recreate lại container với Docker Compose.
Để giữ lại các thay đổi này (ví dụ khi cài full TeX Live), bạn cần commit lại container thành một Docker Image mới.
Bước 1: Kiểm tra phiên bản Overleaf
Xác định phiên bản hiện tại, để đặt đúng tag cho image mới:
cat config/version
Ví dụ ra: 5.0.3
Bước 2: Commit container thành Docker Image mới
Giả sử container tên là sharelatex (bạn có thể kiểm tra bằng docker ps).
Chạy lệnh sau, thay 5.0.3 bằng version đúng nếu khác:
docker commit sharelatex sharelatex/sharelatex:5.0.3-with-texlive-full
Lệnh này sẽ tạo ra một image mới sharelatex/sharelatex:5.0.3-with-texlive-full chứa mọi thay đổi bạn đã thực hiện (vd: đã cài đủ gói TeX Live).
Bước 3: Ghi nhận version mới vào cấu hình
Ghi lại version mới vào file config để Overleaf Toolkit sử dụng image mới khi chạy lại:
echo 5.0.3-with-texlive-full > config/version
Xác nhận lại:
cat config/version
# Kết quả: 5.0.3-with-texlive-full
Lưu ý: Nếu lần sau nâng cấp Overleaf hoặc TeX Live, bạn có thể lặp lại các bước trên để lưu lại image đã được tuỳ chỉnh.
Tóm tắt
- Cài đủ TeX Live trong container sharelatex
- Commit lại container thành image mới với tag riêng
- Ghi nhận lại tên image mới trong file
config/version - Từ giờ về sau, Overleaf sẽ dùng đúng image này, không cần cài lại TeX Live mỗi lần chạy lại!
Kết luận
Việc tự host Overleaf Community Edition mang lại nhiều lợi ích:
- Quyền kiểm soát hoàn toàn: Bạn có thể tùy chỉnh mọi thứ theo nhu cầu
- Bảo mật dữ liệu: Dữ liệu được lưu trữ trên máy chủ của bạn
- Không giới hạn: Không bị giới hạn về số lượng dự án hay người dùng
- Tích hợp: Có thể tích hợp với các hệ thống khác trong tổ chức
Tuy nhiên, việc tự host cũng đòi hỏi:
- Kiến thức về Docker và Linux
- Thời gian để bảo trì và cập nhật
- Tài nguyên máy chủ phù hợp
Nếu bạn cần một giải pháp LaTeX trực tuyến đơn giản và không muốn quản lý server, Overleaf.com vẫn là lựa chọn tốt nhất. Nhưng nếu bạn cần kiểm soát hoàn toàn và có khả năng kỹ thuật, Overleaf CE là một lựa chọn tuyệt vời.