Plugin encrypts wiki in database. redmine_wiki_encryptor is compatible with Redmine 3.0 and later.
-
Stop redmine
-
Clone the repository from GitHub to your redmine/plugins directory:
git clone git://github.com/southbridgeio/redmine_wiki_encryptor.git
-
Install all dependencies with:
bundle install
-
Run migration:
bundle exec rake redmine:plugins:migrate
-
Add key (and algorithm optionally) to configuration.yml:
production: wiki_encryptor: key: 'mega-secret-key' algorithm: 'des'
-
Encrypt existing wiki pages:
bundle exec rake wiki_encryptor:encrypt
-
Start redmine
After that you're almost ready to go.
-
Stop redmine
-
Decrypt wiki pages:
bundle exec rake wiki_encryptor:decrypt
-
Change key and/or algorithm in configuration.yml
-
Encrypt existing wiki pages
bundle exec rake wiki_encryptor:encrypt
-
Stop redmine
-
Decrypt wiki pages:
bundle exec rake wiki_encryptor:decrypt
-
Remove 'wiki_encryptor' section from configuration.yml
-
Rollback migration:
bundle exec rake redmine:plugins:migrate VERSION=0 NAME=redmine_wiki_encryptor
-
Remove plugin directory from your redmine/plugins directory
For plugin redmine_elasticsearch can delete wiki page from index. Mark switch as not indexing.
Add permission for role: Administration -> Roles and permissions -> Manager -> Wiki -> Edit indexable
Password must be present in configuration file so Redmine can start. However it's possible to secure the key using the following method:
```
#!/bin/bash
echo -n "Password: "; read password;
sed -i "s/ key: / key: '$password'/g" /opt/redmine/config/configuration.yml
cd /opt/redmine && /opt/redmine/bin/bundle exec unicorn -D -E production -c config/unicorn.rb
sed -i "s/ key: '$password'/ key: /g" /opt/redmine/config/configuration.yml
```
The script above reads the password from standard input, puts it to the configuration file, starts Redmine, then removes the password.
Plugin uses gem attr_encrypted. Available encryption algorithms look there. Default algorithm is aes-256-cbc
Plugin replaces search for text in wiki pages with own implementation, which can be very inefficient and slow on large amount of pages. Except: search with 'titles only' option uses native implementation.
Plugin disables 'cache formatted text' setting forced.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Thanks to all our awesome contributors
Developed by Southbridge.