Skip to content

Instantly share code, notes, and snippets.

@crawc
Forked from si458/genieacs-install.sh
Created February 9, 2019 18:55
Show Gist options
  • Save crawc/4cb78f0d49bb93309efae928091fb31b to your computer and use it in GitHub Desktop.
Save crawc/4cb78f0d49bb93309efae928091fb31b to your computer and use it in GitHub Desktop.
Install GenieACS on Ubuntu 16.04
#!/bin/sh
set -e
# install all updates/upgrades to begin with
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
# install essential packages
sudo apt-get install -y build-essential git curl software-properties-common python-software-properties zlib1g-dev tmux libsqlite3-dev
# install nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
# install mongodb
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get install -y mongodb-org
# install GenieACS
git clone https://github.com/genieacs/genieacs.git
cd genieacs/
npm install
npm run configure
npm run compile
cd ..
# install ruby
sudo add-apt-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.5 ruby2.5-dev
# install bundler
gem install bundler
# install ruby on rails
gem install rails
#GenieACS GUI
git clone https://github.com/genieacs/genieacs-gui
cd genieacs-gui/
bundle
cp config/summary_parameters-sample.yml config/summary_parameters.yml
cp config/index_parameters-sample.yml config/index_parameters.yml
cp config/parameter_renderers-sample.yml config/parameter_renderers.yml
cp config/parameters_edit-sample.yml config/parameters_edit.yml
cp config/roles-sample.yml config/roles.yml
cp config/users-sample.yml config/users.yml
cp config/graphs-sample.json.erb config/graphs.json.erb
cd ..
cat << EOF > ./genieacs-start.sh
#!/bin/sh
if tmux has-session -t 'genieacs'; then
echo "GenieACS is already running."
echo "To stop it use: ./genieacs-stop.sh"
echo "To attach to it use: tmux attach -t genieacs"
else
tmux new-session -s 'genieacs' -d
tmux send-keys './genieacs/bin/genieacs-cwmp' 'C-m'
tmux split-window
tmux send-keys './genieacs/bin/genieacs-nbi' 'C-m'
tmux split-window
tmux send-keys './genieacs/bin/genieacs-fs' 'C-m'
tmux split-window
tmux send-keys 'cd genieacs-gui' 'C-m'
tmux send-keys 'rails server' 'C-m'
tmux select-layout tiled 2>/dev/null
tmux rename-window 'GenieACS'
echo "GenieACS has been started in tmux session 'geneiacs'"
echo "To attach to session, use: tmux attach -t genieacs"
echo "To switch between panes use Ctrl+B-ArrowKey"
echo "To deattach, press Ctrl+B-D"
echo "To stop GenieACS, use: ./genieacs-stop.sh"
fi
EOF
cat << EOF > ./genieacs-stop.sh
#!/bin/sh
if tmux has-session -t 'genieacs' 2>/dev/null; then
tmux kill-session -t genieacs 2>/dev/null
echo "GenieACS has been stopped."
else
echo "GenieACS is not running!"
fi
EOF
chmod +x genieacs-start.sh genieacs-stop.sh
echo
echo "DONE!"
echo "GenieACS has been sucessfully installed. Start/stop it using the following commands:"
echo "./genieacs-start.sh"
echo "./genieacs-stop.sh"
#sudo add-apt-repository -y ppa:chris-lea/redis-server
#sudo apt-get -y install redis-server
#sudo npm install -g coffee-script
#sudo npm install -g nodemon
#sudo chmod -R 777 ./tmp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment