Skip to content

Instantly share code, notes, and snippets.

@truebit
Forked from mattes/default.conf
Created April 2, 2019 01:53
Show Gist options
  • Save truebit/c7589cdfad89e283268acb9e9038da87 to your computer and use it in GitHub Desktop.
Save truebit/c7589cdfad89e283268acb9e9038da87 to your computer and use it in GitHub Desktop.
redash.io setup
upstream redash {
server redash:5000;
}
server {
listen 80;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name redash.example.com;
ssl on;
ssl_certificate /etc/nginx/conf.d/domain.crt;
ssl_certificate_key /etc/nginx/conf.d/domain.key;
ssl_dhparam /etc/nginx/conf.d/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
gzip on;
gzip_types *;
gzip_proxied any;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://redash;
proxy_redirect off;
}
}
REDASH_COOKIE_SECRET=verysecretkey
REDASH_DATABASE_URL=postgresql://postgres@postgres/postgres
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_NAME=Redash
REDASH_LOG_LEVEL=INFO
REDASH_HOST=https://redash.example.com
REDASH_MAIL_SERVER=smtp.sendgrid.net
REDASH_MAIL_PORT=2525
REDASH_MAIL_USE_TLS=true
REDASH_MAIL_USERNAME=apikey
REDASH_MAIL_PASSWORD=sendgridsecretapikey
REDASH_MAIL_DEFAULT_SENDER=email@example.com
REDASH_GOOGLE_CLIENT_ID=xxxx
REDASH_GOOGLE_CLIENT_SECRET=xxxx

Redash Setup

git clone https://github.com/getredash/redash

docker network create redash
docker run -d --name postgres -v /usr/var/run/redash/postgres:/var/lib/postgresql/data --restart unless-stopped --net redash postgres:9.3

docker run -d --name redis --restart unless-stopped --net redash redis:2.8

docker run -it --rm -p 5000:5000 --net redash --env-file redash-config redash/redash /opt/redash/current/manage.py database create_tables

docker run -it --rm -p 5000:5000 --net redash --env-file redash-config redash/redash /opt/redash/current/manage.py users create --admin --password admin "Admin" "admin"

docker inspect postgres # get container ip 172.17.02 and use below ...

docker run --rm -it postgres:9.3 psql -h 172.17.02 -p 5432 -U postgres -c "CREATE ROLE redash_reader WITH PASSWORD 'redash_reader' NOCREATEROLE NOCREATEDB NOSUPERUSER LOGIN"

docker run --rm -it postgres:9.3 psql -h 172.17.02 -p 5432 -U postgres -c "grant select(id,name,type) ON data_sources to redash_reader;"

docker run --rm -it postgres:9.3 psql -h 172.17.02 -p 5432 -U postgres -c "grant select(id,name) ON users to redash_reader;"

docker run --rm -it postgres:9.3 psql -h 172.17.02 -p 5432 -U postgres -c "grant select on events, queries, dashboards, widgets,visualizations, query_results to redash_reader;"

docker run -it --rm -p 5000:5000 --net redash --env-file redash-config redash/redash /opt/redash/current/manage.py ds new "re:dash metadata" --type "pg" --options "{\"user\": \"redash_reader\", \"password\": \"redash_reader\", \"host\": \"postgres\", \"dbname\": \"postgres\"}"

docker run -d --name redash --restart unless-stopped -p 5000:5000 --net redash --env-file redash-config redash/redash

docker run -d --name redash-nginx -v nginx-conf-dir:/etc/nginx/conf.d --restart unless-stopped --net redash -p 80:80 -p 443:443 redash/nginx:latest

docker exec -it redash ./manage.py set_google_apps_domains allowed-domain.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment