Skip to content

Commit

Permalink
feat: 优化部署自动
Browse files Browse the repository at this point in the history
  • Loading branch information
MarleneJiang committed Feb 18, 2023
1 parent afe8425 commit 38fdc11
Show file tree
Hide file tree
Showing 5 changed files with 329 additions and 3 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/autoDeploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,29 @@ jobs:
pm2 delete cms # 删除旧的进程
sed -i 's/\r//' start.sh # 将start.sh中的\r替换为空,解决换行符问题
pm2 start start.sh --name cms # 启动新的进程
pm2 save # 保存配置
- name: Deploy JueJin
uses: cross-the-world/scp-pipeline@master
with:
host: ${{ secrets.STRAPI_HOST }} # 服务器IP(需要在GitHub上自行配置对应的secret)
user: ${{ secrets.STRAPI_USER }} # 服务器用户名
pass: ${{ secrets.STRAPI_PASS }} # 服务器密码
connect_timeout: 10s
local: './frontend/*' # 源路径(工作流)
remote: /opt/bytedream # 目标路径(服务器)

# 在服务器端执行相关指令
- name: PM2 Strapi
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.STRAPI_HOST }} # 服务器IP(需要在GitHub上自行配置对应的secret)
username: ${{ secrets.STRAPI_USER }} # 服务器用户名
password: ${{ secrets.STRAPI_PASS }} # 服务器密码
script: |
cd /opt/bytedream # 进入服务器中的端工程所在的目录
sudo yarn install # 安装项目依赖
pm2 delete bytedream # 删除旧的进程
sed -i 's/\r//' start.sh # 将start.sh中的\r替换为空,解决换行符问题
pm2 start start.sh --name bytedream # 启动新的进程
pm2 save # 保存配置
302 changes: 300 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
- 👀 `Automatic Branch and Issue Autolink` - Branch will be automatically created on issue assigned, and auto-linked on PR
- 🗺 `Nuxt SEO Kit` - Sitemap,Schema.org,Generate dynamic social share images
- 📦 `Vercel` - Auto Deploy & Preview with Workflows
- 🔥 `Netlify + Cloudflare` - Deploy in Production Environment
- 🔥 `Netlify + Cloudflare` - Deployed in Production Environment
- 👀 `Sentry` - Error Tracking
- 👁️ `MeiliSearch` - Fast Search Engine

Expand All @@ -53,4 +53,302 @@ yarn dev

(vercel) <https://vercel.bytedream.top/>

(本地部署版本 位于杭电宿舍的服务器) <http://op.bytedream.top/>
(本地部署版本 位于杭电宿舍的服务器) <http://op.bytedream.top/>

## 目录结构

