Linux系统之部署Tale个人博客系统
Linux系统之部署Tale个人博客系统
- 一、Tale介绍
- 1.1 Tale简介
- 1.2 Tale特点
- 二、本地环境介绍
- 2.1 本地环境规划
- 2.2 本次实践介绍
- 三、检查本地环境
- 3.1 检查本地操作系统版本
- 3.2 检查系统内核版本
- 四、部署Tale个人博客系统
- 4.1 下载Tale源码
- 4.2 查看Tale源码目录
- 4.3 查看安装脚本内容
- 4.4 执行安装脚本
- 4.5 启动Tale服务
- 4.6 查看tale服务状态
- 4.7 查看tale监听端口
- 五、安全设置
- 5.1 防火墙设置
- 5.2 selinux设置
- 六、Tale的初始化配置
- 6.1 网站设置
- 6.2 初始化安装完成
- 七、访问Tale个人博客系统
- 7.1 登录Tale后台管理
- 7.2 发布博客
- 7.3 查看前台博客效果
- 八、总结
一、Tale介绍
1.1 Tale简介
Tale是一款简洁美观的Java博客系统,让每一个有故事的人更好的表达想法!Tale 使用了轻量级 mvc 框架 Blade 开发,默认主题使用了漂亮的 pinghsu。
1.2 Tale特点
- 设计简洁,界面美观
- Markdown 文章发布
- 自定义文章链接
- 支持多主题
- 支持插件扩展
- 支持 Emoji 表情
- 支持网易云音乐播放
- 支持附件和数据库备份
- 部署简单,不依赖 Tomcat
- 无需数据库,内嵌 Sqlite
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | 本地P地址 | 操作系统版本 | 内核版本 | node版本 |
---|---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 3.10.0-957.el7.x86_64 | v16.17.0 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在centos7.6环境下Tale个人博客系统。
三、检查本地环境
3.1 检查本地操作系统版本
检查本地操作系统版本,当前操作系统版本为centos 7.9。
[root@jeven ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
3.2 检查系统内核版本
检查系统内核版本
[root@jeven ~]# uname -r
3.10.0-957.el7.x86_64
四、部署Tale个人博客系统
4.1 下载Tale源码
执行以下命令,下载下载Tale源码。
git clone https://github.com/otale/tale.git
4.2 查看Tale源码目录
查看Tale源码目录
[root@jeven ~]# tree -L 3 ./tale/
./tale/
├── bin
│ └── tool
├── install.sh
├── LICENSE
├── package.xml
├── pom.xml
├── README.md
├── README_ZH.md
└── src├── main│ ├── java│ └── resources└── test├── java└── resources8 directories, 7 files
4.3 查看安装脚本内容
查看install.sh安装脚本内容
[root@jeven tale]# cat install.sh
#!/bin/shAPP_NAME="tale"
get_latest_release() {curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub apigrep '"tag_name":' | # Get tag linesed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}TAG_VERSION=$(get_latest_release "otale/tale")wget -N --no-check-certificate https://github.com/otale/tale/releases/download/$TAG_VERSION/tale.tar.gzecho '下载完毕'mkdir $APP_NAME
tar -zxvf $APP_NAME.tar.gz -C $APP_NAME && cd $APP_NAME
chmod +x toolecho '安装成功,请进入 tale 目录执行 sh tool start 启动'[root@jeven tale]#
4.4 执行安装脚本
执行install.sh文件
sh install.sh
4.5 启动Tale服务
进入tale目录
[root@jeven tale]# cd tale/
[root@jeven tale]# ls
lib resources tale-latest.jar tool
启动tale服务
[root@jeven tale]# ./tool start
Starting tale ...
(pid=11038) [OK]
4.6 查看tale服务状态
查看tool命令帮助信息
[root@jeven tale]# ./tool --help
Usage: ./tool {start | stop | restart | status | upgrade | log}
查看tale服务状态
[root@jeven tale]# ./tool status
tale is running! (pid=11038)
4.7 查看tale监听端口
查看tale监听端口,发现已正常监听9000端口。
[root@jeven tale]# ss -tunlp |grep 11038
tcp LISTEN 0 128 :::9000 :::* users:(("java",pid=11038,fd=55))
五、安全设置
5.1 防火墙设置
关闭防火墙,如果启动防火墙需要放行9000端口。
systemctl stop firewalld && systemctl disable firewalld
如果需要开启防火墙,则执行以下命令放行9000端口。
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload
5.2 selinux设置
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
六、Tale的初始化配置
6.1 网站设置
访问地址:http://192.168.3.166:9000/,将IP更换为自己服务器IP地址。填写网站信息,自定义填写即可。
注意:这里有一个小坑,打开初始化页面时,会没有下一步按钮,需要强制 ctrl+f5强制多刷新几遍,才会出现以下页面。
6.2 初始化安装完成
设置好网站信息后,点击“下一步”,初始化成功完成。
七、访问Tale个人博客系统
7.1 登录Tale后台管理
访问地址:http://192.168.3.166:9000/admin/login,将IP替换为自己服务器IP地址,输入刚设置的管理员账号和密码,进入Tale后台管理。
7.2 发布博客
点击发布文章,填写文章标题和编辑文章内容,发表即可。
7.3 查看前台博客效果
访问tale博客前台,查看博客文章效果。
八、总结
Tale个人博客系统是一款开源的Java博客系统,具有简单易用、功能齐全、易于扩展等特点。Tale部署简单,操作易上手,Tale的文章管理功能非常方便,用户可以轻松地创建、编辑、删除文章。支持Markdown语法,可以方便地进行文章排版和格式化。Tale的评论管理功能也很不错,支持用户对博客文章进行评论和回复。管理员可以审核评论并进行删除等操作。相比较其余成熟及热门的博客系统来说,Tale适合个人日常使用,简单方便。
相关文章:

Linux系统之部署Tale个人博客系统
Linux系统之部署Tale个人博客系统 一、Tale介绍1.1 Tale简介1.2 Tale特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、部署Tale个人博客系统4.1 下载Tale源码4.2 查看Tale源码目录4.3 查看安装脚本内…...

【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础
系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...
算法通关村|黄金挑战|K个一组进行反转
K个一组进行反转 1.头插法 public ListNode reverseKGroup(ListNode head, int k) {ListNode dummyNode new ListNode(0);dummyNode.next head;ListNode cur head;// 计算链表长度int len 0;while (cur ! null) {len;cur cur.next;}// 计算有几组int n len / k;ListNod…...

【Android Studio】工程中文件Annotate with Git Blame 不能点击
问题描述 工程文件中想要查看代码提交信息但是相关按钮不可点击 解决方法 Android Studio -> Preferences -> Version Control-> 在Unregistered roots里找到你想要的工程文件 点击左上角➕号 然后右下角Apply即可...
Ant Design Vue
2222222222222...

ATA-P2010压电叠堆功率放大器-直流偏置对压电叠堆测试的重要性
随着科技的发展和应用领域的扩展,压电技术在许多领域中得到了广泛的应用。在压电器件的研究和开发过程中,压电叠堆测试是非常重要的一环。本文通过对功率放大器的直流偏置功能在压电叠堆测试中的应用进行了深入研究,探讨了功率放大器直流偏置…...

短视频矩阵系统搭建/源头----源码
一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘ÿ…...

基于.Net CEF 实现 Vue 等前端技术栈构建 Windows 窗体应用
零、参考资料 1、https://github.com/cefsharp/CefSharp/wiki/Quick-Start-For-MS-.Net-5.0-or-greater 2、https://github.com/cefsharp/CefSharp/wiki/Quick-Start 3、https://github.com/cefsharp/CefSharp/wiki/General-Usage#javascript-integration 一、安装 Nuget 包…...
qt中怎么在鼠标停留的位置上显示该点的坐标位置
需要重写控件的mouseMoveEvent方法。 1、自定义一个QLabel控件,然后重写QLabel的mouseMoveEvent customlabel.h#include <QWidget> #include <QHBoxLayout> #include <QLabel>class CustomLabel : public QLabel {Q_OBJECT public:explicit Cus…...
两个list中实体某个属性值相同的实体和不同的实体
说明 有两个list,分别是newList 和 oldList,快速取出两个 newList 中某个属性值相同的实体和不同的实体 代码 import lombok.Data; import lombok.ToString;import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.str…...

Linux下利用Docker快速部署Kafka
1.摘要 在本文中,介绍了利用Docker安装Kafka的基础环境要求; 利用Docker安装zookeeper过程; 利用Docker安装Kafka过程;进入容器配置生产者和消费者过程; 演示生产者和消费者通讯; 故障排查方法。 2.基础环境准备 提前准备一台安装Linux系统的主机或虚拟机,我这里安装的是Ubu…...

竞赛 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类
文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...

jvm摘要
第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 程序计数器-线程私有:是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 程序计数器是唯一一个没有规定任何OutOfMemoryError 情况的区域。 Java 虚拟机栈-线程私有:用于执行Java …...

GZ035 5G组网与运维赛题第1套
2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第1套 赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子任务2:5G室内与室外站点建设(20分) 竞赛模块2--5G公共网络运维与优化(3…...

MySQL数据xtrabackup物理备份方法
目录 一、物理备份的方式二、xtrabackup物理备份1.安装xtrabackup2.完整备份/恢复流程3.增量备份流程4.差异备份流程5.物理备份总结 一、物理备份的方式 1.完整备份 每次对数据进行完整的备份,即对整个数据库的备份、数据库结构和文件结构的备份,保存的…...

vue3 使用 elementUi: ./lib/theme-chalk/index.css is not exported from package
目录 1. 在 vue3 中使用 element-ui2. 如果启动报错:Module not found: Error: Package path ./lib/theme-chalk/index.css is not exported from package 1. 在 vue3 中使用 element-ui 在 vue3 中使用 element-ui,我们的流程一般是这样的:…...

[ROS系列]ORB_SLAM3错误版本(仅记录)
背景: 1、设备:pc;旭日派x3(后续会加上,目前只有pc) 2、环境:Ubuntu20.04;ROS2(Foxy) ros2机器人foxy版用笔记本摄像头跑单目orb_slam3-CSD…...

APP盾的防御机制及应用场景
移动应用(APP)在我们日常生活中扮演着越来越重要的角色,但随之而来的是各种网络安全威胁的增加。为了保障APP的安全性,APP盾作为一种专门设计用于防御移动应用威胁的工具得以广泛应用。本文将深入探讨APP盾的防御机制以及在不同应…...

Unity性能优化一本通
文章目录 关于Unity性能优化一、资源部分:1、图片1.1、 图片尺寸越小越好1.2、使用2N次幂大小1.3、取消勾选Read/Write Enabled1.4、图片压缩1.5、禁用多余的Mip Map1.6、合并图集 2、模型2.1.限制模型面数2.2.限制贴图的大小2.3.禁用Read/Write Enables2.4.不勾选其…...

Mysql,SqlServer,Oracle获取库名 表名 列名
先看下需求背景: 获取某个数据源连接下所有库名,库下所有表名,表中所有字段 1.MySql 先说MySql吧,最简单 1.1获得所有数据库库名 这是一个mysql和sqlserver公用的方法,这里url不用担心数据库问题,他其实…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...