Python web app

Json configuration

Output

useradd --shell /bin/bash --system --create-home --user-group servo apt-get update apt-get --yes install build-essential python3 python3-pip apt-get --yes build-dep python3 pip3 install pipenv ( cat <<'EOF' git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc git clone https://github.com/creationix/nvm.git ~/.nvm echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc source ~/.bashrc # Setup ssh key pair without input cat /dev/zero | ssh-keygen -q -N "" EOF ) >| /home/servo/setup_user.sh chmod +x /home/servo/setup_user.sh sudo -i -u servo /home/servo/setup_user.sh apt-get --yes install nginx-core # Certbot setup apt-get install software-properties-common add-apt-repository universe sudo apt-get update apt-get install certbot python3-certbot-nginx ( cat <<'EOF' upstream servo_server { server unix:/run/servo/socket fail_timeout=0; } server { server_name jonhuber.dev; listen 80; return 301 https://jonhuber.dev$request_uri; } server { server_name jonhuber.dev; listen 443 ssl http2; root /home/servo/nginx/; access_log /var/log/nginx/servo.access.log; error_log /var/log/nginx/servo.error.log; location / { try_files $uri @proxy_to_servo; } location @proxy_to_servo { 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_redirect off; proxy_pass http://servo_server; } ssl_certificate /etc/letsencrypt/live/jonhuber.dev/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/jonhuber.dev/privkey.pem; } EOF ) >| /etc/nginx/sites-available/servo.conf systemctl restart nginx # Get cert certbot certonly --nginx