Coder Social home page Coder Social logo

unix-notes's Introduction

Standard(?) Unix Notes

Background

I have tried a number of different note systems over the years, from online notes to Vim-wiki and Org-Mode and even just plain old text files. All have their benefits and issues.

More recently I have taken to GPG encrypting my notes in a process to improve my overall security and privacy.

Whilst migrating my passwords into Pass the Standard Unix Password Manager I was intrigued by the simplicity and ease of use in adding, managing and using passwords under this system.

Then this notes system started to brew in the back of my head. What if I replaced the password functionality of pass with a notes system. Sure I could include my notes into pass with it's multi-line ability. But as notes were added it would make accessing and managing my passwords more difficult. So I decided I really needed to keep my passwords and notes separate.

I decided to take the pass shell script and gut it, rename the functions and implement a system to encrypt/decrypt notes.

I use Yubikeys for my encryption and so have ensured that this script works with the Yubikey 5 NFC, Yubikey 4 and the Yubikey NEO.

Features

  • Secure encrypted notes
  • Support for GPG resident keys on Yubikey and PIV cards
  • Easily add, rename, copy and delete notes
  • Import text files as notes directly into your working notebook
  • Switch between notebooks easily
  • Multiple notebooks support. Easily add, rename, copy and delete notebooks
  • Bash Completion for sub commands and note/notebook names

Licence

This application is licensed under the 3 clause BSD licence. See LICENCE for details.

Contributing to the Project

Contributions are welcome. Please see docs/CONTRIBUTING.md for details.

Notes and Notebooks

This Notes system supports multiple notebooks.

  • To manage your notes you simply use the notes command.
  • To manage your notebooks you use the notebook command.

Installing and Uninstalling

Adding or removing this software is easy. See docs/INSTALL.md or UNINSTALL.md for details.

Setup and configuration

After installation you need to setup the environment. Standard Unix Notes does this with environment variables and the notes init command.

Managing Notes

The application manages notes in a similar way that Password-Store manages passwords. To add/edit/import/rename/copy/delete notes you use the appropriate sub-commands.

For example, to add a note you simply use

$ notes add this is my note title

The notes(1) application automatically replaces spaces in the note title with underscores.

For full details of commands available see docs/USING_NOTES.md for details or view the notes(1) man page.

Changing GnuPG encryption keys

Encryption keys do not last forever. From time to time they expire or become unsafe for some reason.

When you need to change the encryption key for a file you would normally decrypt and then re-encrypt it manually. Doing this for a series of files like you have in Notes would be a major pain. We have thought about this scenario and can automate it.

Notes has a special sub-command newkey to change the encryption keys of your notes. Using this command allows you to change the encryption keys for all of your notes at once rather than having to change them manually.

See docs/USING_NOTES.md for details.

Managing Notebooks

You can have multiple notebooks to organise your notes. Each notebook is just a plain UNIX directory and so could be managed by standard UNIX directory tools.

But to make it easier we have provided a tool called notebook that has a series of sub-commands for managing notebooks. See docs/MANAGING_NOTEBOOKS.md for full details of the command and sub-commands.

Journals

Also included is a journal(1) system for encrypted journal entries. See docs/JOURNAL.md for details.

Yubikey Integration

Standard Unix Notes supports GPG Keys on Yubikeys for GPG decryption. For more details see docs/YUBIKEYS.md.

PIV Integration

For more details on the proposed PIV integration see docs/PIV.md


RELEASE NOTES

See docs/RELEASE-NOTES.md for details.

ROADMAP

See docs/ROADMAP.md for details.

PACKAGING

We currently package for the following:

  • Source Tarball with makefile for installing
  • Debian .deb package suitable for Debian and Ubuntu based distributions

We are looking to package for other distributions depending on availability: see docs/PACKAGING.md for details.

BUGS & SECURITY

See docs/SECURITY.md for details on our security policy and docs/BUGS.md for reporting bugs.

unix-notes's People

Contributors

iandstanley avatar inesgor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

inesgor

unix-notes's Issues

Initial features need for release

These are the minimal features for release 1.0

  • GPG encrypted notes
  • add/delete/rename notes
  • multiple notebooks add/delete/rename notebooks
  • re-encrypt with new GPG key

[FEATURE REQUEST] - SHRED temporary files

Currently the user can modify the script to change between no shred (default because shred is not installed on FreeBSD by default)

Most Linux users can modify the script and uncomment the SHREDCMD line and comment out the

I would prefer to see the notes application use SHRED if it is available.

The script should be amended to test for the existence for the shred binary and setup it self to use that if available (and default back to rm if note available)

ROADMAP - Git integration

Allow users to use Git as a subcommand to manage their ~/.notes as a git repository for easy syncing

[FEATURE REQUEST] - Backup command

I would like to have a backup and restore option

BACKUP

To backup the user would issue

notes backup

This would create an archive in the home directory that includes all the notes data in a single gpg encrypted archive.

Backup file named something along the lines of ~/yyyy-mm-dd-hh-mm-notes.backup.tar.gpg (exact format for timestamp TBD)

RESTORE

To restore the user should issue

notes restore filepath/filename

Notes would then decrypt the encrypted archive of the data and restore to the data directory

[BUG] notes import truncates name if filename has a space in it

Describe the bug
The 'notes import' command truncates filenames that include a space in them. A filename called "My File.txt" will be imported as "My.gpg"

The content of the note will still be imported but the filename will be truncated a the first space

This is because of the globbing being used.

[BUG] Spaces in notes filenames

Notes replaces all spaces with underscores in any filename supplied when it creates or imports a note. The same thing happens with notebook directory filenames.

This is to stop the new GPG key re-encryption crashing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.