Giter Club home page Giter Club logo

icarus's Introduction

Icarus

A opensource forum project write with python3 and vue.js

更多截图(旧版)

2.0分支开发中,路线图见此

注意

目前的master分支已经合并了2.0部分内容,实际上等价于1.3的SSR版本。

此分支将暂时不再添加新的功能,只做BUG维护。功能的开发将在2.0分支进行。

这个版本就不单独release了,如有bug请及时反馈,谢谢。

如何部署

内容较多,详见部署文档

开源协议

ZLIB

免费且商业友好,这个协议基本上和MIT相同。

特性

  • 全局

    • 文件上传(七牛云)

    • 超宽屏支持

    • 简易的移动端支持

    • 实时在线人数

    • Markdown发帖和评论

    • 包含主题、评论、百科内容的全文搜索(基于Elasticsearch)

  • 用户系统

    • 注册、登录

    • 邮件激活

    • 邮箱找回密码

    • 修改个人信息

    • 上传头像(七牛云)

    • 每日签到

    • 个人提醒

  • 论坛

    • 扁平化的内容展示

    • 创建和管理板块

    • 板块主题颜色

    • 发表和编辑主题

    • 文章页自动生成快捷导航

    • @功能

  • 百科

    • 自定义侧边栏和主页

    • 文章的创建和编辑

    • 全部文章列表

    • 文章历史

    • 随机页面

  • 管理后台

    • 提供对板块、主题、用户、评论的管理

    • 管理日志

  • 安全机制

    • 前端密码加密,后端不取得用户的初始密码,最大限度降低了中间人攻击和数据库泄露的危害

    • 后端二次加密,sha512加盐迭代十万次后储存用户密码

    • 密码相关API均有防爆破,可设置IP请求间隔和账号请求间隔,分别提升批量撞库和单点爆破的难度

    • 隐私数据,例如IP地址脱敏后才可存入数据库

升级指南

首先停止服务并更新源码。

然后请寻找 backend/misc/upgrade 目录下对应的升级文件,例如1.2升级1.3使用u12-u13.py

backend 目录下执行后删除即可。

注意如果使用了 pipenv 或其他虚拟环境,要在项目对应环境中完成这个操作。

然后分别升级前端项目(根目录)和后端项目(backend目录)的项目依赖。

如该版本无特别的升级说明,此时直接重新开启服务即可。

规划

由于空闲时间有限,而且是单枪匹马做整个项目的开发。

目前的版本还有一些不完善的地方以及缺少的功能来不及完成,姑且规划如下:

近期:

  • 收藏、感谢、点赞

  • 个人中心

  • 强化移动端体验

  • 支持用户对评论进行自删和编辑等操作

后续:

  • 多终端同时登录的支持

  • 支持第三方登录

  • 搭建独立的项目站点

  • RSS支持

  • 完善tests

捐赠

在开发这个项目的过程中,我付出了大量的时间和精力。希望这个项目能对大家所有帮助,或者你们能够喜欢这个项目。

这对我来说已经是很好的肯定,请务必点个star让我知道。

也欢迎以捐助的形式来支持我的开发:

微信

icarus's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

icarus's Issues

感谢楼主提供如此优秀的代码

后台python+redis+postgres,前端vue.js的框架,是相当的完美!
已搭建完成: https://liaochewang.com.cn
有些许瑕疵,提出来还望见谅:

  1. Mac下复制浏览器中图片粘贴至编辑器,图片源地址会一并粘入,需手工编辑删除,windows下正常,完美返回七牛云链接代码;
  2. 新用户注册首日会不停弹出修改呢称,但填入正确后点修改又改不了,如果跟原来一样,会提示重复,证明程序逻辑还是有进行判断,只是写入失败;
  3. 首页文章排序的逻辑整的不是很明白;
  4. 上传较大JPG会一直卡顿,上传GIF大的会一直卡,小的上传成功但是显示是静态图片,需要手工传七牛然后自己编辑图片地址;
    先写这么多,慢慢研究楼主代码,还望楼主多指教

启动后端服务时报错 ImportError: cannot import name 'EMPTY_PERMISSION'`

修改完private.py后再次运行
python main.py
报错:
Traceback (most recent call last):
File "main.py", line 3, in <module>
from app import app
File ".\app.py", line 1, in <module>
from slim import Application, CORSOptions, EMPTY_PERMISSION
ImportError: cannot import name 'EMPTY_PERMISSION'
ModuleNotFoundError: No module named 'slim'
疑似发生circular dependency imports
我用的是Windows10,anaconda python3.6.5

希望能有一份开发文档支持

想把这个项目做一个二次开发,要是有个开发文档就好了,或者也可以大概讲讲前后端哪个部分是干嘛的,用的技术站/库,以及它的作用,刚进来构建起来看代码确实一头雾水

启动报错

psycopg2.ProgrammingError: 错误: 类型 "citext" 不存在 运行后爆这个错误,怎么解决?

Add translations?

Hello there!! Icarus looks good. Do you plan to add translations for it?

Windows下验证错误但用户已创建且已更改密码

c:\Icarus\backend>python3 main.py
Traceback (most recent call last):
File "main.py", line 5, in
from model.redis import init as redis_init
File "c:\Icarus\backend\model_init_.py", line 22, in
asyncpg_init(config.DATABASE_URI)
File "c:\Icarus\backend\model_init_.py", line 19, in asyncpg_init
async_run(create_conn)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\slim\utils\async_run.py", line 20, in async_run
return loop.run_until_complete(func())
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\asynci
o\base_events.py", line 573, in run_until_complete
return future.result()
File "c:\Icarus\backend\model_init_.py", line 17, in create_conn
asyncpg_conn = await asyncpg.connect(db_uri)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\asyncpg\connection.py", line 1688, in connect
max_cacheable_statement_size=max_cacheable_statement_size)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\asyncpg\connect_utils.py", line 543, in _connect
connection_class=connection_class)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\asyncpg\connect_utils.py", line 519, in _connect_addr
await asyncio.wait_for(connected, loop=loop, timeout=timeout)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\asynci
o\tasks.py", line 416, in wait_for
return fut.result()
asyncpg.exceptions.InvalidPasswordError: password authentication failed for user
"postgres"

安装配置遇到的问题。希望能够改进部署文档。

  1. 前端代码编译无法在1G RAM且没有swap的机器上编译成功。
    报错只是某个模块编译错误,没有详细信息,搜了好久,看到会不会是内存问题,设置了swap后就编译通过了。
  2. 数据库安装好了后,创建数据库默认编码是SQL_ASCII。创建数据库的时候应该指定编码。
    (我也不知道为什么默认全部都是ASCII编码的)。 初次初始化的时候pewee会报错。(UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)),调试了半天,最终检查了数据库编码,发现是ASCII的,还没办法直接创建UTF-8的数据库,依靠网上教程,搞了变天终于创建了UTF-8的编码,后端正常启动。
    以上。希望能够改进一下部署文档,增加一些需要注意的地方。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.