diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000000000000000000000000000000..9931e1eac74240b3a4166ede1456d5564fa14fcc --- /dev/null +++ b/.env.example @@ -0,0 +1,23 @@ +APPLICATION_ENV= + +BUGSNAG_JAVASCRIPT_KEY= +BUGSNAG_RUBY_KEY= + +MAIL_FROM_MAIL= +MAIL_FROM_NAME= + +OTP_SECRET_ENCRYPTION_KEY= + +OUTSCALE_OOS_ACCESS_KEY_ID= +OUTSCALE_OOS_BUCKET= +OUTSCALE_OOS_ENDPOINT= +OUTSCALE_OOS_REGION= +OUTSCALE_OOS_SECRET_ACCESS_KEY= + +SECRET_KEY_BASE= + +SEND_IN_BLUE_API_KEY= +SEND_IN_BLUE_SENDER_NAME= + +SMTP_USER= +SMTP_PASSWORD= \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2293bb7ed8a3261012eacf07d4c3a19d3c932d08..c507b277b29b4e92f85188e7afe4209a025a026b 100644 --- a/.gitignore +++ b/.gitignore @@ -30,8 +30,15 @@ /public/packs /public/packs-test + +# Ignore some JS stuff /node_modules /yarn-error.log yarn-debug.log* .yarn-integrity + +# Ignore macOS stuff .DS_Store + +# Ignore environment variables +.env \ No newline at end of file diff --git a/Gemfile b/Gemfile index 686d08ea19e67c4883dfe42a244f7371242e57c5..6e88429ca14bd707e131d1ce5580f58ed97016f3 100644 --- a/Gemfile +++ b/Gemfile @@ -11,6 +11,7 @@ gem 'image_processing' gem 'delayed_job_active_record' gem 'delayed_job_web' gem 'bootsnap', '>= 1.4.4', require: false +gem 'bugsnag' # Back gem 'rails' @@ -37,6 +38,7 @@ gem 'bootstrap' group :development, :test do gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + gem 'dotenv-rails' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 8148f3132c0e7b26dc374cf0ad8414d99ff3b5e4..b9273239433792e6254bea97c3c285650a0b0c69 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,6 +93,8 @@ GEM sassc-rails (>= 2.0.0) breadcrumbs_on_rails (4.1.0) railties (>= 5.0) + bugsnag (6.24.0) + concurrent-ruby (~> 1.0) builder (3.2.4) byebug (11.1.3) cancancan (3.3.0) @@ -131,6 +133,10 @@ GEM warden (~> 1.2.3) devise-i18n (1.10.0) devise (>= 4.8.0) + dotenv (2.7.6) + dotenv-rails (2.7.6) + dotenv (= 2.7.6) + railties (>= 3.2) enum-i18n (0.1.1) activerecord (>= 4.1) enum_help (0.0.17) @@ -335,6 +341,7 @@ DEPENDENCIES bootsnap (>= 1.4.4) bootstrap breadcrumbs_on_rails + bugsnag byebug cancancan capybara (>= 3.26) @@ -343,6 +350,7 @@ DEPENDENCIES delayed_job_web devise devise-i18n + dotenv-rails enum-i18n enum_help front_matter_parser @@ -371,4 +379,4 @@ RUBY VERSION ruby 2.7.4p191 BUNDLED WITH - 2.1.4 + 2.2.24 diff --git a/app/views/admin/layouts/application.html.erb b/app/views/admin/layouts/application.html.erb index a1c8f6b5d4c1c966c94b9554f175c5fe23a01f32..59d9365337a0b6e1c0d48f8b768623d7b0e8dad2 100644 --- a/app/views/admin/layouts/application.html.erb +++ b/app/views/admin/layouts/application.html.erb @@ -29,5 +29,6 @@ </div> </div> <%= javascript_include_tag 'admin' %> + <%= render 'bugsnag' %> </body> </html> diff --git a/app/views/application/_bugsnag.html.erb b/app/views/application/_bugsnag.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..11eccb31e7e8a0420355c1208dec1efd7bdb81ef --- /dev/null +++ b/app/views/application/_bugsnag.html.erb @@ -0,0 +1,12 @@ +<% unless Rails.env.development? %> + <script src="//d2wy8f7a9ursnm.cloudfront.net/v7/bugsnag.min.js"></script> + <script type="text/javascript"> + Bugsnag.start({ + apiKey: "<%= j ENV['BUGSNAG_JAVASCRIPT_KEY'] %>", + releaseStage: "<%= j ENV['APPLICATION_ENV'] %>" + }); + <% if user_signed_in? %> + Bugsnag.setUser("<%= j current_user.id %>", "<%= j current_user.email %>", "<%= j current_user.to_s %>"); + <% end %> + </script> +<% end %> \ No newline at end of file diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 7981d2b483dc340e98fd8fd98f8def4ba2cc9bed..72922a729f04bae88d24b549be0f0072a335c32a 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -16,5 +16,6 @@ <%= yield %> </main> <%= render 'footer' %> + <%= render 'bugsnag' %> </body> </html> diff --git a/app/views/layouts/devise.html.erb b/app/views/layouts/devise.html.erb index f7b594e8c6eba126d1bbaaae640a3ce45bf58dc9..428f9850e22589cce4a059de2a43d938133b2a4e 100644 --- a/app/views/layouts/devise.html.erb +++ b/app/views/layouts/devise.html.erb @@ -29,5 +29,6 @@ </div> </main> </div> + <%= render 'bugsnag' %> </body> </html> diff --git a/config/initializers/bugsnag.rb b/config/initializers/bugsnag.rb new file mode 100644 index 0000000000000000000000000000000000000000..2fd755ac05f28fa8a5a577a010a6b3169192284b --- /dev/null +++ b/config/initializers/bugsnag.rb @@ -0,0 +1,5 @@ +Bugsnag.configure do |config| + config.api_key = ENV['BUGSNAG_RUBY_KEY'] + config.release_stage = ENV['APPLICATION_ENV'] + config.notify_release_stages = ['production', 'staging'] +end