tiny-blogger is a python web application for personal blogging based on the basic structure of Flaskr; an official tutorial project of Flask. As an extension of Flaskr, tiny-blogger provides many useful features for blogging with simple and yet convenient UI.
- Enhanced UI elements based on Bootstrap framework
- Straightforward writing experiences with WYSIWYG editor
- Fully automated URL slug generator for SEO optimization
- Supports post searching by keyword, pagination and post truncating
- One-step installation & initialization using Docker image
tiny-blogger is still in development. More updates will come later:
- Supporting Facebook, Disqus comments plug-in
- Managing posts in Admin section
This description is written on the premise of Linux environment with Python 3.8.
- Clone the repository to your directory
$ git clone https://github.com/seongjinme/tiny-blogger.git
- Move to your 'tiny-blogger' directory and create virtual environment
$ cd tiny-blogger
$ apt-get install python3-venv
$ python3 -m venv venv
- Initiate virtual environment
$ source venv/bin/activate
- Install requisite libraries included in requirements.txt
$ pip install -r requirements.txt
- Set variables to initiate the blog
# If you want a development/debug mode, set "FLASK_ENV=development" instead.
# Please notice the db will be separated following the running environment.
$ export FLASK_APP=blog
$ export FLASK_ENV=production
- Run Flask
$ python -m flask run -h 0.0.0.0
Now you can access to your blog via http://127.0.0.1:5000
.
If you’re using Docker Engine, you can download and run tiny-blogger container with just a single line of command.
$ docker run -d -p 80:5000 --name tiny-blogger seongjinme/tiny-blogger:1.0
$ docker run -it -p 80:5000 --name tiny-blogger seongjinme/tiny-blogger:1.0
That’s it! Now you can access to your blog via http://[VM_INTERNAL_IP:5000]
or http://[VM_EXTERNAL_IP]
.
- Python 3.8
- Flask 2.0.2
- jQuery 3.6.0
- jQuery UI 1.13.0
- Bootstrap 4.6.0
- Bleach 4.1.0
- Summernote 0.8.18
This web application is made for the final project of CS50x, which is the online course of an introduction for computer science and programming provided by Harvard University and edX.