Template:Installation/Preparation/openSUSE

From diaspora* project wiki
< Template:Installation‎ | Preparation
Revision as of 05:21, 2 September 2016 by CSammy (talk | contribs) (Created page with "=== Install packages === As root run: {{#tag:syntaxhighlight| zypper install ruby-devel rubygem-bundler make automake gcc gcc-c++ git libcurl-devel ImageMagick ImageMagick-e...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Install packages

As root run:

zypper install ruby-devel rubygem-bundler make automake gcc gcc-c++ git libcurl-devel ImageMagick ImageMagick-extra libtool bison libtool patch libxml2-devel libxslt-devel libffi-devel libyaml-devel nodejs

Install database

If you already have one skip this step.

As root run:

zypper install

Self-signed certificate

openSUSE didn't came with the SSL certificate so we are going to do it.

Create the Server Key and Certificate Signing Request

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr

Removing the passphrase

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

Signing your SSL Certificate

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Copying certificate to /etc/ssl/certs/

cp server.crt server.key /etc/ssl/certs/

NGINX

You can choose to user nginx.

Installing packages

As root run:

zypper install nginx rubygem-passenger-nginx

nginx.conf

Attention to this options:

  • root -> be sure to point diaspora directory
  • your_domain_here -> replace it by your own domain


  worker_processes 1;
  error_log  /var/log/nginx/error.log;
  events { worker_connections  256; }

  http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout 15;
    client_max_body_size 5m;

    passenger_root /usr/lib64/ruby/gems/2.0.0/gems/passenger-4.0.18;
    passenger_ruby /usr/bin/ruby;

    server {
        listen 80;
        server_name opensuse.ensol.org.br;
         rewrite ^/(.*) https://your_domain_here/$1 permanent;
    }

    upstream thin_cluster {
        server localhost:3000;
    }

    server {
        listen 443 ssl;
        server_name your_domain_here;

        ssl on;
        ssl_certificate      /etc/ssl/certs/server.crt;
        ssl_certificate_key  /etc/ssl/certs/server.key;

        passenger_enabled on;
        rails_env production;

        root /home/diaspora/diaspora/public;

        error_log  /var/log/nginx/diaspora.error-ssl.log;
        access_log /var/log/nginx/diaspora.access-ssl.log;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html { root html; }

        location /uploads/images {
          expires 1d;
          add_header Cache-Control public;
        }

        location /assets {
          expires 1d;
          add_header Cache-Control public;
        }
    }
  }


Firewall

openSUSE use to have a firewall turned on (good work!) but this filter the HTTP/s protocols. In this particular case we need ports 80 and 443 open.

To do so, do as follows:

As root run:

SuSEfirewall2 stop

echo "TCP=\"80 443\"" > /etc/sysconfig/SuSEfirewall2.d/services/http

Edit /etc/sysconfig/SuSEfirewall2 and add "http" into FW_CONFIGURATIONS_EXT=, like this:

FW_CONFIGURATIONS_EXT="http"

Finally run:

SuSEfirewall2 start

Setup REDIS

As root run:

cp /etc/redis/default.conf.example /etc/redis/default.conf
chown redis: /etc/redis/default.conf

/etc/init.d/redis restart

Creating a user for Diaspora

As root run:

useradd -m diaspora
su - diaspora
cd ~