Infrastructure host

Because we run all the parts of the infrastructure like code hosting, cache, documentation, on different software and probably in docker containers there needs to be one host server which will work as a proxy server to give easy access to all the applications in the infrastructure in a easy way. It might also be responsible to serve static files like documentation and cache.

Host nginx configuration

This is a example nginx configuration which can be reused to set up a proxy server host:

worker_processes  1;

events {
    worker_connections  1024;
}

http {

    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;
    gzip               on;

    server {
        listen       80;
        server_name  localhost pelux.io;

        # Just the general site
        location / {
            root   /var/www/pelux.io;
            index  index.html index.htm;
        }

        # When using yocto-cache over www
        location /yocto-cache/ {
            alias     /var/www/yocto-cache/archive/;
            index     index.html index.htm;
            autoindex on;
        }

        # Documentation
        location /software-factory/ {
            alias /var/www/software-factory/
            index index.html index.htm
        }

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

The Jenkins jobs later need to be directed to write the yocto-cache and other artifacts to /var/www/ so that this Nginx instance will be able to serve them via http(s).

Host docker configuration

Make sure to create a docker config file to make sure the file systems are large enough and work as intended. Make sure /etc/docker/daemon.json contains at least the following.

{
  "storage-driver": "overlay2"
}