基于shell+html+docker+nginx实现的自我管理系统
《时间银行》- 基于奖励系统的自我管理方式 #生活常识# #时间管理建议# #时间管理书籍#
life-management 自我管理系统
作者:jerry
项目背景
曾经听过一句话,你的人生就是你的企业。我觉得很有道理,那如何去经营好这一家企业呢?我想,首先要知道自己在做什么,了解自己每一天,每个月,每一年是怎样度过的,都做了些什么。那我何不做一个人生的erp系统,来管理自己人生的资源呢?于是花了很多时间,写了这个项目,并命名为life-management 。
项目简介
本项目包含db、后端、页面,虽然是个小项目,但麻雀虽小,五脏俱全,支持任务管理、学习管理、生活记录等功能,可灵活扩展,快速部署。为了降低系统的复杂性,所以只采用了shell+html+nginx实现,不包含任何的mysql,springboot,tomcat等花里胡哨的东西(其实是因为懒~)
github地址:https://github.com/skyinfant/life-management
csdn:https://blog.csdn.net/jerry_kim123/article/details/130071056
实例演示:http://47.108.253.93/ (按数字键1、2、3、4、5会跳转到其他5个页面)
大家喜欢这个项目的话,感谢动手点点 star。
技术及设备要求
1、部署和使用本项目需要会基本的shell语言基础
2、需要一台拥有公网IP的linux服务器
3、需要懂一点点的nginx
功能特性
任务管理支持任务的新建、暂停、开启、终止 1 睡眠管理/运动管理/阅读管理
点点按钮,就能记录自己每日的睡眠状况、运动状况、能量状态等,自动进行多维度统计,形成月度报表、年度报表, 和echars动态页面。这些只是我暂时预置的功能,如果想增加或扩展也是完全可以的,并且很方便! 12 多页面展示
1. 每日页面(index.html):展示最近30天的数据 2. 当月页面(monSum.html):展示当月的汇总数据(在其他页面按数字键1即可跳转) 3. 当年页面(yearSum.html):展示当年的汇总数据(在其他页面按数字键2即可跳转) 4. 汇总页面(sum.html):展示全部汇总数据 (在其他页面按数字键3即可跳转) 5. 月度页面(mons.html):展示最近24个月的数据 (在其他页面按数字键4即可跳转) 6. 年度页面(years.html):展示历年数据 (在其他页面按数字键5即可跳转) 在每个页面按Enter键播放背景音乐,再按一次暂停 要使用这些页面,需要先配置nginx和 config/config.sh 这个文件 123456789 报表
自动形成月度报表、年度报表 1 日志记录
保存每日的生活日志 1 灵活扩展
可根据自己的需要快速增删参数(字段),增删后会自动同步到db,报表和页面 1
各个文件及文件夹介绍
life-management.sh本项目的命令行展示界面 1 data/params.sh
本项目的参数文件,系统的全部参数字段都定义在这个文件中,充当临时数据缓存的作用,最终数据储存在db文件中 1 funcs.sh
存放项目用到的自定义方法 1 config/config.sh
本项目的配置文件,在里面可配置6个页面的访问url,背景音乐,以及月度页面和年度页面的开关,展示数据,颜色 1 initParams.sh
用于进行每日数据初始化 1 operate-system.sh
项目系统操作面板,增删参数、任务管理、初始化系统等都在这里操作 1 data/db/
存放db文件 1 data/note/
存放日志文件 1 data/statement/
存放报表文件 1 data/note/income_flow/
存放收益流水文件。所谓收益,就是在做各种操作时的分数奖励或惩罚 1
快速部署
在linux主机上 git clone git@github.com:skyinfant/life-management.git 把项目拉下来,或者直接下载项目压缩包解压进入life-management目录,执行 sh operate-system.sh ,选择第6个选项进行系统初始化,在询问是否允许加入crontab定时任务时输入y同意即可,然后等待1分钟初始化完成初始化完成后,返回操作面板,选择第5个选项,可以设置任务,按提示操作即可在操作面板按q退出,会自动回到本项目的主界面,如下图就部署完成了:本文使用docker来部署nginx,当然用其他方式也是没问题的。
docker安装nginx:https://cloud.tencent.com/developer/article/2015581
注意,一定要把nginx容器的html目录,挂载到本项目的html目录,比如我的项目放在/root/test 下,
所以我的创建容器命令为 :
docker run -p 80:80 --restart=always --name management \ -v /root/test/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/test/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /root/test/nginx/log:/var/log/nginx \ -v /root/test/life-management/html:/usr/share/nginx/html \ -d nginx:latest 123456
nginx安装好后,编辑映射到宿主机的default.conf(我的位置是 /root/test/nginx/conf/conf.d/default.conf),这个是nginx的配置文件,在设置主页的地方加入这2行代码,以避免页面缓存:
add_header Cache-Control "no-cache, no-store"; expires 1s; 12
编辑完成后记得 docker restart nginx容器名称 重启nginx容器。
因为我把端口设为80,所以只要把config/config.sh 中的 management_page_url 设为我的服务器ip即可
等项目初始化完成,就可以用这个ip访问主页了!
简单使用
sh goodSleep.sh 用于记录好的睡眠状况,sh badSleep.sh用于记录不好的睡眠状况,每日要先记录睡眠状况才能进行其他操作(根治熬夜顽疾~)sh focus_on_out.sh 用于开启/关闭专注模式,再运行一次则退出专注模式sh completed_task.sh 用于记录完成了1个任务,总任务量会减1sh operate-1.sh 日常操作面板,可进行运动,读书等情况的记录,如果自己想扩充操作选项,只需要 sh operate-system.sh,在系统操作面板中增加参数(即是字段),然后把自己的参数加入operate-1.sh 中的操作选项即可,代码十分简单,一看就懂。如果选项很多,那就复制多几个 operate-2.sh、operate-3.sh(命名一定要以operate- 开头!)贴心服务
项目使用过程中有任何问题,欢迎随时提问,看到的话我会及时回复的执行 export PS1="" 可以隐藏当前会话窗口的命令行提示符,让主界面更清爽推荐使用secureCRT作为linux连接工具,因为它可以把常用命令设置成按钮,只要点一下按钮就可以执行脚本了。secureCRT8.5绿色版网盘链接:https://pan.baidu.com/s/1RbId4G1yWVGY1l49du9fGA?pwd=1234
压缩包中有安装方法。secureCrt安装好后在顶栏右键,勾上这2个选项,可以显示command window和按钮栏
在下面的按钮栏上右键-新建按钮
填入内容,点确定即可新建一个按钮
后话
时间过得好快,常常感觉昨天还是26,今天就变18了,虚度时光,却一无所成。岁月不饶人,我也不能饶了岁月。既然留不住时间,那就留下自己走过的足迹吧。用程序记录下自己每一天,每个月,每一年的收获与成长,欢欣与遗憾。等到自己80岁时(但愿能活到那时候),回首过往,此生多少事,都付代码中,哈哈哈
网址:基于shell+html+docker+nginx实现的自我管理系统 https://www.yuejiaxmz.com/news/view/899806
相关内容
docker服务的自动发现部署Kubernetes CKA认证运维工程师笔记
Docker常用命令整理实例
Docker占用资源过高,如何快速清理Docker?
深度解析:轻松掌握 Docker 镜像优化与修改技巧,让你的应用运行更高效!
公司使用工具整理
Nginx入门与负载均衡
如何在Linux上自动化任务
优化 Docker 网络性能:减少延迟并提高吞吐量
nginx error