diff --git a/Gemfile b/Gemfile index 276d8d3..b04129b 100644 --- a/Gemfile +++ b/Gemfile @@ -24,6 +24,7 @@ gem 'whenever', require: false # gem "image_processing", "~> 1.2" gem "pg" +gem 'rails-letsencrypt' group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem diff --git a/Gemfile.lock b/Gemfile.lock index 8b87a77..93fe5e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,9 @@ GEM remote: https://rubygems.org/ specs: + acme-client (2.0.10) + faraday (>= 1.0, < 3.0.0) + faraday-retry (~> 1.0) actioncable (7.0.2.3) actionpack (= 7.0.2.3) activesupport (= 7.0.2.3) @@ -95,6 +98,11 @@ GEM httparty erubi (1.10.0) erubis (2.7.0) + faraday (2.2.0) + faraday-net_http (~> 2.0) + ruby2_keywords (>= 0.0.4) + faraday-net_http (2.0.1) + faraday-retry (1.0.3) ffi (1.15.5) formatador (1.1.0) globalid (1.0.0) @@ -224,6 +232,10 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) + rails-letsencrypt (0.10.1) + acme-client (~> 2.0.0) + rails (>= 5.0) + redis railties (7.0.2.3) actionpack (= 7.0.2.3) activesupport (= 7.0.2.3) @@ -235,6 +247,7 @@ GEM rb-fsevent (0.11.1) rb-inotify (0.10.1) ffi (~> 1.0) + redis (4.6.0) regexp_parser (2.2.1) reline (0.3.1) io-console (~> 0.5) @@ -260,6 +273,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) + ruby2_keywords (0.0.5) ruby_parser (3.18.1) sexp_processor (~> 4.16) rubyzip (2.3.2) @@ -332,6 +346,7 @@ DEPENDENCIES pg rack-mini-profiler rails (~> 7.0) + rails-letsencrypt rspec-rails (~> 5.0.0) sassc-rails selenium-webdriver diff --git a/config/routes.rb b/config/routes.rb index cc9c1d5..820e10d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,4 +2,5 @@ Rails.application.routes.draw do # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html # root to: 'high_voltage/pages#show', id: 'index' + mount LetsEncrypt::Engine => '/.well-known' end diff --git a/db/migrate/20220409143030_create_letsencrypt_certificates.rb b/db/migrate/20220409143030_create_letsencrypt_certificates.rb new file mode 100644 index 0000000..4ed54ce --- /dev/null +++ b/db/migrate/20220409143030_create_letsencrypt_certificates.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# :nodoc: +class CreateLetsencryptCertificates < ActiveRecord::Migration[7.0] + def change + create_table :letsencrypt_certificates do |t| + t.string :domain + t.text :certificate, limit: 65535 + t.text :intermediaries, limit: 65535 + t.text :key, limit: 65535 + t.datetime :expires_at + t.datetime :renew_after + t.string :verification_path + t.string :verification_string + + t.index :domain + t.index :renew_after + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index a3b0495..7a03a7a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,5 +10,23 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 0) do +ActiveRecord::Schema[7.0].define(version: 2022_04_09_143030) do + # These are extensions that must be enabled in order to support this database + enable_extension "plpgsql" + + create_table "letsencrypt_certificates", force: :cascade do |t| + t.string "domain" + t.text "certificate" + t.text "intermediaries" + t.text "key" + t.datetime "expires_at" + t.datetime "renew_after" + t.string "verification_path" + t.string "verification_string" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["domain"], name: "index_letsencrypt_certificates_on_domain" + t.index ["renew_after"], name: "index_letsencrypt_certificates_on_renew_after" + end + end