-
Notifications
You must be signed in to change notification settings - Fork 3
Asennus tuotantoserverille
Samu Nuutamo edited this page Feb 2, 2015
·
8 revisions
# asennetaan peruspaketit
sudo aptitude install nginx git postgresql python-virtualenv uwsgi uwsgi-plugin-python
# asennetaan pip installin vaatimat jutut
sudo aptitude install python-dev libffi-dev libpq-dev
sudo adduser bottle
# lisätään käyttäjätunnus "bottle" ryhmään "www-data"
sudo usermod -a -G www-data bottle
# luodaan postgresiin käyttäjätunnus "bottle" oikeuksilla createdb, createrole, no-superuser
sudo -u postgres createuser -d -r -S bottle
# vaihdetaan ensin bottle-käyttäjäksi
sudo -u bottle bash
# kloonataan roinat kotihakemistoon
git clone https://github.com/spktklr/kansalaisrajoite.git
# luodaan tietokanta
createdb kansalaisrajoite
psql kansalaisrajoite < kansalaisrajoite/db/create.sql
psql kansalaisrajoite < kansalaisrajoite/db/populate.sql
# luodaan python virtualenv ja asennetaan sinne tarvittavat kirjastot
mkdir python-env
virtualenv python-env
. python-env/bin/activate
pip install -r kansalaisrajoite/python/requirements.txt
# asennetaan node
sudo aptitude install node node-legacy
# asennetaan npm
curl https://www.npmjs.com/install.sh | sudo sh
# asennetaan phantomjs
sudo npm install -g phantomjs
# vaihdetaan bottle-käyttäjäksi
sudo -u bottle bash
# kloonataan seo-proxy kotihakemistoon
git clone https://github.com/carbn/escaped-fragment-proxy
# cat /etc/uwsgi/apps-enabled/kansalaisrajoite.ini
[uwsgi]
socket = /run/uwsgi/app/kansalaisrajoite/socket
virtualenv = /home/bottle/python-env
chdir = /home/bottle/kansalaisrajoite/python
master = true
plugins = python
file = main.py
uid = bottle
gid = www-data
# cat /etc/uwsgi/apps-enabled/escaped-fragment-proxy.ini
[uwsgi]
socket = /run/uwsgi/app/escaped-fragment-proxy/socket
virtualenv = /home/bottle/python-env
chdir = /home/bottle/escaped-fragment-proxy
file = app.py
callable = app
master = false
processes = 1
enable-threads = true
uid = bottle
gid = www-data
# cat nginx/sites-enabled/kansalaisrajoite
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
server {
listen 443 ssl default deferred;
server_name kansalaisrajoite.fi www.kansalaisrajoite.fi;
ssl_certificate /etc/nginx/certs/ssl.crt;
ssl_certificate_key /etc/nginx/certs/key.pem;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
root /home/bottle/kansalaisrajoite/static;
location / {
include uwsgi_params;
if ($args ~* _escaped_fragment_) {
uwsgi_pass unix:/run/uwsgi/app/escaped-fragment-proxy/socket;
break;
}
try_files $uri $uri/index.html @uwsgi;
}
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/kansalaisrajoite/socket;
}
}
server {
listen 80;
server_name kansalaisrajoite.fi www.kansalaisrajoite.fi;
rewrite ^ https://$host$request_uri permanent;
}
Koska sivuston tulee pystyä lähettämään emailia, täytyy exim4 konfiguroida uudelleen.
dpkg-reconfigure exim4-config
Olennaiset asetukset:
- Aseta tyypiksi "internet site"
- Ellei tarkoitus ole vastaanottaa emailia, aseta daemon kuuntelemaan vain localhostia
Muita:
- DKIM-conffaus: http://www.systemajik.com/blog/implementing-dkim-with-exim/