Android and amd64

/lib/systemd/system/anbox-container-manager.service

#ExecStartPre=/sbin/modprobe ashmem_linux
#ExecStartPre=/sbin/modprobe binder_linux
# mount -t binder binder /dev/binderfs
# mknod /dev/binder c 250 1
# mount -t cpuset none /dev/cpuset
# mkdir /dev/cpuset/camera-daemon
# chmod 777 /dev/cpuset/camera-daemon
# touch /dev/cpuset/camera-daemon/tasks
# chmod 777 /dev/cpuset/camera-daemon/tasks
config

CONFIG_ASHMEM=y 
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# systemctl restart anbox-container-manager.service
$ systemctl --user start anbox-session-manager.service
$ /usr/bin/anbox session-manager

Rocket.chat + NewRelic

class Script {
    process_incoming_request({ request }) {
      var webhookPayload = request.content;
      var webhookIncidentId = webhookPayload.incident_id;
      var webhookSeverity = webhookPayload.severity;
      var webhookCurrentState = webhookPayload.current_state;
      var webhookPolicyName = webhookPayload.policy_name;
      var webhookConditionName = webhookPayload.condition_name;
      var alertColor = "warning";
      var channels = ["#cloud-team"];
  
      if(webhookCurrentState === "open") { alertColor = "danger";}
      
      if(webhookPolicyName === "Project A") { channels.push("#ProjectA"); }
      else if(webhookPolicyName === "Project B") { channels.push("#ProjectB"); }
      
      //console.log(request.content);
      //console.log("Channels: " + channels.join(", "));
            
      return {
          content:{
            channel: channels,
            attachments: [{

              title: webhookSeverity + ' - ' + webhookPolicyName,
              text: "Condition: " + webhookConditionName + "\nIncident Id: " + webhookIncidentId,
              color: alertColor,
              fields: [
                {
                  title: "Status",
                  value: webhookCurrentState
                }
              ]
            }]
           }
        };
      };
  };

Headless CMS – Cockpit

Cockpit – A PHP self-hosted headless and api-driven CMS
https://getcockpit.com/
https://github.com/agentejo/cockpit

Cockpit – Documentation – Getting started
https://getcockpit.com/documentation/getting-started/introduction

Cockpit – Documentation – API
https://getcockpit.com/documentation/api/cockpit

Cockpit – Documentation – API Token
https://getcockpit.com/documentation/api/token

Cockpit and Vue.JS – How to display Cockpit CMS JSON data with Vue js
https://stackoverflow.com/questions/46700207/how-to-display-cockpit-cms-json-data-with-vue-js

vue-cockpit – Makes it easy to build a frontend displaying data from Cockpit CMS by automatically mapping all collections and regions into variables in the vue data scope.
https://github.com/dropclick/vue-cockpit

nuxt-cockpit – A Tutorial to Bundle Cockpit CMS & Nuxt.js in a full JAMstack
https://github.com/snipcart/nuxt-cockpit

MinIO – High Performance Object Storage

MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads.

  • MinIO – Quickstart Guide

https://github.com/minio/minio

  • MinIO – Docs

https://github.com/minio/minio/tree/master/docs

  • MinIO – docker-compose.yml
version: '3.2'

services:
  minio:
     image: minio/minio
     ports:
       - "9000:9000"
     environment:
       MINIO_ACCESS_KEY: Z2FpWWlQYUNoYXIwb2F5
       MINIO_SECRET_KEY: RXNhZURldThhaXNlcGhpYm9vMGFoZ2g5QWVzNWFj
     volumes:
       - files:/data
     command: server /data

volumes:
  files:

Migrando e Instalando GitLab

Neste documento vamos migrar um GitLab do tipo CE / Edição 9.5.3 , porem outros tipos/edições podem ser utilizadas

Servidor antigo (192.168.0.x)

$ sudo gitlab-rake gitlab:backup:create

Em nosso exemplo, dentro da pasta /var/opt/giblab/backups do servidor antigo, foi criado um arquivo com o nome  1519781652_2018_02_27_9.5.3_gitlab_backup.tar

Copie o arquivo 1519781652_2018_02_27_9.5.3_gitlab_backup.tar para o novo servidor (IP 192.168.0.y) . Em nosso caso usamos o comando scp para copiar usando SSH com usuario chamado user_ssh.

$ sudo scp /var/opt/giblab/backups/1519781652_2018_02_27_9.5.3_gitlab_backup.tar user_ssh@192.168.0.y:/var/opt/giblab/backups

Também copie os arquivos /etc/gitlab/gitlab.rb e /etc/gitlab/gitlab-secrets.json para o novo servidor usando os seguintes comandos:

$ sudo scp /etc/gitlab/gitlab.rb user_ssh@192.168.0.y:/etc/gitlab/gitlab.rb
$ sudo scp /etc/gitlab/gitlab-secrets.json user_ssh@192.168.0.y:/etc/gitlab/gitlab-secrets.json

Servidor novo (IP 192.168.0.y)

Primeiro etapa é a instalação do GitLab correto. É necessário escolher para a instalação o mesmo tipo (CE/EE) e a mesma versão para o backup poder ser restaurado corretamente.

Escolha abaixo o comando adequado para a instalação do GitLab de acordo com o sistema operacional de seu ambiente.

Comandos para instalar em servidor com Sistema Operacional Debian 9 (stretch):
$ curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
$ sudo apt-get install gitlab-ce=9.5.3-ce.0
$ gitlab-ctl reconfigure
Comandos para instalar em servidor com Sistema Operacional CentOS 7:
$ curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum install gitlab-ce-9.5.3-ce.0.el7.x86_64
$ gitlab-ctl reconfigure
Abaixo os comandos para restaurar o backup criado no servidor antigo:
$ sudo gitlab-ctl stop unicorn
$ sudo gitlab-ctl stop sidekiq
$ sudo gitlab-rake gitlab:backup:restore BACKUP=1519781652_2018_02_27_9.5.3
$ sudo gitlab-ctl restart
$ sudo gitlab-rake gitlab:check SANITIZE=true

Referencias