GithubHelp home page GithubHelp logo

ragodev / bol Goto Github PK

View Code? Open in Web Editor NEW

This project forked from schollz/bol

0.0 1.0 0.0 4.3 MB

Command-line and web journal that stays synchronized and encrypted across devices

Home Page: https://bol.schollz.com/

License: MIT License

Makefile 4.69% Go 88.03% HTML 7.28%

bol's Introduction

bol 📖

I wanted a notebook that functioned not as a body but as a mind, a notebook that collected, interposed, collaged: a machine whose components could move, whose cogs, chutes, and levers were air. - Patricia Lockwood

bol is a client program for editing and synchronization of encrypted documents. All local and remote files are encrypted with AES-256. The main utility is a command-line program (bol) that lets you write/view encrypted documents using your favorite command-line editor. Synchronization is optional and provided through a server program (bolserver), where updates are pushed/pulled. A public server is available at https://bol.schollz.com. Both utilities are available in the latest release as a self-contained executable binary for most popular OSes and there are no requirements, except a text-editor (either micro, vim, emacs, or nano).

There are many other similar programs, but I adhere to the utility of bol because of its inherent speed, ease of installation, and lack of dependencies.

Install

Download from releases.

Or, if you have Go1.7+, just install via

go get -u -v github.com/schollz/bol/...

Usage

Just run bol from the command line or goto the server (https://bol.schollz.com) to add and view entries.

Delete an entry by editing the entry and replacing the entire entry with ignore entry. Delete a document by making a new entry in that document that says ignore document. However, nothing is really deleted, as bol will save a copy of every entry and change committed to it.

Edit a specific document/entry using the command bol DocumentName/EntryName.

Backup everything to an AES-encrypted JSON file using bol -dump. The dump file user-20ZZ-YY-XX.bol can be decrypted using bol -decrypt user-20ZZ-YY-XX.bol. Erase all local files using bol -clean. This will not remove remote files, there is no way to remove remote files.

Change user or the server, by using bol -config.

Summarize a document using bol -summary.

Server

The server provides a much faster synchronization than can be performed with SSH or typical distributed version control systems (like git).

The server is optional, and only required if you want synchronized entries on multiple computers. bol will function locally with or without Internet. The server is useful if you wish to edit your document on multiple computers, and also will allow you to add new entries via the website.

The default server is a public server, https://bol.schollz.com. You can run your own server simply running bolserver. Then, use bol -config and type in the server address, now http://localhost:9095 or whatever you have your DNS set.

Implementation

The synchronization and encryption is performed using the ssed backend. For more information, see the ssed README. Essentially, bol stores all entries as AES-encrypted JSON files which are then bundled as a tar.bz2 archive which is synchronized with a server. Nothing can ever be deleted (only ignored), and all changes are stored.

Inspiration

Here is some software which are similar to bol, but often require other software or system-specific utilities. I enjoy these software, and used a lot of inspiration from them, but ultimately I found that bol is faster, simpler, and easier to install on many different computers and systems.

  • 13 lines of shell- git-based journal
    No encryption, no editing past entries, no version control, no deletion - but only 13 lines!

  • Cryptpad - zero knowledge realtime encrypted editor in your web browser
    Requires internet access, and a browser, difficult to reconstruct many documents.

  • jrnl.sh- command line journal application with encryption
    Requires Python. Syncing only available via Dropbox which won’t support merging encrypted files if editing offline.

  • ntbk - command line journal
    Requires Node.js. Syncing only available via Dropbox which won’t support merging encrypted files if editing offline.

  • vimwiki - command line editor with capability of distributed encryption
    Requires system-specific filesystem encryption (e.g. eCryptFS). Merges are not handled.

  • Org mode - fast and effective plain-text system for authoring documents
    Requires git.

  • gojot - git-based system for distribution editing of encryption of documents (no longer supported)
    Requires git.

Contributing

I'm open to contributions, submit a pull request.

License

MIT

Analytics

bol's People

Contributors

schollz avatar

Watchers

James Cloos avatar

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.