Skip to content

Instantly share code, notes, and snippets.

@si458
Forked from allanmc/genieacs-install.sh
Last active April 22, 2020 22:10
Show Gist options
  • Save si458/d3095c47339fad72ffaf5222dd7dbf49 to your computer and use it in GitHub Desktop.
Save si458/d3095c47339fad72ffaf5222dd7dbf49 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
@si458
Copy link
Author

si458 commented Jun 1, 2019

plz forgive for the late reply, i didnt realise people posted comments about this,
i forked this script and tried to modifiy it manually but i never got it working correctly and gave up in the end,
anybody wants to fork and create there own, go ahead :)

@Igor1404
Copy link

Hi. The commands npm compile and npm configure don't works.

@si458
Copy link
Author

si458 commented Apr 22, 2020

Hi. I never got this to work and gave up, your on your own now sadly :(

@holloo
Copy link

holloo commented Apr 22, 2020

Try it. This is my (fixed) method for Ubuntu 16.04.6 LTS. It worked fine about one year ago:

Save this script into the home directory as 'inst.sh'
Make 'inst.sh' executable
Run 'inst.sh' from home directory (as user, not as root: './inst.sh')


#!/bin/sh
set -e

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt autoremove -y
sudo apt-get install -y git curl tmux build-essential zlib1g-dev libsqlite3-dev redis-server mongodb npm ruby-bundler ruby-dev libxml2 libxml2-dev gcc g++ make

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

git clone https://github.com/genieacs/genieacs.git
cd genieacs
git checkout $(git tag -l v1.1.* --sort=-v:refname | head -n 1)
sed -i 's/"libxmljs": "^0.18.8"/"libxmljs": "^0.19.5"/' package.json
npm install
npm run compile

cd ..
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 ~/genieacs-gui/db/migrate/

grep -rl "ActiveRecord::Migration$" *.rb | xargs sed -i 's/ActiveRecord::Migration/ActiveRecord::Migration[5.2]/g'
cd ~/genieacs-gui/
rake db:migrate

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"
echo

cd ..
echo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment