LINUXSELF HOSTING

Hướng dẫn cài đặt Docmost trên Ubuntu

Docmost là một hệ thống quản lý tài liệu (DMS – Document Management System) mã nguồn mở, được thiết kế để giúp các tổ chức và cá nhân quản lý, tổ chức và chia sẻ tài liệu một cách hiệu quả. Với giao diện thân thiện và tính năng đa dạng, Docmost là lựa chọn tuyệt vời cho những ai đang tìm kiếm một giải pháp quản lý tài liệu linh hoạt và dễ sử dụng.

Docker mang lại nhiều lợi ích khi triển khai Docmost:

  1. Dễ dàng cài đặt và quản lý: Docker đóng gói ứng dụng và dependencies vào containers, giúp quá trình cài đặt trở nên đơn giản và nhất quán.
  2. Tính di động cao: Containers có thể chạy trên bất kỳ hệ thống nào hỗ trợ Docker, giúp dễ dàng di chuyển hoặc mở rộng hệ thống.
  3. Tối ưu hóa tài nguyên: Docker containers sử dụng tài nguyên hiệu quả hơn so với máy ảo truyền thống.
  4. Cô lập và bảo mật: Mỗi container hoạt động độc lập, giúp tăng cường bảo mật và giảm xung đột giữa các ứng dụng.
  5. Dễ dàng cập nhật và rollback: Việc cập nhật hoặc quay lại phiên bản cũ trở nên đơn giản hơn với Docker.

Yêu cầu hệ thống và chuẩn bị môi trường

Trước khi bắt đầu cài đặt Docmost bằng Docker trên Ubuntu, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:

Yêu cầu phần cứng tối thiểu:

  • CPU: 2 cores
  • RAM: 4GB
  • Dung lượng ổ cứng: 20GB trở lên

Yêu cầu phần mềm:

  • Hệ điều hành: Ubuntu 20.04 LTS hoặc mới hơn
  • Docker Engine
  • Docker Compose (tùy chọn, nhưng được khuyến nghị)

Trong phần tiếp theo, chúng ta sẽ hướng dẫn cách cài đặt Docker trên Ubuntu để chuẩn bị cho việc triển khai Docmost.

Cài đặt Docker (nếu chưa có)

Nếu bạn đã cài đặt Docker trên hệ thống Ubuntu của mình, bạn có thể bỏ qua phần này. Nếu chưa, hãy làm theo các bước sau để cài đặt Docker

Cài đặt Docker trên Ubuntu

1. Thêm GPG key của Docker:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

2. Thêm repository Docker:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

3. Cập nhật lại danh sách gói và cài đặt Docker:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin

4. Kiểm tra cài đặt Docker bằng lệnh sau:

sudo docker run hello-world

Cài đặt Docker Compose:

1. Tải Docker Compose:

curl -SL https://github.com/docker/compose/releases/download/v2.29.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2. Cấp quyền thực thi:

sudo chmod +x /usr/local/bin/docker-compose

3. Kiểm tra cài đặt bằng lệnh sau:

docker-compose --version

Cấu hình người dùng:

Để tránh phải sử dụng sudo mỗi khi chạy lệnh Docker, thêm người dùng hiện tại vào nhóm docker:

sudo usermod -aG docker ${USER}

Sau đó, đăng xuất và đăng nhập lại để áp dụng thay đổi.

Sau khi hoàn thành các bước trên, môi trường của bạn đã sẵn sàng để cài đặt Docmost bằng Docke

Tải và cấu hình Docmost Docker image

Sau khi đã cài đặt Docker trên Ubuntu, chúng ta sẽ tiến hành tải và cấu hình Docmost Docker image. Hãy làm theo các bước sau:

1. Tạo một thư mục mới cho Docmost:

mkdir ~/docmost
cd ~/docmost

2. Tạo file docker-compose.yml:

nano docker-compose.yml

3. Thêm nội dung sau vào file:

version: '3'
services:
  docmost:
    image: docmost/docmost:latest
    container_name: docmost
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - DOCMOST_SECRET_KEY=your_secret_key_here
      - DOCMOST_DB_TYPE=sqlite
    volumes:
      - ./data:/app/data
      - ./config:/app/config

Lưu ý: Thay your_secret_key_here bằng một chuỗi ngẫu nhiên và với độ khó một chút.

4. Tạo thư mục config:

mkdir config

5. Tạo file cấu hình:

nano config/config.yml

6. Thêm nội dung cấu hình cơ bản:

app:
  name: "Docmost"
  url: "http://localhost:8080"

database:
  type: "sqlite"
  path: "/app/data/docmost.db"

storage:
  type: "local"
  path: "/app/data/files"

7. Tải image mới nhất của Docmost:

docker-compose pull

8. Khởi động container:

docker-compose up -d

9. Kiểm tra trạng thái container:

docker-compose ps

Sau khi hoàn thành các bước trên, Docmost sẽ được chạy trong một Docker container và có thể truy cập qua địa chỉ http://localhost:8080. Trong phần tiếp theo, chúng ta sẽ cấu hình Nginx reverse proxy để truy cập Docmost qua tên miền và bảo mật kết nối bằng HTTPS.

