Demo Site | Demo Source Code
A modern, responsive admin framework for Ruby on Rails
To start using Trestle, first add it to your application's Gemfile:
gem 'trestle'
Run bundle install
, and then run the install generator to create the initial configuration file and customization hooks:
$ rails generate trestle:install
Then create your first admin resource (assuming you have an existing Article
model):
$ rails generate trestle:resource Article
After restarting your Rails server, visit http://localhost:3000/admin to view your newly created admin. You will find the admin definition in app/admin/articles_admin.rb
ready to customize.
Trestle.resource(:posts) do # Add a link to this admin in the main navigation menu dogroup :blog_management, priority: :first do item :posts, icon: "fa fa-file-text-o"end end # Define custom scopes for the index view scopes doscope :all, default: truescope :publishedscope :drafts, -> { Post.unpublished } end # Define the index view table listing table docolumn :title, link: truecolumn :author, ->(post) { post.author.name }column :published, align: :center do |post| status_tag(icon("fa fa-check"), :success) if post.published?endcolumn :updated_at, header: "Last Updated", align: :centeractions end # Define the form structure for the new & edit actions form do# Organize fields into tabs and sidebarstab :post do text_field :title # Define custom form fields for easy re-use editor :bodyendtab :metadata do # Layout fields based on a 12-column grid row docol(sm: 6) { select :author, User.all }col(sm: 6) { tag_select :tags } endendsidebar do # Render a custom partial: app/views/admin/posts/_sidebar.html.erb render "sidebar"end endend
The following plugins are currently available:
Name | Description | Links |
---|---|---|
trestle-auth | User authentication plugin | GitHub | RubyGems |
trestle-search | Search plugin | GitHub | RubyGems |
trestle-tinymce | TinyMCE (WYSIWYG editor) integration | GitHub | RubyGems |
trestle-simplemde | SimpleMDE (Markdown editor) integration | GitHub | RubyGems |
trestle-sidekiq | Sidekiq integration | GitHub | RubyGems |
trestle-active_storage | Active Storage integration | GitHub | RubyGems |
trestle-mobility | Mobility integration | GitHub | RubyGems |
trestle-omniauth | OmniAuth authentication plugin | GitHub | RubyGems |
trestle-auth-otp | 2FA/OTP user authentication | GitHub | RubyGems |
Please see CONTRIBUTING.md for information on developing and contributing to Trestle.
The gem is available as open source under the terms of the LGPLv3 License.