```
ByteDream-JueJin
├─ .github
│ ├─ ISSUE_TEMPLATE
│ │ ├─ bug_report.md
│ │ ├─ custom.md
│ │ └─ feature_request.md
│ └─ workflows
│ ├─ autoDeploy.yaml // 自动部署
│ ├─ issue.yaml
│ ├─ lint.yaml
│ └─ release.yaml
├─ .gitignore
├─ .husky
│ ├─ commit-msg
│ ├─ post-merge
│ ├─ pre-commit
│ └─ _
│ ├─ .gitignore
│ └─ husky.sh
├─ .vscode
│ ├─ extensions.json
│ └─ settings.json
├─ .yarnrc
├─ backend
│ ├─ .editorconfig
│ ├─ .eslintignore
│ ├─ .eslintrc
│ ├─ .gitignore
│ ├─ .strapi-updater.json
│ ├─ .tmp
│ │ └─ data.db // 数据库文件
│ ├─ config
│ │ ├─ admin.js
│ │ ├─ api.js
│ │ ├─ database.js
│ │ ├─ middlewares.js
│ │ ├─ plugins.js
│ │ └─ server.js
│ ├─ database
│ │ └─ migrations
│ │ └─ .gitkeep
│ ├─ favicon.png
│ ├─ package.json
│ ├─ public
│ │ ├─ robots.txt
│ │ └─ uploads
│ │ ├─ .gitkeep
│ │ ├─ favicon_9f85af9de4.png
│ │ └─ favicon_f56143b8c2.png
│ ├─ README.md
│ ├─ src
│ │ ├─ admin
│ │ │ ├─ app.example.js
│ │ │ └─ webpack.config.example.js
│ │ ├─ api
│ │ │ ├─ .gitkeep
│ │ │ ├─ article
│ │ │ │ ├─ content-types
│ │ │ │ │ └─ article
│ │ │ │ │ └─ schema.json
│ │ │ │ ├─ controllers
│ │ │ │ │ └─ article.js
│ │ │ │ ├─ documentation
│ │ │ │ │ └─ 1.0.0
│ │ │ │ │ └─ article.json
│ │ │ │ ├─ routes
│ │ │ │ │ └─ article.js
│ │ │ │ └─ services
│ │ │ │ └─ article.js
│ │ │ ├─ author
│ │ │ │ ├─ content-types
│ │ │ │ │ └─ author
│ │ │ │ │ └─ schema.json
│ │ │ │ ├─ controllers
│ │ │ │ │ └─ author.js
│ │ │ │ ├─ documentation
│ │ │ │ │ └─ 1.0.0
│ │ │ │ │ └─ author.json
│ │ │ │ ├─ routes
│ │ │ │ │ └─ author.js
│ │ │ │ └─ services
│ │ │ │ └─ author.js
│ │ │ ├─ colum
│ │ │ │ ├─ content-types
│ │ │ │ │ └─ colum
│ │ │ │ │ └─ schema.json
│ │ │ │ ├─ controllers
│ │ │ │ │ └─ colum.js
│ │ │ │ ├─ documentation
│ │ │ │ │ └─ 1.0.0
│ │ │ │ │ └─ colum.json
│ │ │ │ ├─ routes
│ │ │ │ │ └─ colum.js
│ │ │ │ └─ services
│ │ │ │ └─ colum.js
│ │ │ ├─ global
│ │ │ │ ├─ content-types
│ │ │ │ │ └─ global
│ │ │ │ │ └─ schema.json
│ │ │ │ ├─ controllers
│ │ │ │ │ └─ global.js
│ │ │ │ ├─ documentation
│ │ │ │ │ └─ 1.0.0
│ │ │ │ │ └─ global.json
│ │ │ │ ├─ routes
│ │ │ │ │ └─ global.js
│ │ │ │ └─ services
│ │ │ │ └─ global.js
│ │ │ ├─ tag
│ │ │ │ ├─ content-types
│ │ │ │ │ └─ tag
│ │ │ │ │ └─ schema.json
│ │ │ │ ├─ controllers
│ │ │ │ │ └─ tag.js
│ │ │ │ ├─ documentation
│ │ │ │ │ └─ 1.0.0
│ │ │ │ │ └─ tag.json
│ │ │ │ ├─ routes
│ │ │ │ │ └─ tag.js
│ │ │ │ └─ services
│ │ │ │ └─ tag.js
│ │ │ └─ type
│ │ │ ├─ content-types
│ │ │ │ └─ type
│ │ │ │ └─ schema.json
│ │ │ ├─ controllers
│ │ │ │ └─ type.js
│ │ │ ├─ documentation
│ │ │ │ └─ 1.0.0
│ │ │ │ └─ type.json
│ │ │ ├─ routes
│ │ │ │ └─ type.js
│ │ │ └─ services
│ │ │ └─ type.js
│ │ ├─ components
│ │ │ ├─ articles
│ │ │ │ ├─ ads.json
│ │ │ │ └─ content-ad.json
│ │ │ └─ layouts
│ │ │ ├─ ads.json
│ │ │ ├─ footers.json
│ │ │ ├─ gadgets.json
│ │ │ ├─ links.json
│ │ │ └─ navs.json
│ │ ├─ extensions
│ │ └─ index.js
│ ├─ start.sh
│ └─ yarn.lock
├─ CHANGELOG.md
├─ commitlint.config.js
├─ frontend
│ ├─ .eslintrc
│ ├─ .gitignore
│ ├─ .prettierrc
│ ├─ .sentryclirc
│ ├─ app.vue
│ ├─ assets
│ │ ├─ css
│ │ │ └─ main.css
│ │ ├─ highlight.ts
│ │ └─ themes.ts
│ ├─ components
│ │ ├─ ArticlesContent // 详细文章
│ │ │ ├─ End
│ │ │ │ ├─ ColumnContainer.vue
│ │ │ │ └─ TagList.vue
│ │ │ ├─ highlightStyle.ts
│ │ │ ├─ index.vue
│ │ │ ├─ SideBar
│ │ │ │ ├─ Left
│ │ │ │ │ ├─ index.vue
│ │ │ │ │ └─ Svg.vue
│ │ │ │ └─ Right
│ │ │ │ ├─ Author.vue
│ │ │ │ ├─ Catalogue.vue
│ │ │ │ ├─ Column.vue
│ │ │ │ ├─ index.vue
│ │ │ │ └─ RelatedArticles.vue
│ │ │ └─ themeStyle.ts
│ │ ├─ ArticlesList // 文章列表
│ │ │ ├─ index.vue
│ │ │ ├─ Item
│ │ │ │ ├─ Ads.vue
│ │ │ │ ├─ AuthorCard
│ │ │ │ │ └─ index.vue
│ │ │ │ ├─ Bar
│ │ │ │ │ ├─ Bottom.vue
│ │ │ │ │ ├─ Center.vue
│ │ │ │ │ └─ Top.vue
│ │ │ │ └─ index.vue
│ │ │ ├─ Navigation
│ │ │ │ ├─ index.vue
│ │ │ │ ├─ Link.vue
│ │ │ │ └─ Select.vue
│ │ │ └─ Ui
│ │ │ ├─ Btns.vue
│ │ │ ├─ Img.vue
│ │ │ ├─ Link.vue
│ │ │ └─ Skeleton.vue
│ │ ├─ Aside // 主页侧边栏
│ │ │ ├─ Advertisements.vue
│ │ │ ├─ ArticleList.vue
│ │ │ ├─ AuthorList.vue
│ │ │ ├─ Footers.vue
│ │ │ ├─ Gadgets.vue
│ │ │ ├─ index.vue
│ │ │ ├─ LinkList.vue
│ │ │ ├─ Sign.vue
│ │ │ └─ SuspensionPanel.vue
│ │ ├─ Logo.vue
│ │ ├─ Main
│ │ │ └─ index.vue
│ │ ├─ Navs // 导航栏
│ │ │ ├─ index.vue
│ │ │ ├─ Item.vue
│ │ │ └─ SearchBox.vue
│ │ ├─ Types
│ │ │ ├─ index.vue
│ │ │ └─ TagNav.vue
│ │ └─ Uno
│ │ └─ DarkToggle.vue
│ ├─ composables
│ │ ├─ ArticleContent
│ │ │ └─ useImmerse.ts
│ │ ├─ Articlelist
│ │ │ ├─ useArtlistFn.ts
│ │ │ └─ useScrollBottom.ts
│ │ ├─ useFold.ts
│ │ ├─ useThrottle.ts
│ │ └─ useTime.ts
│ ├─ html.d.ts
│ ├─ layouts
│ │ └─ default.vue // 默认布局
│ ├─ netlify.toml
│ ├─ nuxt.config.ts
│ ├─ package.json
│ ├─ pages // 基本路由
│ │ ├─ article // 详情文章页 根据id显示对应文章
│ │ │ └─ [id].vue
│ │ ├─ index.vue // 首页
│ │ ├─ [...all].vue // 404页面
│ │ └─ [type] // 标签页及子标签页 例如:/frontend/vue
│ │ ├─ index.vue
│ │ └─ [tag].vue
│ ├─ plugins
│ │ └─ sentry.client.ts
│ ├─ public
│ │ ├─ favicon.png
│ │ └─ og-image.png
│ ├─ server
│ │ ├─ api // BFF接口
│ │ │ ├─ articles
│ │ │ │ ├─ columns
│ │ │ │ │ └─ [id].ts
│ │ │ │ ├─ list.ts
│ │ │ │ ├─ tags.ts
│ │ │ │ ├─ update
│ │ │ │ │ └─ like.ts
│ │ │ │ └─ [id].ts
│ │ │ ├─ authors
│ │ │ │ └─ list.ts
│ │ │ └─ global
│ │ │ ├─ ad.ts
│ │ │ ├─ content-ad.ts
│ │ │ ├─ index.ts
│ │ │ ├─ navs.ts
│ │ │ ├─ search.ts
│ │ │ ├─ tags.ts
│ │ │ └─ types.ts
│ │ └─ README.md
│ ├─ start.sh
│ ├─ tsconfig.json
│ ├─ types
│ │ ├─ IArticle.ts
│ │ ├─ IArticleItem.ts
│ │ ├─ IGlobal.ts
│ │ ├─ ILink.ts
│ │ ├─ IMutation.ts
│ │ ├─ INav.ts
│ │ ├─ ISearch.ts
│ │ └─ IType.ts
│ ├─ unocss.config.ts
│ ├─ utils
│ │ └─ useGraphql.ts
│ └─ vercel.json
├─ index.ts
├─ LICENSE
├─ package.json
├─ README.md
├─ SECURITY.md
├─ turbo.json
└─ yarn.lock
```
Binary file removed frontend/public/nuxt.png
Binary file not shown.
Binary file removed frontend/public/vite.png
Binary file not shown.
5 changes: 4 additions & 1 deletion frontend/start.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
cd /opt/bytedream;
sudo yarn build;
sudo PORT=8885 node .output/server/index.mjs;
cd /opt/bytedream/.output/server;
sudo npm i node-fetch-native;
sudo PORT=8885 node index.mjs;

0 comments on commit 38fdc11

Please sign in to comment.