## 介紹
[solo博客](https://github.com/88250/solo) 類似于hexo,一款很漂亮的博客
## 搭建
### 安裝docker
[點我進行學習](/環境配置/安裝docker.md)
### 安裝solo
```
docker pull b3log/solo
```
### 啟動容器
需要提前在數據庫里創建名稱為solo的數據庫
```
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="solo" \
--env JDBC_PASSWORD="數據庫密碼" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://hostname :port/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=8001 --server_scheme=http --server_host=hostname --server_port=4000
```
```
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="xxx" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://hostname:port/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
--volume /home/solo/skins:/opt/solo/skins \
--volume /home/solo/images:/opt/solo/images \
b3log/solo --listen_port=4000 --server_scheme=http --server_host=hostname --server_port=4001
```
* JDBC\_USERNAME: 用戶名
* JDBC\_PASSWORD: 密碼
* hostname: 主機
* port: 數據庫端口
* --listen\_port: 進程監聽端口,一般默認訪問端口
* --server\_scheme: 最終訪問協議,如果反代服務啟用了 HTTPS 這里也需要改為https
* --server\_host: 最終訪問域名或公網 IP,不要帶端口
* --server\_port: 最終訪問端口,使用瀏覽器默認的 80 或者 443 的話值留空即可
#### 目錄配置
* 如果要使用其他皮膚,可以掛載目錄 skins(里面需要包含所需使用的所有皮膚):
```
--volume /home/solo/skins:/opt/solo/skins
```
* 掛載md目錄
```
--volume /home/solo/notebook:/opt/solo/markdowns \
```
* 其他
```
--volume /home/solo/images:/opt/solo/images
```
### 其他
如果想將github項目部署到solo中
請看搜索本筆記 jenkins 相關文章
這是部署好jenkins后,在構建中所填寫的執行命令
```
mysql -h 服務器IP或者服務器網址 -u數據庫用戶名 -p數據庫密碼 -P 端口-D數據庫名<sql文件所在位置 &&
rm -rf 掛載的markdowns位置 &&
cp -rf 自動化部署項目所在位置 掛載的markdowns位置 &&
rm -rf 掛載的markdowns位置/SUMMARY.md && docker restart solo容器
```
```
為什么這樣寫命令?因為想自動化部署,自動化部署后,由于所在項目沒有在理想目錄,需要用cp命令進行文件夾復制過去,進行覆蓋
為什么要進行刪除?因為solo下markdowns md格式,已經被solo更改了,用cp覆蓋后,還會存在。
為什么要執行sql?因為solo已經將文章存入數據庫了,我需要將數據庫中文章該表清除,這樣在后面操作,就不會有殘留、
最后重啟solo容器,solo會馬上讀取markdowns目錄
```
### 美化
* 添加音樂

> 分別所在位置填寫如下信息
HTML head:
```
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.7.0/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.7.0/dist/APlayer.min.js"></script>
```
公告:
```
<!-- 公告欄可使用 HTML、JavaScript,比如可以在此加入第三方統計 js -->
<div class="aplayer" data-id="4899337473" data-server="netease" data-type="playlist" data-list-folded="true"></div>
```
頁腳:
```
<script src="https://cdn.jsdelivr.net/npm/meting@1.1.0/dist/Meting.min.js"></script>
```
### 額外
由于是從github拉去的項目,圖片是相對路徑,導致顯示不出來,因此,將如下代碼,放入上方的頁腳處即可
```
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script>
$("#articlePage img").each(function(){
var url = $(this).attr("src");
url = "https://raw.githubusercontent.com/CoderAngle/notebook/master"+url
$(this).attr("src",url );
if(url.indexOf("assets") >= 0)
console.log(url)
});
</script>
```