|
#!/usr/bin/env bash |
|
# This script setups dockerized Redash on Ubuntu 18.04. |
|
set -eu |
|
|
|
REDASH_BASE_PATH=/opt/redash |
|
|
|
install_docker(){ |
|
# Install Docker |
|
sudo apt-get update |
|
sudo apt-get -yy install apt-transport-https ca-certificates curl software-properties-common wget pwgen |
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
|
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
|
sudo apt-get update && sudo apt-get -y install docker-ce |
|
|
|
# Install Docker Compose |
|
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose |
|
sudo chmod +x /usr/local/bin/docker-compose |
|
|
|
# Allow current user to run Docker commands |
|
sudo usermod -aG docker $USER |
|
} |
|
|
|
create_directories() { |
|
if [[ ! -e $REDASH_BASE_PATH ]]; then |
|
sudo mkdir -p $REDASH_BASE_PATH |
|
sudo chown $USER:$USER $REDASH_BASE_PATH |
|
fi |
|
|
|
if [[ ! -e $REDASH_BASE_PATH/postgres-data ]]; then |
|
mkdir $REDASH_BASE_PATH/postgres-data |
|
fi |
|
} |
|
|
|
create_config() { |
|
if [[ -e $REDASH_BASE_PATH/env ]]; then |
|
now=$(date +%s) |
|
mv $REDASH_BASE_PATH/env $REDASH_BASE_PATH/env.$now.bk |
|
touch $REDASH_BASE_PATH/env |
|
fi |
|
|
|
COOKIE_SECRET=$(pwgen -1s 32) |
|
POSTGRES_PASSWORD=$(pwgen -1s 32) |
|
REDASH_DATABASE_URL="postgresql://postgres:${POSTGRES_PASSWORD}@postgres/postgres" |
|
NLS_LANG=JAPANESE_JAPAN.JA16EUC |
|
|
|
echo "PYTHONUNBUFFERED=0" >> $REDASH_BASE_PATH/env |
|
echo "REDASH_LOG_LEVEL=INFO" >> $REDASH_BASE_PATH/env |
|
echo "REDASH_REDIS_URL=redis://redis:6379/0" >> $REDASH_BASE_PATH/env |
|
echo "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" >> $REDASH_BASE_PATH/env |
|
echo "REDASH_COOKIE_SECRET=$COOKIE_SECRET" >> $REDASH_BASE_PATH/env |
|
echo "REDASH_DATABASE_URL=$REDASH_DATABASE_URL" >> $REDASH_BASE_PATH/env |
|
echo "NLS_LANG=$NLS_LANG" >> $REDASH_BASE_PATH/env |
|
} |
|
|
|
|
|
install_docker |
|
create_directories |
|
create_config |