for #184 nginx deploys with config and for #186 supervisor runs at boot
[oweals/karmaworld.git] / Vagrantfile
index f950f5287aa53a53d1b6c56d958d1ab9491b0e9a..b7f2b05a9de3f29cf8de908de49f7419f0355a75 100644 (file)
@@ -15,8 +15,8 @@ VAGRANTFILE_API_VERSION = "2"
 # Install fabric so that the KarmaWorld fabfile may be run.
 
 # build a shell script that installs prereqs, configures the database, sets up
-# the user/group associations, pulls in the code from the host machine, and
-# then runs fabric.
+# the user/group associations, pulls in the code from the host machine, sets up
+# some external dependency configs, and then runs fabric.
 shellscript = <<SCRIPT
 apt-get update
 apt-get upgrade -y
@@ -32,7 +32,8 @@ usermod -a -G www-data vagrant
 
 su vagrant -c "git clone /vagrant karmaworld"
 
-CFILE="karmaworld/karmaworld/secret/db_settings.py"
+SECRETPATH="karmaworld/karmaworld/secret"
+CFILE="$SECRETPATH/db_settings.py"
 cat > $CFILE <<CONFIG
 #!/usr/bin/env python
 # -*- coding:utf8 -*-
@@ -44,7 +45,30 @@ PROD_DB_NAME = 'karmaworld'
 PROD_DB_USERNAME = 'vagrant'
 PROD_DB_PASSWORD = ''
 CONFIG
-chown vagrant:vagrant $CFILE
+cp $SECRETPATH/filepicker.py.example $SECRETPATH/filepicker.py
+cp $SECRETPATH/static_s3.py.example $SECRETPATH/static_s3.py
+chown vagrant:vagrant $SECRETPATH/*.py
+
+cat > /etc/nginx/sites-available/karmaworld <<CONFIG
+server {
+    listen 80;
+    # don't do virtual hosting, handle all requests regardless of header
+    server_name "";
+    client_max_body_size 20M;
+
+    location / {
+        # pass traffic through to gunicorn
+        proxy_pass http://127.0.0.1:8000;
+    }
+}
+CONFIG
+rm /etc/nginx/sites-enabled/default
+ln -s /etc/nginx/sites-available/karmaworld /etc/nginx/sites-enabled/karmaworld
+sudo service nginx restart
+
+cp karmaworld/confs/prod/supervisor /etc/init.d
+chmod 755 /etc/init.d/supervisor
+update-rc.d supervisor defaults
 
 pip install fabric
 #su vagrant -c "cd karmaworld; fab here first_deploy"