Cấu hình Nginx reverse proxy

Để truy cập Docmost qua tên miền và bảo mật kết nối bằng HTTPS, chúng ta sẽ sử dụng Nginx làm reverse proxy. Hãy làm theo các bước sau:

Cài đặt Nginx

  1. Cài đặt Nginx:
sudo apt update
sudo apt install nginx -y

2. Khởi động Nginx và đặt nó tự động chạy khi khởi động:

sudo systemctl start nginx
sudo systemctl enable nginx

Cấu hình Nginx

3. Tạo file cấu hình cho Docmost:

sudo nano /etc/nginx/sites-available/docmost

4. Thêm nội dung sau vào file (thay thế your_domain.com bằng tên miền của bạn):

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

5. Tạo symbolic link để kích hoạt cấu hình:

sudo ln -s /etc/nginx/sites-available/docmost /etc/nginx/sites-enabled/

6. Kiểm tra cấu hình Nginx:

sudo nginx -t

7. Nếu không có lỗi, khởi động lại Nginx:

sudo systemctl restart nginx

Cấu hình HTTPS với Let’s Encrypt

8. Cài đặt Certbot:

sudo apt install certbot python3-certbot-nginx -y

9. Lấy chứng chỉ SSL và cấu hình Nginx:

sudo certbot --nginx -d your_domain.com

10. Làm theo hướng dẫn trên màn hình để hoàn tất quá trình cấu hình HTTPS.

11. Certbot sẽ tự động cập nhật file cấu hình Nginx để sử dụng HTTPS.

Kiểm tra kết nối

Sau khi hoàn tất các bước trên, bạn có thể truy cập Docmost qua địa chỉ https://your_domain.com. Đảm bảo rằng kết nối được bảo mật bằng HTTPS và chứng chỉ SSL hợp lệ.

Trong phần tiếp theo, chúng ta sẽ tìm hiểu về cách bảo mật và tối ưu hóa Docmost để đảm bảo hiệu suất và an toàn cho hệ thống.

Bảo mật và tối ưu hóa Docmost

Để đảm bảo Docmost hoạt động an toàn và hiệu quả, chúng ta cần thực hiện một số biện pháp bảo mật và tối ưu hóa. Dưới đây là các bước quan trọng:

Bảo mật Docmost

1. Cập nhật thường xuyên:

docker-compose pull
docker-compose up -d

2. Sử dụng mật khẩu mạnh cho tài khoản quản trị.

3. Cấu hình giới hạn đăng nhập:

Thêm vào file config/config.yml:

security:
  login_attempts: 5
  login_timeout: 300

4. Kích hoạt xác thực hai yếu tố (2FA) cho người dùng.

5. Cấu hình chính sách mật khẩu mạnh trong cài đặt Docmost.

Tối ưu hóa hiệu suất

6. Sử dụng Redis làm cache:

Thêm vào docker-compose.yml:

redis:
  image: redis:alpine
  restart: unless-stopped

docmost:
  ...
  environment:
    - DOCMOST_CACHE_TYPE=redis
    - DOCMOST_CACHE_REDIS_URL=redis://redis:6379/0
  depends_on:
    - redis

7. Cấu hình Nginx để cache static files:

Thêm vào file cấu hình Nginx:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

8. Sử dụng CDN cho static content nếu có thể.

Giám sát hệ thống

9. Cài đặt và cấu hình Prometheus và Grafana để giám sát container:

prometheus:
  image: prom/prometheus
  volumes:
    - ./prometheus:/etc/prometheus
  command:
    - '--config.file=/etc/prometheus/prometheus.yml'

grafana:
  image: grafana/grafana
  ports:
    - "3000:3000"
  depends_on:
    - prometheus

10. Cấu hình cảnh báo cho các sự kiện quan trọng.

Sao lưu dữ liệu

11. Tạo script sao lưu tự động:

#!/bin/bash
BACKUP_DIR="/path/to/backup"
DATE=$(date +"%Y%m%d")

# Sao lưu dữ liệu Docmost
docker-compose exec -T docmost tar czf - /app/data > $BACKUP_DIR/docmost_data_$DATE.tar.gz

# Xóa bản sao lưu cũ (giữ 7 ngày gần nhất)
find $BACKUP_DIR -name "docmost_data_*" -mtime +7 -delete

12. Thêm script này vào crontab để chạy hàng ngày.

Bằng cách áp dụng các biện pháp bảo mật và tối ưu hóa trên, bạn có thể đảm bảo hệ thống Docmost của mình hoạt động an toàn và hiệu quả. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về cách sao lưu và khôi phục dữ liệu Docmost.

Sao lưu và khôi phục dữ liệu Docmost

Việc sao lưu dữ liệu thường xuyên là rất quan trọng để đảm bảo an toàn cho thông tin của bạn. Dưới đây là hướng dẫn chi tiết về cách sao lưu và khôi phục dữ liệu Docmost:

Sao lưu dữ liệu

1. Tạo script sao lưu:

#!/bin/bash
BACKUP_DIR="/path/to/backup"
DATE=$(date +"%Y%m%d_%H%M%S")

