Header Ads Widget

Responsive Advertisement

Ticker

3/recent/ticker-posts

Hướng dẫn Nextcloud trên WD My Cloud

 

Trong hướng dẫn này, tôi sẽ cung cấp cách thiết lập Nextcloud hoàn chỉnh và an toàn cho WD My Cloud NAS.
Những lợi ích:

  • Truy cập đám mây trực tiếp vào hộp của bạn, không qua máy chủ WD
  • Tích hợp tốt hơn với nhiều ứng dụng có sẵn cho bất kỳ nền tảng nào (vì vậy nó là sự thay thế hợp lệ cho bộ PC không dùng nữa)
  • Giao diện hiện đại
  • Nhiều tiện ích mở rộng có sẵn
  • Chứng chỉ HTTPS tự động với LetsEncrypt

Các vấn đề:

  • Giao diện web WD phải được tắt để chạy Nextcloud. Bạn có thể bật lại nó, nhưng web WD hoặc Nextcloud của nó, không phải cả hai.
  • Hiện tại chỉ hỗ trợ các địa chỉ IP công cộng tĩnh… vui lòng thiết lập DynDNS 50/ NoIP 35
  • Sử dụng có nguy cơ của riêng bạn. Hỗ trợ của WD sẽ không giúp bạn ở đây. Bạn cần quyền truy cập SSH để thiết lập nó.

Bước 1: Tải Docker và Docker Compose
Docker có sẵn tại đây 429. Cài đặt nó với giao diện web WD.
Docker Compose có thể được cài đặt trên tất cả các nền tảng WD với python pip.
Nhận Entware từ wdcommunity.com 167 và cài đặt nó với giao diện web WD.

opkg install python-pip
pip install setuptools
pip install docker-compose 

Xác minh nó hoạt động 

# which docker-compose
/opt/bin/docker-compose

Bước 2: Nhận miền
Bạn thực sự cần một tên miền, nếu không bạn sẽ phải đối mặt với các cảnh báo bảo mật lớn trong trình duyệt của mình.
Chỉ cần google 90 miễn phí nếu bạn không muốn trả tiền cho nó.

Giả sử chúng tôi đã đăng ký mycloud.domain.com 13để trỏ đến địa chỉ IP của chúng tôi 17.
Cảnh báo: việc kích hoạt tên miền của bạn có thể mất vài giờ.

Bước 3: Mở cổng 80 và 443 trong bộ định tuyến tại nhà của bạn. Tôi giả sử bạn đã kết nối với ISP của mình sau một bộ định tuyến ở đây. Chuyển tiếp cổng 80 và 443 của IP trên NAS của bạn tới mạng WAN công cộng.

Bước 4: Dừng giao diện web WD
Mở phiên SSH vào My Cloud NAS của bạn và dừng dịch vụ apache

kill $(pidof httpd) 

Đảm bảo các cổng 80 và 443 là miễn phí. Không có quy trình nào có thể chiếm các cổng này.

netstat -tulpn | grep 80
netstat -tulpn | grep 443
Bước 5: Chuẩn bị một thư mục làm việc

cd /shares/Volume_1
mkdir nextcloud && cd nextcloud

Bước 6: Nhận Docker Compose yaml và chạy toàn bộ ngăn xếp

opkg install git-http

# Chọn bộ hướng dẫn áp dụng cho NAS của bạn.

 Hướng dẫn cho WD MyCloud PRx100 hoặc DLx100 NAS

git clone https://github.com/nextcloud/docker
cd docker/.examples/docker-compose/with-nginx-proxy/mariadb-cron-redis/apache

Bước 7: Chỉnh sửa cấu hình
Chỉnh sửa các biến cơ sở dữ liệu

vi db.env

Nhấn iđể vào chế độ chỉnh sửa.
Tạo mật khẩu mạnh cho người dùng mysql.
Nhấn ESCvà nhập :wqđể lưu và thoát.

Chỉnh sửa tệp soạn thảo

 vi docker-compose.yml

Nhấn iđể vào chế độ chỉnh sửa.
Đặt mật khẩu mạnh cho MYSQL_ROOT_PASSWORD, điền vào tên miền của bạn (xem bước 2)

- VIRTUAL_HOST=mycloud.domain.com
- LETSENCRYPT_HOST=mycloud.domain.com
- LETSENCRYPT_EMAIL=some.valid@email.com    # used for expiration warnings

Nhấn ESCvà nhập :wqđể lưu và thoát.

Bây giờ chỉ cần hiển thị toàn bộ ngăn xếp

docker-compose up -d

Và bây giờ trang web của bạn sẽ khả dụng sau vài phút nữa…

Bỏ qua các hướng dẫn cho ARM bên dưới.

Hướng dẫn cho NAS My Cloud dựa trên ARM khác

 Xây dựng và chạy dịch vụ proxy nginx cho ARM. Việc này có thể mất một lúc.

git clone https://github.com/stefaang/multiarch-letsencrypt-nginx-proxy
cd multiarch-letsencrypt-nginx-proxy/nginx-proxy-2containers
docker-compose up -d

Bây giờ hãy chuẩn bị ứng dụng Nextcloud.

cd ../..

Thật khó để tìm cơ sở dữ liệu Mariadb / Mysql (InnoDB) / Postgres cho ARMv7. Tôi đã thử nghiệm nhiều hình ảnh từ trung tâm docker và hầu như không có hình ảnh nào tương thích với Nextcloud.

VIỆC CẦN LÀM : thêm 

beercan1989/arm-mysql + redis + cron

Tạo một docker-compo.yml với nội dung sau (và cập nhật các giá trị môi trường)

 version: '3.1'

volumes:
  nextcloud:
 
services:
  app:
    image: nextcloud
    restart: always
    environment:
      NEXTCLOUD_ADMIN_USER: admin
      NEXTCLOUD_ADMIN_PASSWORD: verysecretpassword
      VIRTUAL_HOST: mycloud.domain.com
      LETSENCRYPT_HOST: mycloud.domain.com
      LETSENCRYPT_EMAIL: some.valid@email.com
    volumes:
      - nextcloud:/var/www/html
      - /shares/Public:/mnt/Public  # add any share you want

networks:
  default:
    external:
      name: webproxy

Khởi động ứng dụng Nextcloud. Trình trợ giúp proxy nginx sẽ tự động tạo chứng chỉ LetsEncrypt cho miền của bạn.

export COMPOSE_HTTP_TIMEOUT=300
docker-compose up -d

Mở miền của bạn trong trình duyệt và tận hưởng đám mây cá nhân của bạn!

Bổ sung

Thêm các chia sẻ WD hiện có làm Bộ nhớ ngoài

Các chia sẻ hiện có của bạn thường không có sẵn trong vùng chứa Nextcloud.
Chỉnh sửa /shares/Publicdocker-compost.yml và thêm đường dẫn chia sẻ đầy đủ (ví dụ ) vào ứng dụng nextcloud bằng mountpoint (ví dụ /mnt/Public).

 services:
  app:
    ...
    volumes:
      - nextcloud:/var/www/html
      - /shares/Public:/mnt/Public  # add any share you wan
Trong menu Nextcloud, chuyển đến ứng dụng và cài đặt ứng dụng Bộ nhớ ngoài.
Trong menu cấu hình Nextcloud, trong tab quản trị, chọn Bộ nhớ ngoài.
Thêm một nguồn với loại Localvà đường dẫn /mnt/Public.
Giờ đây, bạn có thể truy cập phần chia sẻ Công khai từ trong đám mây của mình.
 Khôi phục giao diện người dùng web WD 

Khôi phục giao diện người dùng web WD

Nếu bạn muốn khởi động lại giao diện web WD sau này, hãy đảm bảo các cổng 80 và 443 còn trống bằng cách dừng ứng dụng
docker-compose down
và sau đó bắt đầu lại apache
httpd -f /usr/local/apache2/conf/httpd.conf -k graceful
Dòng lệnh Nextcloud

Bạn có thể thiết lập bí danh này cho dòng lệnh docker
alias occ="docker-compose exec --user www-data app php occ"
occ status
  - installed: true
  - version: 15.0.0.10
  - versionstring: 15.0.0
  - edition: 

Quyền truy cập miền đáng tin cậy
Nếu bạn gặp lỗi về quyền truy cập bị từ chối đối với miền không đáng tin cậy, bạn sẽ cần thêm miền của mình vào các miền đáng tin cậy. Điều này có thể được thực hiện với dòng lệnh Nextcloud.
occ config:system:get trusted_domains
Thêm miền của bạn
occ config:system:set trusted_domains 1 --value=mycloud.domain.com
Giải pháp thay thế: chỉnh sửa config.php trong khối lượng dữ liệu nextcloud theo cách thủ công.
Đây là cách tra cứu nó.
# cdnp && cd _docker/volumes
# find . -wholename "*/config/config.php"
./nextcloud_nextcloud/_data/config/config.php
Chỉnh sửa tệp
vi ./nextcloud_nextcloud/_data/config/config.php
Nhấn /và gõ trustđể chuyển đến phần có miền tin cậy, nhấn iđể vào chế độ văn bản và điền tên máy chủ của bạn
'trusted_domains' =>
array (
  0 => 'mycloud.mooo.com',
)
Nhấn ESC, gõ :wqđể viết và thoát.
Bây giờ tải lại trang web trong trình duyệt của bạn.
Liệt kê các miền

Mẹo gỡ lỗi Hiển thị các vùng chứa đang chạy

docker ps

Hiển thị nhật ký cho vùng chứa nextcloud_db

docker logs nextcloud_db

CHỈNH SỬA: không hoạt động trong bản phát hành chương trình cơ sở mới nhất
Giao diện web WD chạy ở cổng 80 và 443 theo mặc định.
Điều này được xác định trong /usr/local/apache2/conf/extra/ports.conf.
Listen 80

<IfModule ssl_module>
        Listen 443 https
</IfModule> 

Để di chuyển nó sang một cổng khác, ví dụ: 8080 và 8443, bạn có thể sử dụng các lệnh này.
PORTCFG=/usr/local/apache2/conf/extra/ports.conf
sed -i 's# 80^# 8080#' ${PORTCFG}
sed -i 's# 443 https# 8443 https#' ${PORTCFG}
kill -HUP $(pidof httpd)

Thêm các dòng này vào start.sh docker của bạn để chạy nó tự động khi khởi động.
Điều này giữ cho các cổng 80 và 443 miễn phí cho thiết lập Nextcloud của bạn.

Chúc may mắn và tận hưởng!

Tham khảo

Đăng nhận xét

0 Nhận xét