Cloudy plug-ins: Diferència entre les revisions

De Guifi.net - Wiki Català

m (= 3.1. Afegint la funció índex)
m (= 3.1. Afegint la funció índex)
Línia 70: Línia 70:
 
es visiti la pàgina del nostre servei des de la interfície web de Cloudy.
 
es visiti la pàgina del nostre servei des de la interfície web de Cloudy.
  
==== 3.1. Afegint la funció índex ===
+
==== 3.1. Afegint la funció índex ====
  
 
El que volem fer és que el nostre servei estigui integrat en l'estructura web de Cloudy.
 
El que volem fer és que el nostre servei estigui integrat en l'estructura web de Cloudy.

Revisió de 14:17, 24 març 2015

Què és un plug-in?

Cloudy és una distribució de Linux basada en Debian que dona als usuaris una interfície simple i còmode per gestionar diferents serveis que poden ser fets servir a través d'una xarxa comunitària; en el nostre cas, Guifi.

Al mateix temps, Cloudy ofereix una sèrie d'eines que permeten a un usuari afegir un servei del seu gust sense haver de tenir coneixements molt complexos sobre xarxes i informàtica en general. De manera automàtica, aquests serveis es publiquen mitjançant Avahi, i tothom que tingui Cloudy pot fer ús d'aquest servei.

Una altra manera d'anomenar aquests serveis que es poden posar i treure de forma senzilla és plug-in. Així doncs, entenem per plug-in un programa o software que un usuari vol afegir a la distribució i que pot ser gestionat de forma senzilla des de l'interfície web.

Afegir serveis a Cloudy

Una petita introducció

Aquesta guia t'ensenyarà el procés per afegir un nou servie a la distribució Cloudy.

Per tal de ser clar i donar alguns exemples al mateix temps, integrarem un servei bastant simple mostrant alguns troços de codi pel camí.

Per simplicitat farem servir Pastecat[1]. És un bon candidat ja que:

  • És independent i no es federa ni es comunica amb altres nodes
  • Està fet en Go, és fàcil de distribuïr i instal·lar
  • No necessita fitxers de configuració
  • No necessita gaires recursos

1. Obtenint el binari

El primer que hem d'investigar és com descarregar i instal·lar el binari a Cloudy. La majoria del software que podem trobat està per defecte en els paquets de Debian, però el Pastecat no hi és. Si es donés el cas que hi fós, tan sols hauriem d'executar la comanda apt-get install pastecat des de PHP.

Però com que aquest no és el cas, haurem de treure el binari d'algun altre lloc. Una opció és agafar el codi font i compilarl-lo nosaltres mateixos, però el problema d'això és que Cloudy necessitaría incloure moltes eines i llibreries per compil·lar, i aquest no és l'objectiu.

La millor opció si un paquet de Debian no està disponible en els repositoris, és descarregar els binaris des d'algun lloc segur. Podem fer servir el servei de "releases" de Github per això. Les dues opcions ens deixen amb un fitxer executable que hauriem de ser capaços de córrer directe sobre Cloudy.

En aquest cas en particular descarregarem els binaris des del repositori git amb la següent línia de comandes:

   wget https://github.com/mvdan/pastecat/releases/download/v0.3.0/pastecat_linux_386

Noteu que en aquest cas en concret estem descarregant una versió específica per un Linux amb arquitectura i386.

Fixeu-vos però, que tenir el servei en els paquets de Debian té moltes avantatges:

  • Les actualitzacions són simples i no necessiten feina extra des de Cloudy
  • El paquet està compilat per Debian d'una manera segura
  • Els fitxer de l'init.d ja venen per defecte
  • Els paquets de Debian solen contenir correccions

2. Provant-lo

Abans d'afegir un servei hauriem de configurar-lo i provar-lo directament nosaltres mateixos per veure com funciona i que realment funciona. També hem entendre quines opcions de configuració o línies de comandes necessitarem per fer ús d'aquest servei en particular i com el gestionarem un cop estigui funcionant.

3. Afegint el controlador

En web/plug/controllers tenim un fitxer PHP per cada servei anomenat controlador (o 'controller' en anglès). Aquest fitxer conté el codi que s'executarà quan es visiti la pàgina del nostre servei des de la interfície web de Cloudy.

3.1. Afegint la funció índex

El que volem fer és que el nostre servei estigui integrat en l'estructura web de Cloudy. Per fer això, necessitem crear uns quants 'scripts' en PHP i afegir-los al nostre dispositiu. De moment necessitarem crear dos scripts: pastecat.php i pastecat.menu.php. El primer fitxer és el controlador, és a dir, l'script que renderitza la pàgina i té tota la informació tal com botons o redireccionaments. L'altre és el que permet que el nostre servei es mostri en els menus superiors desplegables de Cloudy.

El codi del menú serà quelcom semblant a això:

   <?php
   //peerstreamer.menu.php
   addMenu('Pastecat','pastecat','Clommunity');

Per ara, farem servir un script molt simple en PHP com a controlador:

   <?php
   //pastecat
   $title="Pastecat";
   
   function index(){
       global $paspath,$title;
       global $staticFile;
   
       $page=hlc(t($title));
       $page .= hl(t("Minimalist pastebin engine written in Go"),4);
       $page .= par(t("A simple and self-hosted pastebin service written in Go").' '.t("Can use a variety of storage backends").' '.t(" Designed to optionally remove pastes after a certain period of time.").' '.("If using a persistent storage backend, pastes will be kept between runs.").' '.t("This software runs the").' '."<a href='http://paste.cat'>".t("paste.cat")."</a>". t(" public service."));
       
       return(array('type' => 'render','page' => $page));
   }

En el nostre sistema Cloudy, aquests fitxers han de posar-se als directoris dins de /var/local/cDistro/plug/. El primer de tot ha d'anar dins de menus i el segon al directori controllers. Un cop haguem fet això, podem anar al web del nostre dispositiu amb Cloudy i accedir al nou menú Pastecat.

Més informació

Més info si cal


Referències

  1. (https://github.com/mvdan/pastecat)


Enllaços externs

https://github.com/Clommunity/Doc/tree/master/plugins/pastecat

Eines de l'usuari