Skip to content

privapps/notebook

Repository files navigation

Privapp :: Notebook

A Simple End to End Encrypted Notebook / Website & Builder

Privacy is a right, an irrevocable entitlement held by all human beings from the moment of birth. However, the boundary has been crossed systematically over and over again, not to mention about a large population is still living under heavily monitoring and censorship.

This application is an End to End encrypted notebook that can only be viewed, edit, or shared by the permitted user. Unless the E2E key or your device is compromised, no one can view the content.

Use cases

  • Use it as a personal private notebook. For example your daily, family secrects and etc.
  • Personal lock box. You can put your private information such as passport number and etc.
  • Share your notes to some of your friends with limited time.
  • Many more that are not listed here.

App demo

Tip

  • There is a View All utton, which show all pages together. You can use browser's search there to find the information you need
  • If you want to make a link to another notebook, sometimes the browser won't refresh due to the routing did not change. You can add another / in front of /index.html to work around that.

How it Work

  • You create or modify the notebook at your browser from the local computer. Then you can choose to save it as a file, or publish to the web.
  • If you save to a file, you can choose as plain text or enrypted. If you choose to publish to the web,
  • E2E key is used for end-to-end encrypting or decrypting the content. If you don't set that, it would be used as a regular notebook. Note, even if there is no E2E key, from the server-side, the system administrator, network monitor are still not able to decrypt the content, because the encryption and decryption is happening at your browser. And we strongly suggest to set password for better protection.
  • This notebook is fully integrated / compatible with privatebin. You can save the data at privatebin, then decrypt and view it from this app.

Use file as storage

You can read or write a notebook and then save or load from a local file

  • E2E key is strongly recommended as it gives a better protection
  • Once you load the content, you can modify the note or save it with a different E2E key

Use it from the web

  • When creating it, you can write a notebook start from scratch or load it from a pre-saved file
  • There are two ways you can share the notebook
    1. If this app is configured with privatebin, you can directly save it from the app. Then the shareable URL would appear at the top right of your screen.
    2. You can also gather the note data and publish it to a public available privatebin. This app can load from the public URL, and translate it into another URL that you can share. Here is a list of public avaliable privatebin: https://github.com/PrivateBin/PrivateBin/wiki/PrivateBin-Instances-Directory

Sample notes

Demo sites

Here are a few notebook sites public avaliable. They are mainly for demo purpose.

No backend

https://privapps.github.io/notebook/

The above one has no backend, which relays the notes to remote third party privatebin sites.

Privatebin in the same host

https://notebooks-privapps.mybluemix.net/

This one is similar as you host privately as a docker, within kubernetes or in cloud foundry. Note, this site is for demostration purpose, if the node died or recycled, data would be wiped out.

Docker

You can also find docker images at https://hub.docker.com/u/privapps

See build details at https://github.com/privapps/notebook-docker-nginx-fpm-alpine-privatebin

Feedbacks and suggestions

We would love to hear your opinions. Please let us know from Feedback From

Configuration

The configuration is at assets/config.json

Server side / Editable

You can use privatebin as backend. In addition, there is a custom build backend, that you can edit existing notebook, which make it like a wiki / blog. See details at

https://github.com/privapps/notebook-docker-nginx-fpm-alpine-privatebin/

Developer guide

This project was generated with Angular CLI version 13.1.1.

  1. in the root folder, do npm ci
  2. launch the privatebin docker, note here is using the port 9080 docker run -d --restart="always" --read-only -p 9080:8080 -v c:/temp/php:/app privatebin/nginx-fpm-alpine
  3. check the following two files, one is for angular proxy and the other one is the configuration of the apps
\proxy.conf.json
\src\assets\config.json
  1. start developing the app as a regular angular one ng s --proxy-config proxy.conf.json
  2. release ng build --aot --configuration production

Note

To accomplish copy the URL and share to other people, some charecter are replaced in the address bar after #:

  • / is replaced by ___
  • = is replaced by ,
  • ? is replaced by ---

Wish list

  • Multi-languages menu and help doc
  • Implement editiable backend, so existing notebook can be modified
  • Change ngx-md to ngx-markdown

Please donate:

bitcoin:bc1qmyewq7mh03a3sd5zgvvg3y5sqgm5un3e7eayhq?time=1614371109

Thanks for helping the maintainance and further development of the apps. Please stand up to protect privacy, promote the freedom of speach and fight against censorship.