Initial commit.
This commit is contained in:
		
							
								
								
									
										42
									
								
								config/application.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								config/application.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
require_relative "boot"
 | 
			
		||||
 | 
			
		||||
require "rails"
 | 
			
		||||
# Pick the frameworks you want:
 | 
			
		||||
require "active_model/railtie"
 | 
			
		||||
require "active_job/railtie"
 | 
			
		||||
require "active_record/railtie"
 | 
			
		||||
require "active_storage/engine"
 | 
			
		||||
require "action_controller/railtie"
 | 
			
		||||
require "action_mailer/railtie"
 | 
			
		||||
require "action_mailbox/engine"
 | 
			
		||||
require "action_text/engine"
 | 
			
		||||
require "action_view/railtie"
 | 
			
		||||
require "action_cable/engine"
 | 
			
		||||
# require "rails/test_unit/railtie"
 | 
			
		||||
 | 
			
		||||
# Require the gems listed in Gemfile, including any gems
 | 
			
		||||
# you've limited to :test, :development, or :production.
 | 
			
		||||
Bundler.require(*Rails.groups)
 | 
			
		||||
 | 
			
		||||
module Tokitranslate
 | 
			
		||||
  class Application < Rails::Application
 | 
			
		||||
    # Initialize configuration defaults for originally generated Rails version.
 | 
			
		||||
    config.load_defaults 7.1
 | 
			
		||||
 | 
			
		||||
    # Please, add to the `ignore` list any other `lib` subdirectories that do
 | 
			
		||||
    # not contain `.rb` files, or that should not be reloaded or eager loaded.
 | 
			
		||||
    # Common ones are `templates`, `generators`, or `middleware`, for example.
 | 
			
		||||
    config.autoload_lib(ignore: %w(assets tasks))
 | 
			
		||||
 | 
			
		||||
    # Configuration for the application, engines, and railties goes here.
 | 
			
		||||
    #
 | 
			
		||||
    # These settings can be overridden in specific environments using the files
 | 
			
		||||
    # in config/environments, which are processed later.
 | 
			
		||||
    #
 | 
			
		||||
    # config.time_zone = "Central Time (US & Canada)"
 | 
			
		||||
    # config.eager_load_paths << Rails.root.join("extras")
 | 
			
		||||
 | 
			
		||||
    # Don't generate system test files.
 | 
			
		||||
    config.generators.system_tests = nil
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										4
									
								
								config/boot.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config/boot.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
 | 
			
		||||
 | 
			
		||||
require "bundler/setup" # Set up gems listed in the Gemfile.
 | 
			
		||||
require "bootsnap/setup" # Speed up boot time by caching expensive operations.
 | 
			
		||||
							
								
								
									
										10
									
								
								config/cable.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								config/cable.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
development:
 | 
			
		||||
  adapter: async
 | 
			
		||||
 | 
			
		||||
test:
 | 
			
		||||
  adapter: test
 | 
			
		||||
 | 
			
		||||
production:
 | 
			
		||||
  adapter: redis
 | 
			
		||||
  url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
 | 
			
		||||
  channel_prefix: tokitranslate_production
 | 
			
		||||
							
								
								
									
										1
									
								
								config/credentials.yml.enc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								config/credentials.yml.enc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
XuobCbjCufaSltG6P/+FAqfhLjrwUAZm3VfQbqc95HVXhRlaCcMZa1MBLX9x99tqeA4xGH671wsXcbVddI6w2TdD1NdfO79argC1aEvycYKJUo+ddMD/z735srSuZm+iBZ/ig6jeOaIS4M26bJhJ7qqL59+WfSGNhZNv0Ax9xJAe4f1xIX1pfklkMRJQW8p97MrcrGEuKnHUcYg3X5rmdxny8azf+5GLOHatqgFPtA0CAGrfQ7j+A/IM1IrFtFGIFZObLOHv3bkWLSeKjgfGIw5e1AOYar9k2L+MBiA6T5ubJYa0Bia51Y6bpODowMS+hclkE/2USJlTdEnm1h03h68s0mS+D7O1cOKiCRkqhjDqvUpvevAzqWVWNpq4rbJyve7SYLuOH4J567QIqN3RKG28pvWn--aP6KUFOMJ6TZP8RM--MjQF1NyBlEpiffgwVlBMHQ==
 | 
			
		||||
							
								
								
									
										25
									
								
								config/database.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								config/database.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# SQLite. Versions 3.8.0 and up are supported.
 | 
			
		||||
