- vừa được xem lúc

Sử dụng nextcloud trên local và publish lên internet

0 0 16

Người đăng: Vui Đặng

Theo Viblo Asia

Mục tiêu của bài viết này là sử dụng Nextcloud để làm hệ thống lưu trữ dữ liệu ở local và publish hệ thống đó lên internet thông qua VPS để có thể truy cập vào Nextcloud local từ bất cứ đâu

Chuẩn bị

mình giả sử bạn đã có 1 VPS hoạt động và có 1 domain drive.example.com đã được trỏ về VPS Mình sử dụng dịch vụ của cloudflare để quản lý domain, cũng như để có thể sử dụng được https cho domain của mình Bạn cần có 1 laptop cũ để chạy Nextcloud trên docker

Bạn cần biết những kiến thức cơ bản về docker để có thể tiếp tục bài viết này

Bước 1: Cài đặt Nextcloud trên Laptop của bạn

Install Nextcloud trên laptop của bạn sử dụng docker và docker-compose, đây là 1 file cơ bản để chạy Nextcloud trên docker, lưu ý nên thay đổi password cho MYSQL_ROOT_PASSWORD và MYSQL_PASSWORD khi sử dụng trên môi trường production

docker-compose.yml

version: '3.7' services: db: image: mariadb restart: always environment: - MYSQL_ROOT_PASSWORD=nextcloud # should change this password when push to Production - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=nextcloud volumes: - db:/var/lib/mysql networks: - nextcloud app: image: nextcloud restart: always ports: - 8080:80 depends_on: - db volumes: - nextcloud:/var/www/html networks: - nextcloud environment: - MYSQL_HOST=db - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_ROOT_PASSWORD=nextcloud

Khi khởi tạo xong, bạn có thể truy cập vào Nextcloud bằng địa chỉ http://localhost:8080 và đăng nhập bằng tài khoản admin và password mà bạn đã khởi tạo khi cài đặt Nextcloud

Khi xong bước này, bạn có thể sử dụng Nextcloud để lưu trữ dữ liệu của mình trên laptop của mình, tuy nhiên bạn chỉ có thể truy cập vào Nextcloud ở local, nếu bạn muốn truy cập vào Nextcloud ở local từ bất cứ đâu thì bạn cần phải publish Nextcloud ở local lên internet chúng ta sẽ làm ở bước tiếp theo

Bước 2: Liên kết Nextcloud ở local với VPS sử dụng P2P network

Mình sử dụng Zerotier để tạo 1 network P2P giữa laptop và VPS, sau đó bạn có thể truy cập vào Nextcloud ở VPS bằng địa chỉ http://<IP của LAPTOP>:8080

Bạn vào https://my.zerotier.com để tạo 1 tài khoản và tạo 1 network, giả sử network ID của mình là 1234567890abcdef

Trên VPS, bạn cần cài đặt Zerotier và tham gia vào network 1234567890abcdef, tương tự trên laptop, bạn cần cài đặt Zerotier và tham gia vào network 1234567890abcdef

sau khi tham gia thì bạn có thể truy cập vào Nextcloud ở VPS bằng địa chỉ http://<IP của LAPTOP>:8080

IP của LAPTOP có thể xem ở https://my.zerotier.com hoặc bạn có thể sử dụng Zerotier One để xem IP của LAPTOP thông thường thì để tránh xung đột IP thì bạn nên tránh sử dụng dải IP 192.168.x.x(LOCAL) và 10.x.x.x (VPS) bạn có thể sử dụng dải IP 172.16.x.x

Khi VPS và laptop của bạn đã online thì zerotier sẽ tự động tạo ra 1 network P2P giữa 2 thiết bị này, và cấp cho mỗi node 1 IP trong dải 172.16.x.x

giả sử IP của laptop là 172.16.0.123 thì khi bạn truy cập vào http://172.16.0.123:8080 thì bạn sẽ truy cập vào Nextcloud ở laptop

Mình chọn Zerotier để tạo 1 network P2P giữa laptop và VPS vì nó dễ dàng và miễn phí, ngoài ra nó suport trên nhiều hệ điều hành khác nhau và có thể sử dụng trên nhiều thiết bị khác nhau tối đa 25 thiết bị ( bản free )

Bước 3: Publish Nextcloud ở local lên internet

