Web-hotelliin asentaminen (node)

Tredun ohjelmistokehittäjien kurssimateriaaleja

Web-hotelliin asentaminen (node)

cpanel:ssa on tuki node-pohjaisille sovelluksille (huomaa, että kaikissa cpanel-asennuksissa sitä ei ole kuitenkaan mukana).

Tietokannan siirtäminen

Luo webhotelliin uusi tietokanta MySQL-tietokannat -työkalun avulla. Luo sille uusi käyttäjä ja salasana. Anna käyttäjälle kaikki oikeudet. Nimeä tietokanta ja käyttäjä niin, että nimestä selviää mihin projektiin ja kenelle ne kuuluvat (esim. tiipar_notes_db).

Muokkaa knexfile.js-tiedostoa niin, että se sisältää edellä luomasi tietokannan ja käyttäjän tiedot kohdassa: production (host, database, user ja password). host-osoitteen saat cpanel:in oikeasta yläkulmasta kohdasta shared IP address.

module.exports = {
  development: {
    client: 'mysql2',
    connection: {
      user: 'root',
      password: 'mypass123',
      database: 'notes_db'
    }
  },

  production: {
    client: 'mysql2',
    connection: {
      port: 3306,
      host: "123.123.123.123",
      database: user123_notes_db,
      user: user123_admin,
      password: secretPassword
    },
    pool: {
      min: 2,
      max: 10
    },
    migrations: {
      tableName: 'knex_migrations'
    }
  }
};

Muista, että knexfile.js pitää lisätä .gitignore:en.

Webhotelli ei hyväksy tietokantayhteyksiä kuin luotetuista lähteistä. Lisää Tredun IP-osoite whitelist:lle, joka löytyy Etä-MySQL-työkalun alta. Saat IP-osoitteen selville esim. avaamalla sivuston http://www.whatismyip.com/ip-address-lookup/

Nyt voit ajaa tietokantasi webhotellin MySQL-tietokantaan käyttäen knex-migrations-työkalua.

npx knex migrate:latest --env production

Vastaavasti aja seed:it tietokantaan:

npx knex seed:run --env production

Migrate ja seeds - scpritin avulla

Jos et voit käyttää remote MySQL:ää tai portteja ei haluta tietoturvan takia avata, voit ajaa asennus scriptit myös cpanel:issa. Tämä vaatii sen, että database - kansio, jossa migrations ja seeds kansiot ovat, löytyy backend-kansion sisältä.

Lisää seuraavat script-kohdat backend:in package.json:iin.

   "migrate": "cd database && npx knex migrate:latest --env production",
   "seeds": "cd database && npx knex seed:run --env"

Voit ajaa nämä scriptit, sen jälkeen kun tidostot on siirretty cpanel:iin ja npm install on ajettu. Katso scriptien käynnistys kohdasta Node app:in konffaaminen.

React-build

Tee frontend:stä build ja tallenna se backend:in juureen. Muista muuttaa backendin koodissa express-reitityksen (app.js) static-polku “build“:ksi.

npm run build
app.use(express.static(path.join(__dirname, 'build')));

Tietostojen siirtäminen webhotelliin

Poista backend-kansiosta node_modules ja .env (näitä ei siirretä webhotelliin, node_modules:it asennetaan webhotellissa).

Käytä WinSCP-ohjelmaa, siirrä tiedostot webhotelliin. Valitse FTP-protokollaa (portti 21). Löydät WinSCP:n tarvitsemat tiedot webhotellin kohdasta FTP-tilit (Määritä FTP-työasemaohjelma).

Siirrä backend-kansio webhotellin tiedostoihin (esim. tee cpanel:in tiedostopolun juureen node-niminen kansio, EI public_html:n sisälle).

Huom Jos webhotellisissasi on terminaali, voit viedä koodit myös .zip-tiedostona ja purkaa paketin terminaalissa unzip + zip-paketin nimi.

Alidomain

Tee ohjelmaasi varten uusi alidomain käyttäen cpanel:in Alitoimialueet-toimintoa.

Node app:n konffaaminen

Luo uusi Node.js-sovellus Setup Node.js App-työkalun avulla.

setup nodejs

Täytä kohdat:

setup nodejs app

Nyt asenna node_modules ajamalla npm (Run NPM install). Tallenna välillä.

Nyt lisää ohjelman tarvitsemat ympäristömuuttujat (samat kuin .env:ssä).

Huom! Tietokanta, database, user ja password ovat samat kuin knexfile.js:ssä (host on localhost):

setup nodejs app:in env

Tallenna ympäristömuuttujat. Nyt voit käynnistää ohjelmasi ja kaiken pitäisi toimia kun avaat alidomain-osoitteen selaimessa.

Jos et vielä alustanut tietokantaa, niin tee se nyt ajamalla em. scriptit:

run js

run js scripts