Gå till innehåll
Just nu i M3-nätverket

Installera Syncthing


xeric

Rekommendera Poster

Installera Syncthing

> Halvlångt, medelsvårt.

Det här är väl eg en forts på inlägget om att “Avinstallera Dropbox”.

Tänkte jag skulle skriva ett par rader om Syncthing som jag har installerat, både i datorn och i min Android-telefon.

Men först... Syncthing är ett synkprogram med egen hantering direkt i webläsaren. Jmf med Dropbox (och andra) så är det en P2P-tjänst, och är riktigt bra att kunna skyffla saker mellan datorer hemma, eller direkt mot någon annan. Som de skriver själva:

“Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet”

Hur som helst, sättet den installerar på var inte riktigt vad jag ville, och den har lite andra hyss/slarvfel med, så det här är hur jag installerade det. Skall förklara hur/varför varteftersom. :)


Länkar

Syncthing: https://syncthing.net/
Ladda ner: https://github.com/syncthing/syncthing/releases/latest (fn v0.14.7)

Först skapa en folder att utgå från, t ex ~/Dokument/Syncthing_dl


Från nedladdningssidan, ta ner filerna:

  • syncthing-macosx-amd64-vN.NN.N.tar.gz
  • sha1sum.txt.asc

...och spara i den foldern.

För att verifiera nedladdningen... Kika lite här för olika sätt (t ex gpg). Jag tänkte använda mig av shasum. Sidan skriver om sha1sum, sha256sum som är program som inte OS X har. Men vi har shasum som funkar.

Så, i Terminal:

cd ~/Dokument/Syncthing_dl
shasum -c sha1sum.txt.asc 2> /dev/null

Brevid på den texraden med filen du laddat ner står det (förhoppningsvis) OK. :)

Packa upp filen - det räcker att dubbelklicka på den. Och sen gå till den i Terminal:

cd syncthing-macosx-amd64-vN.NN.N



Installera

Det finns bra dokumentation här: https://docs.syncthing.net/intro/getting-started.html men den är lite sådär att komma in i, och det är inte helt fokus på Mac.

Själva programmet kan man (eg) lägga var som helst, men sett till den LaunchAgent som följer med så vill den att man lägger den i $USER/bin/syncthing.

Nej, det skall vi inte göra. Är allgergisk mot att kluddra ner hemfoldern med saker som inte skall vara där. Först tänkte jag att den skall naturligtvis ligga i /usr/local/bin/syncthing, men... Eftersom programmet har egen inbyggd (auto)uppdaterare så behöver den ligga på ett ställe där den har skrivrättigheter. Därav att de har valt hemfoldern. Så, vi skapar en annan/egen miljö istället.

sudo install -d -v /usr/local/syncthing/bin
sudo chown $USER:staff /usr/local/syncthing/bin

Det skapar en egen folder i /usr/local med läs/skriv-rättigheter i bin-foldern där. Om du vill kan du flytta den drekt dit med Finder annars i Terminal:

install -v -m 0755 -o $USER -g staff syncthing /usr/local/syncthing/bin

...så får den rätt rättigheter och ägare osv på en gång.

I foldern finns det en s k “LaunchAgent”, som gör att programmet startar vid uppstart. Förutom att filen ligger på ett annat ställe nu, finns det även några andra saker där som måste ändras.

Använd en bra textredigerare (läs inte TextEdit/Skrivtext), t ex TewWrangler, BBEdit osv.

Filen: syncthing-macosx-amd64-vN.NN.N/etc/macosx-launchd/syncthing.plist

Börja med att döpa om den filen. Den skall heta “net.syncthing.syncthing.plist”. Det är p g a att det är det värdet som anges i filen sen under “label”. Det måste (egentligen) matcha med filens namn.

Sen gör följande förändringar så det blir såhär:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
	Make sure the "syncthing" executable is located at ~/bin/syncthing.
	Replace the string "USERNAME" in this file with your username, such as "jb".
	Copy this file to ~/Library/LaunchAgents/syncthing.plist.
	Execute "launchctl load ~/Library/LaunchAgents/syncthing.plist".