Sau bước 2 bạn có thể truy cập vào nextcloud ở VPS bằng địa chỉ http://172.16.0.123:8080, tuy nhiên bạn muốn truy cập vào nextcloud bằng domain thì bạn phải dùng 1 reverse proxy để trỏ domain dến Nextcloud địa chỉ http://172.16.0.123:8080 và cấu hình SSL cho domain

Bạn có thể sử dụng nginx-proxy-manager để làm reverse proxy và cấu hình SSL cho domain, dưới đây là file mẫu để cấu hình nginx-proxy-manager sử dụng docker

docker-compose.yml

version: '3.7' services: reverse-proxy: image: nginx-proxy-manager restart: always ports: - 80:80 - 81:81 - 443:443 volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt environment: - TZ=Asia/Ho_Chi_Minh - PGID=1000 - PUID=1000 - DISABLE_IPV6=true network-mode: "host" # quan trọng: để có thể truy cập vào Nextcloud ở VPS bằng địa chỉ http://<IP của LAPTOP>:8080

sau khi cấu hình xong bạn có thể truy cập vào nginx-proxy-manager ở địa chỉ http://<IP của VPS>:81 để cấu hình proxy trỏ domain đến Nextcloud của bạn

Flow hệ thống hoàn chỉnh

Phần phụ bạn có thể tham khảo

Cấu hình SSL cho domain

Mình sử dụng cloudflare để quản lý domain và cấu hình SSL cho domain, bạn có thể sử dụng cloudflare hoặc dịch vụ khác để quản lý domain và cấu hình SSL cho domain

Bạn có thể cấu hình SSL cho domain bằng cách sử dụng cloudflare proxy lưu ý là nên dùng mode full SSL ( bạn generate SSL certificate ở cloudflare và download về và cài đặt trên VPS )

Những điều cần làm khi publish Nextcloud ở local lên internet

  1. thêm Trusted Domains vào Nextcloud của bạn
  2. config force https trong Nextcloud của bạn ở file config.php key overprotocol => 'https', bạn có thể đọc thêm tại đây https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html
  3. Một vài app bạn cần cài đặt để Nextcloud của bạn hoạt động tốt hơn như: TOTP (xác thực 2 lớp), pdf viewer, raw preview ...
  4. cron.php có thể không chạy được nếu bạn không cấu hình cronjob cho Nextcloud của bạn, bạn có thể đọc thêm tại đây https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tự deploy kho lưu trữ đám mây của riêng bạn bằng Nextcloud

Mình chắc hẳn rằng bạn đã từng dùng, không ít thì nhiều, một trong các dịch vụ lưu trữ đám mây như Google Drive, One Drive, hay Dropbox,... Nhờ các dịch vụ này mà bạn có thể truy cập file ở bất cứ đâu

0 0 20

- vừa được xem lúc

Xây dựng Cloud của riêng bạn với NextCloud

Tổng Quan. Trong thời đại phát triển mạnh mẽ về công nghệ thông tin như hiện nay, Cloud Computing có lẽ đã không còn là thuật ngữ gì mới mẻ.

0 0 36

- vừa được xem lúc

Tìm hiểu đôi chút về Cloudflare

Cloudflare là một dịch vụ bảo mật Internet và các dịch vụ phân phối máy chủ tên miền, đứng giữa khách truy cập và nhà cung cấp dịch vụ lưu trữ của người dùng, hoạt động như một reverse proxy cho các t

0 0 27

- vừa được xem lúc

Thêm https cho website sử dụng Cloudflare

Chào các bạn. Nào cùng bắt đầu nhé. . Hiện nay có rất nhiều nhà cung cấp tên miền tại việt nam và thế giới như GoDaddy, namecheap, z.

0 0 20

- vừa được xem lúc

Backblaze B2 + Cloudflare = ?

Lưu trữ có giá rất rẻ, nhưng chi phí cho băng thông thì lại cực đắt. Với lượng băng thông tăng lên như vậy, chi phí của S3 sẽ nhanh chóng đội lên đến mức ngàn đô, mức giá mà hoàn toàn không hề khả thi

0 0 45

- vừa được xem lúc

Khi tôi tạo trang donate từ A-Z không cần thuê hosting/server

Xin chào 500 anh em Viblo. Hôm nay nhân dịp cuối tuần mình lại bị ốm nên ở nhà làm cái trang donate đơn giản với hy vọng thông qua nó thì các ae ủng hộ mình có thể gửi quà cho mình thay lời cảm ơn.

0 0 48