Commit ae1938ece3b851f92f7a5722c8974b33d093c7ad

Authored by Sergio Oliveira
Committed by Luciano Prestes
1 parent b89c37f4

Sisp redirect

Signed-off-by: Luiz Oliveira <ziuloliveira@gmail.com>
Signed-off-by: Sergio Oliveira <seocam@seocam.com>
config/cdtc/config.yaml
1 admins: 1 admins:
2 - ["Paulo Meirelles", "paulo@softwarelivre.org"] 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 external_hostname: spb.cdtc.unb.br 3 external_hostname: spb.cdtc.unb.br
  4 +sisp_external_hostname: sisp.cdtc.unb.br
4 external_ip: 164.41.9.49 5 external_ip: 164.41.9.49
5 site_url: https://spb.cdtc.unb.br 6 site_url: https://spb.cdtc.unb.br
6 colab_from_address: '"Portal do Software Publico" <noreply@spb.cdtc.unb.br>' 7 colab_from_address: '"Portal do Software Publico" <noreply@spb.cdtc.unb.br>'
config/dev/config.yaml
1 admins: 1 admins:
2 - ["Paulo Meirelles", "paulo@softwarelivre.org"] 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 external_hostname: dev.softwarepublico.gov.br 3 external_hostname: dev.softwarepublico.gov.br
  4 +sisp_external_hostname: dev.sisp.gov.br
4 external_ip: 189.9.151.16 5 external_ip: 189.9.151.16
5 alternative_hostnames: 6 alternative_hostnames:
6 - www.dev.softwarepublico.gov.br 7 - www.dev.softwarepublico.gov.br
config/homologa/config.yaml
@@ -4,6 +4,7 @@ admins: @@ -4,6 +4,7 @@ admins:
4 - ["Nayanne Araújo", "nayanne.bonifacio@planejamento.gov.br"] 4 - ["Nayanne Araújo", "nayanne.bonifacio@planejamento.gov.br"]
5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] 5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"]
6 external_hostname: homologa.softwarepublico.gov.br 6 external_hostname: homologa.softwarepublico.gov.br
  7 +sisp_external_hostname: homologa.sisp.gov.br
7 external_ip: 189.9.151.65 8 external_ip: 189.9.151.65
8 alt_ssh_port: 55555 9 alt_ssh_port: 55555
9 site_url: https://homologa.softwarepublico.gov.br 10 site_url: https://homologa.softwarepublico.gov.br
config/lappis/config.yaml
@@ -2,6 +2,7 @@ admins: @@ -2,6 +2,7 @@ admins:
2 - ["Paulo Meirelles", "paulo@softwarelivre.org"] 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 site_url: https://softwarepublico.lappis 3 site_url: https://softwarepublico.lappis
4 external_hostname: softwarepublico.lappis 4 external_hostname: softwarepublico.lappis
  5 +sisp_external_hostname: sisp.lappis
5 external_ip: 10.0.0.11 6 external_ip: 10.0.0.11
6 colab_from_address: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' 7 colab_from_address: '"Portal do Software Publico" <noreply@softwarepublico.lappis>'
7 server_email: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' 8 server_email: '"Portal do Software Publico" <noreply@softwarepublico.lappis>'
config/local/config.yaml
@@ -2,6 +2,7 @@ admins: @@ -2,6 +2,7 @@ admins:
2 - ["Paulo Meirelles", "paulo@softwarelivre.org"] 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 site_url: https://softwarepublico.dev 3 site_url: https://softwarepublico.dev
4 external_hostname: softwarepublico.dev 4 external_hostname: softwarepublico.dev
  5 +sisp_external_hostname: sisp.dev
