Git Product home page Git Product logo

setting-up-community's Introduction

Vejledning til opsætning af systemet

Denne fil læses bedst her: https://github.com/mspe87/setting-up-community/raw/master/README.md eller i word dokumentet

Vi har lavet en vejledning til at få vores system op og køre lokalt på en ubuntu 14.04 maskine. I produktionsmiljøet kører de fleste af systemerne på hver deres maskine, men her sætter vi det op, så det kører på den samme. Alle værktøjerne vi bruger kører også på Windows og OS X, men vi har valgt at lave en vejledning til ubuntu, da vores servere også kører ubuntu. Denne guide tager udgangspunkt i en helt nyinstalleret ubuntu 14.04

Opdater systemet Sørg for at systemet er opdateret inden nedenstående kommandoer køres ved at køre: sudo apt-get upgrade sudo apt-get update

Installation af postgres: sudo apt-get install postgresql-9.3

Installation af Java 8: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer

Installation af git: sudo apt-get install git

Installation af Maven sudo apt-get install maven

Opsætning af backend Kopier eller hent via git vores backend community-ws ind i en mappe og gå ind i mappen vha terminalen. mkdir ~/code && cd ~/code Git: git clone https://github.com/mspe87/community-ws.git && cd community-ws

Opsætning af database: Skift rolle til bruger postgres: sudo su postgres åbn postgreSQL: psql sæt password på postgres brugeren så det stemmer overens med vores config fil skriv: \password postgres Sæt herefter password til 1qazXSW” Først vil vi nu køre vores creation script, hvorefter vi vil indsætte data vha. Testdata; \i sql/'Create Database.sql' \i sql/Testdata.sql Databasen er nu sat op og klar til brug.

Opsætning af webservice:

Gå ind i mappen community-ws, som din egen bruger (ikke postgres). cd ~/code/community-ws Skriv: mvn install Alle dependencies bliver hentet ned og projektet bliver bygget. For at køre projektet på en jetty server skriv: mvn jetty:run Projektet skulle gerne køre på port 8080 nu. Test eventuelt ved at gå ind på http://localhost:8080/api/v1/application.wadl i din browser. Denne giver en liste over alle kald der kan laves.

Til at skrive vores java kode, har vi brugt eclipse, som kan hentes fra https://eclipse.org/. For at lave projektet om til et eclipse projekt, som direkte kan importeres kan der skrives: mvn eclipse:eclipse

Opsætning af frontend

Installer Node.js: sudo apt-get install nodejs Installer Node package manager: sudo apt-get install npm

Kopier frontenden mvSite ind i en mappe. Og gå ind i den mappe via en terminal. cd ~/code Git: git clone https://github.com/mspe87/mvSite.git && cd mvSite For at kunne bygge og køre frontenden skal der installeres nogle node.js pakker og ruby gems. Skriv: sudo npm install -g grunt-cli

sudo npm install grunt --save-dev sudo ln -s /usr/bin/nodejs /usr/bin/node sudo npm install bower -g

Installer dependencies fra package.json: sudo npm install Installer projektets dependencies med bower fra bower.json: bower install sudo apt-get install ruby 1.9.3 sudo gem install compass sudo apt-get install php5-cgi

Alle værktøjer til at bygge og køre frontenden er nu installeret. Grunt bruges til dette, hvor der i Gruntfile.js er defineret hvilke tasks der kan køres. Skriv grunt build for at bygge projektet. Html, css, scripts vil blive minificeret. Billeder vil blive optimeret, så de fylder mindre og blive postfixet med tilfældig streng, for at kunne cache i længere tid. Det kompilerede projekt ligger i mappen dist grunt serve for at køre projektet på en node.js server med livereload. Dette har været rigtig smart til at udvikle i, da der bliver injectet et script der livereloader siden hvis der bliver lavet ændringer i en fil. (Sørg for at jetty kører, da backenden bliver brugt). GruntFile.js er sat op så den proxier ligesom vores .htaccess grunt serve --allow-remote samme som grunt serve, men kører på 0.0.0.0:9000 så der kan forbindes til den udefra.

Apache Installer apache og php: sudo apt-get install apache2 sudo apt-get install php5 sudo apt-get install libapache2-mod-php5 sudo /etc/init.d/apache2 restart

apache bruger som standard /var/www/html til siden der bliver vist når man går ind på host. Det vi har gjort, er at vi har slettet html mappen: cd /var/www sudo rm -r html Og lavet et symlink til dist mappen: sudo ln -s ~/code/mvSite/dist html Vi skal tillade at .htaccess filen kan lave ændringer: sudo nano /etc/apache2/apache2.conf Under <Directory /var/www> ændres AllowOverride til All i stedet for none og gem filen. Installer moduler: sudo a2enmod rewrite proxy_http headers && sudo service apache2 restart

Apache og backenden skulle nu køre som ønsket. Hvis http://localhost besøges, skulle der gerne blive vist en skærm om at blive logget ind (backend skal køre). Dette er mv-nordics login skærm. Det er kun muligt at logge ind igennem denne, på deres eget domæne, så vi har lavet en ”snyde login”. Gå ind på http://localhost/api/v1/debug/login/2/redirect og du vil blive logget ind som bruger med id 2.

Opsætning af Varnish sudo apt-get install curl Vi vil køre følgende som root: sudo su apt-get install apt-transport-https curl https://repo.varnish-cache.org/ubuntu/GPG-key.txt | apt-key add - echo "deb https://repo.varnish-cache.org/ubuntu/ precise varnish-4.0" >> /etc/apt/sources.list.d/varnish-cache.list apt-get update apt-get install varnish

Varnish kører nu på port 6081 Skift tilbage til din normale bruger med ctrl+d cd ~/code Udskift varnish configuration default.vcl: git clone https://github.com/mspe87/varnish-conf.git && sudo cp varnish-conf/default.vcl /etc/varnish/default.vcl Genstart varnish: sudo service varnish restart

Varnish er nu oppe og køre på port 6081, med apache på port 80 som backend. Test dette ved at går ind på http://localhost:6081 Alle systemerne snakker sammen, så sørg for at jetty serveren kører. For at se headere der bliver sat på, kan følgende køres: curl --head http://localhost:6081 Her kan der ses om vi rammer cachen ved headeren X-Cache.

setting-up-community's People

Contributors

mspe87 avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.