All Projects → flyhigher139 → Octblog

flyhigher139 / Octblog

Licence: gpl-2.0
Yet another blog system powered by Flask and MongoDB

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Octblog

Blogreworkpro
Rework the BlogRework, a SEO friendly SPA, build with flask, react, redux, mongodb...
Stars: ✭ 86 (-79.57%)
Mutual labels:  blog, mongodb, flask
Flog
A Simple Blog Powered by Flask
Stars: ✭ 150 (-64.37%)
Mutual labels:  blog, flask
Blog api tutorial
Blog API Written in Python Flask- Part 1: https://www.codementor.io/olawalealadeusi896/restful-api-with-python-flask-framework-and-postgres-db-part-1-kbrwbygx5 Part 2: https://www.codementor.io/olawalealadeusi896/building-a-restful-blog-apis-using-python-and-flask-part-2-l9y8awusp Part 3: https://www.codementor.io/olawalealadeusi896/building-a-restful-blog-apis-using-python-and-flask-part-3-lx7rt8pfk
Stars: ✭ 74 (-82.42%)
Mutual labels:  blog, flask
Mayblog
Yet another django based blog created in May 2015
Stars: ✭ 171 (-59.38%)
Mutual labels:  blog, mongodb
Nodepress
😎 RESTful API service for Blog/CMS, powered by @nestjs
Stars: ✭ 829 (+96.91%)
Mutual labels:  blog, mongodb
Zayzafoun
A simple web blog script written in Python & Flask
Stars: ✭ 30 (-92.87%)
Mutual labels:  blog, flask
Mybolg
python+flask做的一个小blog
Stars: ✭ 142 (-66.27%)
Mutual labels:  blog, flask
Myblog
vue + node 实现的一个博客系统
Stars: ✭ 285 (-32.3%)
Mutual labels:  blog, mongodb
Bgp Dashboard
BGP Dashboard and Monitoring Web Application
Stars: ✭ 268 (-36.34%)
Mutual labels:  mongodb, flask
Waline
A Simple, Safe Comment System inspired by Valine | 一款基于 Valine 衍生的简洁、安全的评论系统
Stars: ✭ 260 (-38.24%)
Mutual labels:  blog, mongodb
Node Blog
🚀《Node.js从入门到上线》A blog build with Koa2.
Stars: ✭ 640 (+52.02%)
Mutual labels:  blog, mongodb
Blog Node
基于 node + express + mongodb 的博客网站后台
Stars: ✭ 364 (-13.54%)
Mutual labels:  blog, mongodb
Machine Learning
Web-interface + rest API for classification and regression (https://jeff1evesque.github.io/machine-learning.docs)
Stars: ✭ 235 (-44.18%)
Mutual labels:  mongodb, flask
Iblog
基于 Node.js 的开源个人博客系统,采用 Nuxt + Vue + TypeScript 技术栈。
Stars: ✭ 994 (+136.1%)
Mutual labels:  blog, mongodb
Quokka
LOOKING FOR NEW MAINTAINER - Quokka is a Content Management System - `docker run --rm -it -p 5000:5000 quokka/quokka`
Stars: ✭ 2,198 (+422.09%)
Mutual labels:  mongodb, flask
Appkernel
API development made easy: a smart Python 3 API framework
Stars: ✭ 152 (-63.9%)
Mutual labels:  mongodb, flask
Yspider
yspider -- 轻量级爬虫系统
Stars: ✭ 125 (-70.31%)
Mutual labels:  mongodb, flask
Origami
🔓 🔑 🔐 Origami: Artificial Intelligence as a Service
Stars: ✭ 140 (-66.75%)
Mutual labels:  mongodb, flask
N Blog
《一起学 Node.js》
Stars: ✭ 15,059 (+3476.96%)
Mutual labels:  blog, mongodb
Docs
Java知识总结:MySQL实战45讲,多线程和JVM知识总结,,SpringBoot,SpringCloud,Storm系列,微信小程序开发,ELK,《JAVA核心技术36讲笔记》,《深入理解JVM虚拟机笔记》,《高性能MySQL笔记》,《数据结构与算法》等等
Stars: ✭ 308 (-26.84%)
Mutual labels:  blog, mongodb

About OctBlog

Join the chat at https://gitter.im/flyhigher139/OctBlog Build Status

OctBlog is almost the same with MayBlog except that it is powered by Flask and MongoDB rather than Django and SQL Databases.

And as my customary, I named it OctBlog as OctBlog was started in October, 2015

OctBlog offers every function in MayBlog, and aims to do it better, its features are as follow:

  • Multiple user
  • OctBlog roles: su, admin, editor, writer, reader
  • Blog features: posts, pages, tags, and categories
  • Markdown support
  • Admin interface
  • Change configurations by configuration file or environment variable
  • Multiple comment plugin
  • User defined widgets
  • Deploy with docker
  • Sort posts by weight

Demo

Gevin's Blog is powered by OctBlog

Explanation

The weight is used to order articles, and if you want to hidden an article from the article list, weight is also qualified:

The default weight for each article is 10, if a article's weight is heavier than 10, it will be firstly displayed, and if the weight is negative, the article will be never displayed in the article list

Dependency

Backend

  • Flask
    • flask-script
    • flask-login
    • flask-admin
    • Flask-WTF
    • flask-principal
    • flask_mongoengine
  • WTForms
  • mongoengine
  • markdown2
  • bleach

Frontend

  • jQuery
  • BootStrap
  • Font Awesome
  • highlight.js

How to run OctBlog ?

Run from source code

If you want to see more about the source code, checkout the source code readme

Run by docker(recommended)

Run OctBlog by docker is recommended, here are some instruction:

First Run

1. Get your OctBlog image

In command line, switch to OctBlog root directory, and run the following command to build your own OctBlog image:

cd app
(sudo) docker build -t gevin/octblog:0.1 .

# Now you can take a cup of coffee and wait for a few minutes :)

Alternatively, pull Octblog image from DockerHub(recommended):

(sudo) docker pull gevin/octblog:0.1

2. Create your docker-compose.yml

You need to create a docker-compose file similar to the docker-compose_no_swarm.yml file

Replace /Users/gevin/projects/data/mongodb with a path on your machine

3. Run OctBlog

(sudo) docker-compose up -d

Then you can visit OctBlog in your brower at http://localhost

All environment variables can be found in /OctBlog/config.py

A .env file example:

DEBUG=false
config=prd
MONGO_HOST=mongo
allow_registration=true
allow_su_creation=true

name=Gevin's Blog
subtitle=技术、生活都要折腾
description=技术、生活都要折腾

wechat_name=GevinView @ <i class="fa fa-weixin" aria-hidden="true"></i>
wechat_subtitle=技术、生活都要折腾

copyright_msg=注:转载本文,请与Gevin联系
donation_msg=如果您觉得Gevin的文章有价值,就请Gevin喝杯茶吧!
wechat_msg=欢迎关注我的微信公众账号

google_site_verification=
allow_comment=true


allow_daovoice=true
daovoice_app_id=

3. Get into OctBlog container

Maybe you would like to dig into the container, the following command will help:

# Specify OctBlog container ID, eg:12345678
(sudo) docker ps

# Get into OctBlog container
(sudo) docker exec -it 12345678 bash

After first run

  • Start OctBlog
(sudo) docker-compose start
  • Stop OctBlog
(sudo) docker-compose stop

Run by docker with swarm mode

Preparation

If you want to use docker swarm mode, you need to activate this mode first:

docker swarm init

This command activates your docker swarm mode and make it as a swarm manager

Then you can join other swarm node to this manager with docker swarm join

Run OctBlog

You need to create a docker-compose file similar to the docker-compose.yml file.

Then, start your application:

docker stack deploy -c docker-compose.yml octblog

review your application:

docker stack ps octblog

remove your application:

docker stack rm octblog

You can refer to Docker Documentation for more docker swarm usages.

Get started with OctBlog

1. Create a superuser to administrate OctBlog

Visit the following url and create a superuser

http://localhost:8000/accounts/registration/su

If the url is forbidden, you need to modify your configurations to allow the creation.

2. Administrate OctBlog

The admin home is: http://localhost:8000/admin

You will be redirected to login page if you haven't logged in

3. Modify the default configurations

You either change settings in app/OctBlog/config.py file, or set environment variables defined in that file.

Setting environment variables is recommended, and once the configuration is changed, you need to restart the service.

License

OctBlog is under GPL2

What's more

If you find a bug or want to add a new feature, just issue me.

Want to contribute? Please fork OctBlog and pull request to me.

I'm not good at frontend development, so I used a free bootstrap blog theme. If you can redesign the blog theme and admin interface, I'll appriciate your work very much!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].