Crypt Wiki - VimWiki with added support for encryption/decryption

Overview

Crypt Wiki - VimWiki with added support for encryption/decryption

This project is meant to solve an issue I have ran into recently. I wanted to have a way of version controlling my notes while also retaining my privacy.

Dependencies

In order to use this repo you will need:

  • Vim
  • VimWiki
  • Python
  • pip : python -m pip install pip
  • python-gnupg : python -m pip install python-gnupg

How to use

In order to use the Crypt Wiki locally, run git clone https://github.com/adriancostin6/crypt-wiki.git.

If you want to version control your notes like I do, simply fork this repository, clone your fork and enjoy version controlled encrypted notes.

How we got here

If you care for it, you can read the Backstory of how we got here. I promise not to bore you too much.

Stop it! Get some help.

All the help you need in order to setup the wiki can be found in the Tutorial section. Some of the topics included are:

Typical workflow I would use

I have provided a couple of placeholder directories for you to see how I would typically organize my notes inside the wiki. This however does not mean that you shouldn't experiment and find a layout that best fits you.

.cryptfile and encryption/decryption

After taking some notes and separating them in a workflow like above, say you want to mark some of the folders for encryption. Let's assume that you want everything under Work and Diary to be encrypted using GPG. For that you will use the cript.py script in this repository.

Firstly, you will need to setup a .cryptfile that contains two lines in it, each specifying the name of a directory you want to encrypt.

An example .cryptfile has been provided that encrypts the work and diary directory.

.cryptfile

work
diary

Secondly, you want to modify the script to include the GPG key identifier and the path to where your GPG folder is stored:

#############################################
# Define these for proper encryption!
gpg = gnupg.GPG(gnupghome=r'path/to/folder')
recipient = "[email protected]"
#############################################

Lastly, to encrypt run python crypt.py -e. After the files have been encrypted you can commit and push to version control as normal.

Decryption happens in a similar manner. Once you clone the repo, run python crypt.py -d.

Day-to-day use

With the proper setup described in the tutorial, opening Vim and using the VimWiki shortcuts will work out of the box, placing you inside the index.md file in this directory, which is the Wiki index. You can choose to delete all the other files such as the Backstory.md, README.md or the tutorial folder, as these have been in order to showcase how the repository works.

Happy wiki-ing!

Owner
Adrian Costin
Adrian Costin
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2.1k Dec 24, 2022
CMS for everyone, easy to deploy and scale, robust modular system with many packages.

Django-Leonardo Full featured platform for fast and easy building extensible web applications. Don't waste your time searching stable solution for dai

97 Nov 17, 2022
A python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs

CMSmap CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. The main purpose of

RazzorBack 1 Oct 31, 2021
Ticket shop application for conferences, festivals, concerts, tech events, shows, exhibitions, workshops, barcamps, etc.

pretix Reinventing ticket presales, one ticket at a time. Project status & release cycle While there is always a lot to do and improve on, pretix by n

pretix 1.3k Jan 01, 2023
A Django blog app implemented in Wagtail

Puput Puput is a powerful and simple Django app to manage a blog. It uses the awesome Wagtail CMS as content management system. Puput is the catalan n

APSL 535 Jan 08, 2023
用Hexo的方式管理WordPress(使用Github Actions自动更新文章到WordPress)

方圆小站Github仓库 ---start--- 目录(2021年02月17日更新) 《刺杀小说家》一个勇士屠恶龙救苍生的故事 衡水的中学为高考服务,996.icu为人民企业家服务 轻薄的代价(纪念不足两岁MacBook轻薄本的陨落) PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,

zhaoolee 166 Jan 06, 2023
A full stack e-learning application, this is the backend using django restframework and docker.

DevsPrime API API Service backing client interfaces Technologies Python 3.9 : Base programming language for development Bash Scripting : Create conven

Nnabue Favour Chukwuemeka 1 Oct 21, 2021
A curated list of awesome packages, articles, and other cool resources from the Wagtail community.

Awesome Wagtail A curated list of awesome packages, articles, and other cool resources from the Wagtail community. Wagtail is a Python CMS powered by

Springload 1.7k Jan 03, 2023
Flask-SQLAlchemy implementation of nested/threaded comment replies.

Threaded comments using Common Table Expressions (CTE) for a MySQL Flask blog or CMS Credits to peterspython Also read more about the implementation h

ONDIEK ELIJAH OCHIENG 5 Nov 12, 2022
A full-stack clone of Instagram, allowing the user to interact with posts and other users.

This project is a full-stack clone of Instagram, allowing the user to interact with posts and other users

Alejandro Carrizosa Grant 4 Feb 14, 2022
Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS.

Kotti Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System c

Kotti 394 Jan 07, 2023
ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers online.

ConnectLearn ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers o

Aditya 5 Oct 24, 2021
A self-hosted application that lets you create podcast RSS feeds from YouTube playlists

Playlist2Podcast A self-hosted application that lets you create podcast RSS feeds from YouTube playlists. What Does This Do? Takes a list of YouTube p

Simon 12 Nov 14, 2022
A Django-based CMS with a focus on extensibility and concise code

FeinCMS - An extensible Django-based CMS When was the last time, that a pre-built software package you wanted to use got many things right, but in the

FeinCMS 847 Jan 07, 2023
The lektor static file content management system

Lektor Lektor is a static website generator. It builds out an entire project from static files into many individual HTML pages and has a built-in admi

Lektor CMS 3.6k Dec 29, 2022
A plugin for Wagtail CMS, to have Icon Blocks (Fontawesome support)

WAGTAIL ICONIFY Library developed for Wagtail CMS, its purpose is to provide icon blocks from various libraries Special thanks to Alex Gleason, as wel

2 Jun 07, 2022
Django e-commerce website with Advanced Features and SEO Friendly

MyTech® - Your Technology Django e-commerce website with Advanced Features and SEO Friendly Images and Prices are only used for Demo purpose and does

28 Dec 21, 2022
Abilian Social Business Engine - an enterprise social networking / collaboration platform.

About Abilian SBE (Social Business Engine) is a platform for social business applications, and more specifically collaborative / enterprise 2.0 busine

Abilian open source projects 63 Dec 29, 2022
E-Commerce Platform

Shuup Shuup is an Open Source E-Commerce Platform based on Django and Python. https://shuup.com/ Copyright Copyright (c) 2012-2021 by Shoop Commerce L

Shuup 2k Jan 07, 2023
Django content management as it should be

Django content management as it should be. Documentation Read the full documentation or get a quick brief below. Install $ pip install djedi-cms Confi

5 Monkeys 75 Dec 13, 2022