Skip to content
Joonghoon Kim edited this page Nov 3, 2015 · 24 revisions

System Requirements

Currently, webida server officially supports x64 Ubuntu only (tested on 14.04.3). To install Webida in other Linux distribution, read whole installation manual cafeully and configure your system with equivalent packages & tools.

System requirements - recommended

  • Ubuntu® 14.04 (64-bit)
  • At least dual-core 2 GHz of CPU
  • At least 4 GB of RAM memory
  • At least (100 GB + number of users * 10 mb) of free disk space Local administrator authority

System requirements - minimal

  • Modern Linux system that can run node.js, git, LXC or Docker on common x86 machine
  • at least 512 MB RAM to run node.js & some container jobs including git & java compiler
  • at least 2GB of disk space to save container root file system image, log, codes & other stuffs.

Install Dependencies

Install System Packages

$ sudo apt-get install -y make gcc g++ libattr1-dev lxc 
$ sudo apt-get install -y openjdk-7-jre git-svn mysql-client 

You can install Oracle JDK instead of Open JDK. Just keep 'java & javac' binary reachable to any users.

  • C/C++ compiler and make is required to build node.js modules
  • libattr1 is required to support quota per user.
  • LXC (Linux Container) is required to support sandboxing user's terminal & building jobs. You can use docker instead of LXC, but you have to create your own docker image for users.
  • JDK is required to support building & running java project.
  • git is required to use 'git' feature in Webida IDE
  • mysql-client is required to access MySQL server, where users credential, ACL and other important stuffs are indexed.

Install Node.js (test on version 4.2.1)

Download the latest long-term-support pre-built binary from nodejs website http://nodejs.org/download and copy it to /usr/local. currently, Weibda supports nodejs 4.x only. (We'll test on Nodejs 5.x, soon) Since some node modules that Webida server depends on are using native code, they have to be bound to some node.js engine versions) Use nvm, if you prefer to test latest node versions.

$ wget http://nodejs.org/dist/v4.2.1/node-v4.2.1-linux-x64.tar.gz
$ tar zxvf node-v4.2.1-linux-x64.tar.gz
$ cd node-v4.2.1-linux-x64
$ sudo cp -r * /usr/local/

Install Node.js global modules

If you want to work with root account, be sure to have /usr/local/bin is on your path

Install -g grunt-cli pac forever 
  • pac, grunt-cli is needed to build webida system apps, including IDE & dashboard
  • forever is needed to run Webida server with provided upstart configuration files

Install Database

Install mysql packages and create the user/database.

  • database name : "webida"
  • mysql account(id/pw) : "webida"/"webida"
$ sudo apt-get install mysql-server
(set your mysql root password) 
$ sudo mysqladmin -u root create webida -p 
$ sudo mysql -u root -p webida 
mysql> GRANT ALL PRIVILEGES ON webida.* TO webida@localhost IDENTIFIED BY 'webida' WITH GRANT OPTION;
mysql> exit

If you are using some 'external' database, create webida user & database to your DB server and grant permissions. (But you should install mysql-client package on Webida Server, to access DB server) You can use your own DB password of course, setting the password in Webida server's configuration file.

System set-up

add webida user

Webida servers should be run as webida user, with right of sudo.

$ sudo adduser webida
$ cat id webida > /tmp/webida.id

You should know the uid/gid of webida user to set-up LXC container (or your docker image) properly. See /tmp/webida.id when you set-up the container image

Setting DNS (optional)

If you will use reverse proxy server, webida servers can only be accessed by domain names, not by IP address. Set webida server domain names on DNS server. Or set domain names in local /etc/hosts file for tests, like this.

Each domain shoulbe be bound to each module's service port in configuration file.

127.0.0.1   webida.mine
127.0.0.1   auth.webida.mine
127.0.0.1   fs.webida.mine
127.0.0.1   app.webida.mine
127.0.0.1   deploy.webida.mine
127.0.0.1   jash.webida.mine
127.0.0.1   conn.webida.mine
127.0.0.1   build.webida.mine
127.0.0.1   ntf.webida.mine
127.0.0.1   debug.webida.mine
127.0.0.1   cors.webida.mine

LXC Container

To create and config LXC container, read Webida LXC Guide

Clone this wiki locally