DockerHome

Deploy CoreHome in Docker

View project on GitHub

DockerHome

Deploy CoreHome in Docker

DockerHome是为了方便部署CoreHome而产生的项目,主要是为了方便使用,避免搭建博客时从源码构建,降低使用CoreHome的学习成本。镜像已经上传到了DockerHub和阿里云,所以此项目中只包含了docker-compose文件和一些脚本,方便一键搭建博客,下面是介绍怎样使用DockerHome来搭建CoreHome。

使用DockerHome快速搭建CoreHome

build

CoreHome 是一个基于 .NET 和 阿里云OSS 的博客系统,包含了个人信息管理,主页项目管理,主题管理(主页背景,亮暗主题,BGM),博客管理、分类、标签、归档,评论及反馈提醒,服务器网络状态检测等功能。

ReadMe Card

DockerHome是为了方便部署CoreHome而产生的项目,主要是为了方便使用,避免搭建博客时从源码构建,降低使用CoreHome的学习成本。

ReadMe Card

首先确保你有一台阿里云的Linux服务器,并且开通了OSS服务。

注意:必须是阿里云,因为项目依赖于阿里云OSS服务(项目依赖于 Aliyun.OSS.SDK.NetCore)

  • 问:什么是OSS? 答:OSS是阿里云的对象存储服务,可以用来存储对象(图片,音频,视频,等等…)

  • 问:为什么要使用OSS? 答:大部分人搭建博客购买的服务器带宽都不大,所以网站上的图片,音频,视频的加载速度会很慢,所以CoreHome借助于OSS来加快网站访问速度。

  • 问:OSS的价格如何? 答:很便宜,每天100M流量也就几分钱,冲10块钱用很久。

  • 问:如何开通OSS 答:阿里云产品列表点进去点开通就行了,这里放个链接

创建Bucket

首先访问OSS管理控制台,如下图,这里再放个链接

oss overview

在控制台中点击左侧Bucket列表

接下来点击创建Bucket,输入Bucket名称并选择区域,并将读写权限改为公共读

CreateBucket

最后进入Bucket中,点击文件管理,创建三个文件夹(注意:全部小写)

  • blogs 博客中的插图默认上传文件夹
  • images 个人头像以及个人项目封面默认上传文件夹
  • musics 主页BGM默认文件夹(主页会从此文件夹中随机选取音乐播放)

记录Bucket信息

从Bucket列表点击刚刚创建好的Bucket,下来点击左侧的概览,记录如图的信息

  • EndPoint:绿色圈的
  • BucketDomainName:蓝色圈的(如果开启了传输加速域名,可以记录黄色圈的)
  • BucketName:红色圈的

创建阿里云 AccessKeyId 和 AccessKeySecret

在阿里云的网页上右上角头像中点击 AccessKey管理

点击创建 AccessKey 并记录 AccessKeyIdAccessKeySecret

注册 PushDeer

此博客使用 PushDeer 来给你的微信发送各种通知(动态登陆密码,评论通知,反馈中心,等…)

这里放上 PushDeer仓库,你需要访问 Release 来安装合适的版本,或是轻应用。

使用你的微信账户登录 PushDeer,接下来点击创建 Key 并绑定设备。

你可以点击发送消息进行测试,并记录下 Key。最后将其填入 appsettings.json 中的 PushDeerSckey 项。

部署CoreHome

首先克隆DockerHome项目到服务器

git clone https://github.com/lixinyang123/DockerHome.git

项目结构如下

  • DockerHome(根目录)
    • config(用户配置文件夹)
      • SiteMap.txt(站点地图)
      • appsettings.json(项目配置)
      • favicon.ico(网站图标)
    • scripts
      • pull-images.sh(从阿里云拉取镜像脚本)
    • README.md(自述文件)
    • docker-compose.yml(docker-compose配置)

注意:用户需要配置的内容全部在config文件夹下,其他文件不要修改

  • 如果你的服务器已经安装过 Docker 和 Docker-Compose,那么可以开始修改配置文件了。
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "CoreHome": "server=database;user id=root;password=password;database=corehome"
  },
  "PageSize": 10,
  "PushDeerSckey": "",
  "BaiduLinkSubmit": "",
  "OssConfig": {
    "AccessKeyId": "",
    "AccessKeySecret": "",
    "EndPoint": "",
    "BucketDomainName": "",
    "BucketName": ""
  }
}
  • PushDeerSckey 填入 PushDeer 的 Key,详情见上方 注册 PushDeer 部分
  • BaiduLinkSubmit 百度资源搜索平台主动推送 API
  • AccessKeyId 和 AccessKeySecret 填入阿里云 AccessKeyId 和 AccessKeySecret,详情见上方 创建阿里云 AccessKeyId 和 AccessKeySecret 部分
  • EndPoint,BucketDomainName,BucketName 填入 OSS 的 Bucket 信息,详情见上方 记录Bucket信息

完成之后效果如下

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "CoreHome": "server=database;user id=root;password=password;database=corehome"
  },
  "PageSize": 10,
  "PushDeerSckey": "SCU53487T3f2*****************5d0463b66ac44",
  "BaiduLinkSubmit": "http://data.zz.baidu.com/urls?site=******************",
  "OssConfig": {
    "AccessKeyId": "LT*******************Nx",
    "AccessKeySecret": "xS*******************kHk",
    "EndPoint": "https://oss-cn-shenzhen.aliyuncs.com/",
    "BucketDomainName": "https://****home.oss-accelerate.aliyuncs.com/",
    "BucketName": "****home"
  }
}

注意:EndPoint 和 BucketDomainName 的前面加上 https:// 并在结尾加上 /

到此,最主要的配置已经完成

接下来修改SiteMap.txt中的链接,改为你的域名即可

https://www.example.com/
https://www.example.com/Blog
https://www.example.com/Tags
https://www.example.com/Archive
https://www.example.com/FeedBack

将 www.example.com 改为你的域名,改后的效果如下

https://www.lllxy.net/
https://www.lllxy.net/Blog
https://www.lllxy.net/Tags
https://www.lllxy.net/Archive
https://www.lllxy.net/FeedBack

最后将你的头像重命名为favicon.ico,并替换config中的favicon.ico即可

启动CoreHome

进入DockerHome项目根目录,执行

docker compose up

默认会从DockerHub拉取需要的镜像并启动

拉取的镜像:

  • lixinyang/corehome-homepage
  • lixinyang/corehome-admin
  • lixinyang/corehome-reverseproxy
  • mysql:latest

如果拉取速度很慢,可以从阿里云拉取镜像,只需执行 scripts/pull-image.sh.sh ,并重新执行 docker compose up 即可。

bash ./scripts/pull-image.sh
docker compose up

网站默认在8080端口启动( http://localhost:8080 ) ,启动时请注意端口是否被占用

如果端口被占用,可以修改 docker-compose.yml 中 reverse-proxy 的 ports

改为 你要启动的端口:80 即可

首次启动

注意:首次启动后,访问 /Admin 设置个人信息和管理员密码,如果不设置密码,管理员界面可以直接访问。