SELF HOSTINGTIN TỨC

Hướng dẫn cài đặt FileRun trên Ubuntu với Docker Compose

FileRun là một ứng dụng web tự lưu trữ để đồng bộ và chia sẻ file, tương tự như Google Drive hay Nextcloud, cho phép bạn quản lý file từ bất kỳ đâu thông qua trình duyệt web hoặc ứng dụng di động. FileRun tương thích với các ứng dụng desktop và mobile của Nextcloud, đồng thời hỗ trợ giao thức WebDAV để truy cập file.

Yêu cầu hệ thống

Phần cứng tối thiểu

  • RAM: 512MB (đủ cho hầu hết trường hợp sử dụng)
  • Ổ cứng: 2GB cho FileRun và các phần mềm liên quan
  • CPU: Bất kỳ kiến trúc x86_64 hoặc ARM

Phần mềm cần thiết

  • Ubuntu 20.04 trở lên
  • Docker và Docker Compose
  • Kết nối internet ổn định

Bước 1: Cài đặt Docker và Docker Compose

Cài đặt các gói phụ thuộc

sudo apt-get update -y
sudo apt-get install curl git build-essential apt-transport-https ca-certificates software-properties-common -y

Thêm Docker GPG key và repository

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Cài đặt Docker và Docker Compose

sudo apt update -y
sudo apt install docker-ce docker-compose-plugin -y

Kiểm tra phiên bản Docker Compose

docker compose version

Bạn sẽ thấy output tương tự: Docker Compose version v2.24.7

Khởi động Docker service

sudo systemctl enable docker
sudo systemctl start docker

Bước 2: Tạo cấu trúc thư mục cho FileRun

Tạo thư mục chính cho FileRun và các thư mục con cần thiết:

mkdir ~/filerun
cd ~/filerun
mkdir html user-files db

Nếu bạn muốn sử dụng đường dẫn tuyệt đối, có thể tạo tại /filerun:

sudo mkdir /filerun /filerun/html /filerun/user-files /filerun/db

Bước 3: Tạo file Docker Compose cơ bản

Tạo file docker-compose.yml với cấu hình cơ bản:

nano docker-compose.yml

Dán nội dung sau vào file:

version: '3.8'

services:
  db:
    image: mariadb:10.5
    container_name: filerun_mariadb
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_root_password
      MYSQL_USER: filerun_user
      MYSQL_PASSWORD: your_strong_password
      MYSQL_DATABASE: filerundb
    volumes:
      - ./db:/var/lib/mysql
    restart: always

  web:
    image: filerun/filerun:8.1
    container_name: filerun_web
    environment:
      FR_DB_HOST: db
      FR_DB_PORT: 3306
      FR_DB_NAME: filerundb
      FR_DB_USER: filerun_user
      FR_DB_PASS: your_strong_password
      APACHE_RUN_USER: www-data
      APACHE_RUN_USER_ID: 33
      APACHE_RUN_GROUP: www-data
      APACHE_RUN_GROUP_ID: 33
    depends_on:
      - db
    links:
      - db
    ports:
      - "8080:80"
    volumes:
      - ./html:/var/www/html
      - ./user-files:/user-files
    restart: always

Bước 4: Cấu hình nâng cao với Elasticsearch và Tika (tùy chọn)

Để sử dụng tính năng tìm kiếm toàn văn và OCR, bạn có thể tạo file docker-compose.yml mở rộng:

version: '3.8'

services:
  db:
    image: mariadb:10.5
    container_name: filerun_mariadb
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_root_password
      MYSQL_USER: filerun_user
      MYSQL_PASSWORD: your_strong_password
      MYSQL_DATABASE: filerundb
    volumes:
      - ./db:/var/lib/mysql
    restart: always

  web:
    image: filerun/filerun:8.1
    container_name: filerun_web
    environment:
      FR_DB_HOST: db
      FR_DB_PORT: 3306
      FR_DB_NAME: filerundb
      FR_DB_USER: filerun_user
      FR_DB_PASS: your_strong_password
      APACHE_RUN_USER: www-data
      APACHE_RUN_USER_ID: 33
      APACHE_RUN_GROUP: www-data
      APACHE_RUN_GROUP_ID: 33
    depends_on:
      - db
    links:
      - db
      - tika
      - elasticsearch
    ports:
      - "8080:80"
    volumes:
      - ./html:/var/www/html
      - ./user-files:/user-files
    restart: always

  tika:
    image: apache/tika
    container_name: filerun_tika
    restart: always

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23
    container_name: filerun_search
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65535
        hard: 65535
    mem_limit: 1g
    volumes:
      - ./esearch:/usr/share/elasticsearch/data
    restart: always

Chuẩn bị thư mục cho Elasticsearch

mkdir esearch
chmod g+rwx esearch
sudo chgrp 1000 esearch

Tăng giới hạn memory map cho Elasticsearch

sudo nano /etc/sysctl.conf

Thêm dòng sau vào cuối file:

vm.max_map_count = 262144

Để áp dụng ngay mà không cần khởi động lại:

sudo sysctl -w vm.max_map_count=262144

Bước 5: Tải và cài đặt FileRun

Tải file ứng dụng FileRun

Để sử dụng FileRun, bạn cần tải file ứng dụng từ trang chủ:

  1. Truy cập https://filerun.com/client-area/client-area-orders
  2. Đăng nhập vào tài khoản FileRun của bạn
  3. Tải phiên bản dành cho PHP 8.1
  4. Upload file zip vào thư mục html trên server
  5. Giải nén file trong cùng thư mục đó

Thiết lập quyền truy cập

sudo chown www-data:www-data -R ./html/system/data

Bước 6: Khởi chạy FileRun

Khởi động containers

docker compose up -d

Kiểm tra trạng thái containers

docker compose ps

Tất cả containers sẽ hiển thị trạng thái “Up”.

Bước 7: Cấu hình ban đầu qua giao diện web

Truy cập FileRun

Mở trình duyệt và truy cập http://your-server-ip:8080. Bạn sẽ thấy màn hình cài đặt ban đầu.

Các bước cài đặt

  1. Kiểm tra yêu cầu hệ thống: Nhấn “Next” nếu tất cả đều đạt yêu cầu
  2. Cấu hình database: Điền thông tin database đã cấu hình trong docker-compose.yml
    • Database name: filerundb
    • Username: filerun_user
    • Password: your_strong_password
  3. Hoàn tất cài đặt: Ghi nhận thông tin đăng nhập superuser được cung cấp

Đăng nhập và cấu hình cơ bản

  1. Đăng nhập bằng tài khoản superuser
  2. Thay đổi mật khẩu mặc định trong Account Settings
  3. Thiết lập đường dẫn home folder thành /user-files

Bước 8: Cấu hình tính năng nâng cao (nếu có Elasticsearch và Tika)

Cấu hình Elasticsearch

  1. Truy cập Control Panel > Files > Searching
  2. Nhập URL Elasticsearch: http://elasticsearch:9200
  3. Nhấn “Test server” để kiểm tra kết nối

Cấu hình Apache Tika

  1. Nhập hostname: tika
  2. Nhập port: 9998
  3. Bật tùy chọn “OCR PDF Files” và “OCR image files”
  4. Nhấn “Test server” để kiểm tra

Thiết lập tìm kiếm theo nội dung

Thay đổi “Default search criteria” từ “Name” thành “Contents”.

Bước 9: Cấu hình SSL/HTTPS với Nginx Reverse Proxy

Tạo file cấu hình Nginx

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

Nội dung cấu hình:

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    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 https;
    }
}

Kích hoạt cấu hình

sudo ln -s /etc/nginx/sites-available/filerun /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Bước 10: Sao lưu và bảo trì

Sao lưu FileRun

Để sao lưu FileRun, bạn cần backup cả database và file dữ liệu:

# Backup database
docker exec filerun_mariadb mysqldump -u root -p filerundb > filerun_backup.sql

# Backup user files
tar -czf user-files-backup.tar.gz ./user-files

# Backup application files
tar -czf html-backup.tar.gz ./html

Cập nhật FileRun

cd ~/filerun
docker compose down --remove-orphans
docker compose pull
docker compose up -d

Khôi phục từ backup

# Khôi phục database
docker exec -i filerun_mariadb mysql -u root -p filerundb < filerun_backup.sql

# Khôi phục user files
tar -xzf user-files-backup.tar.gz

# Khôi phục application files
tar -xzf html-backup.tar.gz

Bảo mật FileRun

Các biện pháp bảo mật cơ bản

  1. Thay đổi mật khẩu mặc định: Đặt mật khẩu mạnh cho tài khoản superuser
  2. Sử dụng SSL/HTTPS: Luôn truy cập FileRun qua HTTPS
  3. Cập nhật thường xuyên: Đăng ký license để nhận cập nhật bảo mật
  4. Giới hạn quyền truy cập database: Xóa quyền ALTER và DROP khỏi user MySQL
  5. Bảo mật file cấu hình: Không cho phép web server ghi vào file ứng dụng

Cấu hình tường lửa

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp
sudo ufw enable

Xử lý sự cố thường gặp

Container không khởi động

# Kiểm tra logs
docker compose logs

# Kiểm tra tài nguyên hệ thống
docker stats

Lỗi permission denied

# Thiết lập lại quyền
sudo chown -R www-data:www-data ./html
sudo chown -R www-data:www-data ./user-files

FileRun không thể kết nối database

  1. Kiểm tra thông tin database trong docker-compose.yml
  2. Đảm bảo container database đã khởi động
  3. Kiểm tra network connectivity giữa containers

Desktop sync app tải lại toàn bộ file

Thêm cấu hình sau vào FileRun:

$config['system']['webdav']['skip_device_id_for_etag'] = true;

FileRun là một giải pháp self-hosted mạnh mẽ để quản lý và chia sẻ file. Với Docker Compose, việc cài đặt và bảo trì FileRun trở nên đơn giản hơn nhiều. Để đảm bảo an toàn và hiệu suất tối ưu, hãy luôn sử dụng SSL, thiết lập backup định kỳ, và cập nhật phần mềm thường xuyên.

You may also like

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