From f0c01f9739a0c237c193dc9020273a47c19bb621 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 31 May 2018 14:22:39 -0700 Subject: start tracking deployment examples --- extra/nginx_fatcat-api | 39 +++++++++++++++++++++++++++++++++++++++ extra/nginx_fatcat-web | 35 +++++++++++++++++++++++++++++++++++ extra/systemd_fatcat-web.service | 16 ++++++++++++++++ extra/uwsgi_fatcat-web.sh | 16 ++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 extra/nginx_fatcat-api create mode 100644 extra/nginx_fatcat-web create mode 100644 extra/systemd_fatcat-web.service create mode 100644 extra/uwsgi_fatcat-web.sh (limited to 'extra') diff --git a/extra/nginx_fatcat-api b/extra/nginx_fatcat-api new file mode 100644 index 00000000..13c1da99 --- /dev/null +++ b/extra/nginx_fatcat-api @@ -0,0 +1,39 @@ + +upstream fatcatd { + server localhost:9411; +} + +server { + listen 80; + listen [::]:80; + listen 443 ssl spdy; + listen [::]:443 ssl spdy; + server_name api.fatcat.wiki; + + ssl_certificate /etc/letsencrypt/live/fatcat.wiki/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/fatcat.wiki/privkey.pem; + + #add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'"; + add_header X-Frame-Options "SAMEORIGIN"; # 'always' if nginx > 1.7.5 + add_header X-Content-Type-Options "nosniff"; # 'always' if nginx > 1.7.5 + add_header X-Xss-Protection "1"; + # Enable STS with one year period (breaks http; optional) + #add_header Strict-Transport-Security "max-age=31557600; includeSubDomains"; + + access_log /var/log/nginx/access.log; + + location / { + root /srv/http/default/www/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_redirect off; + proxy_pass http://fatcatd; + } + + # Let's Encrypt SSL Certs + location /.well-known/acme-challenge/ { + root /var/www/letsencrypt; + autoindex off; + } +} diff --git a/extra/nginx_fatcat-web b/extra/nginx_fatcat-web new file mode 100644 index 00000000..7909b0be --- /dev/null +++ b/extra/nginx_fatcat-web @@ -0,0 +1,35 @@ + +server { + listen 80; + listen [::]:80; + listen 443 ssl spdy; + listen [::]:443 ssl spdy; + server_name fatcat.wiki www.fatcat.wiki; + + ssl_certificate /etc/letsencrypt/live/fatcat.wiki/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/fatcat.wiki/privkey.pem; + + #add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'"; + add_header X-Frame-Options "SAMEORIGIN"; # 'always' if nginx > 1.7.5 + add_header X-Content-Type-Options "nosniff"; # 'always' if nginx > 1.7.5 + add_header X-Xss-Protection "1"; + # Enable STS with one year period (breaks http; optional) + #add_header Strict-Transport-Security "max-age=31557600; includeSubDomains"; + + access_log /var/log/nginx/access.log; + + location / { + try_files $uri @fatcat-web; + } + + location @fatcat-web { + include uwsgi_params; + uwsgi_pass unix:/var/run/fatcat-web/uwsgi.sock; + } + + # Let's Encrypt SSL Certs + location /.well-known/acme-challenge/ { + root /var/www/letsencrypt; + autoindex off; + } +} diff --git a/extra/systemd_fatcat-web.service b/extra/systemd_fatcat-web.service new file mode 100644 index 00000000..ad8b2bec --- /dev/null +++ b/extra/systemd_fatcat-web.service @@ -0,0 +1,16 @@ +[Unit] +Description=fatcat web interface +# TODO: would add syslog.target here if we used it +After=network.target + +[Service] +WorkingDirectory=/srv/fatcat/src/python +SyslogIdentifier=fatcat-web +#Environment="TMPDIR=/run/grobid/tmp/" +# XXX: insert uwsgi_fatcat-web.sh here +ExecStart= +User=fatcat +Type=simple + +[Install] +WantedBy=multi-user.target diff --git a/extra/uwsgi_fatcat-web.sh b/extra/uwsgi_fatcat-web.sh new file mode 100644 index 00000000..112d7857 --- /dev/null +++ b/extra/uwsgi_fatcat-web.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -eu + +# sudo mkdir /var/run/fatcat-web +# sudo chown bnewbold:bnewbold /var/run/fatcat-web/ + +FATCAT_WEB_DIR=python +cd $FATCAT_WEB_DIR + +uwsgi \ + -s /var/run/fatcat-web/uwsgi.sock \ + --manage-script-name --mount \ + --plugin python3 \ + --virtualenv .venv \ + --mount /:fatcat:app -- cgit v1.2.3