Cài đặt và cấu hình home server

Bài viết sẽ được cập nhật dần …

Tôi ấp ủ ý định xây dựng một trung tâm giải trí đa phương tiện sử dụng trong gia đình sử dụng chip ARM từ khá lâu. Tối ưu nó là ưu tiên hàng đầu nên tôi bắt đầu với chip ARM, lưu trữ dữ liệu google cloud … Ở bài viết này tôi sẽ chia sẻ các thiết lập được tôi sử dụng để vận hành server đấy một cách trơn tru nhất.

Yêu cầu đối với server

  • Tiết kiệm điện năng vì chạy 2424
  • Có thể truy cập online bên ngoài mạng LAN
  • Dễ cài đặt, cấu hình

Hệ điều hành & phần mềm

  • Linux distro: Debian
  • Phần mềm: Docker và Docker compose, Rclone, Plex (), aria2-rpc, fail2ban, jdownloader
  • Cloud lưu dữ liệu: Google Drive Unlimited

Cài đặt

1. Cài đặt Docker và Docker compose

2. Rclone

Cài đặt rclone bằng dòng lệnh bên dưới. Các bạn đọc thêm chi tiết về cấu hình và sử dụng rclone ở đây

curl https://rclone.org/install.sh | sudo bash

Nếu đã có file backup cấu hình trước đó thì copy file vào đường dẫn ~\.config\rclone\

Tải script để mount Google Drive vào thư mục trên local

wget https://lab.skywirex.com/scripts/shell/rclone-plex && nano rclone-plex

Chạy script khi khởi động lại máy

mv rclone-plex /etc/init.d/rclone-plex
chmod +x /etc/init.d/rclone-plex
update-rc.d -f rclone-plex defaults
bash /etc/init.d/rclone-plex start
update-rc.d -f rcloned disable
bash /etc/init.d/rcloned stop

3. Samba

docker run -d \
  --name samba \
  -e USERID=1000 \
  -e GROUPID=1000 \
  -e TZ=Asia/Ho_Chi_Minh \
  -p 137:137/udp \
  -p 138:138/udp \
  -p 139:139 \
  -p 445:445 \
  -v /mnt/cloud/khu-drive:/mount/data \
  -v /media/khu-drive:/mount/media \
  --restart unless-stopped \
  dperson/samba:aarch64 \
  -n \
  -u "admin;admin" \
  -s "data;/mount/data;yes;yes;yes;all" \
  -s "media;/mount/media;yes;yes;yes;all"

4. Aria2

docker run -d \
  --name aria2-rpc \
  -p 6800:6800 \
  -v /data/download:/aria2/data \
  -v ~/.config:/aria2/conf \
  -e PUID=1000 \
  -e PGID=1000 \
  -e RPC_SECRET=skywirex \
  skywirex/aria2-rpc

5. Deluge (torrent client)

docker create \
  --name=deluge \
  --net=host \
  -e PUID=000 \
  -e PGID=000 \
  -e TZ=Asia/Ho_Chi_Minh \
  -v /root/.config/deluge:/config \
  -v /data/download:/downloads \
  --restart unless-stopped \
  linuxserver/deluge
docker start deluge
http://SERVER-IP:8112

6. minidlna

Docker compose

version: '3.3'
services:
    minidlna:
        container_name: minidlna
        network_mode: host
        restart: unless-stopped
        volumes:
            - '/media/khu-drive/video/movies:/media/video'
        environment:
            - 'MINIDLNA_MEDIA_DIR_2=V,/media/video'
            - 'MINIDLNA_FRIENDLY_NAME=skywirex-12'
        image: vladgh/minidlna

7. Emby

docker create \
    --name=emby \
    --volume ~/.config/emby:/config \
    --volume /media/khu-drive/video:/mnt/share1:ro \
    --net=host \
    --publish 8096:8096 \
    --publish 8920:8920 \
    --env UID=0 \
    --env GID=0 \
  emby/embyserver_arm64v8

8. Radarr (for movies) and Sonarr (for TV shows)

docker create \
  --name=radarr \
  -e PUID=0 \
  -e PGID=0 \
  -e TZ=Asia/Ho_Chi_Minh \
  -e UMASK_SET=022 \
  -p 7878:7878 \
  -v ~/.config/radarr:/config \
  -v /media/khu-drive/video/movies:/movies \
  -v /mnt/local/usb/sandisk/downloads:/downloads \
  --restart unless-stopped \
  linuxserver/radarr
docker create \
    --name=sonarr \
    -e PUID=0 \
    -e PGID=0 \
    -e TZ=Asia/Ho_Chi_Minh \
    -e UMASK_SET=022 \
    -p 8989:8989 \
    -v ~/.config/sonarr:/config \
    -v /media/khu-drive/video/TV:/tv \
    -v /mnt/local/downloads:/downloads \
    --restart unless-stopped \
linuxserver/sonarr