Code Monkey home page Code Monkey logo

py-blog-lite's Introduction

py-blog-lite

Blog Lite

Run App localhost and venv Mode

  1. create venv
$ python -m venv venv
  1. activate venv
$ source venv/bin/activate
  1. install deps
(venv) $ pip install -r requirements.txt
  1. Add env
(venv) $ export FLASK_APP=application.py
  1. Upgrade DB
(venv) $ flask db upgrade
  1. Run Server (Name/name12)
(venv) $ flask run

db migrate

(venv) $ flask db migrate -m "<migration messages>"
(venv) $ flask db upgrade

translate

Update all languages after making changes to _() and _l():

(venv) $ fflask translate update

Add new language:

(venv) $ flask translate init <language-code>

Compile all languages after updating translation files:

(venv) $ flask translate compile

Search

$ brew install elasticsearch

To have launched start elasticsearch:

brew services start elasticsearch

If you don't want/need a background service you can just run:

elasticsearch

ES URL: http://127.0.0.1:9200

run via Docker

Rebuild blog image

$ docker build -t bloglite:latest .

Run Redis

$ docker run --name redis -d -p 6379:6379 redis:3-alpine

Run MySQL

$ docker run --name mysql -d -e MYSQL_RANDOM_ROOT_PASSWORD=yes \
    -e MYSQL_DATABASE=bloglite -e MYSQL_USER=bloglite \
    -e MYSQL_PASSWORD=bloglite \
    mysql/mysql-server:5.7

Run Elasticsearch

$ docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 --rm \
    -e "discovery.type=single-node" \
    docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.1

Run App

$ docker run --name bloglite -d -p 8000:5000 --rm bloglite:latest

Run App with MySQL and Elasticsearch

$ docker run --name bloglite -d -p 8000:5000 --rm -e SECRET_KEY=my-secret-key \
    -e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
    -e [email protected] -e MAIL_PASSWORD=myGmailPassword \
    --link mysql:dbserver \
    -e DATABASE_URL=mysql+pymysql://bloglite:bloglite@dbserver/bloglite \
    --link elasticsearch:elasticsearch \
    -e ELASTICSEARCH_URL=http://elasticsearch:9200 \
    -e REDIS_URL=redis://redis-server:6379/0 \
    bloglite:latest

Run App with MySQL and Elasticsearch and Worker

$ docker run --name rq-worker -d --rm -e SECRET_KEY=my-secret-key \
    -e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
    -e MAIL_USERNAME=<your-gmail-username> -e MAIL_PASSWORD=<your-gmail-password> \
    --link mysql:dbserver --link redis:redis-server \
    -e DATABASE_URL=mysql+pymysql://bloglite:<database-password>@dbserver/bloglite \
    -e REDIS_URL=redis://redis-server:6379/0 \
    --entrypoint venv/bin/rq \
    bloglite:latest worker -u redis://redis-server:6379/0 blog-tasks

// TODO: merge docker run commands ^-^

run via Heroku

Add Postgres

$ heroku addons:add heroku-postgresql:hobby-dev

Add SearchBox

$ heroku addons:create searchbox:starter
$ heroku config:get SEARCHBOX_URL
<your-elasticsearch-url>
$ heroku config:set ELASTICSEARCH_URL=<your-elasticsearch-url>

Add Redis

$ heroku addons:create heroku-redis:hobby-dev

** inspired by: 'https://habr.com/ru/post/346306/'

py-blog-lite's People

Contributors

dependabot[bot] avatar kkrisstoff avatar

Watchers

 avatar  avatar

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.