5 alternative_hostnames: 6 alternative_hostnames:
6 - www.softwarepublico.dev 7 - www.softwarepublico.dev
7 - beta.softwarepublico.dev 8 - beta.softwarepublico.dev
config/prod/config.yaml
@@ -5,6 +5,7 @@ admins: @@ -5,6 +5,7 @@ admins:
5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] 5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"]
6 site_url: https://softwarepublico.gov.br 6 site_url: https://softwarepublico.gov.br
7 external_hostname: softwarepublico.gov.br 7 external_hostname: softwarepublico.gov.br
  8 +sisp_external_hostname: sisp.gov.br
8 alternative_hostnames: 9 alternative_hostnames:
9 - www.softwarepublico.gov.br 10 - www.softwarepublico.gov.br
10 - portal.softwarepublico.gov.br 11 - portal.softwarepublico.gov.br
cookbooks/colab/templates/00-custom_settings.py.erb
@@ -28,7 +28,8 @@ SECRET_KEY = &quot;&lt;%= File.read(&#39;/etc/colab/secret.key&#39;).strip %&gt;&quot; @@ -28,7 +28,8 @@ SECRET_KEY = &quot;&lt;%= File.read(&#39;/etc/colab/secret.key&#39;).strip %&gt;&quot;
28 28
29 SITE_URL = "<%= node['config']['site_url'] %>" 29 SITE_URL = "<%= node['config']['site_url'] %>"
30 30
31 -ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>"] 31 +ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>",
  32 + "<%= node['config']['sisp_external_hostname'] %>"]
