feat: add Ghost app

个人博客平台

Signed-off-by: 萌森 <qyg2297248353@163.com>
This commit is contained in:
萌森 2024-08-06 16:16:35 +08:00 committed by 萌森
parent e94179ea4f
commit 6bb11cfeb1
8 changed files with 323 additions and 0 deletions

108
apps/ghost/5.89.0/data.yml Normal file
View File

@ -0,0 +1,108 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_DB_HOST
required: true
type: service
default: mysql
edit: true
envKey: PANEL_DB_TYPE
labelZh: 数据库 服务
labelEn: Database Service
required: true
type: apps
values:
- label: MySQL
value: mysql
- label: MariaDB
value: mariadb
- default: 2368
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: "http://127.0.0.1:2368"
edit: true
envKey: url
labelZh: 域名
labelEn: Domain
required: true
rule: paramExtUrl
type: text
- default: "http://127.0.0.1:2368"
edit: true
envKey: admin__url
labelZh: 域名 (后台)
labelEn: Domain (Admin)
required: true
rule: paramExtUrl
type: text
- default: "ghost"
edit: true
envKey: database__connection__user
labelZh: 数据库 用户名
labelEn: Database Username
required: true
type: text
- default: ""
edit: true
envKey: database__connection__password
labelZh: 数据库 密码
labelEn: Database Password
random: true
required: true
rule: paramComplexity
type: password
- default: "ghost"
edit: true
envKey: database__connection__database
labelZh: 数据库 名称
labelEn: Database Name
required: true
type: text
- default: "SMTP"
edit: true
envKey: mail__transport
labelZh: 邮件传输协议
labelEn: Mail Transport Protocol
required: true
type: text
- default: "smtp.qq.com"
edit: true
envKey: mail__options__host
labelZh: 邮件服务器
labelEn: Mail Server
required: true
type: text
- default: 465
edit: true
envKey: mail__options__port
labelZh: 邮件服务器 端口
labelEn: Mail Server Port
required: true
type: number
- default: ""
edit: true
envKey: mail__options__auth__user
labelZh: 邮件鉴权 用户名
labelEn: Mail Username
required: true
type: text
- default: ""
edit: true
envKey: mail__options__auth__pass
labelZh: 邮件鉴权 密码
labelEn: Mail Password
required: true
type: password
- default: ""
edit: true
envKey: mail__from
labelZh: 邮件发送者
labelEn: Mail Sender
required: true
type: text

View File

@ -0,0 +1,34 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
ghost:
image: ghost:5.89.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:2368
volumes:
- ./data:/var/lib/ghost/content
environment:
- NODE_ENV=production
- server__host=0.0.0.0
- server__port=2368
- database__client=mysql
- database__connection__host=${PANEL_DB_HOST}
- database__connection__port=${PANEL_DB_PORT}
- mail__transport=SMTP
- mail__from=${mail__from}
- mail__options__service=Email
- mail__options__secure=true
- mail__options__host=${mail__options__host}
- mail__options__port=${mail__options__port}
- mail__options__auth__user=${mail__options__auth__user}
- mail__options__auth__pass=${mail__options__auth__pass}

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

133
apps/ghost/README.md Normal file
View File

@ -0,0 +1,133 @@
# Gost
用于现代出版、会员制、订阅和通讯的独立技术
![Gost](https://file.lifebus.top/imgs/gost_cover.png)
Ghost 是一个基于现代 Node.js 技术堆栈构建的开源专业发布平台,专为需要强大功能、灵活性和性能的团队而设计。
## 特性
+ 独立结构
Ghost 的结构是一个非营利组织,以确保它永远不会合法地被出售,并且将始终保持独立,根据用户的需求构建产品,而不是寻求💰回报的投资者的突发奇想。
+ 可持续发展的业务
虽然我们发布的软件是免费的,但我们还为其销售高级托管托管,这为非营利组织提供了可持续的商业模式,并使其能够 100% 自筹资金。
+ 分布式团队
拥有可持续的业务使我们能够聘请开源贡献者全职从事 Ghost 工作,而且我们完全远程完成这项工作。 Ghost 核心团队完全分布在他们选择的任何地方。
+ 默认透明
我们透明地分享我们的收入并公开我们的代码,以便任何人都可以验证我们所做的事情以及我们如何做。没有斗篷或匕首。
+ 无条件开源
我们所有的项目都是在宽松的开源MIT 许可证下发布的,因此即使公司失败,我们的代码仍然可以被世界上任何人不受限制地使用和继承。
🚀 内置会员资格和订阅
Ghost 不仅可以为匿名访问者创建内容,还可以让您将受众转变为企业,并为会员注册和付费订阅商务提供原生支持。它是唯一一个默认内置会员资格并深度集成的平台。
🚀 开发者友好的API
Ghost 的核心是一个自消耗的 RESTful JSON API具有解耦的管理客户端和前端。我们提供了很多工具来让网站尽快运行但最终它只是
JSON ™️,所以如果您想完全无头使用 Ghost 并编写自己的前端或后端……您可以!
🚀 丰富编辑器
Ghost 拥有每个作家都想要的丰富编辑器,但在幕后它提供的功能远远超出您的预期。
所有内容都以基于 JSON 的标准化文档存储格式(称为 Lexical存储其中包括对称为 Cards 的可扩展富媒体对象的支持。
简单来说,您可以将其视为在 Medium 编辑器中集成 Slack存储合理且可通过 API 完全访问。
🚀 自定义网站结构
Ghost 中的路由完全可以根据您的需要进行配置。开箱即用的 Ghost 附带了标准的反向时间顺序帖子源,带有干净的永久链接和基本页面,但这很容易更改。
无论您需要一个带有/en/和/de/基本 URL 的完整多语言站点,还是想要为/europe/uk/london/等分层数据构建特定的目录结构 — Ghost
的路由层可以任意数量进行操作实现您的用例的方法。
🚀 角色和权限
从一开始就使用内置的合理用户角色和权限来设置您的站点。
+ 贡献者:可以登录并撰写帖子,但不能发布。
+ 作者:可以创建和发布新的帖子和标签。
+ 编辑:可以邀请、管理和编辑作者和贡献者。
+ 管理员:拥有编辑所有数据和设置的完全权限。
+ 所有者:无法删除的管理员+有权访问账单详细信息。
🚀 自定义主题
Ghost 附带了一个简单的 Handlebars.js
前端主题层,该层使用起来非常简单,而且功能强大得令人惊讶。许多人坚持使用默认主题(现场演示/源代码),它提供了干净的杂志设计 -
但这可以修改或完全替换。
🚀 应用程序和集成
因为 Ghost 是完全开源的,构建为 JSON API具有 Webhooks并且让您可以完全控制前端它本质上与所有东西集成。有些事情比其他事情更容易但几乎任何事情都可以通过一点努力来实现。
或者是一个比 1803 年更近的比喻。
🚀 搜索引擎优化
Ghost 配备了世界一流的 SEO 以及确保您的内容快速一致地显示在搜索索引中所需的一切。
+ 无需插件
Ghost 将所有基本技术 SEO 优化直接内置于核心中,无需依赖第三方插件。得益于 Node.js它还具有远远优越的速度和页面加载性能。
+ 自动谷歌 XML 站点地图
Ghost 将自动生成并链接到完整的 Google 站点地图,包括您网站上的每个页面,以确保搜索引擎能够为每个 URL 建立索引。
+ 自动结构化数据+JSON-LD
Ghost 生成有关页面的基于JSON-LD 的结构化元数据,这样您就不必依赖标记中混乱的微格式来提供语义上下文。即使您更改主题或前端,您的
SEO 仍然完好无损。
Ghost 还为 Facebook OpenGraph 和 Twitter Card 添加了自动代码。
+ 规范标签
Ghost 会自动为每个帖子和页面生成正确的rel="canonical"标签,以便搜索引擎始终优先考虑一个真正的链接。
## 安装说明
> 后台管理地址:`http://127.0.0.1:2368/ghost`
>
> 首次进入后台管理,会提示创建管理员账号,然后登录即可。
## 使用说明
### 语言设置
没有更好的解决办法,即使设置 `zh` 也不会生效。
### 邮件配置
Ghost 默认使用 Mailgun 作为邮件服务,但是由于其已经移除 `免费套餐`, 我们将配置 `smtp` 作为邮件服务商。
如果存在发信失败,请查看日志,可能是邮件服务商的问题。
如果发信人与配置不一致,识别到 `域名` 作为发信人,即使配置了发信人, 也会被忽略。
可以通过 `设置` >> `门户设置` >> `账户设置` 修改 `Support email address` 为配置的发信人。
## 反向代理
> Nginx
```nginx
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
client_max_body_size 50m;
```

18
apps/ghost/data.yml Normal file
View File

@ -0,0 +1,18 @@
name: Ghost
title: 用于现代出版、会员制、订阅和通讯的人博客系统
description: 用于现代出版、会员制、订阅和通讯的独立技术
additionalProperties:
key: ghost
name: Ghost
tags:
- WebSite
- Local
shortDescZh: 用于现代出版、会员制、订阅和通讯的人博客系统
shortDescEn: Human blogging systems for modern publishing, memberships, subscriptions and newsletters
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://ghost.org/
github: https://github.com/TryGhost/Ghost/
document: https://ghost.org/docs/

BIN
apps/ghost/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB