Projekt mål:
* Gitserver för versionshantering av mina egna projekt på mina datorer oavsett var jag befinner mig.
* Nätverksansluten lagring som jag kan komma åt via internet för att avlasta den kanske snålt tilltagna SSD'n i laptoppen.
* Automatisk backup och syncning av bilder osv på telefonen när den är ansluten via WiFi där hemma.
* Hemautomation övervakning osv...
Hårdvarubiten:
Hårdvaran som behövs är inte mycket, en Raspberry Pi (jag kör med min gamla version 1, det är inte så tunga program som används), ett minneskort till operativsystemet och en USB-ansluten hårddisk.
Raspberry Pi 1 har problem med att strömförsörja USB tillbehör och en hårddisk är ju inte direkt snål. Kopplingsschemat för hela raspberryn finns HÄR. Första försöket var en fullösning, helt enkelt brygga F1, en 1,1A polyfuse som sitter på ingången till matningsspänningen. Detta löste inte problemet. Troligtvis är det alltså tunna ledningsbanor bort till USB kontakterna som skapar ett för stort spänningsfall. Nästa försök var att löda på en matningskabel direkt på USB-porten som hårddisken kopplades i. Detta fungerade toppen. Värt att kolla upp också vilken adapter man använder för 5V, körde på en kinesisk först som skulle klara av 2A men det räckte inte. Nu kör jag på en Asus 2A adapter istället. Verkar vara stabilt efter 1 dag drift utan omstarter.
Väldigt dålig bild tyvärr, men det är allt jag har. Strömmatningskabel är den vita till vänster. Ett annat alternativ är kanske att köpa en USB-kabel för extra strömmatning till externa hårddiskar på Kjell, borde fungera bra också. Artikelnummer 38016. Istället för ett IKEA-bord fullt med kabelhärvor köpte jag mig ett gammalt pottskåp som efter lite inoljning såg rätt trevligt ut. Det nedre skåpet passade perfekt till router, grenkabel och Raspberryn med sin lilla HDD. Mjukvara:
Steg 1 är att få hårddisken redo för bruk. Jag formaterade min disk som en enda 1TB partition i NTFS. Anledningen till NTFS är kompatibilitet med Windowsdatorer ifall jag skulle få för mig att röra vid en sådan någon gång. För att Pi'en skall klara av detta får man installera ntfs-3g. Sen är det bara att skapa ett directory att mounta till, kolla upp UUID för hårddisken och lägga in den i /etc/fstab så att den mountar automatiskt vid uppstart. (Glöm inte köra sudo mount -a efter om du inte vill starta om Raspberryn)
Kod: Markera allt
# Mount the external harddrive automatically
UUID=4304BBD00A146EF9 /mnt/externhdd ntfs-3g defaults 0 0
Kod: Markera allt
pi@raspberrypi:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part /mnt/externhdd
mmcblk0 179:0 0 7.4G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
└─mmcblk0p2 179:2 0 7.3G 0 part /
Nästa steg är att installera resten av LAMP-stacken, dvs Apache, MySQL och PHP. Detta är ju rätt rakt fram, inte mycket att skriva om.
MySQL lägger databasen i /var/lib/mysql vilket är på minneskortet. Eftersom en databas lätt kan bli stor vill jag ha in denna på hårddisken. Detta löste jag genom att stänga av mysql daemon, kopiera över hela innehållet till en mapp på hårddisken och sen ändra datadir i /etc/mysql/my.conf filen samt att uppdatera adressen i /etc/apparmor.d/usr.sbin.mysqld. Sen är det bara att starta upp mysql igen.
Apache lägger rooten till http-servern i /var/www/html, det vill säga på minneskortet. Denna rooten vill jag inte flytta till hårddisken eftersom det skulle bli knas om hårddisken inte mountas som den skall vid en omstart. Istället gjorde jag en symlink i /var/www/html till en http-mapp på hårddisken och lade in en index.php i www-rooten:
Kod: Markera allt
<?php
$external_file = "extwww/index.php";
if (file_exists($external_file)) {
include $external_file;
} else {
echo "SERVER ERROR: External data drive not mounted, or no index.php file present";
}
?>
Forwarding av portarna för SSH, FTP och HTTP löst. Nästa steg blir att implementera en egen service för dynamisk IP-hantering.