Über IPFS
IPFS steht für InterPlanetary File System, D.tube verwendet diese Technik zum Beispiel. IPFS ist ein P2P Netzwerk. Da es schon einige qualitative Beiträge in Text und Video Form gibt, werde ich das Rad an dieser Stelle nicht noch einmal neu Erfinden und verweise einfach auf diese:
- Gedanken zu IPFS (Blogeintrag) von @unixfried hier sind auch die Kommentare bzw. Diskussion sehr interessant.
- IPFS die Theorie (Video) von @sempervideo
Es gibt sicherlich noch einige weitere Beiträge zum Thema in der deutschsprachigen Community aber diese beiden hier wähle ich als Auszug.
Kommen wir also zum wesentlichen, ich werde kurz erklären wie man den IPFS daemon auf Ubuntu/Debian basierenden Systemen via systemd bei Systemstart ausführt, also als Service einrichtet. Es sollte aber auf ähnliche Weise auf allen System funktionieren die systemd verwenden.
Getestet unter:
- Ubuntu Server 16.04 LTS
- Ubuntu Budgie 17.10
jeweils auf dem aktuellsten Stand.
Vorbereitung
Was benötigen wir?
Eigentlich nur die IPFS Software, diese laden wir uns hier herunter. Einfach die benötigte Version, in meinem Fall linux Binary amd64 auswählen und herunterladen.
Kleiner Einschub: Download via wget für den Server
Auf der genannten Seite einfach einen Rechtsklick auf das gewünschte Paket machen und Adresse des Links kopieren wählen. Und dann in der Shell einfach wget [Adresse einfügen].
Beispiel:
wget https://dist.ipfs.io/go-ipfs/v0.4.13/go-ipfs_v0.4.13_linux-amd64.tar.gz
So nun haben wir die benötigte Software, als .tar.gz Archiv, dieses entpacken wir und wechseln dann in das Verzeichnis.
Dort führen wir nun das Installationsskrip aus mit folgenden Befehlen:
chmod +x install.sh
sudo ./install.sh
Nun haben wir den IPFS Dienst installiert, als nächstes führen wir einen !wichtigen! Schritt aus, wir initialisieren IPFS:
ipfs init
Vergessen wir dies lässt sich der Service später nicht starten!
Das Skript für den Service anlegen
Das Skript, also eigentlich die Service Unit wird mit Root-Rechten im Ordner /etc/systemd/system/
angelegt, es sollte ipfs.service
heißen.
Beispiel, unter der Verwendung von nano:
sudo nano /etc/systemd/system/ipfs.service
[Unit]
Description=IPFS daemon # Beschreibung des Service
After=network.target # Der Service startet nach der dem Service für die Netzwerkverbindung
[Service]
User= #Benutzer unter dem der service laufen soll
Group=#Gruppe unter dem der service laufen soll
ExecStart=/usr/local/bin/ipfs daemon # Befehl der bei Service Start ausgeführt wird
Restart=on-failure # falls es Probleme beim Start gibt, versuche erneut zu starten
[Install]
WantedBy=multi-user.target # Ist für Mehrbenutzersysteme, also quasi bei allen Modernen Betriebssystemen
Abschließend wird die Service Unit noch via: sudo systemctl enable ipfs.service
aktiviert.
Nun haben wir den ipfs daemon als Service und können diesen wie gewohnt via:
sudo service ipfs start|stop|status|restart|reload
steuern.
Ausblick
Ich könnte mir vorstellen weitere Tutorials zum Thema IPFS zu schreiben und ich überlege derzeit auch ein Bash Skript zu schreiben, welches die Installation als Service übernimmt.