【實(shí)用的開(kāi)源項(xiàng)目】使用服務(wù)器部署Audiobookshelf,一個(gè)自托管有聲讀物和播客服務(wù)器

1. 前言
昨天小俊發(fā)現(xiàn)了一個(gè)不錯(cuò)的程序:?Audiobookshelf
?,它是一個(gè)自托管有聲讀物和播客服務(wù)器,它可以直接在程序中搜索?播客?資源,小俊粗略的看了一下,資源還是很多的,并且該程序配套有?Android
?和?IOS
?客戶端,方便使用!今天出一個(gè)教程教大家如何部署?Audiobookshelf
?。

1.1 官方網(wǎng)站
官方網(wǎng)站:?https://www.audiobookshelf.org/
官方Github:?https://github.com/advplyr/audiobookshelf
2. Audiobookshelf 簡(jiǎn)介
Audiobookshelf is a self-hosted audiobook and podcast server.
有聲書(shū)架 是一個(gè)自托管的有聲讀物和播客服務(wù)器。
3. 準(zhǔn)備工作
【必需】一臺(tái)服務(wù)器(推薦?騰訊云輕量應(yīng)用服務(wù)器?
HK
?或境內(nèi),其他服務(wù)器(如?CloudCone?、?RackNerd?、家里云或者各家企業(yè)的私有云亦可【建議】操作系統(tǒng):?
Debian 10
?,后面的教程打算都是用?Debian
?或者?Ubuntu
?系統(tǒng)了?
【建議且必需】域名一枚,并解析到服務(wù)器上
【必需反向代理本教程選用NPM】安裝好Nginx Proxy Manager(?相關(guān)教程?)
注意
本文軟件基于騰訊云輕量應(yīng)用服務(wù)器安裝,無(wú)建議配置,教程使用的騰訊云輕量應(yīng)用服務(wù)器系統(tǒng)為?Ubuntu Server 20.04 LTS 64bit
?!理論上騰訊云輕量應(yīng)用服務(wù)器為?Ubuntu20.04-Docker20
?的服務(wù)器操作應(yīng)與本文基本一致(包括過(guò)程與報(bào)錯(cuò)),其他系統(tǒng)為?Debian
?或者?Ubuntu
?的服務(wù)器應(yīng)與本文大同小異!
騰訊云輕量應(yīng)用服務(wù)器購(gòu)買地址:?https://curl.qcloud.com/XqKjWCYA
騰訊云上云精選:?https://curl.qcloud.com/UEBvnJfH
騰訊云云產(chǎn)品特惠專區(qū):?https://url.cn/GhZUBLVG
4. 視頻教程
5. 界面演示
5.1 媒體庫(kù)頁(yè)

5.2 設(shè)置頁(yè)

5.3 搜索播客頁(yè)

6. 部署 Audiobookshelf
6.1 環(huán)境準(zhǔn)備(騰訊云輕量應(yīng)用服務(wù)器)
該步驟特別為使用騰訊云輕量應(yīng)用服務(wù)器的用戶準(zhǔn)備,若你不是用騰訊云輕量應(yīng)用服務(wù)器部署該程序,可以直接轉(zhuǎn)到?6.2 環(huán)境準(zhǔn)備(其他服務(wù)器)
?繼續(xù)閱讀。
6.1.1 重裝系統(tǒng)
此操作前請(qǐng)確保服務(wù)器上無(wú)重要程序、文件?。?!請(qǐng)確保服務(wù)器上的數(shù)據(jù)已經(jīng)備份好?。?!
此操作前請(qǐng)確保服務(wù)器上無(wú)重要程序、文件?。?!請(qǐng)確保服務(wù)器上的數(shù)據(jù)已經(jīng)備份好!?。?br>此操作前請(qǐng)確保服務(wù)器上無(wú)重要程序、文件?。?!請(qǐng)確保服務(wù)器上的數(shù)據(jù)已經(jīng)備份好?。?!
進(jìn)入騰訊云輕量應(yīng)用服務(wù)器的控制臺(tái),進(jìn)入?重裝系統(tǒng)
?界面,然后選擇?使用容器鏡像
?,列表中選擇?Ubuntu20.04-Docker20
?,?請(qǐng)確保服務(wù)器上無(wú)重要程序、文件?。?!請(qǐng)確保服務(wù)器上的數(shù)據(jù)已經(jīng)備份好?。。?/code>?然后點(diǎn)擊勾選?
確認(rèn)已了解以上內(nèi)容,我確定已備份完成
?,而后點(diǎn)擊確定即可完成系統(tǒng)重裝。


騰訊云輕量應(yīng)用服務(wù)器與?CVM
?相比,輕量應(yīng)用服務(wù)器更聚焦于云計(jì)算入門者、學(xué)生等用戶群體,更加簡(jiǎn)單易用,將基礎(chǔ)云資源與熱門開(kāi)源軟件的融合打包實(shí)現(xiàn)應(yīng)用的開(kāi)箱即用,更適合于支撐小型應(yīng)用,這邊我們之間選擇?Docker
?容器鏡像,就可以跳過(guò)安裝?Docker
?、?docker-compose
的步驟(如果你使用的是境內(nèi)服務(wù)器,騰訊云的?Docker
?容器鏡像已經(jīng)配置好了國(guó)內(nèi)鏡像源,可以加速訪問(wèn)?Docker
?鏡像資源)。由于騰訊云的?Docker
?容器鏡像中的?Docker
?已經(jīng)安裝了?docker-compose
?。所以下文中若你見(jiàn)到?docker compose
?命令,請(qǐng)你使用使用?docker-compose
?命令!
6.1.2 登錄服務(wù)器
OrcaTerm
?(原名?WebShell
?)是騰訊遨馳云原生操作系統(tǒng)中?CVM
?、?Lighthouse
?、裸金屬等產(chǎn)品的統(tǒng)一網(wǎng)頁(yè)終端,幫助用戶隨時(shí)隨地通過(guò)瀏覽器遠(yuǎn)程登錄服務(wù)器管理業(yè)務(wù),相比本地遠(yuǎn)程終端更輕量便捷,無(wú)需掌握?SSH
?和?FTP
?也可輕松操作。
進(jìn)入騰訊云輕量應(yīng)用服務(wù)器的控制臺(tái),點(diǎn)擊右上方的?登錄
?,使用騰訊云正在公測(cè)的?OrcaTerm
?登錄到服務(wù)器。

然后點(diǎn)擊登錄,即可登錄到服務(wù)器中

輸入下面這句命令登錄到?root
?賬號(hào)
sudo -i
Bash
Copy

6.1.3 安裝 Nginx Proxy Manager(必需反向代理本教程選用NPM)
安裝?Nginx Proxy Manager
?的詳細(xì)教程小俊之前也寫過(guò)哦,也配有詳細(xì)的視頻版本,需要學(xué)習(xí)的朋友可以點(diǎn)擊這篇文章學(xué)習(xí)??????鏈接:【教程】使用騰訊云輕量應(yīng)用服務(wù)器搭建Nginx Proxy Manager,優(yōu)美簡(jiǎn)單地解決反向代理!https://www.smalljun.com/archives/3113.html?,當(dāng)然想要使用反向代理的小伙伴要是熟悉?Nginx
?,也可以自己安裝?Nginx
?進(jìn)行反向代理哦!你想用寶塔面板的話,也是沒(méi)有問(wèn)題噠!
6.2 環(huán)境準(zhǔn)備(其他服務(wù)器)
該步驟為各種服務(wù)器的環(huán)境準(zhǔn)備通法,若你使用騰訊云輕量應(yīng)用服務(wù)器部署該程序并已經(jīng)仔細(xì)閱讀?6.1 環(huán)境準(zhǔn)備(騰訊云輕量應(yīng)用服務(wù)器)
?并按步驟完成操作,可以跳過(guò)該步驟,直接轉(zhuǎn)到?6.3 部署 Audiobookshelf
?繼續(xù)閱讀。
6.2.1 更新 Packages 并安裝必要軟件包
執(zhí)行以下命令,更新 Packages 并安裝必要軟件包
apt -y update
apt -y install curl
Shell session
Copy

6.2.2 安裝并啟動(dòng) Docker
6.2.2.1 境外服務(wù)器安裝 Docker
執(zhí)行以下命令,境外服務(wù)器安裝 Docker
curl -fsSL https://get.docker.com | bash -s docker
Shell session
Copy
6.2.2.2 境內(nèi)服務(wù)器安裝 Docker
執(zhí)行以下命令,境內(nèi)服務(wù)器使用阿里云鏡像源安裝 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
Shell session
Copy
執(zhí)行以下命令,境內(nèi)服務(wù)器使用國(guó)內(nèi) daocloud 一鍵安裝命令安裝 Docker
curl -sSL https://get.daocloud.io/docker | sh
Shell session
Copy
6.2.2.3 啟動(dòng) Docker
輸入并執(zhí)行以下命令,啟動(dòng)?Docker
systemctl start docker
Shell session
Copy
再執(zhí)行以下命令,查看?Docker
?的運(yùn)行狀態(tài)
systemctl status docker
Shell session
Copy
最后執(zhí)行以下命令,設(shè)置?Docker
?開(kāi)機(jī)自啟動(dòng)
systemctl enable docker
Shell session
Copy

由于我們通過(guò)以上一鍵腳本安裝的?Docker
?為最新版本,新版本的?Docker
?自帶?compose
?這個(gè)子命令,所以我們無(wú)需額外安裝?docker-compose
?。下文中若你見(jiàn)到?docker-compose
?命令,請(qǐng)你使用使用?docker compose
?命令!
使用方面僅有一個(gè)?-
?(dash)字符只差,新版使用?docker compose
?命令,而如果你是舊版本就使用?docker-compose
?命令。
6.2.3 安裝 Nginx Proxy Manager(必需反向代理本教程選用NPM)
安裝?Nginx Proxy Manager
?的詳細(xì)教程小俊之前也寫過(guò)哦,也配有詳細(xì)的視頻版本,需要學(xué)習(xí)的朋友可以點(diǎn)擊這篇文章學(xué)習(xí)??????鏈接:【教程】使用騰訊云輕量應(yīng)用服務(wù)器搭建Nginx Proxy Manager,優(yōu)美簡(jiǎn)單地解決反向代理!https://www.smalljun.com/archives/3113.html?,當(dāng)然想要使用反向代理的小伙伴要是熟悉?Nginx
?,也可以自己安裝?Nginx
?進(jìn)行反向代理哦!你想用寶塔面板的話,也是沒(méi)有問(wèn)題噠!
6.3 部署 Audiobookshelf
6.3.1 新建目錄
執(zhí)行以下命令,新建目錄
mkdir -p /opt/docker/audiobookshelf && cd /opt/docker/audiobookshelf
Shell session
Copy

6.3.2 新建docker-compose.yaml文件并編輯
執(zhí)行以下命令,新建?docker-compose.yaml
?文件并編輯
nano docker-compose.yaml
Shell session
Copy
然后輸入以下配置內(nèi)容,然后?Ctrl X + y +回車
?退出并保存即可。
version: "3.7"services:
?audiobookshelf:
? ?image: ghcr.io/advplyr/audiobookshelf:latest ? ?container_name: audiobookshelf ? ?ports:
? ? ?- 13378:80 #13378為暴露端口,如被占用,請(qǐng)自行更改替換,需要在云服務(wù)器的控制臺(tái)防火墻開(kāi)放相應(yīng)端口!
? ?volumes:
? ? ?- ./audiobooks:/audiobooks ? ? ?- ./podcasts:/podcasts ? ? ?- ./config:/config ? ? ?- ./metadata:/metadata
YAML
Copy
如下圖所示

注意:
docker-compose.yaml
?文件中?13378
?為暴露端口,如被占用,請(qǐng)自行更改替換,需要在云服務(wù)器的控制臺(tái)防火墻開(kāi)放相應(yīng)端口!
6.3.3 啟動(dòng)容器
輸入執(zhí)行以下命令后臺(tái)啟動(dòng)容器
docker compose up -d #新版本Docker使用該命令
docker-compose up -d #舊版本Docker使用該命令,例:上面提到的騰訊云輕量應(yīng)用服務(wù)器的Docker鏡像中自帶的Docker-compose
Shell session
Copy

啟動(dòng)完后再輸入執(zhí)行以下命令確認(rèn)所有容器都是?running
?或?up
?狀態(tài)
docker compose ps #新版本Docker使用該命令
docker-compose ps #舊版本Docker使用該命令,例:上面提到的騰訊云輕量應(yīng)用服務(wù)器的Docker鏡像中自帶的Docker-compose
Shell session
Copy
如下圖所示

6.4 配置反向代理
先把域名解析到服務(wù)器(如果有小白不會(huì)解析可以進(jìn)入?小俊博客的QQ群:199175766?詢問(wèn),群主就是小俊,一般周末在線,后面考慮寫一篇域名解析教程!進(jìn)入?Nginx Proxy Manager
?,點(diǎn)擊?Hosts
?,然后點(diǎn)擊?Add Proxy Host
,按下圖進(jìn)行配置,下圖中的?172.17.0.1
?可能有所不一,請(qǐng)執(zhí)行?ip addr
?自行查找?docker0
?網(wǎng)卡的內(nèi)網(wǎng)IP!
Domain Names:填寫你想用在該程序的域名
Scheme:默認(rèn)http #一般不用改Forward Hostname / IP:172.17.0.1 #一般為 `172.17.0.1` ,可能有所不一,請(qǐng)執(zhí)行 `ip addr` 自行查找 `docker0` 網(wǎng)卡的內(nèi)網(wǎng)IP!Forward Port:13378 #暴露端口(若跟著本文未修改 `yaml` 文件中的暴露端口。應(yīng)為 `13378` )
Bash
Copy
如下圖所示

先不要著急著點(diǎn)?Save
?,我們可以為程序添加上?SSL
?證書(shū),給他加上一道小綠鎖,不過(guò)如果你點(diǎn)了也沒(méi)關(guān)系,沒(méi)點(diǎn)?Save
?的朋友點(diǎn)擊?SSL
?,然后點(diǎn)擊?Request a new SSL Certificate
?,然后把?Force SSL
?和?HTTP/2 Support
?打開(kāi),修改一下?Email Address for Let's Encrypt
?的郵箱,然后?Save
?即可;點(diǎn)擊了?Save
?的朋友,點(diǎn)擊右邊的三點(diǎn),點(diǎn)擊?Edit
?,重復(fù)上述步驟即可!
至此,我們已經(jīng)安裝完成?Audiobookshelf
?這一個(gè)自托管有聲讀物和播客服務(wù)器了,大家記得去?DNS
?提供商解析域名哦!
瀏覽器訪問(wèn)您剛剛設(shè)置的域名即可訪問(wèn)!
Ps:需要在騰訊云輕量應(yīng)用服務(wù)器的后臺(tái)防火墻開(kāi)放相應(yīng)端口!默認(rèn)需要開(kāi)放?80 tcp
?、?443 tcp
?與?81 tcp
?哦。
7. 簡(jiǎn)單使用教程
7.1 初始化程序
瀏覽器你的程序域名,引入眼簾的就是?Initial Server Setup
?,我們需要初始化程序,簡(jiǎn)單地說(shuō),就是設(shè)置管理員賬號(hào)密碼。

7.2 修改語(yǔ)言
點(diǎn)擊?Settings
?,?Default Server Language
?,將其改為?簡(jiǎn)體中文
?即可!、

7.3 添加資料庫(kù)
然后我們需要添加資料庫(kù),把之前映射到容器內(nèi)的目錄添加上去:audiobooks
?用于有聲讀物podcasts
?用于播客


7.4 搜索播客資源
點(diǎn)擊一下?Audiobookshelf
?,即可進(jìn)入?Library

然后選擇?podcasts
?媒體庫(kù),左側(cè)邊欄選擇?查找
?,在搜索框內(nèi)輸入關(guān)鍵字搜索,即可搜索播客資源

選擇你喜歡的資源下載即可
8. 目前遇到的問(wèn)題
8.1 境內(nèi)服務(wù)器難以安裝 Docker
建議直接執(zhí)行以下命令,安裝?Docker
apt install docker.io
Shell session
Copy
然后,參考小俊之前寫過(guò)的??????【教程】CentOS系統(tǒng)Docker的詳細(xì)安裝教程https://www.smalljun.com/archives/3174.html?,安裝?Docker-compose
?,然后再進(jìn)行?第6.2步及其后續(xù)操作
9. Ending
有問(wèn)題可以去?GitHub?提?Issues
,也可以在評(píng)論區(qū)互相交流探討哦!