mirror of
https://github.com/miguelgrinberg/microblog.git
synced 2025-12-08 18:02:07 +00:00
Chapter 18: Deployment on Heroku (v0.18)
This commit is contained in:
parent
7f7c99a293
commit
f1b2b6f54c
1
Procfile
Normal file
1
Procfile
Normal file
@ -0,0 +1 @@
|
|||||||
|
web: flask db upgrade; flask translate compile; gunicorn microblog:app
|
||||||
@ -68,15 +68,20 @@ def create_app(config_class=Config):
|
|||||||
mail_handler.setLevel(logging.ERROR)
|
mail_handler.setLevel(logging.ERROR)
|
||||||
app.logger.addHandler(mail_handler)
|
app.logger.addHandler(mail_handler)
|
||||||
|
|
||||||
if not os.path.exists('logs'):
|
if app.config['LOG_TO_STDOUT']:
|
||||||
os.mkdir('logs')
|
stream_handler = logging.StreamHandler()
|
||||||
file_handler = RotatingFileHandler('logs/microblog.log',
|
stream_handler.setLevel(logging.INFO)
|
||||||
maxBytes=10240, backupCount=10)
|
app.logger.addHandler(stream_handler)
|
||||||
file_handler.setFormatter(logging.Formatter(
|
else:
|
||||||
'%(asctime)s %(levelname)s: %(message)s '
|
if not os.path.exists('logs'):
|
||||||
'[in %(pathname)s:%(lineno)d]'))
|
os.mkdir('logs')
|
||||||
file_handler.setLevel(logging.INFO)
|
file_handler = RotatingFileHandler('logs/microblog.log',
|
||||||
app.logger.addHandler(file_handler)
|
maxBytes=10240, backupCount=10)
|
||||||
|
file_handler.setFormatter(logging.Formatter(
|
||||||
|
'%(asctime)s %(levelname)s: %(message)s '
|
||||||
|
'[in %(pathname)s:%(lineno)d]'))
|
||||||
|
file_handler.setLevel(logging.INFO)
|
||||||
|
app.logger.addHandler(file_handler)
|
||||||
|
|
||||||
app.logger.setLevel(logging.INFO)
|
app.logger.setLevel(logging.INFO)
|
||||||
app.logger.info('Microblog startup')
|
app.logger.info('Microblog startup')
|
||||||
|
|||||||
@ -8,8 +8,10 @@ load_dotenv(os.path.join(basedir, '.env'))
|
|||||||
class Config:
|
class Config:
|
||||||
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
|
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
|
||||||
SERVER_NAME = os.environ.get('SERVER_NAME')
|
SERVER_NAME = os.environ.get('SERVER_NAME')
|
||||||
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
|
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', '').replace(
|
||||||
|
'postgres://', 'postgresql://') or \
|
||||||
'sqlite:///' + os.path.join(basedir, 'app.db')
|
'sqlite:///' + os.path.join(basedir, 'app.db')
|
||||||
|
LOG_TO_STDOUT = os.environ.get('LOG_TO_STDOUT')
|
||||||
MAIL_SERVER = os.environ.get('MAIL_SERVER')
|
MAIL_SERVER = os.environ.get('MAIL_SERVER')
|
||||||
MAIL_PORT = int(os.environ.get('MAIL_PORT') or 25)
|
MAIL_PORT = int(os.environ.get('MAIL_PORT') or 25)
|
||||||
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
|
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
|
||||||
|
|||||||
@ -38,3 +38,7 @@ typing_extensions==4.8.0
|
|||||||
urllib3==2.1.0
|
urllib3==2.1.0
|
||||||
Werkzeug==3.0.1
|
Werkzeug==3.0.1
|
||||||
WTForms==3.1.1
|
WTForms==3.1.1
|
||||||
|
|
||||||
|
# requirements for Heroku
|
||||||
|
psycopg2-binary==2.9.9
|
||||||
|
gunicorn==21.2.0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user