32 33
33 ## Disable indexing 34 ## Disable indexing
34 ROBOTS_NOINDEX = False 35 ROBOTS_NOINDEX = False
cookbooks/colab/templates/colab.conf.erb
@@ -5,7 +5,7 @@ upstream colab { @@ -5,7 +5,7 @@ upstream colab {
5 server { 5 server {
6 listen *:80; 6 listen *:80;
7 7
8 - server_name <%= node['config']['external_hostname'] %>; 8 + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>;
9 9
10 access_log /var/log/nginx/colab.access.log; 10 access_log /var/log/nginx/colab.access.log;
11 error_log /var/log/nginx/colab.error.log; 11 error_log /var/log/nginx/colab.error.log;
cookbooks/noosfero/templates/nginx.conf.erb
@@ -6,7 +6,7 @@ upstream noosfero { @@ -6,7 +6,7 @@ upstream noosfero {
6 6
7 server { 7 server {
8 listen *:80; 8 listen *:80;
9 - server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %>; 9 + server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %> <%= node['config']['sisp_external_hostname'] %>;
10 underscores_in_headers on; 10 underscores_in_headers on;
11 access_log /var/log/nginx/noosfero.access.log; 11 access_log /var/log/nginx/noosfero.access.log;
12 error_log /var/log/nginx/noosfero.error.log; 12 error_log /var/log/nginx/noosfero.error.log;
@@ -24,7 +24,7 @@ server { @@ -24,7 +24,7 @@ server {
24 proxy_read_timeout 90; 24 proxy_read_timeout 90;
25 proxy_connect_timeout 90; 25 proxy_connect_timeout 90;
26 proxy_redirect off; 26 proxy_redirect off;
27 - proxy_set_header Host <%= node['config']['external_hostname'] %>; 27 + proxy_set_header Host $host;
28 proxy_set_header X-Real-IP $remote_addr; 28 proxy_set_header X-Real-IP $remote_addr;
29 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 29 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
30 } 30 }
cookbooks/reverse_proxy/recipes/default.rb
@@ -6,6 +6,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.crt&quot; do @@ -6,6 +6,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.crt&quot; do
6 notifies :restart, 'service[nginx]' 6 notifies :restart, 'service[nginx]'
7 end 7 end
8 8
  9 +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.crt" do
  10 + owner 'root'
  11 + group 'root'
  12 + mode 0600
  13 + notifies :restart, 'service[nginx]'
  14 +end
  15 +
9 cookbook_file "/etc/sysctl.d/ip_forward.conf" do 16 cookbook_file "/etc/sysctl.d/ip_forward.conf" do
10 owner 'root' 17 owner 'root'
11 group 'root' 18 group 'root'
@@ -23,6 +30,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.key&quot; do @@ -23,6 +30,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.key&quot; do
23 notifies :restart, 'service[nginx]' 30 notifies :restart, 'service[nginx]'
24 end 31 end
25 32
  33 +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.key" do
  34 + owner 'root'
  35 + group 'root'
  36 + mode 0600
  37 + notifies :restart, 'service[nginx]'
  38 +end
  39 +
26 template '/etc/nginx/conf.d/reverse_proxy.conf' do 40 template '/etc/nginx/conf.d/reverse_proxy.conf' do
27 owner 'root' 41 owner 'root'
28 group 'root' 42 group 'root'
cookbooks/reverse_proxy/templates/reverse_proxy.conf.erb
@@ -5,14 +5,14 @@ upstream colab { @@ -5,14 +5,14 @@ upstream colab {
5 server { 5 server {
6 listen *:80; 6 listen *:80;
7 7
8 - server_name <%= node['config']['external_hostname'] %>;  
9 - return 301 https://$server_name$request_uri; 8 + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>;
  9 + return 301 https://$host$request_uri;
10 } 10 }
11 11
12 server { 12 server {
13 listen *:443 ssl; 13 listen *:443 ssl;
14 14
15 - server_name <%= node['config']['external_hostname'] %>; 15 + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>;
16 client_max_body_size 500m; 16 client_max_body_size 500m;
17 17
18 ssl on; 18 ssl on;
@@ -28,6 +28,57 @@ server { @@ -28,6 +28,57 @@ server {
28 access_log /var/log/nginx/ssl-<%= node['config']['external_hostname'] %>.access.log; 28 access_log /var/log/nginx/ssl-<%= node['config']['external_hostname'] %>.access.log;
29 error_log /var/log/nginx/ssl-<%= node['config']['external_hostname'] %>.error.log; 29 error_log /var/log/nginx/ssl-<%= node['config']['external_hostname'] %>.error.log;
30 30
  31 + location ~ ^/social/sisp {
  32 + return 302 http://<%= node['config']['sisp_external_hostname'] %>;
  33 + }
  34 +
  35 + # TODO caching
  36 + location / {
  37 + proxy_pass http://colab;
  38 + proxy_read_timeout 90;
  39 + proxy_connect_timeout 90;
  40 + proxy_redirect off;
  41 + proxy_set_header Host $host;
  42 + proxy_set_header X-Real-IP $remote_addr;
  43 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  44 + proxy_set_header X-Forwarded-Proto https;
  45 + proxy_set_header Remote-User '';
  46 + proxy_set_header REMOTE_USER '';
  47 + }
  48 +
  49 + location /doc/ {
  50 + root /srv;
  51 + }
  52 +
  53 +}
  54 +
  55 +server {
  56 + listen *:443 ssl;
  57 +
  58 + server_name <%= node['config']['sisp_external_hostname'] %>;
  59 + client_max_body_size 150m;
  60 +
  61 + ssl on;
  62 +
  63 + ssl_certificate /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.crt;
  64 + ssl_certificate_key /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.key;
  65 + ssl_session_cache shared:SSL:10m;
  66 + ssl_session_timeout 5m;
  67 + ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  68 + ssl_ciphers HIGH:!aNULL:!MD5;
  69 + ssl_prefer_server_ciphers on;
  70 +
  71 + access_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.access.log;
  72 + error_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.error.log;
  73 +
  74 + location ~ ^/$ {
  75 + return 301 /social/sisp;
  76 + }
  77 +
  78 + location ~ ^/gitlab {
  79 + return 302 http://<%= node['config']['external_hostname'] %>$request_uri;
  80 + }
  81 +
31 # TODO caching 82 # TODO caching
32 location / { 83 location / {
33 proxy_pass http://colab; 84 proxy_pass http://colab;