-->
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>net.syncthing.syncthing</string>

		<key>ProgramArguments</key>
		<array>
			<string>/usr/local/syncthing/bin/syncthing</string>
		</array>

		<key>EnvironmentVariables</key>
		<dict>
			<key>HOME</key>
			<string>/Users/sven-allers</string>
			<key>STNORESTART</key>
			<string>1</string>
		</dict>

		<key>KeepAlive</key>
		<true/>

		<key>LowPriorityIO</key>
		<true/>

		<key>ProcessType</key>
		<string>Background</string>

		<key>StandardOutPath</key>
		<string>/Users/sven-allers/Library/Logs/Syncthing.log</string>

		<key>StandardErrorPath</key>
		<string>/Users/sven-allers/Library/Logs/Syncthing-Errors.log</string>
	</dict>
</plist>

Alla USERNAME bytte jag mot sven-allers, och även sökvägen till programmet. Byt USERNAME mot ditt användarnamn

Kopiera över filen till: ~/LibraryLaunchAgents, för att starta/aktivera den kan man köra:

launchctl load -w ~/Library/LaunchAgents/net.syncthing.syncthing.plist

Deras exempel glömde “-w” som gör att det skrivs på en gång.

Men starta den inte än. :)

En fil till...

Har gjort en “wrapper” så man kan starta/stoppa den enkelt. Så spar följande som “stctl” - för enkelhetens skull i samma folder som syncthing-programmet (/usr/local/syncthing/bin).

#!/usr/bin/env bash
#
# /usr/local/syncthing/bin/stctl
#
# Enkel wrapper som startar/stoppar syncthing i OS X med launchctl
#

# Vars
# ------------------------------------------------------------
base=`basename $0`;
launchAgent="$HOME/Library/LaunchAgents/net.syncthing.syncthing.plist";

Start()
{
    launchctl load -w ${launchAgent};
}

Stop()
{
    launchctl unload -w ${launchAgent};
}

Restart()
{
    stop; sleep 2; start;
}

Status() {
    [ -n $(launchctl list | grep 'syncthing') 2> /dev/null ] && _st='not ';
    echo "${base}: Sýncthing is ${_st}running";
}

Run()
{
    case $1 in
        start)
            Start;
            	;;
        stop)
            Stop;
            ;;
        restart|reload)
            Restart;
            	;;
        status)
            Status;
            	;;
        *)
            echo "${base}: unknown argument: $1";
            echo "Usage: ${base} [start|stop|restart|status]" 1>&2;
            exit 1;
            ;;
    esac
}

Run $1;

exit 0;

Väldigt enkel/standard med: start|stop|restart|status
Så för att starta:

stctl start

# Exempel (senare)
$ stctl start
$ stctl status
stctl: Sýncthing is running
$ stctl stop
$ stctl status
stctl: Sýncthing is not running


För att det skall fungera utan att ange hela sökvägen, lägg till syncthing till PATH.

Om du inte har någon fil: ~/.bash_profile innan skapa en bara med texten:

export PATH="/usr/local/syncthing/bin:$PATH"

För att ladda in den - starta om teminal, eller bara:

source ~/.bash_profile

Testa att de kan läsas in:

which syncthing stctl


Ok, det var kanske lite långt och pilligt, men inte speciellt svårt. :)

- - -


Användning

För att starta syncthing nu kör i Terminalen:

stctl start

# aningen kortare än:
# launchctl load -w Userd/dittnamn/Library/LaunchAgents/net.syncthing.syncthing.plist
# 

Så skall en webläsare med fönstret startas. Där inne kan man göra diverse olika inställningar - både funktions och utséendemässigt.

