-
Notifications
You must be signed in to change notification settings - Fork 17
/
nodester_official_install_guide.txt
117 lines (105 loc) · 3.77 KB
/
nodester_official_install_guide.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
PLEASE NOTE - THIS IS HORRIBLY OUT OF DATE, UPDATED INSTALL INSTRUCTIONS AND A STREAMLINED INSTALL PROCESS WILL BE DONE SOON
Nodester - A node.js hosting platform
Dependencies:
bouncy
node.js
npm
curl
node.js Modules:
# http-proxy -- Included in libs/3rdparty due to changes at are not in upstream yet
pool
express
request
npm-wrapper
daemon
forever
cradle
coloured
coffee-script
Installation:
Install node.js (0.4.x recommended)
Package from distro at http://nodejs.org
OR wget, ./configure, make, make install
Install Git
Package from distro at http://git-scm.com/download
Create a user and group to run nodester as (do this as root)
sudo su -
groupadd nodester
useradd -d /var/nodester -c "nodester" -g nodester -m -r -s /bin/bash nodester
passwd nodester
Login to that account and ensure that .ssh/authorized_keys exists
ssh nodester@yourhost
cd ~
mkdir .ssh
touch .ssh/authorized_keys
chmod go-rwx .ssh/authorized_keys
Update sudoers to allow running of the proxy on port 80 (do this as root)
sudo visudo
And add the following lines
nodester ALL = NOPASSWD: /var/nodester/nodester/bin/proxy_start.sh *
nodester ALL = NOPASSWD: /var/nodester/nodester/bin/proxy_stop.sh
nodester ALL = NOPASSWD: /var/nodester/nodester/bin/app_start.sh *
nodester ALL = NOPASSWD: /var/nodester/nodester/bin/app_stop.sh *
Install npm (do this as nodester)
cd ~
echo -e "root = ~/.node_libraries\nmanroot = ~/local/share/man\nbinroot = ~/bin" > ~/.npmrc
echo -e "export PATH=\"\${PATH}:~/bin\";" >> ~/.bashrc
source ~/.bashrc
##This part is a hack to use the old npm with the new node until
## certain packages can catch up and be installed with npm@0.3.x
mkdir ~/src
cd src
git clone git://github.com/isaacs/npm.git ./npm
cd npm
git checkout origin/0.2
make dev
##Fetch 0.2.6 version of node for npm
cd ~/src
sudo mkdir -p /usr/local/n/versions/
wget http://nodejs.org/dist/node-v0.2.6.tar.gz
tar -vzxr node-v0.2.6.tar.gz
cd node-v0.2.6
./configure --prefix=/usr/local/n/versions/0.2.6
make
sudo make install
cd ~/bin
cp npm\@0.2.18 nodester-npm
vim nodester-npm
"Replace '#!/usr/bin/env node' with '#!/usr/local/n/versions/0.2.6/bin/node'
Either install CouchDB or get a CouchOne account
Install node-module dependencies (do this as nodester)
for X in pool express npm-wrapper request daemon forever cradle coloured; do npm install ${X}; done
Get nodester (do this as nodester)
cd ~
git clone git://github.com/nodester/nodester.git
cd nodester
Ensure that the ownership of nodester/proxy is all root for security (do this as root)
cd /var/nodester
sudo chown -R root:root nodester/proxy
Install the git folder shell to restrict git to per user folders (do this as root)
cd /var/nodester/nodester
sudo cp scripts/git-shell-enforce-directory /usr/local/bin
sudo chmod +x /usr/local/bin/git-shell-enforce-directory
Configure the app (do this as nodester)
Copy nodester/example_config.js to nodester/config.js
Edit the settings in nodester/config.js
Copy scripts/example_gitrepoclone.sh to scripts/gitrepoclone.sh
Update scripts/gitrepoclone.sh with the key you specified in config.js
Setup the CouchDB tables (do this as nodester)
cd ./nodester/scripts/couchdb/create_all_couchdb_tables.js
./create_all_couchdb_tables.js
./nodester/scripts/couchdb/setup_default_views.js
Start up the proxy and main/api app (do this as nodester)
cd nodester
./bin/app_start.sh
sudo ./bin/proxy_start.sh
Test the web frontend at 127.0.0.1:80
Create a user
..
Create an app
..
Start the app
..
Test the app
..
Rejoice!