Got gunicorn working. Problem with sqlite intiailization to fix.
This commit is contained in:
@@ -38,4 +38,4 @@ COPY --from=builder /usr/local /usr/local
|
||||
USER myuser
|
||||
|
||||
# Start gunicorn with the appropriate options
|
||||
CMD ["gunicorn", "-b", "0.0.0.0:5000", "--workers=3", "app:app"]
|
||||
CMD ["gunicorn", "-b", "0.0.0.0:3000", "--log-level=debug", "--workers=3", "app:create_app('default')"]
|
||||
|
||||
32
app.py
32
app.py
@@ -6,11 +6,13 @@ from pywebpush import webpush, WebPushException
|
||||
import json
|
||||
import os
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///webpush.db'
|
||||
db.init_app(app)
|
||||
def create_app(config_name):
|
||||
app = Flask(__name__)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///webpush.db'
|
||||
db.init_app(app)
|
||||
|
||||
def generate_and_save_vapid_keys():
|
||||
|
||||
def generate_and_save_vapid_keys():
|
||||
vapid = Vapid()
|
||||
vapid.generate_keys()
|
||||
private_key = vapid.get_private_key().to_pem().decode('utf-8').strip()
|
||||
@@ -21,12 +23,12 @@ def generate_and_save_vapid_keys():
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@app.before_first_request
|
||||
def initialize():
|
||||
def initialize():
|
||||
if not VAPIDKey.query.first():
|
||||
generate_and_save_vapid_keys()
|
||||
|
||||
def send_push_notification(subscription_info, message, vapid_key):
|
||||
|
||||
def send_push_notification(subscription_info, message, vapid_key):
|
||||
try:
|
||||
webpush(
|
||||
subscription_info=subscription_info,
|
||||
@@ -40,16 +42,16 @@ def send_push_notification(subscription_info, message, vapid_key):
|
||||
print(f"Failed to send notification: {e}")
|
||||
|
||||
|
||||
@app.route('/web-push/vapid', methods=['GET'])
|
||||
def get_vapid():
|
||||
@app.route('/web-push/vapid', methods=['GET'])
|
||||
def get_vapid():
|
||||
key = VAPIDKey.query.first()
|
||||
if key:
|
||||
return jsonify(public_key=key.public_key)
|
||||
return jsonify(error='No VAPID keys found'), 404
|
||||
|
||||
|
||||
@app.route('/web-push/subscribe', methods=['POST'])
|
||||
def subscribe():
|
||||
@app.route('/web-push/subscribe', methods=['POST'])
|
||||
def subscribe():
|
||||
content = request.json
|
||||
vapid_key = VAPIDKey.query.first()
|
||||
|
||||
@@ -77,8 +79,8 @@ def subscribe():
|
||||
return jsonify(success=True)
|
||||
|
||||
|
||||
@app.route('/web-push/unsubscribe', methods=['DELETE'])
|
||||
def unsubscribe():
|
||||
@app.route('/web-push/unsubscribe', methods=['DELETE'])
|
||||
def unsubscribe():
|
||||
content = request.json
|
||||
endpoint = content['endpoint']
|
||||
subscription = Subscription.query.filter_by(endpoint=endpoint).first()
|
||||
@@ -90,6 +92,4 @@ def unsubscribe():
|
||||
else:
|
||||
return jsonify(success=False, error="Subscription not found"), 404
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
return app
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
flask
|
||||
flask>=2.0.0
|
||||
flask_sqlalchemy
|
||||
py_vapid
|
||||
pywebpush
|
||||
gunicorn
|
||||
|
||||
Reference in New Issue
Block a user