Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergei-matheson/shellject
Secure storage and injection of environment variables
https://github.com/sergei-matheson/shellject
bash environment-variables gpgme ruby secu
Last synced: about 1 month ago
JSON representation
Secure storage and injection of environment variables
- Host: GitHub
- URL: https://github.com/sergei-matheson/shellject
- Owner: sergei-matheson
- License: mit
- Created: 2015-02-12T22:59:36.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2021-11-10T07:41:52.000Z (about 3 years ago)
- Last Synced: 2024-04-24T16:24:35.875Z (7 months ago)
- Topics: bash, environment-variables, gpgme, ruby, secu
- Language: Ruby
- Homepage:
- Size: 44.9 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Shellject
Store your secret environment variables (API keys, AWS secrets etc.) with GPGME, and inject them into your current shell when needed.
[![Build Status](https://travis-ci.org/sergei-matheson/shellject.svg?branch=master)](https://travis-ci.org/sergei-matheson/shellject)
[![Code Climate](https://codeclimate.com/github/sergei-matheson/shellject/badges/gpa.svg)](https://codeclimate.com/github/sergei-matheson/shellject)
[![Test Coverage](https://codeclimate.com/github/sergei-matheson/shellject/badges/coverage.svg)](https://codeclimate.com/github/sergei-matheson/shellject)
[![Gem Version](https://badge.fury.io/rb/shellject.svg)](http://badge.fury.io/rb/shellject)## Installation
1. Install [GPGTools](https://gpgtools.org) on OSX and create a new key pair, if you don't have one already
1. If you have more than 1 secret key in your keyring, you may want to ensure that the 'default-key' is specified in ~/.gnupg/gpg.conf
1. Then install the gem:
```ruby
# In your Gemfile
gem 'shellject'
```And then execute:
```sh
$ bundle
```Or install it yourself as:
```sh
$ gem install shellject
```*You may need to brew install gpgme on mac, or use your favourite package manager in linux*
4. Finally, run
```sh
$ shellject setup
```
for instructions on how to set up the shell wrapper needed for injection, and, optionally, command-line completion.## Usage
### Creating a new shelljection
1. Create a text file with the shell code you wish to have securely injected. Here's one we prepared earlier:
$ cat my-secret-stuff.sh
>
export SECRET_APIKEY=abc123
export OTHER_VAR=stuff
2. Save the file contents as a shelljection:
$ shellject save --name stuff my-secret-stuff.sh
3. Test the shelljection:
$ shellject load stuffecho $SECRET_APIKEY # "abc123"
echo $OTHER_VAR # "stuff"
4. *REMOVE THE ORIGINAL FILE!*
5. Now, you can securely load the environment variables whenever you wish:$ shellject load stuff
### For further help and options:
`$ shellject --help`
## DevelopmentAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec shellject` to use the code located in this directory, ignoring other installed copies of this gem.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
1. Fork it ( https://github.com/sergei-matheson/shellject/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Test your changes (`bundle exec rake`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create a new Pull Request