
plutonium-installation
by radioactive-labs
Build production-ready Rails apps in minutes, not days. Convention-driven, fully customizable, AI-ready.
SKILL.md
name: plutonium-installation description: Installing Plutonium in a Rails application - setup, generators, and configuration
Plutonium Installation
New Rails App (Recommended)
Use the Rails template for a fully configured setup:
rails new myapp -a propshaft -j esbuild -c tailwind \
-m https://radioactive-labs.github.io/plutonium-core/templates/plutonium.rb
This sets up Rails with Propshaft, esbuild, TailwindCSS, and Plutonium in one command.
Existing Rails App
Option 1: Rails Template
bin/rails app:template \
LOCATION=https://radioactive-labs.github.io/plutonium-core/templates/base.rb
Option 2: Manual Installation
# Add to Gemfile
gem "plutonium"
# Install
bundle install
rails generate pu:core:install
What Gets Generated
After pu:core:install:
app/
├── controllers/
│ ├── plutonium_controller.rb # Base controller
│ └── resource_controller.rb # Resource CRUD base
├── definitions/
│ └── resource_definition.rb # Definition base class
├── interactions/
│ └── resource_interaction.rb # Interaction base class
├── models/
│ └── resource_record.rb # Abstract model base
├── policies/
│ └── resource_policy.rb # Policy base class
└── views/
└── layouts/
└── resource.html.erb # Base layout
config/
├── initializers/
│ └── plutonium.rb # Configuration
└── packages.rb # Package loader
packages/
└── .keep
Base Classes
ResourceController
class ResourceController < PlutoniumController
include Plutonium::Resource::Controller
# Provides: index, show, new, create, edit, update, destroy
# Plus: interactive actions, authorization, query handling
end
ResourcePolicy
class ResourcePolicy < Plutonium::Resource::Policy
def create?
true # Override with your logic
end
def read?
true
end
end
ResourceDefinition
class ResourceDefinition < Plutonium::Resource::Definition
# Add app-wide definition defaults here
end
ResourceRecord
class ResourceRecord < ApplicationRecord
self.abstract_class = true
# Models inherit from this for Plutonium features
end
Authentication Setup
Install Rodauth
rails generate pu:rodauth:install
Create Account Types
# Basic user account
rails generate pu:rodauth:account user
# Admin with 2FA, lockout, audit logging
rails generate pu:rodauth:admin
# Customer with entity association
rails generate pu:rodauth:customer customer
Account Options
| Option | Description |
|---|---|
--defaults | Enable common features (login, logout, remember, reset_password) |
--kitchen_sink | Enable all available features |
--no-allow_signup | Disable public signup |
--entity=Organization | Create associated entity model |
Connect Auth to Controllers
# app/controllers/resource_controller.rb
class ResourceController < PlutoniumController
include Plutonium::Resource::Controller
include Plutonium::Auth::Rodauth(:user) # Add this
end
Creating Your First Resource
rails generate pu:res:scaffold Post user:belongs_to title:string content:text
rails db:migrate
Creating a Portal
rails generate pu:pkg:portal admin
Select authentication when prompted:
- Rodauth account - Use existing auth
- Public access - No authentication
- Bring your own - Custom implementation
Mount the Portal
# config/routes.rb
Rails.application.routes.draw do
mount AdminPortal::Engine, at: "/admin"
end
Connect Resources to Portal
rails generate pu:res:conn Post --dest=admin_portal
Configuration
# config/initializers/plutonium.rb
Plutonium.configure do |config|
config.load_defaults 1.0
# Custom assets (optional)
# config.assets.stylesheet = "custom_stylesheet"
# config.assets.script = "custom_script"
# config.assets.logo = "custom_logo.png"
end
Package System
Packages are loaded from config/packages.rb:
Dir.glob(File.expand_path("../packages/**/lib/engine.rb", __dir__)) { |package| load package }
Create packages in packages/ directory:
- Feature packages - Business logic (
rails g pu:pkg:package blogging) - Portal packages - Web interfaces (
rails g pu:pkg:portal admin)
Post-Installation Checklist
-
Install core
rails generate pu:core:install -
Setup authentication (if needed)
rails generate pu:rodauth:install rails generate pu:rodauth:account user -
Create a portal
rails generate pu:pkg:portal admin -
Create resources
rails generate pu:res:scaffold Post title:string content:text -
Connect resources to portal
rails generate pu:res:conn Post --dest=admin_portal -
Run migrations
rails db:migrate -
Mount portal (add to
config/routes.rb)mount AdminPortal::Engine, at: "/admin" -
Start server
rails server
Converting Existing Models
For models that already exist in your app:
-
Include the module:
class Post < ApplicationRecord include Plutonium::Resource::Record end -
Generate supporting files (skips model/migration):
rails g pu:res:scaffold Post -
Connect to portal:
rails g pu:res:conn Post --dest=admin_portal
Generator Reference
| Generator | Purpose |
|---|---|
pu:core:install | Initial Plutonium setup |
pu:rodauth:install | Setup Rodauth authentication |
pu:rodauth:account NAME | Create user account type |
pu:rodauth:admin | Create admin account with 2FA |
pu:rodauth:customer NAME | Create customer with entity |
pu:pkg:package NAME | Create feature package |
pu:pkg:portal NAME | Create portal package |
pu:res:scaffold NAME | Create resource (model, policy, definition, controller) |
pu:res:conn NAME | Connect resource to portal |
pu:eject:layout | Eject layout files for customization |
pu:skills:sync | Sync Claude Code skills to project |
Related Skills
plutonium-resource- Resource architecture overviewplutonium-rodauth- Authentication setup and configurationplutonium-package- Feature and portal packagesplutonium-portal- Portal configurationplutonium-views- Custom pages, layouts, and Phlex componentsplutonium-assets- TailwindCSS and custom stylingplutonium-create-resource- Resource scaffold optionsplutonium-connect-resource- Portal connection
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon
