railsmaker-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +169 -0
- data/bin/railsmaker +344 -0
- data/lib/railsmaker/generators/app_generator.rb +157 -0
- data/lib/railsmaker/generators/auth_generator.rb +97 -0
- data/lib/railsmaker/generators/base_generator.rb +39 -0
- data/lib/railsmaker/generators/concerns/gsub_validation.rb +24 -0
- data/lib/railsmaker/generators/litestream_generator.rb +89 -0
- data/lib/railsmaker/generators/mailjet_generator.rb +68 -0
- data/lib/railsmaker/generators/opentelemetry_generator.rb +79 -0
- data/lib/railsmaker/generators/plausible_generator.rb +33 -0
- data/lib/railsmaker/generators/plausible_instrumentation_generator.rb +28 -0
- data/lib/railsmaker/generators/sentry_generator.rb +46 -0
- data/lib/railsmaker/generators/server_command_generator.rb +178 -0
- data/lib/railsmaker/generators/signoz_generator.rb +33 -0
- data/lib/railsmaker/generators/signoz_opentelemetry_generator.rb +37 -0
- data/lib/railsmaker/generators/templates/app/credentials.example.yml +14 -0
- data/lib/railsmaker/generators/templates/app/main_index.html.erb +71 -0
- data/lib/railsmaker/generators/templates/auth/app/controllers/omniauth_callbacks_controller.rb +18 -0
- data/lib/railsmaker/generators/templates/litestream/litestream.yml.erb +32 -0
- data/lib/railsmaker/generators/templates/opentelemetry/lograge.rb.erb +9 -0
- data/lib/railsmaker/generators/templates/shell_scripts/plausible.sh.erb +51 -0
- data/lib/railsmaker/generators/templates/shell_scripts/signoz.sh.erb +38 -0
- data/lib/railsmaker/generators/templates/shell_scripts/signoz_opentelemetry.sh.erb +49 -0
- data/lib/railsmaker/generators/templates/ui/app/assets/images/og-image.webp +0 -0
- data/lib/railsmaker/generators/templates/ui/app/assets/images/plausible-screenshot.png +0 -0
- data/lib/railsmaker/generators/templates/ui/app/assets/images/signoz-screenshot.png +0 -0
- data/lib/railsmaker/generators/templates/ui/app/controllers/demo_controller.rb +7 -0
- data/lib/railsmaker/generators/templates/ui/app/controllers/pages_controller.rb +4 -0
- data/lib/railsmaker/generators/templates/ui/app/helpers/seo_helper.rb +39 -0
- data/lib/railsmaker/generators/templates/ui/app/javascript/controllers/flash_controller.js +14 -0
- data/lib/railsmaker/generators/templates/ui/app/javascript/controllers/index.js +11 -0
- data/lib/railsmaker/generators/templates/ui/app/javascript/controllers/scroll_fade_controller.js +27 -0
- data/lib/railsmaker/generators/templates/ui/app/views/clearance_mailer/change_password.html.erb +8 -0
- data/lib/railsmaker/generators/templates/ui/app/views/clearance_mailer/change_password.text.erb +5 -0
- data/lib/railsmaker/generators/templates/ui/app/views/demo/analytics.html.erb +214 -0
- data/lib/railsmaker/generators/templates/ui/app/views/demo/index.html.erb +312 -0
- data/lib/railsmaker/generators/templates/ui/app/views/demo/support.html.erb +147 -0
- data/lib/railsmaker/generators/templates/ui/app/views/layouts/_navbar.html.erb +193 -0
- data/lib/railsmaker/generators/templates/ui/app/views/layouts/application.html.erb +62 -0
- data/lib/railsmaker/generators/templates/ui/app/views/main/index.html.erb +320 -0
- data/lib/railsmaker/generators/templates/ui/app/views/pages/privacy.html.erb +63 -0
- data/lib/railsmaker/generators/templates/ui/app/views/pages/terms.html.erb +54 -0
- data/lib/railsmaker/generators/templates/ui/app/views/passwords/create.html.erb +9 -0
- data/lib/railsmaker/generators/templates/ui/app/views/passwords/edit.html.erb +21 -0
- data/lib/railsmaker/generators/templates/ui/app/views/passwords/new.html.erb +26 -0
- data/lib/railsmaker/generators/templates/ui/app/views/sessions/new.html.erb +49 -0
- data/lib/railsmaker/generators/templates/ui/app/views/shared/_auth_layout.html.erb +24 -0
- data/lib/railsmaker/generators/templates/ui/app/views/shared/_flash.html.erb +19 -0
- data/lib/railsmaker/generators/templates/ui/app/views/shared/_footer.html.erb +52 -0
- data/lib/railsmaker/generators/templates/ui/app/views/shared/_structured_data.html.erb +20 -0
- data/lib/railsmaker/generators/templates/ui/app/views/users/new.html.erb +49 -0
- data/lib/railsmaker/generators/templates/ui/config/sitemap.rb +33 -0
- data/lib/railsmaker/generators/templates/ui/public/icon.png +0 -0
- data/lib/railsmaker/generators/templates/ui/public/icon.svg +5 -0
- data/lib/railsmaker/generators/templates/ui/public/robots.txt +8 -0
- data/lib/railsmaker/generators/ui_generator.rb +68 -0
- data/lib/railsmaker.rb +29 -0
- metadata +359 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
<footer class="bg-base-100 md:pb-0 <%= 'pb-18' unless current_page?(root_path) %>">
|
2
|
+
<div class="container mx-auto px-4 py-8">
|
3
|
+
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
|
4
|
+
<!-- Logo & Description -->
|
5
|
+
<div class="md:col-span-3">
|
6
|
+
<div class="flex items-center gap-2 mb-4">
|
7
|
+
<%= link_to root_path, class: 'flex items-center gap-2 group' do %>
|
8
|
+
<span class="font-bold text-lg">
|
9
|
+
Rails<span class="text-primary">Maker</span>
|
10
|
+
</span>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
<p class="text-base-content/70 mb-4">
|
14
|
+
Launch your next Rails project in minutes, not weeks. Complete with authentication,
|
15
|
+
modern UI components, and production-ready infrastructure meant for quick (and cheap) iteration.
|
16
|
+
</p>
|
17
|
+
<div class="flex gap-4">
|
18
|
+
<%= link_to "https://www.linkedin.com/in/savagerov/", class: "btn btn-ghost btn-sm", target: "_blank" do %>
|
19
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="size-5" viewBox="0 0 24 24" fill="currentColor">
|
20
|
+
<path d="M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z"/>
|
21
|
+
</svg>
|
22
|
+
<% end %>
|
23
|
+
<%= link_to "https://github.com/sgerov/railsmaker", class: "btn btn-ghost btn-sm", target: "_blank" do %>
|
24
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="size-5" viewBox="0 0 24 24" fill="currentColor">
|
25
|
+
<path d="M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.17 6.839 9.49.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.464-1.11-1.464-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.167 22 16.418 22 12c0-5.523-4.477-10-10-10z"/>
|
26
|
+
</svg>
|
27
|
+
<% end %>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<!-- Company -->
|
32
|
+
<div>
|
33
|
+
<h3 class="font-bold mb-4">Company</h3>
|
34
|
+
<ul class="space-y-2">
|
35
|
+
<li><%= link_to "Privacy Policy", privacy_path, class: "link link-hover text-base-content/70" %></li>
|
36
|
+
<li><%= link_to "Terms & Conditions", terms_path, class: "link link-hover text-base-content/70" %></li>
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="border-t border-base-content/10 mt-8 pt-8 text-sm text-base-content/70">
|
42
|
+
<div class="flex flex-col md:flex-row justify-between items-center gap-4">
|
43
|
+
<p>© <%= Time.current.year %> RailsMaker. All rights reserved.</p>
|
44
|
+
<div class="flex gap-4">
|
45
|
+
<%= link_to "https://gerovlabs.com/", target: "_blank" do %>
|
46
|
+
<span>gerovlabs.com</span>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</footer>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<script type="application/ld+json">
|
2
|
+
{
|
3
|
+
"@context": "https://schema.org",
|
4
|
+
"@type": "SoftwareApplication",
|
5
|
+
"name": "RailsMaker",
|
6
|
+
"applicationCategory": "DeveloperApplication",
|
7
|
+
"operatingSystem": "Any",
|
8
|
+
"description": "<%%= meta_description %>",
|
9
|
+
"author": {
|
10
|
+
"@type": "Organization",
|
11
|
+
"name": "RailsMaker",
|
12
|
+
"url": "https://railsmaker.com",
|
13
|
+
"logo": "<%%= asset_url('og-image.webp') %>"
|
14
|
+
},
|
15
|
+
"datePublished": "2025-02-09",
|
16
|
+
"dateModified": "<%%= Time.current.iso8601 %>",
|
17
|
+
"softwareVersion": "0.0.1",
|
18
|
+
"downloadUrl": "https://github.com/sgerov/railsmaker"
|
19
|
+
}
|
20
|
+
</script>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<% content_for :auth_header do %>
|
2
|
+
<h2 class="mt-6 text-3xl font-bold tracking-tight">Create your account</h2>
|
3
|
+
<p class="mt-2 text-sm opacity-75">
|
4
|
+
Start building amazing applications today
|
5
|
+
</p>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<%= render layout: 'shared/auth_layout' do %>
|
9
|
+
<%= form_for @user, class: "space-y-6" do |form| %>
|
10
|
+
<div class="form-control">
|
11
|
+
<%= form.email_field :email, class: "input input-lg input-bordered w-full", placeholder: "you@example.com" %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="form-control mt-8">
|
15
|
+
<%= form.password_field :password, class: "input input-lg input-bordered w-full", placeholder: "password" %>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<% if @user.errors.any? %>
|
19
|
+
<div role="alert" class="alert alert-error bg-error/10 text-error text-sm mt-6">
|
20
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor">
|
21
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
22
|
+
</svg>
|
23
|
+
<span><%= @user.errors.full_messages.to_sentence %></span>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<div class="form-control mt-8">
|
28
|
+
<%= form.submit "Create account", class: "btn btn-primary w-full" %>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div class="divider text-xs uppercase">or continue with</div>
|
32
|
+
|
33
|
+
<div class="form-control">
|
34
|
+
<%= link_to '/auth/google_oauth2', data: { turbo: false }, class: "btn btn-outline w-full" do %>
|
35
|
+
<svg class="w-5 h-5 mr-2" viewBox="0 0 24 24">
|
36
|
+
<path fill="currentColor" d="M21.35,11.1H12.18V13.83H18.69C18.36,17.64 15.19,19.27 12.19,19.27C8.36,19.27 5,16.25 5,12C5,7.9 8.2,4.73 12.2,4.73C15.29,4.73 17.1,6.7 17.1,6.7L19,4.72C19,4.72 16.56,2 12.1,2C6.42,2 2.03,6.8 2.03,12C2.03,17.05 6.16,22 12.25,22C17.6,22 21.5,18.33 21.5,12.91C21.5,11.76 21.35,11.1 21.35,11.1V11.1Z" />
|
37
|
+
</svg>
|
38
|
+
Sign up with Google
|
39
|
+
<% end %>
|
40
|
+
</div>
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
<div class="mt-6 text-center">
|
44
|
+
<p class="text-sm">
|
45
|
+
Already have an account?
|
46
|
+
<%= link_to t(".sign_in"), sign_in_path, class: "link link-hover font-medium" %>
|
47
|
+
</p>
|
48
|
+
</div>
|
49
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
SitemapGenerator::Sitemap.default_host = "https://#{Rails.application.credentials.dig(:app, :host)}"
|
2
|
+
|
3
|
+
SitemapGenerator::Sitemap.create do
|
4
|
+
# Home page with high priority and frequent updates
|
5
|
+
add root_path,
|
6
|
+
changefreq: 'daily',
|
7
|
+
priority: 1.0,
|
8
|
+
lastmod: Time.current
|
9
|
+
|
10
|
+
# Main feature pages
|
11
|
+
add demo_path,
|
12
|
+
changefreq: 'weekly',
|
13
|
+
priority: 0.9,
|
14
|
+
lastmod: Time.current
|
15
|
+
add analytics_path,
|
16
|
+
changefreq: 'weekly',
|
17
|
+
priority: 0.8,
|
18
|
+
lastmod: Time.current
|
19
|
+
add support_path,
|
20
|
+
changefreq: 'weekly',
|
21
|
+
priority: 0.8,
|
22
|
+
lastmod: Time.current
|
23
|
+
|
24
|
+
# Legal pages with lower update frequency
|
25
|
+
add privacy_path,
|
26
|
+
changefreq: 'monthly',
|
27
|
+
priority: 0.6,
|
28
|
+
lastmod: Time.current
|
29
|
+
add terms_path,
|
30
|
+
changefreq: 'monthly',
|
31
|
+
priority: 0.6,
|
32
|
+
lastmod: Time.current
|
33
|
+
end
|
Binary file
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="size-8 text-base-100" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
2
|
+
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
|
3
|
+
<path d="M3.3 7l8.7 5 8.7-5"></path>
|
4
|
+
<path d="M12 22V12"></path>
|
5
|
+
</svg>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsMaker
|
4
|
+
module Generators
|
5
|
+
class UiGenerator < BaseGenerator
|
6
|
+
source_root File.expand_path('templates/ui', __dir__)
|
7
|
+
|
8
|
+
class_option :domain, type: :string, required: true, desc: 'Host domain for the application'
|
9
|
+
class_option :name, type: :string, required: true, desc: 'Name of the application'
|
10
|
+
class_option :analytics, type: :string, desc: 'Domain where Plausible is hosted'
|
11
|
+
class_option :sentry, type: :boolean, default: false, desc: 'Wether Sentry is enabled'
|
12
|
+
|
13
|
+
attr_reader :domain, :name, :host, :app_name, :plausible_enabled, :sentry_enabled
|
14
|
+
|
15
|
+
def initialize(*args)
|
16
|
+
super
|
17
|
+
|
18
|
+
@host = options[:domain]
|
19
|
+
@app_name = options[:name]
|
20
|
+
@plausible_enabled = options[:analytics].present?
|
21
|
+
@sentry_enabled = options[:sentry]
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_seo_capabilities
|
25
|
+
gem 'sitemap_generator', '6.3.0'
|
26
|
+
|
27
|
+
rails_command 'sitemap:install'
|
28
|
+
|
29
|
+
inject_into_file 'Dockerfile', after: "./bin/rails assets:precompile\n" do
|
30
|
+
"\n# Generate sitemap\nRUN SECRET_KEY_BASE_DUMMY=1 bundle exec rails sitemap:refresh\n"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def copy_views
|
35
|
+
directory 'app/views', 'app/views', force: true
|
36
|
+
directory 'app/assets/images', 'app/assets/images', force: true
|
37
|
+
directory 'app/controllers', 'app/controllers', force: true
|
38
|
+
directory 'app/helpers', 'app/helpers', force: true
|
39
|
+
directory 'app/javascript', 'app/javascript', force: true
|
40
|
+
directory 'public', 'public', force: true
|
41
|
+
|
42
|
+
template 'app/views/layouts/application.html.erb', 'app/views/layouts/application.html.erb', force: true
|
43
|
+
template 'config/sitemap.rb', 'config/sitemap.rb', force: true
|
44
|
+
template 'public/robots.txt', 'public/robots.txt', force: true
|
45
|
+
template 'app/views/shared/_structured_data.html.erb', 'app/views/shared/_structured_data.html.erb', force: true
|
46
|
+
end
|
47
|
+
|
48
|
+
def add_routes
|
49
|
+
route <<~ROUTES
|
50
|
+
# Demo pages
|
51
|
+
get "demo", to: "demo#index", as: :demo
|
52
|
+
get "analytics", to: "demo#analytics", as: :analytics
|
53
|
+
get "support", to: "demo#support", as: :support
|
54
|
+
|
55
|
+
# Static pages
|
56
|
+
get "privacy", to: "pages#privacy", as: :privacy
|
57
|
+
get "terms", to: "pages#terms", as: :terms
|
58
|
+
ROUTES
|
59
|
+
end
|
60
|
+
|
61
|
+
def git_commit
|
62
|
+
git add: '.', commit: %(-m 'Add sample UI layer')
|
63
|
+
|
64
|
+
say 'Successfully added sample UI layer', :green
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/lib/railsmaker.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Rails gems
|
4
|
+
require 'rails/generators'
|
5
|
+
require 'rails/generators/rails/app/app_generator'
|
6
|
+
|
7
|
+
# Concerns
|
8
|
+
require 'railsmaker/generators/concerns/gsub_validation'
|
9
|
+
|
10
|
+
# Local generators
|
11
|
+
require 'railsmaker/generators/base_generator'
|
12
|
+
require 'railsmaker/generators/server_command_generator'
|
13
|
+
|
14
|
+
# App generators
|
15
|
+
require 'railsmaker/generators/app_generator'
|
16
|
+
require 'railsmaker/generators/plausible_generator'
|
17
|
+
require 'railsmaker/generators/signoz_generator'
|
18
|
+
require 'railsmaker/generators/signoz_opentelemetry_generator'
|
19
|
+
require 'railsmaker/generators/opentelemetry_generator'
|
20
|
+
require 'railsmaker/generators/plausible_instrumentation_generator'
|
21
|
+
require 'railsmaker/generators/sentry_generator'
|
22
|
+
require 'railsmaker/generators/auth_generator'
|
23
|
+
require 'railsmaker/generators/ui_generator'
|
24
|
+
require 'railsmaker/generators/mailjet_generator'
|
25
|
+
require 'railsmaker/generators/litestream_generator'
|
26
|
+
|
27
|
+
module RailsMaker
|
28
|
+
VERSION = '0.0.1'
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,359 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: railsmaker-core
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sava Gerov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-02-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: clearance
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.9.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.9.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: kamal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.5.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.5.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: lograge
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.14.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.14.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: logstash-event
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.2.02
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.2.02
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mailjet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.8'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.8'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: omniauth
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.1.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.1.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: omniauth-google-oauth2
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.2.1
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.2.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: omniauth-rails_csrf_protection
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.0.2
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.0.2
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: opentelemetry-exporter-otlp
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.29.1
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.29.1
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: opentelemetry-instrumentation-all
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.73.1
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.73.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: opentelemetry-sdk
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 1.7.0
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.7.0
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rails
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 8.0.1
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 8.0.1
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: sentry-rails
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 5.22.4
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 5.22.4
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: sentry-ruby
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 5.22.4
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 5.22.4
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: sitemap_generator
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - '='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 6.3.0
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 6.3.0
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: tailwindcss-rails
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - '='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 4.0.0
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - '='
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: 4.0.0
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: thor
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - '='
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: 1.3.2
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - '='
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: 1.3.2
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: tzinfo-data
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - '='
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: 1.2025.1
|
258
|
+
type: :runtime
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - '='
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: 1.2025.1
|
265
|
+
description: A comprehensive Rails 8 application generator that sets up a modern stack
|
266
|
+
including Tailwind CSS, DaisyUI, Kamal deployment, monitoring, authentication, S3
|
267
|
+
backups,and more.
|
268
|
+
email:
|
269
|
+
- sava@gerov.es
|
270
|
+
executables:
|
271
|
+
- railsmaker
|
272
|
+
extensions: []
|
273
|
+
extra_rdoc_files: []
|
274
|
+
files:
|
275
|
+
- README.md
|
276
|
+
- bin/railsmaker
|
277
|
+
- lib/railsmaker.rb
|
278
|
+
- lib/railsmaker/generators/app_generator.rb
|
279
|
+
- lib/railsmaker/generators/auth_generator.rb
|
280
|
+
- lib/railsmaker/generators/base_generator.rb
|
281
|
+
- lib/railsmaker/generators/concerns/gsub_validation.rb
|
282
|
+
- lib/railsmaker/generators/litestream_generator.rb
|
283
|
+
- lib/railsmaker/generators/mailjet_generator.rb
|
284
|
+
- lib/railsmaker/generators/opentelemetry_generator.rb
|
285
|
+
- lib/railsmaker/generators/plausible_generator.rb
|
286
|
+
- lib/railsmaker/generators/plausible_instrumentation_generator.rb
|
287
|
+
- lib/railsmaker/generators/sentry_generator.rb
|
288
|
+
- lib/railsmaker/generators/server_command_generator.rb
|
289
|
+
- lib/railsmaker/generators/signoz_generator.rb
|
290
|
+
- lib/railsmaker/generators/signoz_opentelemetry_generator.rb
|
291
|
+
- lib/railsmaker/generators/templates/app/credentials.example.yml
|
292
|
+
- lib/railsmaker/generators/templates/app/main_index.html.erb
|
293
|
+
- lib/railsmaker/generators/templates/auth/app/controllers/omniauth_callbacks_controller.rb
|
294
|
+
- lib/railsmaker/generators/templates/litestream/litestream.yml.erb
|
295
|
+
- lib/railsmaker/generators/templates/opentelemetry/lograge.rb.erb
|
296
|
+
- lib/railsmaker/generators/templates/shell_scripts/plausible.sh.erb
|
297
|
+
- lib/railsmaker/generators/templates/shell_scripts/signoz.sh.erb
|
298
|
+
- lib/railsmaker/generators/templates/shell_scripts/signoz_opentelemetry.sh.erb
|
299
|
+
- lib/railsmaker/generators/templates/ui/app/assets/images/og-image.webp
|
300
|
+
- lib/railsmaker/generators/templates/ui/app/assets/images/plausible-screenshot.png
|
301
|
+
- lib/railsmaker/generators/templates/ui/app/assets/images/signoz-screenshot.png
|
302
|
+
- lib/railsmaker/generators/templates/ui/app/controllers/demo_controller.rb
|
303
|
+
- lib/railsmaker/generators/templates/ui/app/controllers/pages_controller.rb
|
304
|
+
- lib/railsmaker/generators/templates/ui/app/helpers/seo_helper.rb
|
305
|
+
- lib/railsmaker/generators/templates/ui/app/javascript/controllers/flash_controller.js
|
306
|
+
- lib/railsmaker/generators/templates/ui/app/javascript/controllers/index.js
|
307
|
+
- lib/railsmaker/generators/templates/ui/app/javascript/controllers/scroll_fade_controller.js
|
308
|
+
- lib/railsmaker/generators/templates/ui/app/views/clearance_mailer/change_password.html.erb
|
309
|
+
- lib/railsmaker/generators/templates/ui/app/views/clearance_mailer/change_password.text.erb
|
310
|
+
- lib/railsmaker/generators/templates/ui/app/views/demo/analytics.html.erb
|
311
|
+
- lib/railsmaker/generators/templates/ui/app/views/demo/index.html.erb
|
312
|
+
- lib/railsmaker/generators/templates/ui/app/views/demo/support.html.erb
|
313
|
+
- lib/railsmaker/generators/templates/ui/app/views/layouts/_navbar.html.erb
|
314
|
+
- lib/railsmaker/generators/templates/ui/app/views/layouts/application.html.erb
|
315
|
+
- lib/railsmaker/generators/templates/ui/app/views/main/index.html.erb
|
316
|
+
- lib/railsmaker/generators/templates/ui/app/views/pages/privacy.html.erb
|
317
|
+
- lib/railsmaker/generators/templates/ui/app/views/pages/terms.html.erb
|
318
|
+
- lib/railsmaker/generators/templates/ui/app/views/passwords/create.html.erb
|
319
|
+
- lib/railsmaker/generators/templates/ui/app/views/passwords/edit.html.erb
|
320
|
+
- lib/railsmaker/generators/templates/ui/app/views/passwords/new.html.erb
|
321
|
+
- lib/railsmaker/generators/templates/ui/app/views/sessions/new.html.erb
|
322
|
+
- lib/railsmaker/generators/templates/ui/app/views/shared/_auth_layout.html.erb
|
323
|
+
- lib/railsmaker/generators/templates/ui/app/views/shared/_flash.html.erb
|
324
|
+
- lib/railsmaker/generators/templates/ui/app/views/shared/_footer.html.erb
|
325
|
+
- lib/railsmaker/generators/templates/ui/app/views/shared/_structured_data.html.erb
|
326
|
+
- lib/railsmaker/generators/templates/ui/app/views/users/new.html.erb
|
327
|
+
- lib/railsmaker/generators/templates/ui/config/sitemap.rb
|
328
|
+
- lib/railsmaker/generators/templates/ui/public/icon.png
|
329
|
+
- lib/railsmaker/generators/templates/ui/public/icon.svg
|
330
|
+
- lib/railsmaker/generators/templates/ui/public/robots.txt
|
331
|
+
- lib/railsmaker/generators/ui_generator.rb
|
332
|
+
homepage: https://railsmaker.com
|
333
|
+
licenses:
|
334
|
+
- MIT
|
335
|
+
metadata:
|
336
|
+
homepage_uri: https://railsmaker.com
|
337
|
+
source_code_uri: https://github.com/sgerov/railsmaker
|
338
|
+
bug_tracker_uri: https://github.com/sgerov/railsmaker/issues
|
339
|
+
documentation_uri: https://github.com/sgerov/railsmaker/blob/main/10-STEPS-TO-PROD.md
|
340
|
+
post_install_message:
|
341
|
+
rdoc_options: []
|
342
|
+
require_paths:
|
343
|
+
- lib
|
344
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - ">="
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: 3.2.0
|
349
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
350
|
+
requirements:
|
351
|
+
- - ">="
|
352
|
+
- !ruby/object:Gem::Version
|
353
|
+
version: '0'
|
354
|
+
requirements: []
|
355
|
+
rubygems_version: 3.5.16
|
356
|
+
signing_key:
|
357
|
+
specification_version: 4
|
358
|
+
summary: Rails 8 app generator with Tailwind, DaisyUI, and Kamal
|
359
|
+
test_files: []
|