diff --git a/flaskapp/app.conf b/flaskapp/app.conf new file mode 100644 index 0000000..652dceb --- /dev/null +++ b/flaskapp/app.conf @@ -0,0 +1,26 @@ +upstream app_server { + server flask:5000; +} + +server { + listen 80; + server_name _; + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + client_max_body_size 64M; + + location / { + try_files $uri @proxy_to_app; + } + + location @proxy_to_app { + gzip_static on; + + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Host $http_host; + proxy_buffering off; + proxy_redirect off; + proxy_pass http://app_server; + } +} \ No newline at end of file diff --git a/flaskapp/app.py b/flaskapp/app.py new file mode 100644 index 0000000..afac090 --- /dev/null +++ b/flaskapp/app.py @@ -0,0 +1,53 @@ +import os +from flask import Flask, request, jsonify +from flask_pymongo import PyMongo + +application = Flask(__name__) + +application.config["MONGO_URI"] = 'mongodb://' + os.environ['MONGODB_USERNAME'] + ':' + os.environ['MONGODB_PASSWORD'] + '@' + os.environ['MONGODB_HOSTNAME'] + ':27017/' + os.environ['MONGODB_DATABASE'] + +mongo = PyMongo(application) +db = mongo.db + +@application.route('/') +def index(): + return jsonify( + status=True, + message='Welcome to the Dockerized MongoDB app!' + ) + +@application.route('/todo') +def todo(): + _todos = db.todo.find() + + item = {} + data = [] + for todo in _todos: + item = { + 'id': str(todo['_id']), + 'todo': todo['todo'] + } + data.append(item) + + return jsonify( + status=True, + data=data + ) + +@application.route('/todo', methods=['POST']) +def createTodo(): + data = request.get_json(force=True) + item = { + 'todo': data['todo'] + } + db.todo.insert_one(item) + + return jsonify( + status=True, + message='To-do saved successfully!' + ), 201 + +if __name__ == "__main__": + ENVIRONMENT_DEBUG = os.environ.get("APP_DEBUG", True) + ENVIRONMENT_PORT = os.environ.get("APP_PORT", 5000) + application.run(host='0.0.0.0', port=ENVIRONMENT_PORT, debug=ENVIRONMENT_DEBUG) diff --git a/flaskapp/wsgi.py b/flaskapp/wsgi.py new file mode 100644 index 0000000..3cc98a4 --- /dev/null +++ b/flaskapp/wsgi.py @@ -0,0 +1,5 @@ +from app import application + + +if __name__ == "__main__": + application.run()