Men först. Syncthing skapare en folder (sin huvudfolder) i ~/Sync. Jag har valt att ta bort den och skapat en ny i hemfoldern som heter ~/Syncthing. Mest för tydlighetens skull. Dropbox folder heter ju t ex inte “Drop”. :) Man kan föra det direkt i fönstret där eller så kan man stoppa skriptet och sen manuellt ta bort foldern->skapa ny, och sen ändra i filen: ~/Library/Application Support/Syncthing/config.xml

I den folder ligger alla andra programfiler (precis som vilka andra program som helst så ligger det i Application Support).

 

- - -

Så när man startat den så öppnas webläsaren med sidan, och nu när jag körde det kom det med en notis om att det fanns en uppdatering. Gôtt... :ThumbsUp:

post-64246-0-03068300-1475096117_thumb.png

Bara att vänta ut så kör den det automatiskt (därav att den behöver skrivrättigeheter som jag skrev om i början).


Inställningar

Uppe till höger finns lite inställningar:

post-64246-0-42401500-1475096122.png

Och mina inställnignar ser ut såhär:

post-64246-0-15924000-1475096128_thumb.png

Devicename... Jag har det som jag har som “hostname”. Kommer inte ihåg exakt nu om det var blankt där eller automatiskt ifyllt. För att få fram det - kolla i Teminal med:

uname -n
# eller med
hostname


Raden under... de 2 överstrukna är IP till min router och min dator. Det räcker nog med “default, tcp://<ip till router>”. Sen har jag kryssat ut Relaying. Tyckte den körde så mycket mot nätet då istället för lokalt även om den bara skulle lokat s a s.


Naturligtvis kan man ställa in det på svenska med... Han som skrivit/grundat programmet är svensk. :)Vilket gör det xtra kul att köra programmet.

post-64246-0-26746900-1475096134_thumb.png


Själva sidan ser ut såhär:

post-64246-0-95967600-1475096141_thumb.png

Man ser lite data över hur mycket den dra (RAM) upptid och sånt. Foldrarna man delat ut ligger till vänster och nere till höger är de enheter man lagt till - i mitt fall min telefon.

För att dela, så behöver man ett ID som man sen lägger till på den andra enheten.

Hä är en liten guide på Youtube som börjar vid ≈ 14:10
- https://www.youtube.com/results?search_query=Syncthing

En annan funktion jag gillar, som inte Dropbox har är att kunna klicka i “ignore delete” på den foldern man valt att dela/synka. På Dropbox om andra sidan raderar filen du delade så förvinner den på båda datorerna - det gör den inte här. :yeahbaby: Vilket är jätteskönt, och man slipper köra med en offline-kopia av sin Dropbox.

- - -

Jaja, det finns massor att kolla/skriva om - men det där borde räcka för att få det installerat. :crossfingers: Och även om du inte väljer att göra exakt som jag gjort, och de ställen i datorn, så kan det nog vara till hjälp för att komma igång. Man ser översikten s a s. Men kolla gärna mer på YouTube, läs dokumentationen osv...

Men kort - det är som Dropbox, fast utan deras server. Synkningen är lite slöare än dropbox eftersom den går på intervall (t ex varje minut). Och det i sin tur gör ju att båda datorerna måste vara igång då det skall synkas. Men det gör det ju så småning om när den andra kommer igång.

 

 

Nu kör jag min manuellt, startar/stoppar osv. Om man har den igång hela tiden och webfönstret startar varje uppstart, så skall det finnas i dokumentationen där någonstans om hur man tar bort det. Har inte sett nåt (och inte letat heller), men hittar ni och undrar så skriv nedanför. Är förmodligen bara ett värde som skall in i start-skriptet el i LaunchAgent.

 

Har inte hunnit använda den själv så mycket än, men det lilla jag använt så är den helt klart en bra ersättare till Dropbox, om man vill bort från den miljön.

 

Sen finns det kanske andra användningsområden man kan ha det till, förutom att synka vissa delar av sin dator med en annan. T ex att skyffla filer mellan, istället för att använda t ex scp/rsync osv, el andra sätt att flytta över saker mellan sina datorer.

Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu


×
×
  • Skapa nytt...