Nextcloud cung cấp đồng bộ tệp, lịch, danh bạ và chỉnh sửa tài liệu trên máy chủ do bạn kiểm soát, thay vì giao tệp của bạn cho một nhà cung cấp đám mây lớn. Sau đây là cách chạy nó trên VPS bằng Docker Compose.
Trước khi bắt đầu
- VPS với 2 vCPU và 4 GB RAM là điểm khởi đầu thoải mái. Dung lượng lưu trữ là hạn chế chính, vì vậy hãy chọn kích thước ổ đĩa phù hợp với tệp của bạn.
- Một tên miền trỏ tới máy chủ, được trình bày trong hướng dẫn DNS của chúng tôi.
- Docker đã được cài đặt, xem cài đặt Docker trên Ubuntu.
1. Tệp Compose
mkdir -p ~/nextcloud && cd ~/nextcloud
cat > compose.yaml <<'EOF'
services:
db:
image: mariadb:11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: change-me-root
MYSQL_PASSWORD: change-me-db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
volumes:
- db:/var/lib/mysql
redis:
image: redis:7-alpine
restart: unless-stopped
app:
image: nextcloud:stable
restart: unless-stopped
depends_on: [db, redis]
ports:
- "127.0.0.1:8080:80"
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: change-me-db
REDIS_HOST: redis
volumes:
- nc:/var/www/html
volumes:
db:
nc:
EOF
docker compose up -d
Hãy đổi cả ba mật khẩu trước khi chạy. Dùng chuỗi ngẫu nhiên dài.
2. Đặt HTTPS phía trước
Thêm một khối server Nginx làm proxy tới 127.0.0.1:8080, rồi chạy Certbot như trong hướng dẫn Nginx của chúng tôi. Khối proxy cần các dòng sau để Nextcloud nhận đúng giao thức và việc tải lên tệp lớn hoạt động:
client_max_body_size 2G;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
3. Hoàn tất thiết lập
Mở tên miền của bạn và tạo tài khoản quản trị. Sau đó thêm tên miền vào danh sách tin cậy và đặt thông tin proxy:
docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=cloud.example.com
docker compose exec -u www-data app php occ config:system:set overwriteprotocol --value=https
4. Giữ cho nó khỏe mạnh
- Cập nhật:
docker compose pull && docker compose up -d, mỗi lần một phiên bản chính. - Tác vụ nền: chuyển sang Cron trong cài đặt quản trị và thêm một mục cron trên máy chủ chạy
cron.phpmỗi năm phút. - Sao lưu: lưu cả hai volume và một bản xuất cơ sở dữ liệu. Xem cách sao lưu VPS.
- Đăng nhập hai yếu tố: bật ứng dụng TOTP cho mọi tài khoản.