Created
July 31, 2017 03:08
-
-
Save ZebTheWizard/f1d5bca9798fe8fdcb3ff07a4e6dc200 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
FOLDER=$1 | |
MAIN=$2 | |
NAME=$3 | |
IP=$4 | |
sudo apt-get update | |
sudo apt-get install -y python3-pip python3-dev nginx | |
sudo pip3 install virtualenv | |
mkdir "$FOLDER/$NAME" | |
cd "$FOLDER/$NAME" | |
virtualenv venv | |
. venv/bin/activate | |
pip install uwsgi flask | |
#PROJECT/MAIN.PY | |
cat > "$MAIN.py" <<EOT | |
from flask import Flask | |
app = Flask(__name__) | |
@app.route("/") | |
def welcome(): | |
return "<h1 style='color:blue'>Hello There!</h1>" | |
if __name__ == "__main__": | |
app.run(host='0.0.0.0') | |
EOT | |
#PROJECT/WSGI.PY | |
cat > "wsgi.py" <<EOT | |
from $MAIN import app | |
if __name__ == "__main__": | |
app.run() | |
EOT | |
#PROJECT/WSGI.INI | |
cat > "wsgi.ini" <<EOT | |
[uwsgi] | |
module = wsgi:app | |
master = true | |
processes = 5 | |
socket = $NAME.sock | |
chmod-socket = 660 | |
vacuum = true | |
die-on-term = true | |
EOT | |
#/ETC/SYSTEMD/SYSTEM/NAME.SERVICE | |
cat > "/etc/init/$NAME.conf" <<EOT | |
description "uwsgi server instance for $NAME" | |
start on runlevel [2345] | |
stop on runlevel [!2345] | |
setuid morty | |
setgid www-data | |
env PATH=$FOLDER/$NAME/venv/bin | |
chdir $FOLDER/$NAME | |
exec uwsgi --ini wsgi.ini | |
EOT | |
#START SERVERS | |
sudo start $NAME | |
#/ETC/NGINX/SITES-AVAILABLE/NAME | |
cat > "/etc/nginx/sites-available/$NAME" <<EOT | |
server { | |
listen 80; | |
server_name $IP; | |
location / { | |
include uwsgi_params; | |
uwsgi_pass unix:$FOLDER/$NAME/$NAME.sock; | |
} | |
} | |
EOT | |
#CREATE LINK FOR NGINX | |
sudo ln -sf "/etc/nginx/sites-available/$NAME" /etc/nginx/sites-enabled/digitalocean | |
#RESTART NGINX | |
sudo service stop nginx | |
sudo service start nginx | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment