Bluestone-青石の个人站 - 2023年1月 https://blog.960111.xyz/2023/01/ 我还没有去到遥远的地方。 典型Linux-Based NAS 搭建 https://blog.960111.xyz/archives/34.html 2023-01-09T04:38:00+00:00 config.bash(具体每个应用的配置与部署暂略……网络上能找到很多。)以下内容作为配置一台Linux-Based的NAS参考。一、基础软硬件配置CPU:2 CoreRAM:4 GBOS: Ubuntu Server 22.04.1Disk:视情况而定二、分区:510MB /boot/efi fat32512MB /boot ext42GB swap50G / ext430G /database ext4500G /data ext4(/database集中各个docker配置文件,便与打包备份,/data用于SMB共享,容量视情况而定,)三、账户:基本账户ming:密码:ming2022全局使用该账户作为基本账户。管理账户Adminming密码:ming2022!部分应用设立管理账户,与日常使用账户区隔系统根账户root:密码:mingPSWD2022!四、功能实现 以CASAOS作为首页(这实际上是个GUI的Dokcer管理界面),以Docker化的形式运行Filebrower(Web文件管理)、Jellyfin(影音库)、Calibre(图书馆)、Wiznote(笔记系统)、Syncthing(文件备份)、Qbittorrent(BT下载)、Homeassistant(智能家居)、flare(基于Docker的导航页,作为CASAOS的替换)、v2raya(魔法)、FRPS(反向代理,需手动配置文件后启用)等应用。 在下面这个脚本中,CASAOS占用80端口,其余则按顺序占用60000+端口(60000起),另外占用50000+部分端口用于通信。系统部署完成后直接导入脚本 config.bash(右键下载)wget https://www.960111.xyz/usr/uploads/2023/01/config.bash然后运行sudo bash config.bash也可以直接从下面复制修改。echo "首先修改root密码" sudo passwd sudo usermod -aG sudo $user echo "修改SSH端口为31400和34100(备用),并禁止root用户登录" sudo sed -i 's/#Port 22/Port 31400\nPort 34100\nPermitRootLogin no/' /etc/ssh/sshd_config echo "完成" echo "更换软件源更换为清华镜像" sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list sudo apt-get update >> install.list echo -e "安装一些必要软件:\nhtop glances net-tools neofetch samba" sudo apt-get install vim htop glances net-tools neofetch samba -y >> install.list echo "完成" echo "卸载ufw、安装firewalld防火墙,并开放这两个端口用于SSH:" sudo systemctl stop ufw sudo systemctl disable ufw sudo apt-get purge ufw -y > install.list sudo apt-get install firewalld -y > install.list sudo systemctl start firewalld sudo systemctl enable firewalld sudo firewall-cmd --zone=public --add-port=31400/tcp --add-port=34100/tcp --permanent sudo firewall-cmd --reload echo "以下端口已开放" sudo firewall-cmd --list-port echo "接下来我们将重启SSH服务,下次请更换31400端口重新登陆" sudo systemctl reload ssh echo "开放必要端口用于各种服务" echo "TCP Usage UDP Usage 80 HTTP(CASAOS) 443 HTTPS(CASAOS) 445 SMB 59989 V2rayA 59990 V2rayA 59991 V2rayA 59992 V2rayA 59993 Aira2 59994 Aira2 59994 Aira2 59995 Syncthing 59996 Syncthing 59996 Syncthing 59997 Qbittorrent 59997 Qbittorrent 59998 WizNote 59999 FRPS 59999 FRPS 60000 FileBrowser 60001 Jellyfin 60002 Calibre 60003 Wiznote 60004 Syncthing WebUI 60005 Qbittorrent 60006 HomeAssistant 60007 Flare 60008 V2rayA 60009 FRPS 60010 Aira2 ">port echo "$(<port)" sudo firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --add-port=445/tcp --add-port=59989-59994/tcp --add-port=59996-59997/tcp --add-port=59999/tcp --add-port=60000-60010/tcp --permanent sudo firewall-cmd --zone=public --add-port=59994-59999/udp --permanent sudo firewall-cmd --reload echo "以下端口已开放" sudo firewall-cmd --list-port echo "安装并启用docker" sudo apt-get install docker docker.io -y >> install.list sudo systemctl start docker sudo systemctl enable docker echo "docker已安装" echo "拉取各种Docker镜像" echo "sudo docker pull filebrowser/filebrowser sudo docker pull jellyfin/jellyfin sudo docker pull linuxserver/calibre-web sudo docker pull wiznote/wizserver sudo docker pull linuxserver/syncthing sudo docker pull linuxserver/qbittorrent sudo docker pull homeassistant/home-assistant sudo docker pull soulteary/flare sudo docker pull mzz2017/v2raya sudo docker pull snowdreamtech/frpc sudo docker pull snowdreamtech/frps" > docker.bash bash docker.bash >>install.list rm docker.bash echo "镜像已下拉完成" echo "集中创建镜像所需要的文件夹" mkdir /database/{filebrowser,jellyfin,calibre,wiznote,syncthing,qbittorrent,homeassistant,flare,v2raya} -p echo "完成" echo "集中创建容器" docker run --name=filebrowser --restart=always -d \ -v /data:/srv \ -v /database/filebrowser/filebrowserconfig.json:/etc/config.json \ -v /database/filebrowser/database.db:/etc/database.db \ -p 60000:80 \ filebrowser/filebrowser echo"filebrowser 部署完成,端口60000" docker run --name=jellyfin --restart=always -d \ -v /database/jellyfin/config:/config \ -v /srv/jellyfin/cache:/cache \ -v /data:/data \ -v /mnt:/mnt \ -p 60001:8096 \ jellyfin/jellyfin echo"jellyfin 部署完成,端口60001" docker run --name=calibre --restart=always -d \ -e USE_CONFIG_DIR=true \ -e SET_CONTAINER_TIMEZONE=true \ -e CONTAINER_TIMEZONE=Asia/Shanghai \ -e PGID=0 \ -e PUID=0 \ -v /database/calibre/books:/books \ -v /database/calibre/config:/calibre-web/config \ -p 60002:8083 \ linuxserver/calibre-web echo"calibre 部署完成,端口60002" docker run --name=wiznote --restart=always -d -it \ -v /database/wiznote:/wiz/storage \ -v /etc/localtime:/etc/localtime \ -p 60003:80 \ -p 59998:9269/udp \ wiznote/wizserver echo"Wizserver 部署完成,端口60003" docker run --name=syncthing --restart=always -d\ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -v /database/syncthing/config:/config \ -v /database/syncthing/photo:/photo \ -p 60004:8384 \ -p 59996:22000/tcp \ -p 59996:22000/udp \ -p 59995:21027/udp \ linuxserver/syncthing echo"syncthing 部署完成,端口60004" docker run --name=qbittorrent --restart unless-stopped -d\ --network=host \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -e WEBUI_PORT=60005 \ -v /database/qbittorrent/config:/config \ -v /data:/data \ linuxserver/qbittorrent echo"qbittorrent 部署完成,端口60005" echo"请设置BT端口到59997" docker run --name=homeassistant --restart=always -d \ -v /database/homeassistant/config:/config \ -p 60006:8123 \ homeassistant/home-assistant echo"homeassistant 部署完成,端口60006" docker run --name=flare --restart=always -d \ -it \ -v /database/flare:/app \ -p 60007:5005 \ soulteary/flare echo"flare 部署完成,端口60007" docker run --name=v2raya --restart=always -d \ --privileged --network=host \ -e V2RAYA_ADDRESS=0.0.0.0:60008 \ -e PUID=0 \ -e GUID=0 \ -v /lib/modules:/lib/modules:ro \ -v /etc/resolv.conf:/etc/resolv.conf \ -v /database/v2raya:/etc/v2raya \ mzz2017/v2raya echo"v2raya 部署完成,端口60008" docker create --name=frps --restart=always \ --network=host \ -v /database/frp/frps.ini:/etc/frp/frps.ini \ snowdreamtech/frps echo"frps部署完成,端口未指定预留59999(TCP/UDP) 60009,稍后请自行配置" docker run --name=aria2 --restart=always -d \ -v /data:/downloads \ -v /database/aria2/config:/config \ -e PUID=1000 \ -e GUID=1000 \ -e SECRET=ming2022 \ -e CACHE=2048M \ -e PORT=59993 \ -e BTPORT=59994 \ -e WEBUI=true \ -e WEBUI_PORT=60010 \ -e FA=falloc \ -p 60010:60010 \ -p 59993:59993 \ -p 59994:59994 \ -p 59994:59994/udp \ superng6/aria2 echo"aria2部署完成,WEB端口60010 RPC端口59993 BT端口59994(TCP/UDP)" docker run -d \ --name=AutoBangumi \ -v /database/autoBangumi/config:/app/config \ -v /data/Manage/bangumu:/app/data \ -p 7892:7892 \ -e TZ=Asia/Shanghai \ -e PUID=1000 \ -e GUID=1000 \ -e UMASK=022 \ --network=bridge \ --dns=192.168.50.1 \ --restart always \ ghcr.io/estrellaxd/auto_bangumi:latest echo"安装CASAOS作为管理页面" curl -fsSL https://get.casaos.io | sudo bash echo"完成" echo "请按任意键退出。" read -s -n1