pezcurrel 4 years ago
parent
commit
23b5e21a87

+ 1 - 0
.gitignore

@@ -6,6 +6,7 @@
 /web/mustard/crawler/instances.json
 /web/mustard/crawler/peers
 /web/mustard/crawler/zzz-materiali/
+/web/mustard/sec/mustard.ini
 /web/mustard/zzz-estemp/
 /web/mustard/zzz-materiali/mastostart_struttura_e_dati_pro_altervista.sql.gz
 /web/mustard/zzz-materiali/mastostart_struttura_e_dati_test.sql.gz

+ 8 - 3
web/INSTALL.md

@@ -1,11 +1,16 @@
-* Requisiti: apache (o altro web server, ma per ora le istruzioni qui sono solo per apache) con mod_rewrite abilitato; php7 (cli e "per apache") con estensioni mysqli, mb_string, pcntl, intl; mariadb (dovrebbe funzionare anche con mysql, ma non l'ho testato).
+* Requisiti: apache (o altro web server, ma per ora le istruzioni qui sono solo per apache) con mod_rewrite abilitato; php7 (cli e "per apache") con estensioni mysqli, mb_string, pcntl, intl, json, session; mariadb (dovrebbe funzionare anche con mysql, ma non l'ho testato).
 
 * Php dovrebbe essere configurato con un limite di memoria usabile abbastanza alto: 1 gb («memory_limit=1G») dovrebbe andar bene, ma di più (2 gb) sarebbe anche meglio, per andare sul sicuro. Tanta memoria serve per «mustard/crawler/peerscrawl.php», il crawler che recupera ricorsivamente un bel po' di istanze; al momento ne recupera circa 21.000 arrivando a usare un picco di circa 750 mb (in circa 6 ore, sulla mia sgrausissima adsl). (Delle istanze recuperate da «peerscrawl.php» solo circa 3.000 finiscono poi effettivamente nel database: per tantissime l'endpoint \[dominio\]/api/v1/instance poi non risponde, o perché l'istanza è morta, oppure perché è giù, o perché non si tratta di istanza mastodon, o perché l'endpoint è disabilitato, o per varie ed eventuali).
 
-* Se si vuole provare la funzione di invio delle mail di invito agli admin delle istanze, php deve essere configurato in modo che sia in grado di inviare mail dall'indirizzo email "mittente" definibile impostando la variabile «ref_email» in «mustard/sec/mustard.ini». Inoltre: per favore, ancora in «mustard/sec/mustard.ini», cambia il valore della variabile «mail_test_address» (attualmente impostato a un indirizzo email mio), impostando un tuo indirizzo email valido e NON impostarla a stringa vuota o a false, in modo da NON inviare inviti reali (il tutto è spiegato meglio nei commenti in «mustard/sec/mustard.ini»).
+* Se si vuole provare la funzione di invio delle mail di invito agli admin delle istanze, php deve essere configurato in modo che sia in grado di inviare mail dall'indirizzo email "mittente" definibile impostando la variabile «ref_email» in «mustard/sec/mustard.ini». In questo stesso file di configurazione, per favore, cambia il valore della variabile «mail_test_to» a un tuo indirizzo email valido e NON impostarla a stringa vuota o a false, in modo da NON inviare inviti reali (il tutto è spiegato meglio nei commenti in «mustard/sec/mustard.ini»).
 
 * Se hai installato mastostart nella DocumentRoot di apache o di un virtualhost definito in apache bona lè; se invece l'hai installato in una sottodirectory della DocumentRoot (per esempio «\[DocumentRoot\]/mastostart»), imposta al percorso della sottodirectory la variabile «instpath» in «mastostart.ini» (per esempio «instpath="/mastostart"») e la direttiva «RewriteBase» in «.htaccess» (per esempio «RewriteBase "/mastostart").
 
-* Per quanto riguarda l'installazione di Mustard, importa in mariadb o mysql il dump sql «mastostart_struttura_e_dati_pro_installazione.sql.gz» che trovi nella directory «mustard/zzz-materiali/». Edita il file di configurazione «mustard/sec/mustard.ini» seguendo le istruzioni che trovi nei commenti all'interno del file. Crea un “superadmin” per poter entrare in mustard lanciando «php addsuperadmin.php» dalla directory «mustard/tools/».
+* Per quanto riguarda l'installazione di Mustard
+    * importa in mariadb o mysql il dump sql «mastostart_struttura_e_dati_pro_installazione.sql.gz» che trovi nella directory «mustard/zzz-materiali/»;
+    * in mariadb o mysql crea un utente con tutti i diritti sul database «mastostart»;
+    * copia il file di configurazione di esempio «mustard/sec/mustard.ini.sample» in «mustard/sec/mustard.ini»;
+    * edita «mustard/sec/mustard.ini» seguendo le istruzioni che trovi nei commenti che contiene;
+    * crea un “superadmin” per poter entrare in mustard lanciando «php addsuperadmin.php» dalla directory «mustard/tools/».
 
 * Per quanto riguarda il crawler che crea/aggiorna i dati relativi alle istanze nel database, si tratta di farne girare i due componenti uno dopo l'altro, la prima volta magari da shell, poi con un cron job (quotidiano? settimanale?). Per farlo è sufficiente lanciare lo script «crawl.sh» che si trova nella directory «mustard/crawler».

+ 5 - 5
web/mustard/edinst.php

@@ -411,7 +411,7 @@ echo('</td>
 }
 
 selbox(array(
-	'desc'=>'If your instance is mainly bound to a particular location (from neighbourhood to country) you can specify it here. You can add up to '.$account['MaxLocalities'].' location[s]. You can edit or remove only the location[s] you added, and only as long as they have not yet been referenced by others. For particular needs don’t hesitate to <a href="contact.php" target="_blank">contact us</a>.',
+	'desc'=>'If your instance is mainly bound to a particular location (from neighbourhood to country) you can specify it here. You can add up to '.$account['MaxLocalities'].' location[s]. You can edit or remove only the location[s] you added, and only as long as they have not yet been referenced by others. For particular needs don’t hesitate to <a href="mailto:'.$iniarr['ref_email'].'">contact us</a>.',
 	'multi'=>false,
 	'dispselid'=>'LocalityID',
 	'instselid'=>$inst['LocalityID'],
@@ -425,7 +425,7 @@ selbox(array(
 	'txtcol'=>'Name'.$dlang));
 
 $o=array(
-	'desc'=>'Here you can specify the languages which are mostly used on your instance, in order of importance. The list of available languages to choose from should be fairly complete, but if you find out it is not don’t hesitate to <a href="contact.php" target="_blank">contact us</a>. The list of chosen languages is often pre-populated by our crawler, which tries and guess them automatically, but you can always modify it and prevent the crawler from changing it on its next runs by ticking the “Lock this list” checkbox you find under the list.',
+	'desc'=>'Here you can specify the languages which are mostly used on your instance, in order of importance. The list of available languages to choose from should be fairly complete, but if you find out it is not don’t hesitate to <a href="mailto:'.$iniarr['ref_email'].'">contact us</a>. The list of chosen languages is often pre-populated by our crawler, which tries and guess them automatically, but you can always modify it and prevent the crawler from changing it on its next runs by ticking the “Lock this list” checkbox you find under the list.',
 	'multi'=>true,
 	'dispselid'=>'DispLangs',
 	'title'=>'Languages',
@@ -460,7 +460,7 @@ if ($account['Level']=='guest' && is_null($inst['LastGuestEdit']))
 <?php
 
 selbox(array(
-	'desc'=>'Here you can specify the modalities by which your instance is financed, in order of importance. You can add up to '.$account['MaxFinancing'].' modalities to the list of available modalities. You can edit or remove only the modalities you added, and only as long as they have not yet been referenced by others.<br>For particular needs don’t hesitate to <a href="contact.php" target="_blank">contact us</a>.',
+	'desc'=>'Here you can specify the modalities by which your instance is financed, in order of importance. You can add up to '.$account['MaxFinancing'].' modalities to the list of available modalities. You can edit or remove only the modalities you added, and only as long as they have not yet been referenced by others.<br>For particular needs don’t hesitate to <a href="mailto:'.$iniarr['ref_email'].'">contact us</a>.',
 	'multi'=>true,
 	'dispselid'=>'DispFinModes',
 	'title'=>'Financing modalities',
@@ -477,7 +477,7 @@ selbox(array(
 	'chosenvalcol'=>'FinID'));
 
 selbox(array(
-	'desc'=>'Here you can specify the policies defining which kind of contents are allowed or not allowed on your instance. You can add up to '.$account['MaxPolicies'].' policies to the list of available policies. You can edit or remove only the policies you added, and only as long as they have not yet been referenced by others.<br>For particular needs don’t hesitate to <a href="contact.php" target="_blank">contact us</a>.',
+	'desc'=>'Here you can specify the policies defining which kind of contents are allowed or not allowed on your instance. You can add up to '.$account['MaxPolicies'].' policies to the list of available policies. You can edit or remove only the policies you added, and only as long as they have not yet been referenced by others.<br>For particular needs don’t hesitate to <a href="mailto:'.$iniarr['ref_email'].'">contact us</a>.',
 	'multi'=>true,
 	'dispselid'=>'DispPolicies',
 	'title'=>'Policies',
@@ -494,7 +494,7 @@ selbox(array(
 	'chosenvalcol'=>'PolID'));
 
 selbox(array(
-	'desc'=>'Here you can specify the “thematic” categories your instance is dedicated to, if any. If your instance isn’t particularly dedicated to any particular topic, please just associate it with the “General” category. You can add '.$account['MaxTags'].' categories to the list of available categories. You can edit or remove only the categories you added, and only as long as they have not yet been referenced by others. For particular needs don’t hesitate to <a href="contact.php" target="_blank">contact us</a>.',
+	'desc'=>'Here you can specify the “thematic” categories your instance is dedicated to, if any. If your instance isn’t particularly dedicated to any particular topic, please just associate it with the “General” category. You can add '.$account['MaxTags'].' categories to the list of available categories. You can edit or remove only the categories you added, and only as long as they have not yet been referenced by others. For particular needs don’t hesitate to <a href="mailto:'.$iniarr['ref_email'].'">contact us</a>.',
 	'multi'=>true,
 	'dispselid'=>'DispTags',
 	'title'=>'Categories',

+ 1 - 1
web/mustard/include/getiniarr.php

@@ -6,7 +6,7 @@ function getiniarr() {
 	$inifp='sec/mustard.ini';
 	$iniarr=parse_ini_file($inifp)
 		or muoribene('Couldn’t open configuration file «'.$inifp.'».',false);
-	$missing=ckkeys(array('db_host','db_port','db_socket','db_name','db_admin_name','db_admin_password','ref_name','ref_email','site_domain','mail_test_address'),$iniarr);
+	$missing=ckkeys(array('db_host','db_port','db_socket','db_name','db_admin_name','db_admin_password','ref_name','ref_email','site_domain','mail_test_to'),$iniarr);
 	if (count($missing)>0)
 		muoribene('Configuration file «'.$inifp.'» is missing some required fields: “'.implode('”, “',$missing).'”.',false);
 	return($iniarr);

+ 2 - 2
web/mustard/invite.php

@@ -104,9 +104,9 @@ if (array_key_exists('id',$_GET) && preg_match('/^[0-9]+$/',$_GET['id'])===1) {
 	$_POST['id']+=0;
 	$from=$iniarr['ref_name'].' <'.$iniarr['ref_email'].'>';
 	//questo per far provette d'invio mail senza toccare il db
-	if ($iniarr['mail_test_address']!=false && trim($iniarr['mail_test_address'])!='') {
+	if ($iniarr['mail_test_to']!=false && trim($iniarr['mail_test_to'])!='') {
 		$test=true;
-		$to=$iniarr['mail_test_address'];
+		$to=$iniarr['mail_test_to'];
 	} else {
 		$test=false;
 		$to=$_POST['to'];

+ 0 - 32
web/mustard/sec/mustard.ini

@@ -1,32 +0,0 @@
-db_host=localhost
-db_port=3306
-db_socket=/run/mysqld/mysqld.sock
-db_name=mastostart
-db_admin_name=MastoStartAdmin
-db_admin_password=MastoStartAdmin
-;; questo qui sotto è il nome di riferimento di mastostart, al momento
-;; viene usato solo nell'invio delle mail di invito, come mittente, insieme
-;; a "ref_email" (vedi più sotto).
-ref_name=Mastodon Startpage
-;; questo qui sotto è l'indirizzo email di contatto di mastostart,
-;; al momento viene usato solo come mittente nell'invio delle mail
-;; di invito; se vuoi testare questa funzione, per favore impostalo
-;; a un tuo indirizzo e leggi con attenzione tutto il resto di questo
-;; amabile file di configurazione.
-ref_email=qodobop@inventati.org
-;; questo qui sotto è il dominio di riferimento di mastostart, al momento
-;; viene usato solo nell'invio delle mail di invito per costruire la url
-;; per il login a mustard da passare alle admin delle istanze invitate
-;; ("https://[site_domain]/mustard")
-site_domain=mastodon.help
-;; questo qui sotto funziona così: se lasciato vuoto o impostato a "false"
-;; o a "no", le mail di invito verranno effettivamente inviate all'indirizzo
-;; di contatto dell'istanza; se impostato, le mail di invito verranno
-;; inviate invece all'indirizzo specificato qui e non verrà apportata
-;; alcuna modifica al database (niente creazione account "guest", niente
-;; associazione dell'istanza all'account creato).
-;; Per favore, se vuoi testare la funzione di invio email di invito,
-;; imposta questa variabile a un tuo indirizzo email valido, e in ogni caso
-;; NON lasciarla vuota, NON impostarla a "false" o a "no": non mandare
-;; in giro mail di invito ad minchiam ;-)
-mail_test_address=pezcurrel@tiscali.it

+ 51 - 0
web/mustard/sec/mustard.ini.sample

@@ -0,0 +1,51 @@
+;; "db_host" definisce l'host o l'indirizzo ip presso cui gira il server
+;; mariadb o mysql.
+db_host=localhost
+
+;; "db_port" definisce la porta su cui il server mariadb o mysql
+;; è in ascolto.
+db_port=3306
+
+;; "db_socket" definisce il file socket su cui il server mariadb o mysql
+;; è eventualmente in ascolto.
+db_socket=/run/mysqld/mysqld.sock
+
+;; "db_name" definisce il nome del database di mastostart.
+db_name=mastostart
+
+;; "db_admin_name" definisce il nome utente per il collegamento al database.
+db_admin_name=MastoStartAdmin
+
+;; "db_admin_password" definisce la password per il collegamento
+;; al database.
+db_admin_password=MastoStartAdmin
+
+;; "ref_name" definisce il nome di riferimento di mastostart, che al momento
+;; viene usato solo nell'invio delle mail di invito per le admin delle
+;; istanze, insieme a "ref_email" (vedi più sotto).
+ref_name=Mastodon Startpage
+
+;; "ref_email" definisce l'indirizzo email di contatto di mastostart.
+;; Al momento viene usato, tra l'altro, come mittente nell'invio delle mail
+;; di invito; se vuoi testare questa funzione, per favore impostalo
+;; a un tuo indirizzo e leggi con attenzione tutto il resto di questo
+;; amabile file di configurazione.
+ref_email=pippo@peppo.pip
+
+;; "site_domain" definisce il dominio di mastostart, al momento viene usato
+;; solo nell'invio delle mail di invito per costruire la url per il login
+;; a mustard da passare alle admin delle istanze invitate
+;; ("https://[site_domain]/mustard")
+site_domain=mastodon.help
+
+;; "mail_test_to" funziona così: se impostato a false o lasciato vuoto
+;; le mail di invito verranno effettivamente inviate all'indirizzo
+;; di contatto dell'istanza invitata; se impostato a un indirizzo email,
+;; le mail di invito verranno inviate invece all'indirizzo specificato
+;; e non verrà apportata alcuna modifica al database (niente creazione
+;; di account "guest", niente associazione dell'istanza all'account creato).
+;; Per favore, se vuoi testare la funzione di invio email di invito,
+;; imposta questa variabile a un tuo indirizzo email valido, e in ogni caso
+;; NON lasciarla vuota, NON impostarla a "false" o a "no", insomma
+;; non mandare in giro mail di invito ad minchiam ;-)
+mail_test_to=pippo@peppe.pep