Package: gthnk
Gthnkis a personal knowledge management system.
Capture your ideas using plain old text files.
Make a journal that lasts 100 years.OverviewGthnkpresents ajournalconsisting of manyentries.Entriesare created using plain old text files, whichGthnkimports once per day.Any text editor can be used to add information toGthnk.Entriesare searchable using the embeddedGthnkserver, which can be accessed with a browser.Plain-text enables backup/restore via hardcopy (e.g. paper) for long-term archival.The easiest way to runGthnkis with Docker.Gthnkalso installs on Windows, Linux, and MacOS systems with Python 3.5+.
See theInstallation documentfor more details.Quick StartUse Docker to run Gthnk with all files stored locally in~/.gthnk.docker run -d --rm \
    --name gthnk \
    -p 1620:1620 \
    -e TZ=America/Toronto \
    -v ~/.gthnk:/opt/gthnk/var \
    iandennismiller/gthnk:0.8The default text file where you will record journal entries is~/.gthnk/journal.txt.Openjournal.txtwith a text editor to add new journal entries.Openhttp://localhost:1620to access the user interface.Journal EntriesUse the journal by editingjournal.txtwith a text editor.
First, insert a date markerYYYY-MM-DDand a blank line to start a new journal day.
Then, insert a time markerHHMMand a blank line to start a journal entry.2020-07-04

0804

This is a simple journal entry.

0805

And this is a separate entry, a minute later.Those two delimiters - date and time followed by a blank line - are all there is to the Gthnk journal file format.
The rest is Markdown.You can add multiple entries per day - and multiple days in a single journal - by inserting date and time markers as you work.Command Line InterfaceWhile the Docker container is running, the Gthnk command line interface is available usingdocker exec.
Create a shell alias to simplify access.alias gthnk="docker exec -it gthnk /opt/gthnk/.venv/bin/gthnk"
gthnk --helpTo view the current journal buffer, usegthnk buffer.To search for a keyword, usegthnk search.Web InterfaceTo interact with the Gthnk journal, connect tohttp://localhost:1620.Click thefast-forwardicon to view the live journal buffer.
As you editjournal.txt, this live buffer will be updated.Once the journals have been rotated, the history of previous days becomes available within the Gthnk Interface.Journal RotationWhen the journal rotates, all the entries are imported fromjournal.txtinto the database.
After import, thejournal.txtfile is wiped.The preferred rotation method method is to use an automatic process likecron,systemd, orlaunchd.
The journal can be manually rotated with the command line interface:gthnk rotate.Beforejournal.txtis wiped, its contents are backed up.
Information is never lost even if there is a problem with rotation.Integration with Text EditorsText editor integrations make it easier to insert journal entries.VS Code:https://marketplace.visualstudio.com/items?itemName=IanDennisMiller.gthnkSublime Text:https://github.com/iandennismiller/sublime-text-gthnkAfter installing the plugin for your editor, the following key combinations are available:Ctrl-Alt-Cmd-N: Insert date marker YYYYMMDDCtrl-Alt-Cmd-M: Insert time marker HHMMCloud SyncYou can sync Gthnk to multiple devices using a cloud file system like Dropbox or Syncthing.
Use thedocker run-vflag to point to your cloud storage:-v${PATH_TO_CLOUD}/gthnk:/opt/gthnk/varA complete example using Dropbox could look like:docker run -d --rm \
    --name gthnk-server \
    -p 1620:1620 \
    -e TZ=America/Toronto \
    -v ~/Dropbox/gthnk:/opt/gthnk/var \
    iandennismiller/gthnk:0.8This configuration supports running Gthnk on a dedicated server, like a local Linux machine, while editing the journal files on devices that are synced via the cloud.To support a laptop and phone, use a custom configuration file.docker run -d --rm \
    --name gthnk-server \
    -p 1620:1620 \
    -e TZ=America/Toronto \
    -v ~/.gthnk/gthnk.conf:/opt/gthnk/.config/gthnk/gthnk.conf \
    -v ~/Dropbox/gthnk:/opt/gthnk/var
    iandennismiller/gthnk:0.8Then edit~/.gthnk/gthnk.confto specify multiple INPUT_FILES.INPUT_FILES = "/opt/gthnk/var/journal-laptop.txt,/opt/gthnk/var/journal-phone.txt"Other Gthnk ResourcesProject repositoryPublic website-website repoRead The Docs-project-docs repoPython Package IndexPresentation: Overview of Gthnk-presentation repoContinuous IntegrationVS Code Extension-repoChrome AppPython-Markdown gthnk journal Extension-mdx_journal repoDocumentationhttp://docs.gthnk.com