#   gem install sqlite3
 | 
			
		||||
#
 | 
			
		||||
#   Ensure the SQLite 3 gem is defined in your Gemfile
 | 
			
		||||
#   gem "sqlite3"
 | 
			
		||||
#
 | 
			
		||||
default: &default
 | 
			
		||||
  adapter: sqlite3
 | 
			
		||||
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
 | 
			
		||||
  timeout: 5000
 | 
			
		||||
 | 
			
		||||
development:
 | 
			
		||||
  <<: *default
 | 
			
		||||
  database: storage/development.sqlite3
 | 
			
		||||
 | 
			
		||||
# 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: storage/test.sqlite3
 | 
			
		||||
 | 
			
		||||
production:
 | 
			
		||||
  <<: *default
 | 
			
		||||
  database: storage/production.sqlite3
 | 
			
		||||
							
								
								
									
										5
									
								
								config/environment.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/environment.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
# Load the Rails application.
 | 
			
		||||
require_relative "application"
 | 
			
		||||
 | 
			
		||||
# Initialize the Rails application.
 | 
			
		||||
Rails.application.initialize!
 | 
			
		||||
							
								
								
									
										76
									
								
								config/environments/development.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								config/environments/development.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
require "active_support/core_ext/integer/time"
 | 
			
		||||
 | 
			
		||||
