一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
一、开源项目简介
致力于打造面向个人的安全、可扩展的知识库,支持笔记、待办、文件管理等多种功能,帮助你管好每一份数据。
xnote是一款面向个人的轻量级笔记系统,提供多种维度的数据管理功能,致力于把个人从信息过载中解放出来。它主要有如下特性
目前xnote定位是一个面向个人使用的小型笔记产品,不会重点投入以下方向
如果你热爱技术爱折腾、需要多元的数据处理能力、希望完全掌控自己的文档数据,本产品将会是一个不错的尝试,欢迎试用反馈。
使用GPL-3.0开源协议
由于每个人的需求不同,单一系统很难满足,开发者可以根据自己需要编写插件来扩展系统的功能。具体可以参考文档 插件扩展。
具体特性如下
|-- app.py # 程序入口 |-- core/ | |-- xconfig.py # 程序配置 | |-- xmanager.py # handlers管理器,负责模块加载,注册URL,以及定时任务触发 | |-- xauth.py # 权限控制 | |-- xtables.py # 数据库表结构 | |-- xtemplate.py # view层的渲染接口 | \-- autoreload.py # 脚本变更热加载,主要用于调试,生产环境可以关闭 | |-- xutils/ # 工具类集合 |-- lib/ # 第三方类库,程序启动时添加到sys.path中 |-- config/ # 系统配置目录 | |-- file/ # 文件配置 | |-- lang/ # 多语言配置 | \-- template/ # 模板配置 | |-- handlers/ # http请求处理器目录,功能实现大部分在这里 | |-- api/ # 系统接口,返回JSON格式,供页面、定时任务、搜索调用 | |-- system/ # 系统功能目录 | |-- note/ # 笔记功能目录 | |-- fs/ # 文件功能目录 | |-- tools/ # 工具目录 | |-- plugins/ # 插件目录 | \-- ... # 其他目录 |-- static/ # 静态文件 \-- tests/ # 测试用例
|-- files/ # 上传的文件 | \-- user01 # 用户目录,以用户名作为目录名,支持多个 | |-- upload # 上传文件目录,上传文件以日期作为下级目录,比如 2019/01/ | |-- gallery # 相册文件 | |-- backup/ # 备份目录 |-- scripts/ # 脚本目录 |-- storage/ # 应用存储目录 |-- db/ # 数据库目录 |-- log/ # 日志目录 |-- tmp/ # 临时文件 \-- trash/ # 回收站
具体版本见requirements.txt
在handlers目录下添加python程序,比如test.py
class MyHandler: def GET(self): return "success" class Handler2: def GET(self): return "handler2" # URL路由规则,支持多个配置 xurls = ( r"/test", MyHandler, r"/handler2", Handler2 ) # 启动xnote,访问浏览器localhost:1234/test就会看到success
默认的配置文件位于
config/boot/boot.default.properties,具体的功能参考配置的注释
# 指定自定义的配置文件 python3 app.py --config config/boot/自定义名称.properties
如果不修改端口号,启动之后在浏览器打开 http://localhost:1234/ 就可以使用了,初始化的管理员账号是admin,默认密码是 123456
如果安装老版本后更新启动失败参考 数据库迁移 或者查看Issue,如果问题还没解决可以提交新的Issue
评论