# Tạo thư mục sao lưu nếu chưa tồn tại
mkdir -p $BACKUP_DIR

# Sao lưu dữ liệu Docmost
docker-compose exec -T docmost tar czf - /app/data > $BACKUP_DIR/docmost_data_$DATE.tar.gz

# Sao lưu cấu hình
cp ~/docmost/config/config.yml $BACKUP_DIR/config_$DATE.yml

# Xóa bản sao lưu cũ (giữ 30 ngày gần nhất)
find $BACKUP_DIR -name "docmost_data_*" -mtime +30 -delete
find $BACKUP_DIR -name "config_*" -mtime +30 -delete

echo "Sao lưu hoàn tất: $BACKUP_DIR/docmost_data_$DATE.tar.gz"

2. Lưu script với tên backup_docmost.sh và cấp quyền thực thi:

chmod +x backup_docmost.sh

3. Thêm lịch sao lưu tự động vào crontab:

crontab -e

Thêm dòng sau để sao lưu hàng ngày lúc 2 giờ sáng:

0 2 * * * /path/to/backup_docmost.sh

Khôi phục dữ liệu

Trong trường hợp cần khôi phục dữ liệu, hãy làm theo các bước sau:

1. Dừng container Docmost:

cd ~/docmost
docker-compose down

2. Xóa dữ liệu hiện tại:

rm -rf ~/docmost/data/*

3. Khôi phục dữ liệu từ bản sao lưu:

tar xzf /path/to/backup/docmost_data_YYYYMMDD_HHMMSS.tar.gz -C ~/docmost

4. Khôi phục file cấu hình (nếu cần):

cp /path/to/backup/config_YYYYMMDD_HHMMSS.yml ~/docmost/config/config.yml

5. Khởi động lại container Docmost:

docker-compose up -d

6. Kiểm tra logs để đảm bảo Docmost khởi động thành công:

docker-compose logs -f docmost

Kiểm tra tính toàn vẹn của bản sao lưu

Định kỳ kiểm tra tính toàn vẹn của bản sao lưu bằng cách khôi phục vào một môi trường thử nghiệm. Điều này giúp đảm bảo rằng bản sao lưu của bạn hoạt động đúng khi cần.

Bằng cách thực hiện sao lưu thường xuyên và kiểm tra quy trình khôi phục, bạn có thể đảm bảo an toàn cho dữ liệu quan trọng trong Docmost. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về cách khắc phục một số sự cố thường gặp khi sử dụng Docmost trên Docker.

Khắc phục sự cố thường gặp

Khi sử dụng Docmost trên Docker, bạn có thể gặp phải một số vấn đề. Dưới đây là hướng dẫn khắc phục một số sự cố thường gặp:

Container không khởi động

Nếu container Docmost không khởi động, hãy thử các bước sau:

1. Kiểm tra logs:

docker-compose logs docmost

2. Đảm bảo các biến môi trường trong docker-compose.yml đã được cấu hình đúng.

3. Kiểm tra quyền truy cập thư mục data:

sudo chown -R 1000:1000 ~/docmost/data

Không thể truy cập Docmost qua web browser

Nếu bạn không thể truy cập Docmost qua trình duyệt:

1. Kiểm tra xem container có đang chạy không:

docker-compose ps

2. Đảm bảo cổng 8080 không bị chặn bởi tường lửa:

sudo ufw allow 8080

3. Kiểm tra cấu hình Nginx reverse proxy.

Lỗi khi tải lên tài liệu

Nếu gặp lỗi khi tải lên tài liệu:

1. Kiểm tra giới hạn kích thước tải lên trong cấu hình Nginx:

client_max_body_size 100M;

2. Đảm bảo thư mục lưu trữ có đủ dung lượng trống.

Hiệu suất chậm

Nếu Docmost hoạt động chậm:

1. Kiểm tra tài nguyên hệ thống:

docker stats

2. Xem xét việc tăng tài nguyên cho container hoặc nâng cấp phần cứng.

3. Tối ưu hóa cấu hình Redis cache.

Lỗi sau khi cập nhật

Nếu gặp lỗi sau khi cập nhật Docmost:

1. Kiểm tra phiên bản tương thích của các dependencies.

2. Đảm bảo đã chạy các migration cần thiết:

docker-compose exec docmost flask db upgrade

3. Xóa cache và khởi động lại container:

docker-compose down
docker-compose up -d

Vấn đề về quyền truy cập

Nếu người dùng không thể truy cập tài liệu:

1. Kiểm tra cài đặt quyền trong giao diện quản trị Docmost.

2. Đảm bảo người dùng đã được gán đúng vai trò và quyền.

3. Xác minh cấu hình LDAP/SSO nếu đang sử dụng.

Bằng cách làm theo các hướng dẫn khắc phục sự cố này, bạn có thể giải quyết hầu hết các vấn đề thường gặp khi sử dụng Docmost trên Docker. Nếu vấn đề vẫn tiếp diễn, hãy tham khảo tài liệu chính thức của Docmost hoặc tìm kiếm sự hỗ trợ từ cộng đồng.

Có thể bạn chưa biết

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận