Come creare un server di media plex con spazio illimitato Amazon

plex-media-server

In questa esercitazione vengono descritti i passaggi necessari per creare un telecomando (o locali) Server media Plex, insieme illimitato storage cloud di Amazon durante la cifratura dell'integrità dei file.

Prerequisiti

  • Dispone di una connessione Internet configurata e attivata.
  • Un server / VPS con FUSIBILE (Io uso hetnzer online e ovh kimsufi), Nota per OpenVZ VPS, verificata la disponibilità del fusibile.
  • SSH accesso

La preparazione

Primo, è necessario installare Plex, si prega di visitare il pagina di download , copiare il link su Ubuntu e wget nel terminale. Nel mio esempio, esso ’ versione s 1.3.3 di plex.

Plex

CD ~
.
Sudo dpkg -i plexmediaserver_1. *
Per completare la configurazione di plex su un server remoto, è necessario collegarlo da un tunnel ssh sul 32400 porta, in caso contrario non sarà possibile completare l'installazione di Plex, una volta realizzato tunnel si prega di visitare http : // localhost: 32400

Per semplicità, è l'utente Plex che verrà utilizzato, semplifica la gestione dei diritti.

 Sudo su Passwd plex Adduser plex sudo

Inoltre, è possibile disabilitare l'accesso SSH Plex.

 Nano / ecc / noi. / sshd_config

E aggiungendo alla fine:

DenyUsers plex

E riavviare ssh:

Riavvio del servizio ssh

I file

Una volta ristabilita la connessione con il plex (su plex), Creiamo i file necessari, una documentazione dettagliata è disponibile qui .

Su plex Sudo mkdir / Home / Plex /
Sudo chown plex / Home / Plex /
Mkdir /home/plex/.local-sorted/ Mkdir / Home / Plex / locale-ordinato /
Mkdir /home/plex/.acd-sorted/ Mkdir / Home / Plex / ACD-ordinato /
Mkdir / Home / Plex / ordinato /
Mkdir / Home / Plex / registri /

I pacchetti

Quindi installiamo il set di pacchetti necessari:

Sudo apt-get installare python-Fusibile Fusibile di python python3-setuptools python3-appdirs python3-dateutil python3-richieste python3-sqlalchemy git Sudo easy_install3 - U pip

Acd_cli

A questo punto, Ci rendiamo conto l'installazione di ACD_CLI che è un'interfaccia della riga di comando che monta cloud drive come cartelle locali.

Sudo pip3 installare git + https: //GitHub.com/YadaYada/acd_cli.git

Abbiamo quindi verificare che tutto funzioni:

Sincronizzazione Acd_cli

Questo passaggio vi chiederà di avere un oauth_data di file che permette un acd_cli identificare con amazon.

Il primo passo è stato arrestato quando è necessario connettersi su https://tensile-runway-92512.appspot.com/ , effettuate il browser locale, Scarica il oauth_data, aprirlo con un'unità locale. Copiare i dati e connettersi a un secondo ssh terminal e creato con nano:

Nano /var/lib/plexmediaserver/.cache/acd_cli/oauth_data

Incollare i dati dal file scaricato in precedenza, salvarlo e tornare al tuo precedente ssh. Continuare a seguire le istruzioni acd_cli.

Una volta completato, possiamo affrontare il principale chiave pont: montaggio di cartella, sincronizzazione e crittografia.

Creare un Plex Media Server con Amazon Storage illimitato

Il punto chiave

Il principio è semplice:

  • / locale-ordinato , che non è crittografato il file locali o file multimediali.
  • sua versione crittografata encfs /.locale-ordinato quale è la cartella che sarà caricato su amazon
  • /.ACD-ordinato quale è il file di nuvole di punti di montaggio, che è montato crittografato.
  • / ACD-ordinato è la cartella remota decrittografata.
  • / ordinato , la cartella tramite unionfs, può “Unione” locale-acd-ordinati e ordinato, Questa sarà la cartella utilizzata da Plex.

Generiamo ora il chiave di crittografia con encfs, è imperativo * * una volta completati questi passaggi, si dovrebbe tenere un backup della chiave di crittografia.

Per montare encfs, Basta semplicemente lanciare

Encfs /home/plex/.local-sorted / Home / Plex / locale-ordinato

Encfs vi chiederà le impostazioni di crittografia, le impostazioni predefinite sono corrette, e una password, che sarà anche necessario mantenere.

Una volta completato, qualsiasi file inseriti nella * / locale-ordinato * apparirà crittografato in * /. Locale-ordinato *.

Ci si sposterà poi la chiave di crittografia:

Fusermount -u / Home / Plex / locale-ordinato Mv /home/plex/.local-sorted/.encfs6.xml /home/plex/encfs.xml

Da ora in poi, per montare un filesystem encfs, sarà necessario prevedere la presenza di un file di configurazione.

ENCFS6_CONFIG '/ CASA / Plex / encfs.xml' encfs /home/plex/.local-sorted / Home / Plex / locale-ordinato

Lasciate che ’ s prova se funziona:

Ls /home/plex/.local-sorted/ # Normalmente vuoto Touch / Home / Plex / locale-ordinato / prova Ls /home/plex/.local-sorted/ un file con un nome senza significato dovrebbe apparire.

Amazon Cloud Drive di editing

Acd_cli Monte /home/plex/.acd-sorted/

/Home/Plex/.ACD-sorted/ Ora Visualizza i file da / al cloud amazon unità crittografate modo.

Montiamo ora con EncFS:

ENCFS6_CONFIG '/ CASA / Plex / encfs.xml' encfs /home/plex/.acd-sorted / Home / Plex / ACD-ordinato

I file vengono visualizzati su storage cloud di amazon così decrittografato nella cartella / ACD-ordinato

Caricare

Per il caricamento., Ci sono due modi, il modo più semplice è utilizzare acd_cli caricamento seguito da una sincronizzazione di acd_cli o rclone e una cripta di python per montare automaticamente il punto di montaggio.

Caricamento Acd_cli
Acd_cli upload /home/plex/.local-sorted/* /
Sincronizzazione Acd_cli

Questo funziona, ma per ora trovo acd_cli upload incoerente (con un sacco di errori) e acd_cli instabile (Monte frequente punto di arresto anomalo del sistema)

Rclone

Che ’ s la soluzione ho ’ m utilizzando. Il principio è il seguente:

uno script bash che eseguo una schermata con il seguente comando:

Opzione spostare Elimina il file di origine, un sostituto * copia * per mantenere
Rclone spostare - v /home/plex/.local-sorted acd: /

lo script :

Nano /home/plex/.loopreclone.sh

Il codice riportato di seguito viene incollato:

#! / Bin / bash per i nel {1..10}
Rclone si muovono - v /home/plex/.local-sorted acd: /  
        Posta -s "Caricare $ Ho $ (Data)" // il tuo indirizzo email // <<< 'Aggiorna!'
Done

Quindi noi rendere lo script eseguibile:

 Chdmod + x /home/plex/.looprclone.sh

Viene quindi eseguito in una schermata, l'upload farà questo 10 volte inviando un'e-mail a ciascuna estremità del ciclo (per avere un'idea del progresso), è molto utile per un caricamento molto grande in una cartella che si rinnova regolarmente quando scarichiamo i suoi mezzi di comunicazione personali.

Per aggiornare l'elenco dei file, eseguire:

Sincronizzazione Acd_cli

Ma questo tende a bloccarsi il punto di montaggio, una soluzione più stabile e automatica è disponibile nell'ultima parte del tutorial.

UnionFS-FUSIBILE

Eseguiamo semplicemente:

/ Casa / Plex / ACD-ordinato = RO / Home / Plex / ordinato /

Questo unisce i due file non crittografati in un singolo file / ordinato . Che verrà utilizzato per plex. Questo ha il vantaggio di permettere un plex aggiungere un file rapidamente quando aggiunto al server in locale-ordinato / e quando se ' upload su amazon, decrittografato e riassemblati localmente * / ACD-ordinato, non vedo differenza come verrà montato in modo identico in / ordinato .

Conclusione

Qui avete l'essenziale per realizzare il proprio infinito Plex Media Server. Questo è ovviamente da utilizzare con i media di cui lei ha acquistato legalmente la proprietà o i vostri filmati personali.

Vi invito a finire il tutorial leggendo i problemi noti, ci sono alcuni, soprattutto quella causata da acd_cli sync, che ha piantato il punto di montaggio e che diventa inaccessibile.

Problemi noti e soluzioni

Arresto anomalo dell'Assemblea dopo una sincronizzazione

La colpa principale è come spiegato sopra, sincronizzazione acd_cli, che ha la tendenza a pianificare il punto di montaggio, che impedisce di inserire semplicemente un acd_cli in un crontab.

Così abbiamo ’ sta andando ad utilizzare due script. Quello primo, Molto semplice, verrà eseguita una sincronizzazione di acd_cli seguita immediatamente da uno script python che consente di verificare se l'Assemblea ha piantato e riassemblati se necessario.

Nano /home/plex/sync.sh

Ci atteniamo ad esso:

 #! / Bin / bash
/ Usr / locale / bin / acd_cli -d sincronizzazione Python3 /home/plex/.automount.py

e rende eseguibile da chmod + x .

poi crea il. automount.py con il codice ho modificato lo script ma la fonte è qui :

Importare os Importazione sottoprocesso importazione registrazione Logging.basicConfig (filename - 'acdmount.log', Level = logging.INFO, formato : '% (asctime) s % (LevelName) s % Logging.info ('ACD mount checker avviato')
DEVNULL = Apri (OS.Devnull, 'wb' (wb))
#PB = Pushbullet ('pushbullet-api-key-here')
# Logging.info ("esecuzione della sincronizzazione ACD")
# Subprocess.Call (["/ usr / locale / bin / acd_cli", "Sincronizzazione"], stdin = None, stdout = DEVNULL)
Esiste = os.path.exists ("/ Home / Plex / .ACD-ordinato /")
Se esiste non è vero:
    Logging.Warning ("Il supporto ACD è inattivo")
   # Spingere = pb.push_note ("Montaggio ACD verso il basso", "tentativo di riavvio")
   # Logging.info ("tentativo umount")
   # Subprocess.Call (["/ usr / locale / bin / acd_cli", "Umount"], stdin = None, stdout = DEVNULL)
    Logging.info ("tentativo umount fuser")
    Subprocess.Call (["/ bin / fusermount", "-Uz", "/Home/Plex/.ACD-sorted"], stdin = None, stdout = DEVNULL)
  # Logging.info ("esecuzione della sincronizzazione ACD")
  # Subprocess.Call (["acd_cli", "Sincronizzazione"], stdin = None, stdout = DEVNULL)
    Logging.info ("tentativo di montaggio ACD")
    Subprocess.Call (["/ usr / locale / bin / acd_cli", "Monte", "/Home/Plex/.ACD-sorted/"], stdin = None, stdout = DEVNUL $
# Stampa ("ACDmount fatto")
  # Se os.path.exists ("/ Home / Plex / .ACD-ordinato /"):
   # Spingere = pb.push_note ("ACD montare indietro", "riavvio riuscito")
    # Logging.info ("Riavvio del montaggio ACD riuscito")
 #altro:
  # Stampa 'tutto buono'

Ci sarà quindi eseguire questo script ogni 6 minuti via cron , un tempo tra ogni sincronizzazione è almeno 5 minuti.

* / 6 * * * * sh /home/plex/sync.sh “/Home/Plex/logs/cron.log 2> & 1

Riassemblaggio dopo il riavvio

Creiamo uno script che permette di tracciare tutto questo tramite cron dopo un riavvio.

Abbiamo innanzitutto creare un file di .encfspass che conterrà solo la password di encfs.

<Codice> nano /home/plex/.encfspass </ codice>

Quindi un ** Mount.sh ** contenente il seguente codice deve essere eseguito tramite script ** chmod + x **
 ! / Bin / SH
/ Bin / fusermount - uz / Home / Plex / ACD-ordinato
/ Bin / fusermount - uz /home/plex/.acd-sorted
/ Bin / fusermount - uz / Home / Plex / locale-ordinato
/ Bin / fusermount - uz /home/plex/.local-sorted
/ Bin / fusermount - uz / Home / Plex / sorted
Acd_cli sync
Acd_cli mount -ro /home/plex/.acd-sorted
ENCFS6_CONFIG = '/ home / Plex / encfs.xml' encfs --extpass "cat /home/plex/.encfspass" /Home/Plex/.ACD-sorted / Home / Plex / acd-sorted
ENCFS6_CONFIG = '/ home / Plex / encfs.xml' encfs --extpass "cat /home/plex/.encfspass" /Home/Plex/.local-sorted / Home / Plex / locale-ordinato
/ Casa / Plex / ACD-ordinato = RO / Home / Plex / ordinato /
Uscita

E aggiungendo un cron:

@reboot /home/plex/.mount.sh> /Home/Plex/logs/Mount.log 2> & 1

Ora hai creato un Plex Media Server utilizzando Amazon illimitata di cloud storage. Se hai qualsiasi sfida, è possibile eliminare il tuo commento qui sotto.

Si può anche come

Informazioni sull'autore: admin

Lasciare una risposta

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *