Fisrt draft
This commit is contained in:
parent
f05a31b80b
commit
fc9b220d8f
|
@ -0,0 +1,236 @@
|
|||
#!/bin/bash
|
||||
# CartoDB Installer - *buntu 16.04 (LTS) based systems.
|
||||
# SwITNet Ltd © - 2018, https://switnet.net/
|
||||
# GPLv3 or later.
|
||||
#
|
||||
# Initially inspired on:
|
||||
# https://cartodb.readthedocs.io/en/latest/install.html
|
||||
|
||||
clear
|
||||
echo '
|
||||
########################################################################
|
||||
Welcome to CartoDB Installer
|
||||
########################################################################
|
||||
by Software, IT & Networks Ltd
|
||||
'
|
||||
CARDPSQL_REPO="$(apt-cache policy | grep http | grep postgresql | awk '{print $3}' | head -n 1 | awk -F '/' '{print $1}')"
|
||||
GIS_REPO="$(apt-cache policy | grep http | grep gis | awk '{print $3}' | head -n 1 | awk -F '/' '{print $1}')"
|
||||
RUBY_REPO="$(apt-cache policy | grep http | grep ruby | awk '{print $3}' | head -n 1 | awk -F '/' '{print $1}')"
|
||||
CDB_PSQL_API="https://api.github.com/repos/CartoDB/cartodb-postgresql/tags"
|
||||
CDB_LST_TAG="$(curl -s $CDB_PSQL_API | grep \"name\" | awk '{print$2}' | sort -r | grep -v [a-z] | awk -F'"' '$0=$2' | head -n 1)"
|
||||
OPT="/opt/"
|
||||
|
||||
install_ifnot() {
|
||||
if [ "$(dpkg-query -W -f='${Status}' $1 2>/dev/null | grep -c "ok installed")" == "1" ]; then
|
||||
echo " $1 is installed, skipping..."
|
||||
else
|
||||
echo -e "\n---- Installing $1 ----"
|
||||
apt -yqq install $1
|
||||
fi
|
||||
}
|
||||
|
||||
# Check if user is root
|
||||
if ! [ $(id -u) = 0 ]; then
|
||||
echo "You need to be root or have sudo privileges!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
# System locales
|
||||
locale-gen en_US.UTF-8
|
||||
update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
|
||||
|
||||
# Build essentials dependencies
|
||||
install_ifnot make
|
||||
install_ifnot pkg-config
|
||||
install_ifnot git
|
||||
|
||||
# Postgres Repo
|
||||
echo "Adding Carto PostgreSQL repository..."
|
||||
if [ "$CARDPSQL_REPO" = "xenial" ]; then
|
||||
echo "Card PostgreSQL repository already installed"
|
||||
else
|
||||
add-apt-repository ppa:cartodb/postgresql-10
|
||||
# Install postgres
|
||||
apt -y update
|
||||
apt -y install postgresql-10 \
|
||||
postgresql-plpython-10 \
|
||||
postgresql-server-dev-10
|
||||
fi
|
||||
|
||||
PSQL_HBA="/etc/postgresql/10/main/pg_hba.conf"
|
||||
TRUST_LINES="$(grep -n ^[^#] $PSQL_HBA | grep -v replication | awk -F: 'NR==1 {printf "%d ", $1}; END{print $1}' | sed -e 's| |,|g')"
|
||||
sed -i "${TRUST_LINES}s|peer|trust|" $PSQL_HBA
|
||||
sed -i "${TRUST_LINES}s|md5|trust|" $PSQL_HBA
|
||||
|
||||
systemctl restart postgresql
|
||||
|
||||
createuser publicuser --no-createrole --no-createdb --no-superuser -U postgres
|
||||
createuser tileuser --no-createrole --no-createdb --no-superuser -U postgres
|
||||
|
||||
#TBD
|
||||
echo "Installed postgres"
|
||||
read -p "Enter to continue"
|
||||
|
||||
cd $OPT
|
||||
git clone https://github.com/CartoDB/cartodb-postgresql.git
|
||||
cd cartodb-postgresql
|
||||
git checkout $CDB_LST_TAG
|
||||
make all install
|
||||
|
||||
#TBD
|
||||
echo "Installed cartodb-postgres"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# GIS dependancies
|
||||
echo "Adding GIS repository..."
|
||||
if [ "$GIS_REPO" = "xenial" ]; then
|
||||
echo "Card GIS repository already installed"
|
||||
else
|
||||
add-apt-repository ppa:cartodb/gis
|
||||
# Install GDAL
|
||||
apt -y update
|
||||
apt -y install gdal-bin \
|
||||
libgdal-dev
|
||||
fi
|
||||
export CPLUS_INCLUDE_PATH=/usr/include/gdal
|
||||
export C_INCLUDE_PATH=/usr/include/gdal
|
||||
export PATH=$PATH:/usr/include/gdal
|
||||
|
||||
# Install PostGIS
|
||||
apt -y install postgis
|
||||
|
||||
createdb -T template0 -O postgres -U postgres -E UTF8 template_postgis
|
||||
psql -U postgres template_postgis -c 'CREATE EXTENSION postgis;CREATE EXTENSION postgis_topology;'
|
||||
ldconfig
|
||||
|
||||
#TBD
|
||||
echo "Installed gis/gdal"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# Redis dependancies
|
||||
echo "Adding Redis repository..."
|
||||
if [ "$GIS_REPO" = "xenial" ]; then
|
||||
echo "Carto GIS repository already installed"
|
||||
else
|
||||
add-apt-repository ppa:cartodb/redis-next
|
||||
# Install Redis
|
||||
apt -y update
|
||||
apt -y install redis
|
||||
fi
|
||||
|
||||
# Redis
|
||||
# persistance
|
||||
|
||||
#TBD
|
||||
echo "Installed redis"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# Install NodeJS
|
||||
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
|
||||
install_ifnot nodejs
|
||||
#install_ifnot node-gyp
|
||||
|
||||
# Check
|
||||
node -v
|
||||
npm -v
|
||||
|
||||
install_ifnot libpixman-1-0
|
||||
install_ifnot libpixman-1-dev
|
||||
install_ifnot libcairo2-dev
|
||||
install_ifnot libjpeg-dev
|
||||
install_ifnot libgif-dev
|
||||
install_ifnot libpango1.0-dev
|
||||
npm install forever -g
|
||||
|
||||
#TBD
|
||||
echo "Installed npm"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# SQL API
|
||||
cd $OPT
|
||||
git clone git://github.com/CartoDB/CartoDB-SQL-API.git
|
||||
cd CartoDB-SQL-API
|
||||
sudo npm install
|
||||
|
||||
cp config/environments/development.js.example config/environments/development.js
|
||||
node app.js development # <--- como chingaos correr esto como servicio -> failed
|
||||
#forever
|
||||
|
||||
#TBD
|
||||
echo "Installed carto SQL API"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# MAPS API
|
||||
cd $OPT
|
||||
git clone git://github.com/CartoDB/Windshaft-cartodb.git
|
||||
cd Windshaft-cartodb
|
||||
sudo npm install
|
||||
|
||||
cp config/environments/development.js.example config/environments/development.js
|
||||
mkdir logs
|
||||
node app.js development # <--- worked :-/?
|
||||
|
||||
#TBD
|
||||
echo "Installed windshaft"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# Ruby dependancies
|
||||
echo "Adding Ruby 2.4 repository..."
|
||||
if [ "$RUBY_REPO" = "xenial" ]; then
|
||||
echo "Carto Ruby repository already installed"
|
||||
else
|
||||
apt-add-repository ppa:brightbox/ruby-ng
|
||||
# Install Redis
|
||||
apt -y update
|
||||
apt -y install ruby2.4 \
|
||||
ruby2.4-dev \
|
||||
ruby-bundler
|
||||
fi
|
||||
|
||||
gem install compass
|
||||
|
||||
#TBD
|
||||
echo "Installed ruby"
|
||||
read -p "Enter to continue"
|
||||
|
||||
# Builder
|
||||
cd $OPT
|
||||
#git clone --recursive https://github.com/CartoDB/cartodb.git
|
||||
git clone -b master --depth 1 https://github.com/CartoDB/cartodb.git
|
||||
cd cartodb
|
||||
|
||||
install_ifnot python-pip
|
||||
install_ifnot imagemagick
|
||||
install_ifnot unp
|
||||
install_ifnot zip
|
||||
install_ifnot libicu-dev
|
||||
|
||||
RAILS_ENV=development bundle install
|
||||
|
||||
pip install --no-use-wheel -r python_requirements.txt
|
||||
|
||||
#TBD
|
||||
echo "Installed python_requirements?"
|
||||
read -p "Enter to continue"
|
||||
sudo npm install
|
||||
|
||||
npm run carto-node
|
||||
npm run build:static
|
||||
|
||||
#TBD
|
||||
echo "Installed cartodb / python"
|
||||
read -p "Enter to continue"
|
||||
|
||||
#export PATH=$PATH:$PWD/node_modules/grunt-cli/bin
|
||||
#bundle exec grunt --environment=development
|
||||
|
||||
cp config/app_config.yml.sample config/app_config.yml
|
||||
cp config/database.yml.sample config/database.yml
|
||||
|
||||
sudo systemctl start redis-server
|
||||
|
||||
RAILS_ENV=development bundle exec rake db:create
|
||||
RAILS_ENV=development bundle exec rake db:migrate
|
||||
|
||||
RAILS_ENV=development bundle exec rails server
|
Loading…
Reference in New Issue