diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..1a29ce8dbc699966582096817f4952d212cbd2cd
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "vendor/nginx-http-accept-lang"]
+	path = vendor/nginx-http-accept-lang
+	url = git@github.com:fghibellini/nginx-http-accept-lang
diff --git a/roles/common/tasks/file_system.yml b/roles/common/tasks/file_system.yml
index 24c7574fca5aeeaa882ef6bdfa77d72c91b25efb..efe66ba9d47b18e3accbd4b93cb8c14cd63c250d 100644
--- a/roles/common/tasks/file_system.yml
+++ b/roles/common/tasks/file_system.yml
@@ -4,3 +4,6 @@
 
 - name: Create Git bare repositories directory
   file: path=/home/ubuntu/repos state=directory group=coopdevs owner=ubuntu mode=2775
+
+- name: Create shared directory
+  file: path=/home/ubuntu/shared state=directory group=coopdevs owner=ubuntu mode=2775
diff --git a/roles/coopdevs.org/files/coopdevs.conf b/roles/coopdevs.org/files/coopdevs.conf
index d60aff7d07a1ed2b841c675e3674d9b001de93c3..61ab0907d672aa27b6d3cc4a94ebab42d50f8c3a 100644
--- a/roles/coopdevs.org/files/coopdevs.conf
+++ b/roles/coopdevs.org/files/coopdevs.conf
@@ -4,8 +4,18 @@ server {
 
   server_name coopdevs.org www.coopdevs.org;
 
-  root /opt/sites/coopdevs;
-  index index.html;
+  # Initial i18n redirect
+  location = / {
+    default_type text/html;
 
-  expires 1d;
+    set $ngx_html_path $document_root;
+    content_by_lua_file /home/ubuntu/shared/nginx/lang.lua;
+  }
+
+  location / {
+    root /opt/sites/coopdevs;
+    index index.html;
+
+    expires 1d;
+  }
 }
diff --git a/roles/http-server/tasks/install_packages.yml b/roles/http-server/tasks/install_packages.yml
index 34db97c65b1c8684becf8e569b8b3f7be6c7e0ab..72ea82176203295f7fe901fb7915dec008b18a53 100644
--- a/roles/http-server/tasks/install_packages.yml
+++ b/roles/http-server/tasks/install_packages.yml
@@ -7,7 +7,7 @@
 
 - name: Install nginx package
   apt:
-    name: 'nginx'
+    name: 'nginx-extras'
     state: present
 
 - name: Add `www-data` user to `coopdevs` group
diff --git a/roles/http-server/tasks/main.yml b/roles/http-server/tasks/main.yml
index 62faad1b268b5758390db6977b553452f3c75b34..d3e1a4627cba3297a7519b0f744b9db34bded84a 100644
--- a/roles/http-server/tasks/main.yml
+++ b/roles/http-server/tasks/main.yml
@@ -6,6 +6,18 @@
     src: roles/http-server/files/nginx.conf
     dest: /etc/nginx/nginx.conf
 
+- name: Create shared nginx directory
+  file:
+    path: /home/ubuntu/shared/nginx
+    state: directory
+
+- name: Copy the lua lang module
+  notify: Reload NGINX
+  copy:
+    src: vendor/nginx-http-accept-lang/lang.lua
+    dest: /home/ubuntu/shared/nginx/lang.lua
+    mode: 'u+x'
+
 - name: Remove default nginx site
   file:
     path: /etc/nginx/sites-enabled/default
diff --git a/vendor/nginx-http-accept-lang b/vendor/nginx-http-accept-lang
new file mode 160000
index 0000000000000000000000000000000000000000..52040947dee481fbfdb52550cd15e56489462474
--- /dev/null
+++ b/vendor/nginx-http-accept-lang
@@ -0,0 +1 @@
+Subproject commit 52040947dee481fbfdb52550cd15e56489462474