You are browsing docs for Avo 2: go to Avo 3

Skip to content



  • Ruby on Rails >= 6.0
  • Ruby >= 2.7
  • api_only set to false. More here.
  • propshaft or sprockets gem
  • Have the secret_key_base defined in any of the following ENV["SECRET_KEY_BASE"], Rails.application.credentials.secret_key_base, or Rails.application.secrets.secret_key_base

Zeitwerk autoloading is required.

When adding Avo to a Rails app that was previously a Rails 5 app you must ensure that it uses zeitwerk for autoloading and Rails 6 defaults.

# config/application.rb
config.autoloader = :zeitwerk
config.load_defaults 6.0

More on this here.

Installing Avo

Use this RailsBytes template for a one-liner install process.

rails app:template LOCATION=''


Take it step by step.

  1. Add gem 'avo' to your Gemfile
  2. Run bundle install.
  3. Run bin/rails generate avo:install to generate the initializer and add Avo to the routes.rb file.
  4. Generate an Avo Resource


This will mount the app under /avo path. Visit that link to see the result.

Install from GitHub

You may also install Avo from GitHub but when you do that you must compile the assets yourself. You do that using the rake avo:build-assets command. When pushing to production, make sure you build the assets on deploy time using this task.

# Rakefile
Rake::Task["assets:precompile"].enhance do


If you don't have the assets:precompile step in your deployment process, please adjust that with a different step you might have like db:migrate.

Mount Avo to a subdomain

You can use the regular host constraint in the routes.rb file.

constraint host: 'avo' do
  mount Avo::Engine, at: '/'

Next steps

Please follow the next steps to ensure your app is secured and you have access to all the features you need.

  1. Set up authentication and tell Avo who is your current_user. This step is required for the authorization feature to work.
  2. Set up authorization. Don't let your data be exposed. Give users access to the data they need to see.
  3. Set up licensing.