First of all add the ActiveAdmin and the Devise gems. Devise is needed because ActiveAdmin will use it as the authentication mechanism.

Gemfile:

gem 'devise', '> 4.x'  
gem 'activeadmin', github: 'activeadmin'  

We install the gems:

bundle install  

Then we modify several files in order to adapt the Rails API application:

app/controllers/application_controller.rb:

  • ActionController::API changed to ActionController::Base
  • Added protection against XSRF attacks.
class ApplicationController < ActionController::Base  
  include ActionController::Serialization

  protect_from_forgery :with => :exception
end  

config/application.rb: We need to change config.api_only to false in order to enable several middleware needed to make Devise work. Otherwise it will always redirect to login page by default.

module YourApp  
  class Application < Rails::Application
    config.api_only = false
  end
end  

Install the ActiveAdmin system in the application (this will create an AdminUser model):

rails generate active_admin:install  

If you want to use an existing model as admin run:

rails generate active_admin:install User  

Create the tables and seed the data:

rails db:migrate  
rails db:seed  

This is the bare minimum that I needed to successfully have the admin page and log into the dashboard.