Archer

Rails console history for Heroku, Docker, and more

Screenshot

Designed for platforms with ephemeral filesystems

Installation

Add this line to your application’s Gemfile:

gem 'archer-rails'

And run:

rails generate archer:install
rails db:migrate

Lastly, update your Gemfile to only include it in environments where you need it:

gem 'archer-rails', group: [:production]

How It Works

Ruby stores console history in a file specified by:

IRB.conf[:HISTORY_FILE]

This file gets lost on ephemeral filesystems. Instead, we store its contents in the database.

Users

Each user can keep their own history. The user determined by ENV["USER"] by default. You can specify a user when starting the console with:

USER=andrew rails console

Confirm it worked with:

Archer.user

Clearing History

Disable saving history for the current session with:

Archer.save_session = false

You should do this when running sensitive commands.

Clear history for current user with:

Archer.clear

Configuration

Change the number of commands to remember

Archer.limit = 200 # default

Change how the user is determined

Archer.user = ENV["USER"] # default

Platform Notes

Heroku

For user-specific history, the command should follow this format:

heroku run USER=andrew rails console

Set up an alias to save yourself some typing

alias hc="heroku run USER=andrew rails console"

Dokku

There’s no way to specify a user at the moment.

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/archer.git
cd archer
bundle install