From e47e1c0d820ebace70eefb5f624770d0d9eb99d9 Mon Sep 17 00:00:00 2001 From: jfederico Date: Mon, 3 Feb 2020 14:31:56 -0500 Subject: First commit --- .gitignore | 13 +++++++++ README.md | 13 +++++++++ docker-compose.yml | 66 +++++++++++++++++++++++++++++++++++++++++++ dotenv | 2 ++ nginx/default/html/index.html | 25 ++++++++++++++++ nginx/nginx.conf | 37 ++++++++++++++++++++++++ nginx/sites.template | 37 ++++++++++++++++++++++++ redis/.keep | 0 scalelite/.env | 1 + scalelite/bin/start | 5 ++++ scalelite/dotenv | 1 + 11 files changed, 200 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 dotenv create mode 100644 nginx/default/html/index.html create mode 100644 nginx/nginx.conf create mode 100644 nginx/sites.template create mode 100644 redis/.keep create mode 100644 scalelite/.env create mode 100755 scalelite/bin/start create mode 100644 scalelite/dotenv diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..22c079d --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +/.env + +/nginx/log* +/nginx/ssl* +/nginx/sites-available* +/nginx/sites-enabled* +/nginx/letsencrypt/live/* + +/redis/log* +/redis/data* + +/scalelite/log* +/scalelite/tmp* diff --git a/README.md b/README.md new file mode 100644 index 0000000..47f6cac --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# scalelite-run + +This document provides instructions on how to deploy scalelite + redis behind a nginx proxy +using docker-compose. + + +## Prerequisites + + +## Preliminary steps + + +## Steps diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6b1cf5f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,66 @@ +version: '3' + +volumes: + database_data: + driver: local + +services: + nginx: + image: nginx:latest + restart: "no" + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/sites-enabled:/etc/nginx/sites-enabled + - ./nginx/sites.template:/etc/nginx/sites-available/sites.template + - ./nginx/default/html:/var/www/html + - ./nginx/log/nginx:/var/log/nginx + - ./nginx/letsencrypt/:/etc/letsencrypt + ports: + - "80:80" + - "443:443" + environment: + - NGINX_DOMAIN=${DOMAIN_SUB:-lab}.${DOMAIN_ROOT:-bigbluebutton.org} + depends_on: + - scalelite + command: /bin/bash -c "envsubst '$$NGINX_DOMAIN' < /etc/nginx/sites-available/sites.template > /etc/nginx/sites-enabled/sites.conf && exec nginx -g 'daemon off;'" + + redis: + image: redis + restart: "no" + ports: + - 127.0.0.1:6379:6379 + expose: + - "6379" + networks: + - default +# volumes: +# - ./redis/data/dump.rdb:/var/lib/redis/dump.rdb +# - ./redis/log/:/var/log/ + + scalelite: + entrypoint: [bin/start] +# image: blindsidenetwks/scalelite:master + image: blindsidenetwks/scalelite:docker-pro + restart: "no" + ports: + - 127.0.0.1:3000:3000 + expose: + - "3000" + links: + - redis + networks: + - default + volumes: + - ./scalelite/log:/usr/src/app/log + - ./scalelite/tmp/pids/:/usr/src/app/tmp/pids + - ./scalelite/bin/start:/usr/src/app/bin/start +# logging: +# driver: syslog +# options: +# syslog-address: udp://logs.$DOMAINNAME:1514 +# tag: sl.$DOMAINNAME + env_file: ./scalelite/.env + environment: + - DOMAINNAME=${DOMAIN_SUB:-lab}.${DOMAIN_ROOT:-bigbluebutton.org} + - REDIS_URL=redis://redis.${DOMAIN_SUB:-xlab}.${DOMAIN_ROOT:-bigbluebutton.org}:6379 + - URL_HOST=sl.${DOMAIN_SUB:-lab}.${DOMAIN_ROOT:-bigbluebutton.org} diff --git a/dotenv b/dotenv new file mode 100644 index 0000000..24d3add --- /dev/null +++ b/dotenv @@ -0,0 +1,2 @@ +DOMAIN_ROOT=bigbluebutton.org +DOMAIN_SUB=lab diff --git a/nginx/default/html/index.html b/nginx/default/html/index.html new file mode 100644 index 0000000..2ca3b95 --- /dev/null +++ b/nginx/default/html/index.html @@ -0,0 +1,25 @@ + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+ +

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+ +

Thank you for using nginx.

+ + diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..981c619 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,37 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; + + ## + # Virtual Host Configs + ## + + include /etc/nginx/sites-enabled/*; +} diff --git a/nginx/sites.template b/nginx/sites.template new file mode 100644 index 0000000..4252f81 --- /dev/null +++ b/nginx/sites.template @@ -0,0 +1,37 @@ +#### For + +upstream docker-scalelite { + server scalelite:3000; +} + +server { + server_name sl.$NGINX_DOMAIN; + + listen 80; + listen [::]:80; + listen 443 ssl; + listen [::]:443; + + ssl_certificate /etc/letsencrypt/live/sl.$NGINX_DOMAIN/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/sl.$NGINX_DOMAIN/privkey.pem; + + location / { + proxy_pass http://docker-scalelite; + proxy_read_timeout 60s; + proxy_redirect off; + + 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 Cookie "$http_cookie; ip=$remote_addr"; + + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + rewrite ~/(.*)$ /$1 break; + } +} diff --git a/redis/.keep b/redis/.keep new file mode 100644 index 0000000..e69de29 diff --git a/scalelite/.env b/scalelite/.env new file mode 100644 index 0000000..7cf79e3 --- /dev/null +++ b/scalelite/.env @@ -0,0 +1 @@ +SECRET_KEY_BASE=secret_key_base diff --git a/scalelite/bin/start b/scalelite/bin/start new file mode 100755 index 0000000..3a27841 --- /dev/null +++ b/scalelite/bin/start @@ -0,0 +1,5 @@ +#!/bin/bash + +bundle exec puma -C config/puma.rb +#tail -f /dev/null +#bundle exec rails s -b 0.0.0.0 -p 3000 diff --git a/scalelite/dotenv b/scalelite/dotenv new file mode 100644 index 0000000..7cf79e3 --- /dev/null +++ b/scalelite/dotenv @@ -0,0 +1 @@ +SECRET_KEY_BASE=secret_key_base -- cgit v1.2.3