[meta] Set up EC2 for hosting TiddlyWiki
diff --git a/.ssh/config b/.ssh/config
index d2a6fa52..3396b91c 100644
--- a/.ssh/config
+++ b/.ssh/config
@@ -31,5 +31,9 @@ Host home.kejadlen.net
Host chime.prgmr.com
User kejadlen
+Host *.amazonaws.com
+ User ubuntu
+ IdentityFile ~/.ssh/aws.pem
+
Host 127.0.0.1
StrictHostKeyChecking no
diff --git a/ansible/ec2.yml b/ansible/ec2.yml
new file mode 100644
index 00000000..b0ccd1a1
--- /dev/null
+++ b/ansible/ec2.yml
@@ -0,0 +1,17 @@
+- hosts: ec2
+ vars:
+ user: ubuntu
+ group: ubuntu
+ tasks:
+ - apt: update_cache=yes
+ sudo: true
+ - apt: name=nginx state=present
+ sudo: true
+ - file: path=/etc/nginx/sites-enabled/default state=absent
+ sudo: true
+ notify: reload nginx
+ - include: tiddlywiki/tasks.yml
+ handlers:
+ - name: reload nginx
+ service: name=nginx state=reloaded
+ - include: tiddlywiki/handlers.yml
diff --git a/ansible/tiddlywiki/handlers.yml b/ansible/tiddlywiki/handlers.yml
new file mode 100644
index 00000000..eebf9923
--- /dev/null
+++ b/ansible/tiddlywiki/handlers.yml
@@ -0,0 +1,3 @@
+- name: restart tiddlywiki
+ service: name=tiddlywiki state=restarted
+ sudo: true
diff --git a/ansible/tiddlywiki/nginx.conf b/ansible/tiddlywiki/nginx.conf
new file mode 100644
index 00000000..9d5270be
--- /dev/null
+++ b/ansible/tiddlywiki/nginx.conf
@@ -0,0 +1,8 @@
+server {
+ listen 80;
+
+ location / {
+ proxy_pass http://localhost:8080;
+ proxy_set_header X-Forwarded-Host $host;
+ }
+}
diff --git a/ansible/tiddlywiki/tasks.yml b/ansible/tiddlywiki/tasks.yml
new file mode 100644
index 00000000..4cc07ebd
--- /dev/null
+++ b/ansible/tiddlywiki/tasks.yml
@@ -0,0 +1,16 @@
+- include_vars: tiddlywiki/vars.yml.private
+- apt: name={{ item }} state=present
+ sudo: true
+ with_items:
+ - nodejs
+ - nodejs-legacy
+ - npm
+- npm: name=tiddlywiki global=yes state=present
+ sudo: true
+- file: path=~/tiddlywiki state=directory
+- copy: src=tiddlywiki/nginx.conf dest=/etc/nginx/conf.d/tiddlywiki.conf
+ sudo: true
+ notify: reload nginx
+- template: src=tiddlywiki/upstart.conf.j2 dest=/etc/init/tiddlywiki.conf
+ sudo: true
+ notify: restart tiddlywiki
diff --git a/ansible/tiddlywiki/upstart.conf.j2 b/ansible/tiddlywiki/upstart.conf.j2
new file mode 100644
index 00000000..71bd6ff0
--- /dev/null
+++ b/ansible/tiddlywiki/upstart.conf.j2
@@ -0,0 +1,12 @@
+description "TiddlyWiki"
+author "Alpha Chen"
+
+start on started network-services
+stop on stopping network-services
+
+setuid {{ user }}
+setgid {{ group }}
+
+console log
+
+exec tiddlywiki /home/{{ user }}/tiddlywiki --server 8080 $:/core/save/all text/plain text/html alpha "{{ password }}"