A starter template for Flask based web application.
- ORM by Flask-SQLAlchemy
- Manage script by Flask-Script
- Dashboard based on Flask-admin
- Real-time error tracking by raven
- Internationalization by Flask-Babel
- Database migrations by Flask-Migrate
- Server-side session by Flask-Session
- Security mechanisms by Flask-Security
- Views separated by Blueprint from Flask
# sudo yum install mariadb-server
# sudo mysql_secure_installation
# sudo systemctl start/enable/status mariadb
git clone https://github.com/stamaimer/flask-starter
cd flask-starter
cp instance/config.example.py instance/config.py # change the user and pswd fields
./create_venv
source .venv/bin/activate
python manage.py create_user -p <password for root of mysql> # create user specified in instance/config.py
python manage.py create_db
# create tables
python manage.py db init
python manage.py db migrate
python manage.py db upgrade
python manage.py runserver -h 0.0.0.0 or ./start.sh
# sudo yum install nginx
# sudo systemctl start/enable/status nginx
# create sites-available & sites-enabled directory in /etc/nginx
# create config file in sites-available
upstream stamaimer {
server 127.0.0.1:5000;
server 127.0.0.1:5001;
server 127.0.0.1:5002;
}
server{
listen 80;
server_name example.com;
location / {
proxy_pass http://stamaimer;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
location /static {
alias <path to static directory for your project>;
expires max;
}
}
# sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
# add `include /etc/nginx/sites-enabled/*;` after `include /etc/nginx/conf.d/*.conf;`
# sudo systemctl restart nginx
- git clone https://github.com/stamaimer/flask-starter
- cd flask-starter
- docker-compose up
- Test