Vadelma Pi on pieni tietokone, jonka saat hintaan jopa 5 USD ja jolla voit käyttää monia erityyppisiä ohjelmistoja ja rakentaa monia erilaisia projekteja .
Tässä artikkelissa aion opastaa sinut prosessin määrittämisessä kotikehityspalvelimeksi ja koko pinon JavaScript-sovelluksen käyttöönotossa, jota voit käyttää verkon ulkopuolelta. Tämä on hieno oman perustamiseen digitaalinen etätila tai yksinkertaisesti hallita kehityksessä käyttämääsi laitteistoa.
Vaikka tämä on nyt erityisesti Raspberry Pi 3 -opetusohjelma, se pitäisi työskentele edelleen mallien kanssa, jotka palaavat takaisin ensimmäinen sukupolvi —Jos sinulla on vanhempi malli tai Raspberry Pi Zero, ilmoita meille kokemuksestasi alla olevissa kommenteissa.
Itse Raspberry Pi -levyn lisäksi tarvitset:
Nämä ovat hyödyllisiä myös alkuasetuksissa:
Käyttöjärjestelmän asentaminen Raspberry Pi: lle on helppoa. Asenna ensin käynnistyskuva tietokoneellasi microSD-kortille. Aseta sitten vain kortti Vadelma Pi: hen ja käynnistä se sieltä.
Raspbian on Linux-jakelu siirretty osoitteesta Debian 7.0 ( Hengenahdistus ) , ja se on virallinen Raspberry Pi -käyttöjärjestelmä, joka on optimoitu laitteen arkkitehtuurille. Vaikka suosikkijärjestelmän käyttämiseen Pi: llä on muita vaihtoehtoja, käytämme Raspbiania sen yksinkertaisuuden vuoksi.
Tämä opetusohjelma on päivitetty toimimaan tämän Raspbian-version (tai uudemman) kanssa:
Kernel version : #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) Kernel release : 4.9.0-8-amd64
Asenna Raspbian siirtymällä virallinen lataussivu ja lataa zip-tiedosto uusimmalla Raspbian-versiolla.
Aseta sitten microSD-kortti tietokoneen SD-korttipaikkaan tai sovittimeen. Noudata Raspberryn verkkosivustolla annettuja ohjeita tietokoneesi käyttöjärjestelmästä riippuen Linux , Mac käyttöjärjestelmä tai Windows .
Kun prosessi on valmis, poista SD-kortti tietokoneeltasi ja aseta se Raspberry Pi -laitteeseen. Liitä Raspberry Pi reitittimeesi Ethernet-kaapelilla ja kytke Micro USB -laturi, joka käynnistää Raspberry Pi -käynnistyksen.
Alkuasetuksia varten on kaksi vaihtoehtoa:
raspi-config
. Ensimmäisen käynnistyksen jälkeen sinun on suoritettava sudo raspi-config
itse konfiguroidaksesi laitteen.nmap
.pi
ja oletussalasana on raspberry
. Joten esimerkiksi, jos IP-osoite on 192.168.1.16, suorita ssh [email protected]
ja anna salasana pyydettäessä.sudo raspi-config
.raspi-config
opastaa sinut lopullisen asennuksen läpi. Voit määrittää kaikki vaihtoehdot, mutta tärkeimmät ovat kaksi ensimmäistä: laajentaa tiedostojärjestelmää varmistaen, että kaikki SD-korttitallennustilat ovat käytettävissä käyttöjärjestelmälle, ja vaihtaa salasanan oletusarvoiselle Pi-käyttäjälle, jotta palvelimesi toimii suojattu tunkeilijoilta.
Seuraavaksi asennat verkkopalvelimen. Pidän parempana Nginxistä, koska sillä on pieni muistinjälki ja koska se toimii hyvin Node.js: n kanssa (jonka asetat myöhemmin). Muut verkkopalvelimet, kuten Apache tai lighttpd , toimisi myös, mutta käytämme Nginxiä tähän esittelyyn.
Ennen kuin aloitat minkä tahansa asennuksen, sinun on varmistettava, että kaikki on ajan tasalla suorittamalla nämä komennot Pi: ssä:
sudo apt-get update sudo apt-get upgrade
Sitten voit asentaa Nginxin apt-get
:
sudo apt-get install nginx
Kun asennus on valmis, käynnistä palvelin suorittamalla:
sudo service nginx start
Jos sinun ei tarvinnut selvittää Raspberry Pi: n paikallista IP-osoitetta edellisessä vaiheessa, on aika selvittää asia suorittamalla ifconfig
. Ethernet-sovittimen lähtö on kohdassa eth0
ja sen paikallisen IP-osoitteen nimi on inet addr
.
Kun tiedät IP-osoitteen, voit osoittaa tietokoneen selaimen siihen, missä sinun pitäisi nähdä oletuksena Tervetuloa Nginxiin -sanoma.
Voit ohittaa tämän vaiheen, jos et aio käyttää Raspberry Pi -laitettasi lähiverkon ulkopuolelta. Mutta niille, jotka haluavat käyttää palvelinta muualta, varmista, että se on mahdollista.
Tyypillisessä kotiverkossa reitittimeen kytketyt laitteet ovat näkymättömiä ulkomaailmalle. Vain reitittimesi on tavoitettavissa ulkopuolelta verkon kautta ulkoinen IP-osoite. Reitittimesi on vastuussa siitä, mikä saapuva liikenne on sallittua verkkoon ja mihin laitteeseen se tulisi lähettää.
Kun lähiverkon laite muodostaa yhteyden (esimerkiksi kun avaat verkkosivuston selaimellasi), reititin tunnistaa saapuvan vastausliikenteen osana tätä yhteyttä ja sallii sen läpi. Kuitenkin, jos reititin vastaanottaa saapuvaa liikennettä, joka ei ole osa avointa yhteyttä (esimerkiksi kun ulkopuolinen laite yrittää muodostaa yhteyden sisäiseen laitteeseen), se estää saapuvan liikenteen pääsyn verkkoon. Tämä on tärkeä suojausominaisuus verkon suojaamiseksi!
Joten miten voit muodostaa yhteyden Piisi ulkopuolelta? Vastaus on portin uudelleenohjaus . Reititin on määritettävä sallimaan saapuvien yhteyksien kulkeminen tietyille porteille ja lähettämään oikeaan laitteeseen. Oletusarvoisesti HTTP-protokolla käyttää porttia 80 ja SSH porttia 22, joten nämä ovat kaksi porttia, jotka sinun on avattava reitittimellä, jotta pääset käyttämään verkkosovellusta ja sallimaan suojatut yhteydet palvelimesi hallintaan.
Vaiheet reitittimen määrittämiseksi avaamaan ja välittämään portit voivat vaihdella Internet-palveluntarjoajasi ja reitittimesi brändin mukaan, mutta joka tapauksessa sinun pitäisi pystyä toteuttamaan se reitittimen järjestelmänvalvojan sivun lisäasetusten avulla. Etsi vain vaihtoehto, jonka nimi on 'edelleenlähetys', 'portin edelleenlähetys' tai 'verkko-osoitteen käännös'.
Sinun on avattava portti HTTP-yhteyksille ja toinen portti SSH: lle. Perusajatus koostuu näiden kahden ulkoisen portin tietojen lähettämisestä Raspberry Pi: lle, verkkoliikenne menee porttiin 80, jossa Nginx kuuntelee, ja SSH-liikenne porttiin 22, jossa SSH-palvelin hyväksyy yhteydet ulkoisilta tietokoneilta. Tässä on esimerkki siitä, miltä tämä saattaa näyttää reitittimen asetussivulta:
192.168.1.16
. Kaikki portteihin 80 tai 22 saapuva saapuva liikenne välitetään tähän sisäiseen osoitteeseen.Voit määrittää reitittimen ulkoisen IP-osoitteen yksinkertaisesti kirjoittamalla 'mikä on IP-osoitteeni' Googleen . Jos siirryt sitten reitittimesi verkon ulkopuolelle, voit testata portin edelleenlähetyksen toimivuuden avaamalla SSH-yhteyden ssh [email protected] {external IP address}
: lla. Samoin HTTP-porttien edelleenlähetystä voidaan testata kirjoittamalla ulkoinen IP-osoite selaimesi osoiteriville. Muista vain, että porttisiirron avulla kuka tahansa ulkopuolinen voi käyttää laitetta näissä porteissa, jos hän tietää reitittimen ulkoisen IP-osoitteen.
Jos sinulla ei ole staattista IP-osoitetta, voit määrittää dynaamisen DNS: n. Se on hyvin yksinkertainen ja helppo askel. Voit määrittää dynaamisen DNS: n reitittimestä tai määrittää Raspberry Pi: n sitä varten. En aio käsitellä DDNS: n määrittämistä täällä, mutta BitPi.co: lla on hyvä opetusohjelma aiheesta tarvittaessa.
Voit ajaa useimpia verkkokehyksiä Nginxin päällä, mutta katsotaanpa, kuinka mennä täysi pino JavaScriptin avulla. Tätä varten sinun on asennettava Node.js ja MongoDB .
Nykyään Node.js on helppo asentaa Raspberry Pi: lle seuraavilla tavoilla:
sudo apt-get install nodejs
Kun asennus on valmis, voit tarkistaa, toimiiko se suorittamalla node -v
.
Nyt voit asentaa MongoDB: n vain kirjoittamalla:
sudo apt-get install mongodb
Huomaa vain, että jos sinun on koskaan katkaistava virta Raspberry Pi -palvelusta, sinun on ensin suljettava palvelu tietokannan vioittumisen välttämiseksi:
sudo service mongodb stop
Voit kehittyä paikallisella koneellasi ja siirtää muutokset sitten BitBucketin Git-arkistoon. Koska Raspbianin mukana on esiasennettu Git, voit vetää uusimman sovelluskoodisi laitteelle ja suorittaa sen.
Asettakaamme ensin sovelluskoodi ja työnnä se Git-arkistoon. On monia tapoja käynnistää sovellus, mutta yksi suosikeistani on generaattori-kulma-täysi pino , joka tukee sekä palvelin- että asiakaskoodia.
Asenna generator-angular-fullstack
tietokoneellasi:
npm install -g generator-angular-fullstack
Luo uusi hakemisto sovelluksellesi:
mkdir my-app cd my-app
Ja telineellä sovellus:
yo angular-fullstack my-app
Luo nyt tietovarasto BitBucketiin, kuten tässä on kuvattu . Määritä sitten paikallinen hakemisto:
git init git remote add origin [email protected] :USER/REPO.git
Joten voit sitoutua ja painaa koodia:
git add . git commit -m 'Initial commit' git push -u origin master
Generaattorin mukana tulee murista-koota-ohjaus plugin, jonka avulla voit sitouttaa koontikoodin tietylle haaralle arkistossasi. Lisää vain BitBucketin kokoonpano kohtaan Gruntfile.js
sovelluksen juurihakemistossa:
buildcontrol: { options: { dir: 'dist', commit: true, push: true, connectCommits: false, message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%' }, bitbucket: { options: { remote: ' [email protected] :USER/REPO.git', branch: 'build' } } }, // ...
Suorita nyt:
grunt build
… Luoda jakelukansio, jota seuraa tämä:
grunt buildcontrol:bitbucket
… Sitoutua ja työntää koodi arkistosi rakennushaaraan.
Koodisi on nyt isännöity. Ennen kuin voit ottaa sen käyttöön Raspberry Pi: llä, sinun on luotava Raspberry Pi: lle SSH-avain ja lisättävä se BitBucket-tilillesi. Suoritamme tämän vaiheen nopeasti, mutta jos sinulla on ongelmia, noudata ohjeita BitBucket-opas . Joten kirjaudu takaisin Raspberry Pi -päätteeseesi ja luo julkisen / yksityisen avaimen pari:
ssh-keygen
Käynnistä sitten agentti:
ssh-agent /bin/bash
Ja lisää avain agentille:
ssh-add /home/pi/.ssh/id_rsa
Nyt sinun tarvitsee vain tuottaa julkisen avaimen sisältö:
cat /home/pi/.ssh/id_rsa.pub
… Joten voit kopioida ja liittää sen BitBucketiin.
Napsauta profiilikuvaa BitBucketissa ja siirry kohtaan Hallitse tiliä . Alla TURVALLISUUS , löytö SSH-avaimet ja napsauta painiketta Lisää avain .
Sovellusten koodin sijoittamiseksi ei ole sopimusta, mutta voit luoda /var/www
hakemistoon ja laittaa kaikki projektisi sinne.
cd /var sudo mkdir www
Välttää sudo
kun haluat sijoittaa tiedostoja verkkoryhmään, voit vaihtaa omistajan Pi-käyttäjäksi ja ryhmäksi www-data
, jota Nginx käyttää:
sudo chown -R pi:www-data www cd www
Nyt voit kloonata arkiston rakennushaaran ja asentaa riippuvuudet:
git clone [email protected] :USER/REPO.git --branch build --single-branch cd REPO npm install --production
Kun se on valmis, voit käynnistää sovelluksesi ja asettaa ympäristön tuotantoon:
export NODE_ENV=production; node server/app.js &
Osoita nyt tietokoneen selaimella laitteen IP-osoitetta tarkistaaksesi, toimiiko se.
Haluaisitko, että sinulla olisi dev-palvelin, johon voisit soittaa omasi? Voit, # VadelmaPi. TweetVielä yksi vaihe on jäljellä, jotta sovelluksesi olisi käytettävissä ulkopuolelta. Vaikka Nginx kuuntelee porttia 80, jossa se vastaanottaa HTTP-pyyntöjä Pi: llesi, solmuohjelma itse kuuntelee toista porttia (esimerkiksi portti 8080). Siksi sinun on määritettävä Nginx toimimaan nimellä käänteinen välityspalvelin , tunnistaa sovelluksellesi tarkoitetut pyynnöt ja välittää ne Solmulle.
Nginx säilyttää määritystiedoston jokaiselle palvelemalleen sovellukselle sites-available
kansio:
cd /etc/nginx/sites-available/
Täällä voit kopioida default
määritystiedosto ja muokkaa sitä sinulle sopivalla tavalla:
sudo cp default my-app sudo nano my-app
Lopullisen määritystiedoston pitäisi näyttää tältä, Nginx toimii Node.js-palvelimen välityspalvelimena:
server { listen 80; root /var/www/my-app/; # identifies the location of the application you are configuring server_name my-app.dev; # identifies the hostname used by this application's traffic location / { proxy_pass http://localhost:8080/; # configures the back-end destination for this traffic } }
Tämän kokoonpanon ottamiseksi käyttöön, sinun on luotava symlinkki sites-enabled
kansio, jossa Nginx etsii aktiivisia kokoonpanoja ajon aikana:
sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/my-app
Aktivoi nämä muutokset lataamalla palvelu uudelleen:
sudo service nginx reload
Tässä vaiheessa sovelluksesi on valmis vastaanottamaan my-app.dev
: lle tarkoitettu HTTP-liikenne verkkotunnus (yllä määrittämäsi server_name my-app.dev
-direktiivin ansiosta). Viimeinen ongelma, jonka sinun on ratkaistava, on, kuinka saatat ulkopuolelta lähettämäsi liikenteen vastaamaan tätä verkkotunnusta. Vaikka voisit ostaa verkkotunnuksen ja osoittaa sen IP-osoitteeseesi, hosts
tiedosto tulee pelastamaan ja tekee siitä tarpeetonta.
Lisää työasemalla, josta pääset sivustolle, yksinkertaisesti reitittimen ulkoinen IP-osoite ja sovita se isäntänimeen my-app.dev
. Kaikki HTTP-liikenne, jonka luot my-app.dev
lähetetään sitten suoraan reitittimeesi, oikean isäntänimen ollessa Host
HTTP-otsikko.
Windowsissa järjestelmänvalvojan oikeuksilla voit muokata tiedostoa, joka sijaitsee c:windowssystem32driversetchosts
muistilehden kanssa. Linuxissa ja Macissa päätelaitetta voi käyttää sudo nano /etc/hosts
: n kanssa ja sudo nano /private/etc/hosts
vastaavasti.
## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 212.124.126.242 my-app.dev # add your host name to the list
Nyt kun kaikki on määritetty, voit asentaa Raspberry Pi -laitteeseen niin monta sovellusta kuin haluat ikuisesti tai pm2 pitää Node.js-palvelimesi hengissä.
Ja muista vain, että jos jokin menee pieleen, voit vain pyyhkiä SD-kortin ja aloittaa alusta!
Näyttö, jossa on oikea kaapeli ja sovitin; mikro-USB-virtalähde; langallinen näppäimistö ja hiiri - tai langaton näppäimistö ja hiiri, jossa on Bluetooth-sovitin; mikro-SD-kortti; ja tietysti Vadelma Pi.
Raspberry Pi: lle ei ole suoraa Windows-käyttöjärjestelmää. Windowsilla on supistettu versio, joka on tarkoitettu esineiden internet (IoT) -laitteille. Se on suunniteltu ensisijaisesti kehittäjille ja laitteistohakkerille, jotka haluavat prototyyppiä IoT-laitteita.
Raspberry Pi: tä voi käyttää monissa asioissa. Voimme rakentaa kotiautomaatiopalvelimia, kauko-ohjattavia robotteja, verkkoon liitettyjä tallennuslaitteita (NAS), minipalvelimia, mediakeskuksia, musiikkilaatikoita, retro-pelikonsoleita, Vadelma-klusteripalvelimia, VPN-palvelimia ja paljon muuta.
Ei ole sellaista. IoT koostuu erikoistuneista paikan päällä olevista Internetiin kytketyistä laitteista, toisin kuin yleiskäyttöiset laitteet, kuten puhelimet ja kannettavat tietokoneet. Yksi IoT: n keskeisistä alustoista on Raspberry Pi. Se on suosittu alusta, koska se tarjoaa täydellisen Linux-palvelimen pienessä upotetussa paketissa erittäin edulliseen hintaan.
Se on yksi kortti tietokone tai jotkut kutsuvat sitä mini-tietokoneeksi. Voit tehdä sen kanssa mitä tahansa - melkein kaiken mitä voit kuvitella työpöydällä tai palvelinkoneella.
Arduino on mikro-ohjain ja itse isännöity siru - se ei ole täydellinen tietokone, joten tarvitset erillisen tietokoneen koodin kirjoittamiseen. Raspberry Pi on vilpitön tietokone: Siinä on CPU, GPU ja portit HDMI: lle, äänelle, näytölle ja LAN: lle. Se vaatii käyttöjärjestelmän (esim. Linux) ja kiintolevyn (tai SD-kortin) sen tallentamiseksi.
Voit käyttää Raspberry Pi: tä kotipalvelimena useisiin tarkoituksiin, kuten multimediatallennukseen, tai varmuuskopiointityöasemana, sähköpostipalvelimena, valvontakamerana, testisivustona, Jenkins-isäntänä, subversion-palvelimena, wiki-isäntänä ja moniin muihin asioihin.
Kyllä, voit käyttää melkein mitä tahansa palvelinta Raspberry Pi: llä.