forked from Ms-Studio/appstore-1panel
feat: add Ghost app
个人博客平台 Signed-off-by: 萌森 <qyg2297248353@163.com>
This commit is contained in:
parent
e94179ea4f
commit
6bb11cfeb1
108
apps/ghost/5.89.0/data.yml
Normal file
108
apps/ghost/5.89.0/data.yml
Normal 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
|
34
apps/ghost/5.89.0/docker-compose.yml
Normal file
34
apps/ghost/5.89.0/docker-compose.yml
Normal 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}
|
10
apps/ghost/5.89.0/scripts/init.sh
Normal file
10
apps/ghost/5.89.0/scripts/init.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
10
apps/ghost/5.89.0/scripts/uninstall.sh
Normal file
10
apps/ghost/5.89.0/scripts/uninstall.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
10
apps/ghost/5.89.0/scripts/upgrade.sh
Normal file
10
apps/ghost/5.89.0/scripts/upgrade.sh
Normal 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
133
apps/ghost/README.md
Normal 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
18
apps/ghost/data.yml
Normal 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
BIN
apps/ghost/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 331 KiB |
Loading…
Reference in New Issue
Block a user