Rails.application.configure do
 | 
			
		||||
  # Settings specified here will take precedence over those in config/application.rb.
 | 
			
		||||
 | 
			
		||||
  # In the development environment your application's code is reloaded any time
 | 
			
		||||
  # it changes. This slows down response time but is perfect for development
 | 
			
		||||
  # since you don't have to restart the web server when you make code changes.
 | 
			
		||||
  config.enable_reloading = true
 | 
			
		||||
 | 
			
		||||
  # Do not eager load code on boot.
 | 
			
		||||
  config.eager_load = false
 | 
			
		||||
 | 
			
		||||
  # Show full error reports.
 | 
			
		||||
  config.consider_all_requests_local = true
 | 
			
		||||
 | 
			
		||||
  # Enable server timing
 | 
			
		||||
  config.server_timing = true
 | 
			
		||||
 | 
			
		||||
  # Enable/disable caching. By default caching is disabled.
 | 
			
		||||
  # Run rails dev:cache to toggle caching.
 | 
			
		||||
  if Rails.root.join("tmp/caching-dev.txt").exist?
 | 
			
		||||
    config.action_controller.perform_caching = true
 | 
			
		||||
    config.action_controller.enable_fragment_cache_logging = true
 | 
			
		||||
 | 
			
		||||
    config.cache_store = :memory_store
 | 
			
		||||
    config.public_file_server.headers = {
 | 
			
		||||
      "Cache-Control" => "public, max-age=#{2.days.to_i}"
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    config.action_controller.perform_caching = false
 | 
			
		||||
 | 
			
		||||
    config.cache_store = :null_store
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Store uploaded files on the local file system (see config/storage.yml for options).
 | 
			
		||||
  config.active_storage.service = :local
 | 
			
		||||
 | 
			
		||||
  # Don't care if the mailer can't send.
 | 
			
		||||
  config.action_mailer.raise_delivery_errors = false
 | 
			
		||||
 | 
			
		||||
  config.action_mailer.perform_caching = false
 | 
			
		||||
 | 
			
		||||
  # Print deprecation notices to the Rails logger.
 | 
			
		||||
  config.active_support.deprecation = :log
 | 
			
		||||
 | 
			
		||||
  # Raise exceptions for disallowed deprecations.
 | 
			
		||||
  config.active_support.disallowed_deprecation = :raise
 | 
			
		||||
 | 
			
		||||
  # Tell Active Support which deprecation messages to disallow.
 | 
			
		||||
  config.active_support.disallowed_deprecation_warnings = []
 | 
			
		||||
 | 
			
		||||
  # Raise an error on page load if there are pending migrations.
 | 
			
		||||
  config.active_record.migration_error = :page_load
 | 
			
		||||
 | 
			
		||||
  # Highlight code that triggered database queries in logs.
 | 
			
		||||
  config.active_record.verbose_query_logs = true
 | 
			
		||||
 | 
			
		||||
  # Highlight code that enqueued background job in logs.
 | 
			
		||||
  config.active_job.verbose_enqueue_logs = true
 | 
			
		||||
 | 
			
		||||
  # Suppress logger output for asset requests.
 | 
			
		||||
  config.assets.quiet = true
 | 
			
		||||
 | 
			
		||||
  # Raises error for missing translations.
 | 
			
		||||
  # config.i18n.raise_on_missing_translations = true
 | 
			
		||||
 | 
			
		||||
  # Annotate rendered view with file names.
 | 
			
		||||
  # config.action_view.annotate_rendered_view_with_filenames = true
 | 
			
		||||
 | 
			
		||||
  # Uncomment if you wish to allow Action Cable access from any origin.
 | 
			
		||||
  # config.action_cable.disable_request_forgery_protection = true
 | 
			
		||||
 | 
			
		||||
  # Raise error when a before_action's only/except options reference missing actions
 | 
			
		||||
  config.action_controller.raise_on_missing_callback_actions = true
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										97
									
								
								config/environments/production.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								config/environments/production.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
require "active_support/core_ext/integer/time"
 | 
			
		||||
 | 
			
		||||
Rails.application.configure do
 | 
			
		||||
  # Settings specified here will take precedence over those in config/application.rb.
 | 
			
		||||
 | 
			
		||||
  # Code is not reloaded between requests.
 | 
			
		||||
  config.enable_reloading = false
 | 
			
		||||
 | 
			
		||||
  # Eager load code on boot. This eager loads most of Rails and
 | 
			
		||||
  # your application in memory, allowing both threaded web servers
 | 
			
		||||
  # and those relying on copy on write to perform better.
 | 
			
		||||
  # Rake tasks automatically ignore this option for performance.
 | 
			
		||||
  config.eager_load = true
 | 
			
		||||
 | 
			
		||||
  # Full error reports are disabled and caching is turned on.
 | 
			
		||||
  config.consider_all_requests_local       = false
 | 
			
		||||
  config.action_controller.perform_caching = true
 | 
			
		||||
 | 
			
		||||
  # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
 | 
			
		||||
  # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
 | 
			
		||||
  # config.require_master_key = true
 | 
			
		||||
 | 
			
		||||
  # Enable static file serving from the `/public` folder (turn off if using NGINX/Apache for it).
 | 
			
		||||
  config.public_file_server.enabled = true
 | 
			
		||||
 | 
			
		||||
  # Compress CSS using a preprocessor.
 | 
			
		||||
  # config.assets.css_compressor = :sass
 | 
			
		||||
 | 
			
		||||
  # Do not fallback to assets pipeline if a precompiled asset is missed.
 | 
			
		||||
  config.assets.compile = false
 | 
			
		||||
 | 
			
		||||
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
 | 
			
		||||
  # config.asset_host = "http://assets.example.com"
 | 
			
		||||
 | 
			
		||||
  # Specifies the header that your server uses for sending files.
 | 
			
		||||
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
 | 
			
		||||
  # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
 | 
			
		||||
 | 
			
		||||
  # Store uploaded files on the local file system (see config/storage.yml for options).
 | 
			
		||||
  config.active_storage.service = :local
 | 
			
		||||
 | 
			
		||||
  # Mount Action Cable outside main process or domain.
 | 
			
		||||
  # config.action_cable.mount_path = nil
 | 
			
		||||
  # config.action_cable.url = "wss://example.com/cable"
 | 
			
		||||
  # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ]
 | 
			
		||||
 | 
			
		||||
  # Assume all access to the app is happening through a SSL-terminating reverse proxy.
 | 
			
		||||
  # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies.
 | 
			
		||||
  # config.assume_ssl = true
 | 
			
		||||
 | 
			
		||||
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
 | 
			
		||||
  config.force_ssl = true
 | 
			
		||||
 | 
			
		||||
  # Log to STDOUT by default
 | 
			
		||||
  config.logger = ActiveSupport::Logger.new(STDOUT)
 | 
			
		||||
    .tap  { |logger| logger.formatter = ::Logger::Formatter.new }
 | 
			
		||||
    .then { |logger| ActiveSupport::TaggedLogging.new(logger) }
 | 
			
		||||
 | 
			
		||||
  # Prepend all log lines with the following tags.
 | 
			
		||||
  config.log_tags = [ :request_id ]
 | 
			
		||||
 | 
			
		||||
  # Info include generic and useful information about system operation, but avoids logging too much
 | 
			
		||||
  # information to avoid inadvertent exposure of personally identifiable information (PII). If you
 | 
			
		||||
  # want to log everything, set the level to "debug".
 | 
			
		||||
  config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info")
 | 
			
		||||
 | 
			
		||||
  # Use a different cache store in production.
 | 
			
		||||
  # config.cache_store = :mem_cache_store
 | 
			
		||||
 | 
			
		||||
  # Use a real queuing backend for Active Job (and separate queues per environment).
 | 
			
		||||
  # config.active_job.queue_adapter     = :resque
 | 
			
		||||
  # config.active_job.queue_name_prefix = "tokitranslate_production"
 | 
			
		||||
 | 
			
		||||
  config.action_mailer.perform_caching = false
 | 
			
		||||
 | 
			
		||||
  # Ignore bad email addresses and do not raise email delivery errors.
 | 
			
		||||
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
 | 
			
		||||
  # config.action_mailer.raise_delivery_errors = false
 | 
			
		||||
 | 
			
		||||
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
 | 
			
		||||
  # the I18n.default_locale when a translation cannot be found).
 | 
			
		||||
  config.i18n.fallbacks = true
 | 
			
		||||
 | 
			
		||||
  # Don't log any deprecations.
 | 
			
		||||
  config.active_support.report_deprecations = false
 | 
			
		||||
 | 
			
		||||
  # Do not dump schema after migrations.
 | 
			
		||||
  config.active_record.dump_schema_after_migration = false
 | 
			
		||||
 | 
			
		||||
  # Enable DNS rebinding protection and other `Host` header attacks.
 | 
			
		||||
  # config.hosts = [
 | 
			
		||||
  #   "example.com",     # Allow requests from example.com
 | 
			
		||||
  #   /.*\.example\.com/ # Allow requests from subdomains like `www.example.com`
 | 
			
		||||
  # ]
 | 
			
		||||
  # Skip DNS rebinding protection for the default health check endpoint.
 | 
			
		||||
  # config.host_authorization = { exclude: ->(request) { request.path == "/up" } }
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										64
									
								
								config/environments/test.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								config/environments/test.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
require "active_support/core_ext/integer/time"
 | 
			
		||||
 | 
			
		||||
# The test environment is used exclusively to run your application's
 | 
			
		||||
# test suite. You never need to work with it otherwise. Remember that
 | 
			
		||||
# your test database is "scratch space" for the test suite and is wiped
 | 
			
		||||
# and recreated between test runs. Don't rely on the data there!
 | 
			
		||||
 | 
			
		||||
Rails.application.configure do
 | 
			
		||||
  # Settings specified here will take precedence over those in config/application.rb.
 | 
			
		||||
 | 
			
		||||
  # While tests run files are not watched, reloading is not necessary.
 | 
			
		||||
  config.enable_reloading = false
 | 
			
		||||
 | 
			
		||||
  # Eager loading loads your entire application. When running a single test locally,
 | 
			
		||||
  # this is usually not necessary, and can slow down your test suite. However, it's
 | 
			
		||||
  # recommended that you enable it in continuous integration systems to ensure eager
 | 
			
		||||
  # loading is working properly before deploying your code.
 | 
			
		||||
  config.eager_load = ENV["CI"].present?
 | 
			
		||||
 | 
			
		||||
  # Configure public file server for tests with Cache-Control for performance.
 | 
			
		||||
  config.public_file_server.enabled = true
 | 
			
		||||
  config.public_file_server.headers = {
 | 
			
		||||
    "Cache-Control" => "public, max-age=#{1.hour.to_i}"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  # Show full error reports and disable caching.
 | 
			
		||||
  config.consider_all_requests_local       = true
 | 
			
		||||
  config.action_controller.perform_caching = false
 | 
			
		||||
  config.cache_store = :null_store
 | 
			
		||||
 | 
			
		||||
  # Raise exceptions instead of rendering exception templates.
 | 
			
		||||
  config.action_dispatch.show_exceptions = :rescuable
 | 
			
		||||
 | 
			
		||||
  # Disable request forgery protection in test environment.
 | 
			
		||||
  config.action_controller.allow_forgery_protection = false
 | 
			
		||||
 | 
			
		||||
  # Store uploaded files on the local file system in a temporary directory.
 | 
			
		||||
  config.active_storage.service = :test
 | 
			
		||||
 | 
			
		||||
  config.action_mailer.perform_caching = false
 | 
			
		||||
 | 
			
		||||
  # Tell Action Mailer not to deliver emails to the real world.
 | 
			
		||||
  # The :test delivery method accumulates sent emails in the
 | 
			
		||||
  # ActionMailer::Base.deliveries array.
 | 
			
		||||
  config.action_mailer.delivery_method = :test
 | 
			
		||||
 | 
			
		||||
  # Print deprecation notices to the stderr.
 | 
			
		||||
  config.active_support.deprecation = :stderr
 | 
			
		||||
 | 
			
		||||
  # Raise exceptions for disallowed deprecations.
 | 
			
		||||
  config.active_support.disallowed_deprecation = :raise
 | 
			
		||||
 | 
			
		||||
  # Tell Active Support which deprecation messages to disallow.
 | 
			
		||||
  config.active_support.disallowed_deprecation_warnings = []
 | 
			
		||||
 | 
			
		||||
  # Raises error for missing translations.
 | 
			
		||||
  # config.i18n.raise_on_missing_translations = true
 | 
			
		||||
 | 
			
		||||
  # Annotate rendered view with file names.
 | 
			
		||||
  # config.action_view.annotate_rendered_view_with_filenames = true
 | 
			
		||||
 | 
			
		||||
  # Raise error when a before_action's only/except options reference missing actions
 | 
			
		||||
  config.action_controller.raise_on_missing_callback_actions = true
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										7
									
								
								config/importmap.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								config/importmap.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
# Pin npm packages by running ./bin/importmap
 | 
			
		||||
 | 
			
		||||
pin "application", preload: true
 | 
			
		||||
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
 | 
			
		||||
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
 | 
			
		||||
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
 | 
			
		||||
pin_all_from "app/javascript/controllers", under: "controllers"
 | 
			
		||||
							
								
								
									
										12
									
								
								config/initializers/assets.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/initializers/assets.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
# Be sure to restart your server when you modify this file.
 | 
			
		||||
 | 
			
		||||
# Version of your assets, change this if you want to expire all your assets.
 | 
			
		||||
Rails.application.config.assets.version = "1.0"
 | 
			
		||||
 | 
			
		||||
# Add additional assets to the asset load path.
 | 
			
		||||
# Rails.application.config.assets.paths << Emoji.images_path
 | 
			
		||||
 | 
			
		||||
# Precompile additional assets.
 | 
			
		||||
# application.js, application.css, and all non-JS/CSS in the app/assets
 | 
			
		||||
# folder are already added.
 | 
			
		||||
# Rails.application.config.assets.precompile += %w( admin.js admin.css )
 | 
			
		||||
							
								
								
									
										25
									
								
								config/initializers/content_security_policy.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								config/initializers/content_security_policy.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# Be sure to restart your server when you modify this file.
 | 
			
		||||
 | 
			
		||||
# Define an application-wide content security policy.
 | 
			
		||||
# See the Securing Rails Applications Guide for more information:
 | 
			
		||||
# https://guides.rubyonrails.org/security.html#content-security-policy-header
 | 
			
		||||
 | 
			
		||||
# Rails.application.configure do
 | 
			
		||||
#   config.content_security_policy do |policy|
 | 
			
		||||
#     policy.default_src :self, :https
 | 
			
		||||
#     policy.font_src    :self, :https, :data
 | 
			
		||||
#     policy.img_src     :self, :https, :data
 | 
			
		||||
#     policy.object_src  :none
 | 
			
		||||
#     policy.script_src  :self, :https
 | 
			
		||||
#     policy.style_src   :self, :https
 | 
			
		||||
#     # Specify URI for violation reports
 | 
			
		||||
#     # policy.report_uri "/csp-violation-report-endpoint"
 | 
			
		||||
#   end
 | 
			
		||||
#
 | 
			
		||||
#   # Generate session nonces for permitted importmap, inline scripts, and inline styles.
 | 
			
		||||
#   config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s }
 | 
			
		||||
#   config.content_security_policy_nonce_directives = %w(script-src style-src)
 | 
			
		||||
#
 | 
			
		||||
#   # Report violations without enforcing the policy.
 | 
			
		||||
#   # config.content_security_policy_report_only = true
 | 
			
		||||
# end
 | 
			
		||||
							
								
								
									
										8
									
								
								config/initializers/filter_parameter_logging.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								config/initializers/filter_parameter_logging.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
# Be sure to restart your server when you modify this file.
 | 
			
		||||
 | 
			
		||||
# Configure parameters to be partially matched (e.g. passw matches password) and filtered from the log file.
 | 
			
		||||
# Use this to limit dissemination of sensitive information.
 | 
			
		||||
# See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors.
 | 
			
		||||
Rails.application.config.filter_parameters += [
 | 
			
		||||
  :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										16
									
								
								config/initializers/inflections.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								config/initializers/inflections.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
# Be sure to restart your server when you modify this file.
 | 
			
		||||
 | 
			
		||||
# Add new inflection rules using the following format. Inflections
 | 
			
		||||
# are locale specific, and you may define rules for as many different
 | 
			
		||||
# locales as you wish. All of these examples are active by default:
 | 
			
		||||
# ActiveSupport::Inflector.inflections(:en) do |inflect|
 | 
			
		||||
#   inflect.plural /^(ox)$/i, "\\1en"
 | 
			
		||||
#   inflect.singular /^(ox)en/i, "\\1"
 | 
			
		||||
#   inflect.irregular "person", "people"
 | 
			
		||||
#   inflect.uncountable %w( fish sheep )
 | 
			
		||||
# end
 | 
			
		||||
 | 
			
		||||
# These inflection rules are supported but not enabled by default:
 | 
			
		||||
# ActiveSupport::Inflector.inflections(:en) do |inflect|
 | 
			
		||||
#   inflect.acronym "RESTful"
 | 
			
		||||
# end
 | 
			
		||||
							
								
								
									
										13
									
								
								config/initializers/permissions_policy.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								config/initializers/permissions_policy.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
# Be sure to restart your server when you modify this file.
 | 
			
		||||
 | 
			
		||||
# Define an application-wide HTTP permissions policy. For further
 | 
			
		||||
# information see: https://developers.google.com/web/updates/2018/06/feature-policy
 | 
			
		||||
 | 
			
		||||
# Rails.application.config.permissions_policy do |policy|
 | 
			
		||||
#   policy.camera      :none
 | 
			
		||||
#   policy.gyroscope   :none
 | 
			
		||||
#   policy.microphone  :none
 | 
			
		||||
#   policy.usb         :none
 | 
			
		||||
#   policy.fullscreen  :self
 | 
			
		||||
#   policy.payment     :self, "https://secure.example.com"
 | 
			
		||||
# end
 | 
			
		||||
							
								
								
									
										31
									
								
								config/locales/en.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								config/locales/en.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
# Files in the config/locales directory are used for internationalization and
 | 
			
		||||
# are automatically loaded by Rails. If you want to use locales other than
 | 
			
		||||
# English, add the necessary files in this directory.
 | 
			
		||||
#
 | 
			
		||||
# To use the locales, use `I18n.t`:
 | 
			
		||||
#
 | 
			
		||||
#     I18n.t "hello"
 | 
			
		||||
#
 | 
			
		||||
# In views, this is aliased to just `t`:
 | 
			
		||||
#
 | 
			
		||||
#     <%= t("hello") %>
 | 
			
		||||
#
 | 
			
		||||
# To use a different locale, set it with `I18n.locale`:
 | 
			
		||||
#
 | 
			
		||||
#     I18n.locale = :es
 | 
			
		||||
#
 | 
			
		||||
# This would use the information in config/locales/es.yml.
 | 
			
		||||
#
 | 
			
		||||
# To learn more about the API, please read the Rails Internationalization guide
 | 
			
		||||
# at https://guides.rubyonrails.org/i18n.html.
 | 
			
		||||
#
 | 
			
		||||
# Be aware that YAML interprets the following case-insensitive strings as
 | 
			
		||||
# booleans: `true`, `false`, `on`, `off`, `yes`, `no`. Therefore, these strings
 | 
			
		||||
# must be quoted to be interpreted as strings. For example:
 | 
			
		||||
#
 | 
			
		||||
#     en:
 | 
			
		||||
#       "yes": yup
 | 
			
		||||
#       enabled: "ON"
 | 
			
		||||
 | 
			
		||||
en:
 | 
			
		||||
  hello: "Hello world"
 | 
			
		||||
							
								
								
									
										35
									
								
								config/puma.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								config/puma.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
# This configuration file will be evaluated by Puma. The top-level methods that
 | 
			
		||||
# are invoked here are part of Puma's configuration DSL. For more information
 | 
			
		||||
# about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html.
 | 
			
		||||
 | 
			
		||||
# Puma can serve each request in a thread from an internal thread pool.
 | 
			
		||||
# The `threads` method setting takes two numbers: a minimum and maximum.
 | 
			
		||||
# Any libraries that use thread pools should be configured to match
 | 
			
		||||
# the maximum value specified for Puma. Default is set to 5 threads for minimum
 | 
			
		||||
# and maximum; this matches the default thread size of Active Record.
 | 
			
		||||
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
 | 
			
		||||
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
 | 
			
		||||
threads min_threads_count, max_threads_count
 | 
			
		||||
 | 
			
		||||
# Specifies that the worker count should equal the number of processors in production.
 | 
			
		||||
if ENV["RAILS_ENV"] == "production"
 | 
			
		||||
  require "concurrent-ruby"
 | 
			
		||||
  worker_count = Integer(ENV.fetch("WEB_CONCURRENCY") { Concurrent.physical_processor_count })
 | 
			
		||||
  workers worker_count if worker_count > 1
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# Specifies the `worker_timeout` threshold that Puma will use to wait before
 | 
			
		||||
# terminating a worker in development environments.
 | 
			
		||||
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
 | 
			
		||||
 | 
			
		||||
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
 | 
			
		||||
port ENV.fetch("PORT") { 3000 }
 | 
			
		||||
 | 
			
		||||
# Specifies the `environment` that Puma will run in.
 | 
			
		||||
environment ENV.fetch("RAILS_ENV") { "development" }
 | 
			
		||||
 | 
			
		||||
# Specifies the `pidfile` that Puma will use.
 | 
			
		||||
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
 | 
			
		||||
 | 
			
		||||
# Allow puma to be restarted by `bin/rails restart` command.
 | 
			
		||||
plugin :tmp_restart
 | 
			
		||||
							
								
								
									
										10
									
								
								config/routes.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								config/routes.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
Rails.application.routes.draw do
 | 
			
		||||
  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
 | 
			
		||||
 | 
			
		||||
  # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
 | 
			
		||||
  # Can be used by load balancers and uptime monitors to verify that the app is live.
 | 
			
		||||
  get "up" => "rails/health#show", as: :rails_health_check
 | 
			
		||||
 | 
			
		||||
  # Defines the root path route ("/")
 | 
			
		||||
  # root "posts#index"
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										34
									
								
								config/storage.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								config/storage.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
test:
 | 
			
		||||
  service: Disk
 | 
			
		||||
  root: <%= Rails.root.join("tmp/storage") %>
 | 
			
		||||
 | 
			
		||||
local:
 | 
			
		||||
  service: Disk
 | 
			
		||||
  root: <%= Rails.root.join("storage") %>
 | 
			
		||||
 | 
			
		||||
# Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
 | 
			
		||||
# amazon:
 | 
			
		||||
#   service: S3
 | 
			
		||||
#   access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
 | 
			
		||||
#   secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
 | 
			
		||||
#   region: us-east-1
 | 
			
		||||
#   bucket: your_own_bucket-<%= Rails.env %>
 | 
			
		||||
 | 
			
		||||
# Remember not to checkin your GCS keyfile to a repository
 | 
			
		||||
# google:
 | 
			
		||||
#   service: GCS
 | 
			
		||||
#   project: your_project
 | 
			
		||||
#   credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
 | 
			
		||||
#   bucket: your_own_bucket-<%= Rails.env %>
 | 
			
		||||
 | 
			
		||||
# Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
 | 
			
		||||
# microsoft:
 | 
			
		||||
#   service: AzureStorage
 | 
			
		||||
#   storage_account_name: your_account_name
 | 
			
		||||
#   storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
 | 
			
		||||
#   container: your_container_name-<%= Rails.env %>
 | 
			
		||||
 | 
			
		||||
# mirror:
 | 
			
		||||
#   service: Mirror
 | 
			
		||||
#   primary: local
 | 
			
		||||
#   mirrors: [ amazon, google, microsoft ]
 | 
			
		||||
		Reference in New Issue
	
	Block a user