Installiamo GCweb su un server web ( anche su QNAP )


Un mese fa parlai a riguardo di GCweb, una semplice interfaccia web per GCstar. Ora sono qui per dirvi che queste "semplici righe di codice php" hanno superato la prova del nove, tutto sommato GCweb mi ha convinto. Ormai che ci siamo diciamo la verità, anche se fosse stato il programma peggiore della Terra lo avrei comunque usato, dato che è l'unico in grado di visualizzare le entry di GCstar su web. 😀

Fortunatamente il caso non è questo, l'interfaccia si è comportata benone. Non ha un vero e proprio backend, tutta la configurazione è salvata su un file php. Tutto questo però non è un problema, GCweb nasce da un progetto personale, non ha un team di sviluppo ne un team di tester ed oltre tutto ha un utilizzo abbastanza circoscritto a pochi individui. Quindi partendo da questi presupposti posso affermare che per il suo genere GCweb è un ottima applicazione, il suo "sporco lavoro" lo fa come si deve.

Passiamo quindi all'installazione. Scaricate il pacchetto a questo indirizzo e scompattatelo. A questo punto se volete installarlo su XAMPP dovrete copiare la cartella gcweb all'interno della cartella "C:\xampp\htcdoc" ( qua trovate come realizzare un web server con XAMPP ).

Se invece volete installarlo sul server web del vostro QNAP dovrete eseguire questi passi:

  • Loggatevi nel pannello di amministrazione del vostro QNAP Turbo NAS
  • Dal menù a sinistra selezionate Servizio di rete -> Server web
  • Mettete la spunta su "Attiva server web" e ormai che ci siete anche su "Abilitare connessione sicura (SSL)", potete lasciare la porta 80 ma se preferite, per ragioni di sicurezza, potete cambiarla

Con questi semplici passaggi avete attivato il server web sul QNAP, ora vi basterà copiare la cartella di gcweb all'interno di "//<IP vostro QNAP>/Web".

Ora prima di procedere con la configurazione dell'interfaccia dovrete esportare la vostra collezione GCstar, per fare questo potete andare nel programma e fare esporta -> External Disk, oppure più semplicemente andare nella cartella dove salvate la collezione e copiare il file .gcs e la cartella contenente le locandine dei film nella cartella "//<IP vostro QNAP>/Web/gcweb/collections/".

Aprite il browser e digitate <IP del vostro QNAP>/gcweb, dovrebbe aprirsi una pagina di configurazione, voi compilatela. Inserire il nuovo nome da dare al file di configurazione ( per ragioni di sicurezza ), username ( inserite un valore numerico, es. 1 ), la password, il nome della vostra collezione e dai menù a tendina selezionate la cartelle delle locandine appena copiata. Selezionate infine la lingua di default in inglese ( eng, sempre se non volete l'interfaccia in francese o tedesco ).1 Le altre opzioni ( quelle più avanzate ) le potete lasciare di default. Confermate e la vostra collezione sarà importata. Ora dovreste vedere qualcosa di simile ( sempre che nella vostra collezione siamo presenti dei film 😀 ):

Clickate sul link my_collection ( nel mio caso ) e potrete accedere all'intera collezione:

Ecco. questo è tutto. Ovviamente, le stesse operazioni si applicano anche su XAMPP ( l'unica cosa che varia sono i path e l'indirizzo del server, che sarà localhost ).

Ora però c'è da risolvere il problema più grande,  dato che GCweb si comporta come un'interfaccia web, GCstar e GCweb non dialogano tra di loro, quindi sarà impossibile tenere aggiornata la nostra collezione sul server web a meno di non intervenire manualmente ogni volta che si aggiunge un elemento alla collezione, una cosa improponibile a mio avviso. 😀

La soluzione è molto semplice, creare uno script che copia le locandine aggiunte e sovrascrive il file .gcs sul server. Un gioco da ragazzi. 😀 A tal proposito ho creato uno scriptino veloce in C# ( il mio nuovo amore 😀 ), per copiare cartella e immagini. Ve lo allego qua sotto:

GcWebCopyScript (694 download)

Dovrete solo aprire il file Program.cs e modificare il path della cartella che contiene le locandine e il file .gcs, in entrambe le direzioni: sorgente e destinazione. Le righe da modificare sono le: 14-15 e 22-23. Poi compilatelo per generare l'exe. Se avete Visual Studio bene, altrimenti usate Mono. Generato l'exe non dovrete far altro che aggiungerlo all'elenco delle operazioni pianificate, ad esempio io faccio eseguire l'exe una volta ogni 2 giorni. Lo script è molto rozzo, e semplice, infatti non fa altro che copiare, non gestisce eccezione e nient'altro. Già se lo avviate e il NAS è staccato vi darà sicuramente errore.

Se non siete pratici di compilazione e non sapete nemmeno cosa sia il C#, evitate di utilizzare lo script, e ogni tanto sovrascrivete il file .gcs e la cartella delle locandine.

P.S.

So di andare un po' off-topic e oltretutto controcorrente con quello che ho scritto nel post. Recentemente però ho scoperto l'esistenza di un buon software open-source per la catalogazione di film, giochi, libri, ecc.. Sto parlando di Tellico, disponibile però solo per piattaforma Linux, al massimo lo potete far girare su una macchina virtuale se utilizzate Windows come "primary OS". 😉

UPDATE 2011/03/19

Se non voglio passare per un perfetto idiota forse è meglio che dica questa cosa. 😀 Io sopra vi ho postato uno script che serve per sincronizzare la collezione, immagini e gcs, tra computer locale e server ( nel mio caso un NAS QNAP ). Mi sono però dimenticato di dire, da perfetto "fool", che potete utilizzare la collezione presente sul server come collezione principale. Questo significa che GCstar andrà a lavorare direttamente sui file presenti sul server web, non sarà più necessario quindi copiare file per mantenere up to date la versione locale e quella web.

Io, d'altro canto, ho preferito fare lo script perchè voglio mantenere la collezione ( quella principale ) sul mio laptop, e non sul NAS. Tutto qua. 😉

  1. Nel post citato all'inizio avevo promesso di localizzare GCweb in lingua italiana, questo però non è semplicissimo, proprio per la natura del sistema di localizzazione, alcune stringhe vengono correttamente sostituite altre invece no. Credo di aver individuato il problema nello script di conversione scritto in Python. A causa però degli impegni momentanei dovrò rimandare il lavoro di traduzione indeterminatamente. 😀 []