Lav din egen synkroniseringstjeneste med Bittorrent sync og OwnCloud
Bittorrent sync er et program, der bruges til synkronisering af filer via Bittorrent protokollen, hvor man via af en krypteret forbindelse kan lave synkroniseringen mellem to eller flere enheder.
OwnCloud er et webinterface, hvor man kan se og tilgå sine via en browser.
Jeg vil kombinere de to programmer til at lave min egen synkroniseringsserver lidt ala Dropbox, hvor man både har synkroniseringsdelen og adgang via en webbrowser. Motivationen bag dette er, at jeg gerne vil have 100% styr på, hvor mine data befinder sig og hvem der har adgang til dem. Ved selv at lave synkroniseringsserver undgår jeg, at et bestemt firma ligger inde med mine filer (man ved jo aldrig, hvad de kan gøre ved dem) + krypteringsnøglen. Dropbox, Google Drive, SpiderOak osv. tilbyder kun en begrænset plads gratis, og det problem undgår jeg ved selv at have det stående hjemme i hytten.
Denne guide tager udgangspunkt i en headless frisk installeret Debian 7 (Wheezy) 32bit uden noget som helst andet installeret. Hvis man har en ARM CPU i sin computer (fx Raspberry PI) skal man huske at tage højde for det, når man downloader Bittorrent sync
Til at starte med downloades Bittorrent sync programmet med en alm. bruger (i denne guide "nick") på ens system:
wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_i386.tar.gz
Dernæst udpakkes filen:
tar -zxvf btsync_i386.tar.gz
Så ændres rettigheden på filen, så den er eksekverbar
chmod +x btsync
Nu kan programmet startes:
./btsync
Det gode er, at programmet nu kører i baggrunden, og på den måde er man fri for fx at køre btsync i programmet Screen. For at teste om det virker kan man via en browser tilgå computerens-ip-adresse:8888.
Første gang man tilgår interfacet, skal man lige acceptere licensbetingelserne.
Dernæst laves en mappe med navnet sync, som skal bruges til alle ens synkroniserede filer og OwnCloud
Nu er det tid til at installere OwnCloud, så man kan tilgå alle sine filer via en browser. De næste par kommandoer skal eksekveres som "root". Først skal der installeres en webserver med tilhørende database. Til det formål anvender jeg Apache2 til webdelen og MySQL til databasedelen. Andre webservere som fx Lighttpd og andre databaseservere som fx SQlite kan også bruges.
aptitude install apache php5 php5-gd php-xml-parser php5-intl php5-mysql curl libcurl3 php5-curl mysql-server bzip2
Nu skal OwnCloud hentes og overføres til den rigtige mappe:
wget http://download.owncloud.org/community/owncloud-5.0.7.tar.bz2
tar xvjf owncloud-5.0.7.tar.bz2
mv owncloud /var/www
chown root:root -R /var/www/owncloud
Nu kan man opsætte OwnCloud via computerens-ip-adresse/owncloud gennem en browser. Undervejs i OwnCloud installationen skal man ændre rettigheder på forskellige mapper, og kommandoerne for det er (eksekveres som root):
chmod 0777 -R /var/www/owncloud/config
chmod 0777 -R /var/www/owncloud/apps
mkdir /var/www/owncloud/data
chmod 0770 -R /var/www/owncloud/data
chown www-data:www-data -R /var/www/owncloud/data
Når det er gjort skal angive /home/nick/sync som datamappe, root som databasebruge. Dabasekoden er det kodeord, man gav under installationen af MySQL-serveren. "Navn på database" kan man selv vælge. Derpå trykker man på "afslut installationen". Efter lidt tid kommer der en fejlmeddelse op, hvor der står "Data directory (/home/nick/sync) not writable by ownCloud". For at OwnCloud har adgang til sync-mappen, skal nick-brugeren være medlem af www-data-gruppen. Der gøres på følgende måde som root:
usermod -a -G www-data nick
chown nick:www-data -R /home/nick/sync
chmod 0770 -R /home/nick/sync
Når man opdaterer siden i browseren burde fejlmeddelsen gå væk, og man kommer nu direkte ind i OwnCloud, hvor man bliver mødt af en velkomstbesked. Inde i sync-mappen er der blevet oprettet en log-fil + en mappe, som har navnet på det brugernavn, man angav under installationen af OwnCloud. Nu kan man gå i gang med at få synkroneret filerne til ens nye synkroniseringsserver.
Dernæst skal der lige ændres nogle flere rettigheder:
chown nick:www-data -R /home/nick/sync/brugernavn-fra-own-cloud-installationen/files
chmod 0770 -R /home/nick/sync/brugernavn-fra-own-cloud-installationen/files
For at starte synkroniseringen skal man installere Bittorrent sync på en anden computer efter samme princip som i denne guide. Det findes også til andre platforme end lige Linux. Når man har installeret Bittorrent sync på en anden computer (går ud fra det er Linux), så skal man via interfacet i browseren tilføje den mappe, man gerne vil have synkroniseret. Der er en "Add folder" knap i højre side af interfacet. Derinde vælger man mappen + man generere en 32 tegns lang nøgle kaldet "secret", og til sidst trykker på "Add". Dernæst kan man ude på hovedsiden se at den nye mappe er blevet tilføjet.
For at få den mappe synkroniseret med ens server (den med både Bittorrent sync og OwnCloud), skal man gå ind på interfacet på serveren. Derinde tilføjer man den mappe (/home/nick/sync/brugernavn-fra-own-cloud-installationen/files <-- hvis den mappe ikke bruges, kan OwnCloud ikke se filerne) man gerne vil synkronisere til. I stedet for at generere en ny nøgle kopiere man den nøgle, der bruges fra den anden computer. Dernæst klikkes på "Add". Ude på hovedside er der kommet noget frem, som hedder "Connected devices and status", hvor man kan se, at serveren synkronisere med en anden computer. Man kan også gå ind på den andens computers interface og se, at den synkronisere med ens server.
Når synkroniseringen er færdig, kan man se de synkroniserede filer i OwnCloud's webinterface. Nu har man sat fuld synkroniseringsserver med klient op, hvor man også kan tilgå sine filer via en browser. Bittorrent sync viker både lokalt på LAN og via det store internet (her skal man bare sørge for at få åbne de rigtige porte i ens router og firewall på computeren, og det er UDP-protokollen, der benyttes). Man kan se den pågældende port i Bittorrent sync's webinterface under "Preferences".
To do in the future:
Få gjort sådan, så filerne på synkroniseringsserveren er krypteret, efter en synkronisering.
Referencer:
http://owncloud.org/
http://labs.bittorrent.com/experiments/sync-hero99371.html
http://samglover.net/bittorrent-sync-amazon-ec2/
http://doc.owncloud.org/server/4.5/ownCloudAdminManual.pdf
http://blog.bittorrent.com/2013/05/23/how-i-created-my-own-personal-clo…
- Log in to post comments
Kommentarer12
Er det også muligt at
Er det også muligt at symlinke mapper ned i sync-folderen ligesom med Dropbox? Altså sådan at man kan synce mapper som faktisk befinder sig udenfor strukturen?
Ja det er muligt (man
#1:
Ja det er muligt (man vælger selv mappen, når man skal "add folder"), men så kan man bare ikke se det i OwnCloud
Interessant emne og en god
Interessant emne og en god beskrivelse. Gulerod til kaninen. :-)
Spørgsmål: Bliver de valgte mapper automatisk holdt synkroniserede? Som en slags løbende automatisk backup.
Kommentar: At lave en løsning, der ikke involverer Dropbox eller andre udbydere og deres forretningsbetingelser og pladsbegrænsninger, er i mine øjne positivt og kan kun højne sikkerheden. At hoste den på egen bopæl svækker dog sikkerheden på andre måder.
Ideelt set burde synkroniseringsserveren stå på en anden adresse.
Fra tid til anden har jeg selv leget (mere er det ikke blevet til, desværre) med ideen om to eller tre backup-servere på forskellige adresser. Gensidigt, selvfølgeligt. Peer-to-peer backup. Det kræver selvfølgeligt stærk kryptering, både af hensyn til de øvrige deltagere og af hensyn til transport over internettet.
Og som folk er flest, kræver det, at man kan tilbyde dem at købe en færdig boks og være med i en backup-ring.
Din beskrivelse er rigtig fin i dette forum, men for de fleste, jeg kender, er det sort snak.
Meget interessant emne. Men
Meget interessant emne. Men efter at have haft to indbrud og fået stjålet min hjemmeserver, så skal sådan noget ikke drives fra privaten.
Så et lidt relateret spørgsmål og alligevel lidt off-topic (håber det bliver tilgivet)
Er der nogle af jer der har nogle erfaringer med rackspace, og hvad det kommer til at koste at drive en server hos dem.
Jeg sad bare med et regnestykke hvor jeg tænkte at en hjemmeserver til 5000 kr. måske holder i tre år. Så derfor er der jo cirka 150 kr. om måneden til at drive en server for. Så kan man jo altid diskuttere om en cloud baseret løsning ikke også er lidt mere værd end en hjemmeserver, da man næppe skal bekymre sig om backup af en cloud løsning men det skal man af sin hjemmeserver.
Jeg sad bare med et
#4: Jeg sad bare med et regnestykke hvor jeg tænkte at en hjemmeserver til 5000 kr. måske holder i tre år.
Hvorfor skulle den ikke holder væsentligt mere end tre år?
Den kunne godt holde
#5:
Den kunne godt holde længere men også kortere.
Den kunne også koste mere end 5000...
Ja, naturligvis :)
Men
#6:
Ja, naturligvis :)
Men det jeg mener er at til dato har samtlge mine computer/servere holdt i mindst dobbelt så lang tid. Så måske er det ikke fair at bruge det som målestok for prissammenligningen.
Men der er selvfølgelig mange andre parametre man også skal tage i betragtning, så som strømforbrug. Og så det at den findes inhouse hvilket er en ret usikker praksis.
Du har helt ret, og
#7:
Du har helt ret, og selvfølgelig er det et dårligt sammenligningsgrundlag, men det var måske også for at retfærdigegøre over for mig selv at betale for en løsning fra Rackspace. :)
Men jeg syntes deres priser er noget svære at gennemskue, hvor det enten kan blive rigtig dyrt eller forholdsvis billigt.
Regulær server hardware
#8: Du har helt ret, og selvfølgelig er det et dårligt sammenligningsgrundlag, men det var måske også for at retfærdigegøre over for mig selv at betale for en løsning fra Rackspace. :)/cite>
Regulær server hardware burde holde i væsentlig længere tid end tre år. Før vi udskiftede vores, der ikke nåede at brænde af, havde den kørt uafbrudt i 10 år. Den blev udskiftet sammen med opgradering til 100/100 mbps fiber.
Jeg ser ind imellem server hardware på virksomheder, der stadig kører efter femten år inklusiv SCSI diskene. De bruges primært til logon validering på ganske små administrative netværk, brugers backups, og er altid tændt.
Det hjælper naturligvis ikke mod indbrud, men det kan være dyrt at spare på server hardware. Fordelen ved at have serveren lokalt er omvendt, at man kan arbejde selvom internettet er nede, uden at gemme data lokalt på arbejdsstationerne.
For ikke at ødelægge denne
For ikke at ødelægge denne tråd helt opretter jeg en ny tråd om hjemme servere kontra cloud servere.
Ganske interessant men
En ganske interessant artikel og bestemt ganske brugbar. Men hvis man som jer er relativt ny i Linux, så er den lidt "langhåret".
Så jeg voæ foreslå at kigge på det projekt som kaldes "turnkey linux", som tilbyder færdige iso'er til "bare metal", "wm" og sågar amazons cloud service, lige klar til installation. Jeg har selv installeret owncloud versionen af turnkey linux på virtuel maskine at eksperimentere, og det der tog længst var at downloade iso'en med min 5 Mb/s linje.
Kendetegnet ved turnkey linux er færdige løsninger baseret på debian (tidligere versioner var ubuntu, men nu har man skiftet), komplet med webmin og andre redskaber. Der er mulighed for download af seneste opdateringer under installation, og på side nævner de at der skulle opdateringer dagligt.
Link: http://www.turnkeylinux.org/
ownCloud har sin egen
ownCloud har sin egen synkroniserings klient, som er tilgængelig til Linux, Android, Windows og OSX.
http://owncloud.org/sync-clients/