Skip to content

Commit ab1a0a7

Browse files
committed
工程首次上传github
0 parents  commit ab1a0a7

File tree

211 files changed

+22439
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

211 files changed

+22439
-0
lines changed

.gitignore

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
### STS ###
2+
.apt_generated
3+
.classpath
4+
.factorypath
5+
.project
6+
.settings
7+
.springBeans
8+
9+
### IntelliJ IDEA ###
10+
.idea
11+
*.iws
12+
*.iml
13+
*.ipr
14+
15+
### NetBeans ###
16+
nbproject/private/
17+
build/
18+
nbbuild/
19+
dist/
20+
nbdist/
21+
.nb-gradle/
22+
23+
###my own###
24+
logs
25+
upload
26+
target
27+
tale.sql

.travis.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
language: java
2+
jdk:
3+
- oraclejdk8
4+
script:
5+
- mvn clean package -Dmaven.test.skip=true

README.md

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# My Blog
2+
3+
My Blog是由Docker+SpringBoot+Mybatis+thymeleaf等技术实现的Java博客系统,博客模板是[@biezhi](https://github.com/biezhi)大神的开源项目[tale](https://github.com/otale/tale),本来是一个docker和springboot的实战练习项目,目前已经开源,功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验,如果觉得这个项目不错,请为它[点赞](https://github.com/ZHENFENG13/My-Blog/stargazers)支持。
4+
5+
- **你可以拿它作为博客模板,因为My Blog界面十分美观简洁,满足私人博客的一切要求;**
6+
- **你也可以把它作为springboot技术的学习项目,My Blog也足够符合要求,且代码和功能完备;**
7+
- **你还可以将其视为一个docker技术的练手教程,体验和使用红极一时的虚拟容器技术,My Blog中脚本和文档十分完善并且持续更新。**
8+
9+
#### tips
10+
11+
- **数据库文件目录为```docker-extension/mysql/schema.sql```**
12+
- **部署后你可以根据自己需求修改版权文案、logo图片、备案记录等信息;**
13+
- **My Blog还有许多不完善的地方,鄙人才疏学浅,望见谅!**
14+
15+
演示站点:http://13blog.site
16+
17+
[![Build Status](https://travis-ci.org/ZHENFENG13/My-Blog.svg?branch=master)](https://travis-ci.org/ZHENFENG13/My-Blog)
18+
![Version 3.2.0](https://img.shields.io/badge/version-3.2.0-yellow.svg)
19+
[![License](https://img.shields.io/badge/license-apache-blue.svg)](https://github.com/ZHENFENG13/My-Blog/blob/master/LICENSE)
20+
21+
#### 联系作者
22+
23+
十三的java学习交流QQ群:```881582471``````658365129(已满)```
24+
25+
#### 宣传
26+
27+
十三近期于CSDN上传了一份自己制作的达人课课程,感兴趣的朋友可以看一下:
28+
29+
* [x] [GitChat达人课-SSM搭建精美实用的管理系统](https://gitbook.cn/gitchat/column/5b4dae389bcda53d07056bc9)
30+
31+
![gitchat](https://raw.githubusercontent.com/ZHENFENG13/resource/master/images/2018-07-19/gitchat.png)
32+
33+
#### 相关博客文章
34+
35+
* [x] [Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦](http://www.cnblogs.com/han-1034683568/p/6840493.html)
36+
* [x] [My-Blog搭建过程:如何让一个网站从零到可以上线访问](http://www.cnblogs.com/han-1034683568/p/6885545.html)
37+
* [x] [利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置](http://www.cnblogs.com/han-1034683568/p/6941337.html)
38+
* [x] [Java开源博客My-Blog之docker容器组件化修改](http://www.cnblogs.com/han-1034683568/p/7102765.html)
39+
* [x] [Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程](http://www.cnblogs.com/han-1034683568/p/7231895.html)
40+
* [x] [Springboot与Thymeleaf模板引擎整合基础教程](http://www.cnblogs.com/han-1034683568/p/7520012.html)
41+
* [x] [thymeleaf模板引擎调用java类中的方法](http://www.cnblogs.com/han-1034683568/p/7527564.html)
42+
43+
# Quick Start
44+
45+
* [x] [1.如何部署My Blog](https://github.com/ZHENFENG13/My-Blog/wiki/1-%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2My-Blog)
46+
- [1.0 基础环境搭建](https://github.com/ZHENFENG13/My-Blog/wiki/1.0-%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83)
47+
- [1.1 安装Docker环境](https://github.com/ZHENFENG13/My-Blog/wiki/1.1-安装Docker环境)
48+
- [1.2 安装docker-compose](https://github.com/ZHENFENG13/My-Blog/wiki/1.2-%E5%AE%89%E8%A3%85docker-compose)
49+
* [x] [2.通过共享镜像直接部署My Blog](https://github.com/ZHENFENG13/My-Blog/wiki/2-%E9%80%9A%E8%BF%87%E5%85%B1%E4%BA%AB%E9%95%9C%E5%83%8F%E7%9B%B4%E6%8E%A5%E9%83%A8%E7%BD%B2My-Blog)
50+
* [x] [3.1 非docker环境运行My Blog](https://github.com/ZHENFENG13/My-Blog/wiki/3.1-%E9%9D%9Edocker%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8CMy-Blog)
51+
* [x] [3.2 将My Blog部署到tomcat(非docker环境)](https://github.com/ZHENFENG13/My-Blog/wiki/3.2-%E5%B0%86My-Blog%E9%83%A8%E7%BD%B2%E5%88%B0tomcat(%E9%9D%9Edocker%E7%8E%AF%E5%A2%83))
52+
* [x] [4.开发环境运行代码](https://github.com/ZHENFENG13/My-Blog/wiki/4-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E8%BF%90%E8%A1%8C%E4%BB%A3%E7%A0%81)
53+
* [x] [5.博客上线及备案相关流程](https://github.com/ZHENFENG13/My-Blog/wiki/%E4%B8%8A%E7%BA%BF%E5%8F%8A%E5%A4%87%E6%A1%88%E7%9B%B8%E5%85%B3)
54+
55+
[**常见问题**](https://github.com/ZHENFENG13/My-Blog/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
56+
57+
# Preview
58+
59+
**博客展示页1:**
60+
![My Blog](https://raw.githubusercontent.com/ZHENFENG13/resource/master/images/2018-06-13/my-blog-2.gif)
61+
**博客展示页2:**
62+
![My Blog](https://raw.githubusercontent.com/ZHENFENG13/resource/master/images/2018-06-13/my-blog-1.gif)
63+
**登录页:**
64+
![登录页](http://images2015.cnblogs.com/blog/859549/201705/859549-20170511122916004-738411708.png)
65+
**My Blog后台:**
66+
![My Blog](https://raw.githubusercontent.com/ZHENFENG13/resource/master/images/2018-06-13/My-Blog-admin-1.gif)
67+
**My Blog后台:**
68+
![My Blog](https://raw.githubusercontent.com/ZHENFENG13/resource/master/images/2018-06-13/My-Blog-admin-2.gif)
69+
70+
# Log
71+
72+
2017-03-27 添加docker整合<br/>
73+
2017-03-28 schema.sql修改<br/>
74+
2017-03-28 install步骤,数据库地址配置时:mysql地址写为mysql容器的名字即可,即mysql:3306<br/>
75+
2017-03-29 修复添加评论时空指针异常的bug<br/>
76+
2017-03-30 添加预览功能,限制文章浏览,如果为草稿状态前端即使通过正确的url也不能浏览<br/>
77+
2017-03-31 文章浏览数不变的bug,后期浏览数及评论这些参数放到缓存里去<br/>
78+
2017-04-01 添加druid数据源<br/>
79+
2017-04-02 重写mysql的Dockerfile文件,修改install过程<br/>
80+
2017-04-15 bug修复,footer样式调整<br/>
81+
2017-04-17 logo文件修改,附件上传功能<br/>
82+
2017-04-18 评论功能及页面修改<br/>
83+
2017-04-20 域名及网站的公网备案<br/>
84+
2017-04-25 docker-compose实现多容器部署<br/>
85+
2017-05-09 删除原install过程,改为脚本自动部署及初始化<br/>
86+
2017-05-10 docker容器时区不同步问题修复,文件整理<br/>
87+
2017-05-11 文件整理,排版和文案修改<br/>
88+
2017-05-13 正式上线啦<br/>
89+
2017-05-15 部署文档<br/>
90+
2017-05-21 My-Blog上线过程记录<br/>
91+
2017-06-30 目录调整:docker组件化<br/>
92+
2017-07-20 问题修复:docker-compose重启时mysql容器中数据被删除并初始化的问题<br/>

_config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
theme: jekyll-theme-cayman

docker-extension/docker-compose.yml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
mysql:
2+
build: ./mysql
3+
# 考虑到安全问题,正式环境时不暴露端口到宿主机
4+
expose:
5+
- "3306"
6+
7+
# 测试时使用
8+
# ports:
9+
# - 13306:3306
10+
11+
my-blog:
12+
image: blog/my-blog
13+
ports:
14+
- 28080:8080
15+
links:
16+
- mysql

docker-extension/my-blog/Dockerfile

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM java:8
2+
VOLUME /tmp
3+
ADD *.jar app.jar
4+
COPY startup.sh /startup.sh
5+
ENV TZ=Asia/Shanghai
6+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
7+
RUN bash -c 'touch /app.jar'
8+
CMD ["sh", "/startup.sh"]

docker-extension/my-blog/startup.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
set -e
3+
4+
#因为要等待mysql用户和权限设置完成
5+
echo '等待mysql.....'
6+
7+
sleep 25
8+
9+
echo '开始启动项目.....'
10+
nohup java -jar /app.jar --spring.profiles.active=docker

docker-extension/mysql/Dockerfile

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM mysql:5.7
2+
3+
#这条语句可有可无
4+
ENV MYSQL_DATABASE test
5+
6+
#设置免密登录
7+
ENV MYSQL_ALLOW_EMPTY_PASSWORD yes
8+
9+
#将所需文件放到容器中
10+
COPY setup.sh /mysql/setup.sh
11+
COPY schema.sql /mysql/schema.sql
12+
COPY privileges.sql /mysql/privileges.sql
13+
14+
#设置容器启动时执行的命令
15+
CMD ["bash", "/mysql/setup.sh"]

docker-extension/mysql/privileges.sql

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use mysql;
2+
3+
select host, user from user;
4+
5+
create user tale identified by '123456';
6+
7+
grant all on tale.* to tale@'%' identified by '123456' with grant option;
8+
9+
flush privileges;
10+
11+
-- privileges.sql

docker-extension/mysql/schema.sql

+170
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
2+
-- 创建数据库
3+
create database `tale` default character set utf8 collate utf8_general_ci;
4+
5+
use tale;
6+
7+
DROP TABLE IF EXISTS `t_logs`;
8+
9+
CREATE TABLE `t_logs` (
10+
`id` int(11) unsigned NOT NULL AUTO_INCREMENT ,
11+
`action` varchar(100) DEFAULT NULL ,
12+
`data` varchar(2000) DEFAULT NULL ,
13+
`author_id` int(10) DEFAULT NULL ,
14+
`ip` varchar(20) DEFAULT NULL ,
15+
`created` int(10) DEFAULT NULL ,
16+
PRIMARY KEY (`id`)
17+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18+
19+
DROP TABLE IF EXISTS `t_attach`;
20+
21+
CREATE TABLE `t_attach` (
22+
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
23+
`fname` varchar(100) NOT NULL DEFAULT '',
24+
`ftype` varchar(50) DEFAULT '',
25+
`fkey` varchar(100) NOT NULL DEFAULT '',
26+
`author_id` int(10) DEFAULT NULL,
27+
`created` int(10) NOT NULL,
28+
PRIMARY KEY (`id`)
29+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
30+
31+
DROP TABLE IF EXISTS `t_comments`;
32+
33+
CREATE TABLE `t_comments` (
34+
`coid` int(10) unsigned NOT NULL AUTO_INCREMENT ,
35+
`cid` int(10) unsigned DEFAULT '0' ,
36+
`created` int(10) unsigned DEFAULT '0' ,
37+
`author` varchar(200) DEFAULT NULL ,
38+
`author_id` int(10) unsigned DEFAULT '0' ,
39+
`owner_id` int(10) unsigned DEFAULT '0' ,
40+
`mail` varchar(200) DEFAULT NULL ,
41+
`url` varchar(200) DEFAULT NULL ,
42+
`ip` varchar(64) DEFAULT NULL ,
43+
`agent` varchar(200) DEFAULT NULL ,
44+
`content` text ,
45+
`type` varchar(16) DEFAULT 'comment' ,
46+
`status` varchar(16) DEFAULT 'approved' ,
47+
`parent` int(10) unsigned DEFAULT '0',
48+
PRIMARY KEY (`coid`),
49+
KEY `cid` (`cid`),
50+
KEY `created` (`created`)
51+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
52+
53+
DROP TABLE IF EXISTS `t_contents`;
54+
55+
CREATE TABLE `t_contents` (
56+
`cid` int(10) unsigned NOT NULL AUTO_INCREMENT ,
57+
`title` varchar(200) DEFAULT NULL ,
58+
`slug` varchar(200) DEFAULT NULL ,
59+
`created` int(10) unsigned DEFAULT '0' ,
60+
`modified` int(10) unsigned DEFAULT '0' ,
61+
`content` text COMMENT '内容文字',
62+
`author_id` int(10) unsigned DEFAULT '0' ,
63+
`type` varchar(16) DEFAULT 'post' ,
64+
`status` varchar(16) DEFAULT 'publish' ,
65+
`tags` varchar(200) DEFAULT NULL ,
66+
`categories` varchar(200) DEFAULT NULL ,
67+
`hits` int(10) unsigned DEFAULT '0' ,
68+
`comments_num` int(10) unsigned DEFAULT '0' ,
69+
`allow_comment` tinyint(1) DEFAULT '1' ,
70+
`allow_ping` tinyint(1) DEFAULT '1' ,
71+
`allow_feed` tinyint(1) DEFAULT '1' ,
72+
PRIMARY KEY (`cid`),
73+
UNIQUE KEY `slug` (`slug`),
74+
KEY `created` (`created`)
75+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
76+
77+
LOCK TABLES `t_contents` WRITE;
78+
79+
INSERT INTO `t_contents` (`cid`, `title`, `slug`, `created`, `modified`, `content`, `author_id`, `type`, `status`, `tags`, `categories`, `hits`, `comments_num`, `allow_comment`, `allow_ping`, `allow_feed`)
80+
VALUES
81+
(1,'about my blog','about',1487853610,1487872488,'### Hello World\r\n\r\nabout me\r\n\r\n### ...\r\n\r\n...',1,'page','publish',NULL,NULL,0,0,1,1,1),
82+
(2,'Hello My Blog',NULL,1487861184,1487872798,'## Hello World.\r\n\r\n> ...\r\n\r\n----------\r\n\r\n\r\n<!--more-->\r\n\r\n```java\r\npublic static void main(String[] args){\r\n System.out.println(\"Hello 13 Blog.\");\r\n}\r\n```',1,'post','publish','','default',10,0,1,1,1);
83+
84+
UNLOCK TABLES;
85+
86+
DROP TABLE IF EXISTS `t_metas`;
87+
88+
CREATE TABLE `t_metas` (
89+
`mid` int(10) unsigned NOT NULL AUTO_INCREMENT,
90+
`name` varchar(200) DEFAULT NULL,
91+
`slug` varchar(200) DEFAULT NULL,
92+
`type` varchar(32) NOT NULL DEFAULT '' ,
93+
`description` varchar(200) DEFAULT NULL ,
94+
`sort` int(10) unsigned DEFAULT '0',
95+
`parent` int(10) unsigned DEFAULT '0',
96+
PRIMARY KEY (`mid`),
97+
KEY `slug` (`slug`)
98+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
99+
100+
LOCK TABLES `t_metas` WRITE;
101+
102+
INSERT INTO `t_metas` (`mid`, `name`, `slug`, `type`, `description`, `sort`, `parent`)
103+
VALUES
104+
(1,'default',NULL,'category',NULL,0,0),
105+
(6,'my github','https://github.com/ZHENFENG13','link',NULL,0,0);
106+
107+
UNLOCK TABLES;
108+
109+
DROP TABLE IF EXISTS `t_options`;
110+
111+
CREATE TABLE `t_options` (
112+
`name` varchar(32) NOT NULL DEFAULT '',
113+
`value` varchar(1000) DEFAULT '',
114+
`description` varchar(200) DEFAULT NULL,
115+
PRIMARY KEY (`name`)
116+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
117+
118+
LOCK TABLES `t_options` WRITE;
119+
120+
INSERT INTO `t_options` (`name`, `value`, `description`)
121+
VALUES
122+
('site_title','My Blog',''),
123+
('social_weibo','',NULL),
124+
('social_zhihu','',NULL),
125+
('social_github','',NULL),
126+
('social_twitter','',NULL),
127+
('site_theme','default',NULL),
128+
('site_keywords','13 Blog',NULL),
129+
('site_description','13 Blog',NULL),
130+
('site_record','','备案号');
131+
132+
UNLOCK TABLES;
133+
134+
DROP TABLE IF EXISTS `t_relationships`;
135+
136+
CREATE TABLE `t_relationships` (
137+
`cid` int(10) unsigned NOT NULL,
138+
`mid` int(10) unsigned NOT NULL,
139+
PRIMARY KEY (`cid`,`mid`)
140+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
141+
142+
LOCK TABLES `t_relationships` WRITE;
143+
144+
INSERT INTO `t_relationships` (`cid`, `mid`)
145+
VALUES
146+
(2,1);
147+
148+
UNLOCK TABLES;
149+
150+
DROP TABLE IF EXISTS `t_users`;
151+
152+
CREATE TABLE `t_users` (
153+
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
154+
`username` varchar(32) DEFAULT NULL,
155+
`password` varchar(64) DEFAULT NULL,
156+
`email` varchar(200) DEFAULT NULL,
157+
`home_url` varchar(200) DEFAULT NULL,
158+
`screen_name` varchar(32) DEFAULT NULL,
159+
`created` int(10) unsigned DEFAULT '0',
160+
`activated` int(10) unsigned DEFAULT '0' ,
161+
`logged` int(10) unsigned DEFAULT '0',
162+
`group_name` varchar(16) DEFAULT 'visitor' ,
163+
PRIMARY KEY (`uid`),
164+
UNIQUE KEY `name` (`username`),
165+
UNIQUE KEY `mail` (`email`)
166+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
167+
168+
INSERT INTO `t_users` (`uid`, `username`, `password`, `email`, `home_url`, `screen_name`, `created`, `activated`, `logged`, `group_name`)
169+
VALUES
170+
(1, 'admin', 'a66abb5684c45962d887564f08346e8d', '[email protected]', NULL, 'admin', 1490756162, 0, 0, 'visitor');

0 commit comments

Comments
 (0)