From 3af53212e4aa371ad48595aafe1a098742eafe88 Mon Sep 17 00:00:00 2001 From: kanzawa Date: Thu, 14 Sep 2017 13:38:55 +0900 Subject: [PATCH 1/6] Add pg to Gemfile --- Gemfile | 1 + Gemfile.lock | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 62acca0..8f90dfa 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ source 'https://rubygems.org' gem 'rails', '4.1.8' # Use sqlite3 as the database for Active Record gem 'sqlite3' +gem 'pg' # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.3' # Use Uglifier as compressor for JavaScript assets diff --git a/Gemfile.lock b/Gemfile.lock index 66e34e7..f933590 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM less-rails (2.6.0) actionpack (>= 3.1) less (~> 2.6.0) - libv8 (3.16.14.7) + libv8 (3.16.14.19) mail (2.6.3) mime-types (>= 1.16, < 3) mime-types (2.4.3) @@ -123,6 +123,7 @@ GEM oauth2 (~> 1.0) omniauth (~> 1.2) orm_adapter (0.5.0) + pg (0.21.0) rack (1.5.2) rack-test (0.6.2) rack (>= 1.0) @@ -232,6 +233,7 @@ DEPENDENCIES nokogiri omniauth omniauth-google-oauth2 + pg rails (= 4.1.8) redis rspec-rails From 4420b3391a5ef66f27e1270ae13ea7382cd84893 Mon Sep 17 00:00:00 2001 From: kanzawa Date: Tue, 19 Sep 2017 00:43:43 +0900 Subject: [PATCH 2/6] Specify the host of the redis server to be accessed --- app/models/redis_store.rb | 4 +++- config/application_settings_sample.yml | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/models/redis_store.rb b/app/models/redis_store.rb index c3882a5..eb39ef3 100644 --- a/app/models/redis_store.rb +++ b/app/models/redis_store.rb @@ -1,7 +1,9 @@ +require 'uri' module DataStore class RedisStore < Base def initialize - @redis = Redis.new + uri = URI.parse(ApplicationSettings.redis.url) + @redis = Redis.new(host: uri.host, port: uri.port) end def load(key) diff --git a/config/application_settings_sample.yml b/config/application_settings_sample.yml index b1f3be8..865b89d 100644 --- a/config/application_settings_sample.yml +++ b/config/application_settings_sample.yml @@ -7,6 +7,8 @@ default: &default google: application_id: XXXXXXXXXXXXXXXXX application_secret: XXXXXXXXXXXXXXXXX + redis: + url: redis://XXXXX:6379 development: <<: *default From b3a33e249a06f14881731284403db6c8f868da59 Mon Sep 17 00:00:00 2001 From: kanzawa Date: Tue, 19 Sep 2017 02:06:12 +0900 Subject: [PATCH 3/6] Add Dockerfile and docker-compose.yml --- Dockerfile | 15 +++++++++++++++ docker-compose.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..531ad5c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM ruby:2.1.5 +RUN apt-get update -qq && apt-get install -y build-essential ruby-dev libxslt1-dev libxml2-dev libpq-dev nodejs sqlite3 postgresql-client redis-server + +RUN git clone https://github.com/nomlab/camome.git + +WORKDIR camome + +RUN bundle install --path vendor/bundle +ADD config/secrets.yml config/secrets.yml +ADD config/application_settings.yml config/application_settings.yml +ADD config/database.yml config/database.yml +RUN git submodule init +RUN git config submodule.vendor/assets/bootstrap-table.url https://github.com/wenzhixin/bootstrap-table.git +RUN git config submodule.vendor/assets/jsSHA.url https://github.com/Caligatio/jsSHA.git +RUN git submodule update \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..28e8909 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,26 @@ +version: '2' +services: + db: + container_name: db + image: postgres + expose: + - "5432" + + web: + container_name: camome + build: . + command: bundle exec rails s -p 3000 -b '0.0.0.0' + ports: + - "3000:3000" + links: + - redis + - db + + redis: + container_name: redis + image: redis + expose: + - "6379" + volumes: + - ./redis:/data + command: redis-server --appendonly yes \ No newline at end of file From 975bcccea04e1fe6f51f93305c71c251db53475b Mon Sep 17 00:00:00 2001 From: Ryota Nishi Date: Mon, 2 Oct 2017 19:33:10 +0900 Subject: [PATCH 4/6] Modify to use docker --- Dockerfile | 2 ++ Gemfile | 2 +- app/controllers/events_controller.rb | 2 +- .../users/omniauth_callbacks_controller.rb | 2 +- config/database.yml | 26 ++++++------------- docker-compose.yml | 4 +-- redis/appendonly.aof | 0 7 files changed, 15 insertions(+), 23 deletions(-) create mode 100644 redis/appendonly.aof diff --git a/Dockerfile b/Dockerfile index 531ad5c..faf61f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,10 +5,12 @@ RUN git clone https://github.com/nomlab/camome.git WORKDIR camome +ADD Gemfile Gemfile RUN bundle install --path vendor/bundle ADD config/secrets.yml config/secrets.yml ADD config/application_settings.yml config/application_settings.yml ADD config/database.yml config/database.yml +ADD config/environments/development.rb config/environments/development.rb RUN git submodule init RUN git config submodule.vendor/assets/bootstrap-table.url https://github.com/wenzhixin/bootstrap-table.git RUN git config submodule.vendor/assets/jsSHA.url https://github.com/Caligatio/jsSHA.git diff --git a/Gemfile b/Gemfile index 8f90dfa..91c23ce 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' gem 'rails', '4.1.8' # Use sqlite3 as the database for Active Record gem 'sqlite3' -gem 'pg' +gem 'pg', '~> 0.20.0' # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.3' # Use Uglifier as compressor for JavaScript assets diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index ce080bf..d900bcf 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -174,7 +174,7 @@ def event_to_json(event) def exist_token? ds = DataStore::RedisStore.new user = current_user - if ds.load(user.auth_name) == nil && user.master_auth_info.token != nil + if ds.load(user.auth_name) == nil redirect_to :action => "input_master_pass" end end diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 330a7a8..8e22815 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -35,7 +35,7 @@ def google_oauth2 case state when "invitation" - user = User.where("invitation_token is ?", token).first + user = User.where("invitation_token = token").first if user User.current = user user.provider = auth.provider diff --git a/config/database.yml b/config/database.yml index 1c1a37c..846498d 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,25 +1,15 @@ -# SQLite version 3.x -# gem install sqlite3 -# -# Ensure the SQLite 3 gem is defined in your Gemfile -# gem 'sqlite3' -# default: &default - adapter: sqlite3 + adapter: postgresql + encoding: unicode pool: 5 - timeout: 5000 -development: +development: &development <<: *default - database: db/development.sqlite3 + database: camome_development + username: postgres + password: + host: db -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. test: <<: *default - database: db/test.sqlite3 - -production: - <<: *default - database: db/production.sqlite3 + database: camome_test \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 28e8909..b114a78 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,5 @@ version: '2' -services: +services: db: container_name: db image: postgres @@ -9,7 +9,7 @@ services: web: container_name: camome build: . - command: bundle exec rails s -p 3000 -b '0.0.0.0' + command: bundle exec rails s -p 3000 -b 0.0.0.0 ports: - "3000:3000" links: diff --git a/redis/appendonly.aof b/redis/appendonly.aof new file mode 100644 index 0000000..e69de29 From 0ff3ed51db3238d58ff3ad422a58727d179799f4 Mon Sep 17 00:00:00 2001 From: Ryota Nishi Date: Fri, 15 Dec 2017 01:36:48 +0900 Subject: [PATCH 5/6] Use docker-compose for run and development --- .dockerignore | 5 +++++ .gitignore | 4 +++- Dockerfile | 13 +++++-------- docker-compose.yml | 28 ++++++++++++++++++++-------- 4 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..100bd6d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +./config/application_settings.yml +./config/database.yml +./config/environments/deveropment.rb + +vender/bundle \ No newline at end of file diff --git a/.gitignore b/.gitignore index b8c6cc6..f272ef8 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,6 @@ bower.json attic/ -config/environments/development.rb \ No newline at end of file +config/environments/development.rb + +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index faf61f2..078507e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,14 @@ FROM ruby:2.1.5 RUN apt-get update -qq && apt-get install -y build-essential ruby-dev libxslt1-dev libxml2-dev libpq-dev nodejs sqlite3 postgresql-client redis-server -RUN git clone https://github.com/nomlab/camome.git - WORKDIR camome -ADD Gemfile Gemfile +COPY Gemfile Gemfile.lock /camome/ RUN bundle install --path vendor/bundle -ADD config/secrets.yml config/secrets.yml -ADD config/application_settings.yml config/application_settings.yml -ADD config/database.yml config/database.yml -ADD config/environments/development.rb config/environments/development.rb + +COPY . /camome + RUN git submodule init RUN git config submodule.vendor/assets/bootstrap-table.url https://github.com/wenzhixin/bootstrap-table.git RUN git config submodule.vendor/assets/jsSHA.url https://github.com/Caligatio/jsSHA.git -RUN git submodule update \ No newline at end of file +RUN git submodule update \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b114a78..1c72f22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,26 +1,38 @@ -version: '2' +version: '3' services: db: container_name: db image: postgres expose: - "5432" + volumes: + - ./db/camome_pgdata:/var/lib/postgresql/data web: - container_name: camome build: . + container_name: camome + image: nomlab/camome command: bundle exec rails s -p 3000 -b 0.0.0.0 ports: - "3000:3000" - links: + depends_on: - redis - db - + volumes: + - ./config/application_settings.yml:/camome/config/application_settings.yml + - ./config/database.yml:/camome/config/database.yml + - ./config/environments/deveropment.rb:/camome/config/environments/deveropment.rb + env_file: .env + redis: container_name: redis image: redis - expose: - - "6379" + + goohub: + container_name: goohub + image: nomlab/goohub + links: + - redis + - web volumes: - - ./redis:/data - command: redis-server --appendonly yes \ No newline at end of file + - ./goohub:/root/.config/goohub \ No newline at end of file From 79abf88eec1cf2fc59b0fdfde19f014e3a217f0d Mon Sep 17 00:00:00 2001 From: Ryota Nishi Date: Fri, 15 Dec 2017 10:09:44 +0900 Subject: [PATCH 6/6] Add secrets.yml --- .gitignore | 1 - config/secrets.yml | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 config/secrets.yml diff --git a/.gitignore b/.gitignore index f272ef8..5f34361 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,6 @@ pickle-email-*.html # TODO Comment out these rules if you are OK with secrets being uploaded to the repo config/initializers/secret_token.rb -config/secrets.yml config/setting_google_calendar.yml config/application_settings.yml diff --git a/config/secrets.yml b/config/secrets.yml new file mode 100644 index 0000000..fd92913 --- /dev/null +++ b/config/secrets.yml @@ -0,0 +1,6 @@ +development: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> +test: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>