Back to list
radioactive-labs

plutonium-installation

by radioactive-labs

Build production-ready Rails apps in minutes, not days. Convention-driven, fully customizable, AI-ready.

52🍴 7📅 Jan 23, 2026

SKILL.md


name: plutonium-installation description: Installing Plutonium in a Rails application - setup, generators, and configuration

Plutonium Installation

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

OptionDescription
--defaultsEnable common features (login, logout, remember, reset_password)
--kitchen_sinkEnable all available features
--no-allow_signupDisable public signup
--entity=OrganizationCreate 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

  1. Install core

    rails generate pu:core:install
    
  2. Setup authentication (if needed)

    rails generate pu:rodauth:install
    rails generate pu:rodauth:account user
    
  3. Create a portal

    rails generate pu:pkg:portal admin
    
  4. Create resources

    rails generate pu:res:scaffold Post title:string content:text
    
  5. Connect resources to portal

    rails generate pu:res:conn Post --dest=admin_portal
    
  6. Run migrations

    rails db:migrate
    
  7. Mount portal (add to config/routes.rb)

    mount AdminPortal::Engine, at: "/admin"
    
  8. Start server

    rails server
    

Converting Existing Models

For models that already exist in your app:

  1. Include the module:

    class Post < ApplicationRecord
      include Plutonium::Resource::Record
    end
    
  2. Generate supporting files (skips model/migration):

    rails g pu:res:scaffold Post
    
  3. Connect to portal:

    rails g pu:res:conn Post --dest=admin_portal
    

Generator Reference

GeneratorPurpose
pu:core:installInitial Plutonium setup
pu:rodauth:installSetup Rodauth authentication
pu:rodauth:account NAMECreate user account type
pu:rodauth:adminCreate admin account with 2FA
pu:rodauth:customer NAMECreate customer with entity
pu:pkg:package NAMECreate feature package
pu:pkg:portal NAMECreate portal package
pu:res:scaffold NAMECreate resource (model, policy, definition, controller)
pu:res:conn NAMEConnect resource to portal
pu:eject:layoutEject layout files for customization
pu:skills:syncSync Claude Code skills to project
  • plutonium-resource - Resource architecture overview
  • plutonium-rodauth - Authentication setup and configuration
  • plutonium-package - Feature and portal packages
  • plutonium-portal - Portal configuration
  • plutonium-views - Custom pages, layouts, and Phlex components
  • plutonium-assets - TailwindCSS and custom styling
  • plutonium-create-resource - Resource scaffold options
  • plutonium-connect-resource - Portal connection

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon