Skip to content

Instantly share code, notes, and snippets.

@TeemuKoivisto
Last active March 27, 2019 14:36
Show Gist options
  • Save TeemuKoivisto/9a111a8facfa3ba1a03681f4fac86009 to your computer and use it in GitHub Desktop.
Save TeemuKoivisto/9a111a8facfa3ba1a03681f4fac86009 to your computer and use it in GitHub Desktop.
Noden asennus users-palvelimelle

Node serverin asennus users-palvelimelle

Tai samaa ohjetta hivenen modifioimalla minkä tahansa muun palvelimen johon ei tarvita sudo-oikeuksia; RoRin, Djangon tai vaikka Go:n. Huomioitavana on vain users-palvelimen vanha käyttöjärjestelmä: Ubuntu 10.04 joka ei välttämättä kaikkea pyöritä ilman ainakaan ongelmia.

  1. Ota ssh-yhteys users-palvelimelle esim. ssh [email protected] jossa TUNNUS on ad-tunnuksesi
  2. Suorita wanna-htdocs jos sinulle ei ole jo Apachee asennettuna ja htdocs kansiota
  3. Luo Apachen konfiguraatio tiedosto .htaccess touch ~/htdocs/.htaccess
  4. Lisää siihen rivit:
RewriteEngine On

# tsekkaa onko polku jo turvattu eli https:n ylitse
RewriteCond %{HTTPS} !=on

# jos ei niin uudelleen ohjaa https-polkuun (R=redirect, L=last eli lopettaa suorittamisen tähän sääntöön)
RewriteRule ^/?(.*) https://TUNNUS.users.cs.helsinki.fi/$1 [R,L]

# polku on nyt https:ssä joten voimme proxata sen taustalla pyörivälle node-prosessille
RewriteRule ^(.*)$ http://TUNNUS.users.cs.helsinki.fi:PORTTI/$1 [P]

Jossa TUNNUS on ad-tunnuksesi ja PORTTI on haluamasi node-prosessin portti (esim. 8080)

  1. Lisää lukuoikeudet ulkopuolisille käyttäjille jotka tulevat palvelimellesi chmod o+r .htaccess
  2. Asenna nvm esim. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
  3. Muista ladata nvm terminaaliin:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Testaa toimiiko nvm -v

  1. Asenna node esim. nvm install 6.10.0
  2. Luo kansio kotihakemistosi juureen esim. mkdir ~/nodeserver && cd ~/nodeserver
  3. Ja sinne tiedosto vaikka app.js touch app.js
  4. Jonne lisäät seuraavan koodin pätkän:
const express = require("express");
const app = express();

const port = 8080;

app.get("", (req, res, next) => {
  res.send("Hello World");
})

app.listen(port, (err) => {
  if (err) {
     console.log(err)
  } else {
    console.log("App is listening on port " + port);
  }
})
  1. Luo package.json npm init
  2. Lataa ja tallenna express npm i -S express
  3. Lataa globaalisti pm2 joka on daemon node-prosessien pyörittämiseen taustalla npm i -g pm2
  4. Käynnistä pm2 pm2 start
  5. Käynnistä node-servu pm2 start app.js
  6. Tämä tallentaa pm2:en muistamaan nykyiset asetukset rebootin sattuessa (eli käynnistämään app.js:n) pm2 save
  7. Mene sivullesi https://TUNNUS.users.cs.helsinki.fi/
  8. Profit!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment