Fisrt draft

This commit is contained in:
Luis Guzmán 2019-08-07 22:38:27 -05:00
parent f05a31b80b
commit fc9b220d8f
Signed by: Ark74
GPG Key ID: 35AD8DB3BE2C988C
1 changed files with 236 additions and 0 deletions

236
carto-installer.sh Normal file
View File

@ -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