Skip to content

Commit 1c076f3

Browse files
committed
lots of documentation added
1 parent 93b6e16 commit 1c076f3

15 files changed

+234
-13
lines changed

docs/attribution.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,20 @@ This project would not have been possible without the following tools and servic
2727
* `QubesOS <https://www.qubes-os.org/>`_
2828
* `TAILS <https://tails.boum.org/install/index.en.html>`_
2929
* `Debian <https://www.debian.org/>`_ `GNU <http://www.gnu.org/>`_/`Linux <https://www.kernel.org/>`_
30+
31+
Similar Projects
32+
----------------
33+
34+
The reader may be interested to investigate the following similar projects:
35+
36+
* `USB Kill <https://github.com/hephaest0s/usbkill>`_
37+
* `Silk Guardian <https://github.com/NateBrune/silk-guardian>`_
38+
* `Day Tripper <https://github.com/maltfield/daytripper>`_
39+
* `USBGuard <https://usbguard.github.io/>`_
40+
* `suicideCrypt <https://github.com/MonolithInd/suicideCrypt>`_
41+
* `panic_bcast <https://github.com/qnrq/panic_bcast>`_
42+
* `Nuke My LUKS <https://github.com/juliocesarfort/nukemyluks>`_
43+
* `luksAddNuke <http://lxer.com/module/newswire/view/103692/index.html>`_
44+
* `cryptsetup-nuke-keys <https://gitlab.com/kalilinux/packages/cryptsetup-nuke-keys>`_
45+
* `TAILS Memory Erasure <https://tails.boum.org/contribute/design/memory_erasure/>`_
46+
* `TEDD (Transparent Emergency Data Destruction) <https://bitbucket.org/ausiv4/tedd/src/default/>`_

docs/changelog.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.. _changelog:
2+
3+
Changelog
4+
===========
5+
6+
TODO: include repo's root CHANGELOG file

docs/contributing.rst

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
.. _contributing:
2+
3+
Contributing
4+
================
5+
6+
Thank you for considering to help with the development of BusKill!
7+
8+
As an open-source project, we depend on the work of volunteers to stay alive, and your time helping to improve our project is very much appreciated :)
9+
10+
.. _wishlist:
11+
12+
Wish List
13+
---------
14+
15+
Below is a list of items on our TODO list. If you'd like to help us tackle these tasks, please `contact us <https://buskill.in/contact/>`_ as there may be someone already working on a given task that you may be able to collaborate with.
16+
17+
Please be aware that any contributions you make will be made open-source. See :ref:`license` for more info.
18+
19+
Software
20+
^^^^^^^^
21+
22+
Here's some items on our wish list that you can help contribute to:
23+
24+
#. Translating our app and this documentation to another language
25+
#. Testing our app on many :ref:`supported_platforms`
26+
#. Writing new auxillary triggers, such as
27+
28+
a. A self-destruct trigger for `Veracrypt <https://github.com/BusKill/veracrypt-self-destruct>`_
29+
b. A self-destruct trigger for `BitLocker <https://en.wikipedia.org/wiki/BitLocker>`_
30+
c. A self-destruct trigger for `FileVault <https://en.wikipedia.org/wiki/FileVault>`_
31+
32+
#. `Fix PyInstaller <https://github.com/pyinstaller/pyinstaller/issues/4972>`_ to support `reproducible builds <https://github.com/BusKill/buskill-app/issues/3>`_ on MacOS and Windows
33+
34+
#. Port BusKill to Android
35+
36+
#. Port BusKill to iOS
37+
38+
#. Update appimagetool to `include squashfs-tools v4.4 <https://github.com/AppImage/AppImageKit/issues/929>`_
39+
40+
#. Create a video extension in sphinx that has a `graceful fallback on PDF <https://github.com/brechtm/rinohtype/issues/172>`_ and `printing to paper <https://stackoverflow.com/questions/62682412/video-fall-back-when-printing-to-paper-with-read-the-docs>`_
41+
42+
#. Create a `spreadsheet extension in sphinx <https://stackoverflow.com/questions/62682095/how-to-add-a-spreadsheet-in-read-the-docs>`_ that converts LibreOffice Calc documents (with formulas in them) into csv format (using ``localc``) at build-time for creating `BOM <https://en.wikipedia.org/wiki/Bill_of_materials>`_ tables in reST documents.
43+
44+
Hardware
45+
^^^^^^^^
46+
47+
#. Open-source USB magnetic disconnect (`.stl <https://en.wikipedia.org/wiki/3D_printing>`_ file, `BOM <https://en.wikipedia.org/wiki/Bill_of_materials>`_ w/ link to USB components/magnets/`pogo <https://en.wikipedia.org/wiki/Pogo_pin>`_ connector, build instructions, etc)
48+
#. A simple-as-possible open-source USB peripheral that can send `USB hotplug events <http://libusb.sourceforge.net/api-1.0/group__libusb__hotplug.html#ga00e0c69ddf1fb1b6774dc918192e8dc7>`_ but doesn't have the ability to send data to the machine, including a low-tech guide to `verify the integrity <https://www.bunniestudios.com/blog/?p=5706>`_ of the device.
49+
50+
51+
Donate
52+
--------
53+
54+
Running the BusKill project has many fees, including
55+
56+
#. Server & domain infrastructure fees
57+
#. Code Signing Keys fees
58+
#. Developer account fees (ie: Apple)
59+
60+
If you have more money than free time, you can also help BusKill by making a donation. We accept Bitcoin and Monero.
61+
62+
::
63+
64+
BTC 1DXyJpmu2KQMw2v4QJVzzjZo6f87BBndu6
65+
66+
XMR 4B5ra5N1SN4d7BqDtkxAE5G5kGNz5mA5oCob41RzzoduM1uPAcr7QmNLzXtci5HvtkNXC7SowkxMjUUCXF2hm57MMS4jwkx
67+
68+
Donations of any amount are **greatly** appreciated. Thank you!

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ For information on using the BusKil App, see :ref:`software_usr`.
3131
software_dev/index
3232
security/index
3333
support
34+
contributing
35+
changelog
3436
license
3537
attribution
3638

docs/security/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ This section will detail security-related aspects of the BusKill project.
88
.. toctree::
99
:maxdepth: 3
1010

11+
infrastructure
1112
pgpkeys
1213
tradeoffs
14+
reporting
1315

docs/security/infrastructure.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. _security_infrastructure:
2+
3+
Don't trust the infrastructure
4+
==============================
5+
6+
This website is hosted on `GitHub Pages <https://pages.github.com/>`_. Therefore, it is largely outside of our control.
7+
8+
We don’t consider this a problem, however, since we explicitly distrust the infrastructure. For this reason, we don’t think that anyone should place undue trust in the live version of this site on the Web.
9+
10+
Instead, if you want to obtain your own, trustworthy copy of this website in a secure way, you should clone our `buskill-app repo <https://github.com/buskill/buskill-app>`_, verify the PGP signatures on the commits and/or tags, then either :ref:`render the site on your local machine <documentation_building>` or simply read the source.
11+
12+
We intentionally write our documentation in ReStructuredText so it's readable as plain text for this very reason. We’ve gone to special effort to set all of this up so that no one has to trust the infrastructure and so that the contents of this website are maximally available and accessible.
13+
14+
We believe the best solution is not to attempt to make the infrastructure trustworthy, but instead to concentrate on solutions that obviate the need to do so. We believe that many attempts to make the infrastructure appear trustworthy actually provide only the illusion of security and are ultimately a disservice to real users. Since we don’t want to encourage or endorse this, we make our distrust of the infrastructure explicit.
15+
16+
.. note::
17+
18+
This was adapted from QubesOS's `distrust the infrastructure <https://www.qubes-os.org/faq/#what-does-it-mean-to-distrust-the-infrastructure>`_ philosophy.

docs/security/pgpkeys.rst

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ For more info, see:
1010

1111
.. warning::
1212

13-
This documentation is hosted on GitHub Pages, and `you should not trust <https://www.qubes-os.org/faq/#should-i-trust-this-website>`_ its contents.
13+
This documentation is hosted on GitHub Pages, and :ref:`you should not trust <security_infrastructure>` its contents.
1414

1515
A wise user that's adding our keys to their keyring for the first-time would cross-validate the PGP fingerprint listed on this website against other sources, such as:
1616
* The `official BusKill project website <https://www.buskill.in/>`_
1717
* The `official BusKill keybase account <https://keybase.io/buskill/>`_
1818
* The `official BusKill mastodon account <https://mastodon.social/@buskillin>`_
19-
* The `KEYS file <https://github.com/BusKill/buskill-app/blob/master/KEYS.md>`_ at the root of our GitHub repo
19+
* The `KEYS file <keys_file_>`_ at the root of our GitHub repo
2020
* A popular `gpg keyserver <https://keys.openpgp.org/search?q=releases%40buskill.in>`_
2121
* Your `friends' keyrings <https://en.wikipedia.org/wiki/Web_of_trust>`_
2222

@@ -47,11 +47,14 @@ If you're a developer and would like to include your pgp key in our org's ``KEYS
4747
gpg --list-sigs <your fingerprint>
4848
gpg --export --armor <your fingerprint>
4949

50-
And then append the output to the `KEYS file <https://github.com/BusKill/buskill-app/blob/master/KEYS>`_.
50+
And then append the output to the `KEYS file <keys_file_>`_.
5151

5252
KEYS
5353
----
5454

55-
Our repo's `KEYS file <https://github.com/BusKill/buskill-app/blob/master/KEYS>`_ is shown below
55+
Our repo's `KEYS file <keys_file_>`_ is shown below
5656

5757
.. literalinclude:: ../../KEYS
58+
59+
.. _keys_file: https://github.com/BusKill/buskill-app/blob/master/KEYS
60+

docs/security/reporting.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. _securityreports:
2+
3+
Security-Related Bugs
4+
=====================
5+
6+
Reporting Security Bugs
7+
-----------------------
8+
9+
If you discover a security-related bug that affects the BusKill project, please `contact us <https://www.buskill.in/contact/>`_ ASAP.
10+
11+
For privacy, please don't forget to encrypt your mail and to include your public key so that we can encrypt our response.
12+
13+
.. note::
14+
15+
Please don't encrypt emails to our release PGP keys. Our email-specific PGP keys are available at the above link.
16+
17+
Previous security incidents
18+
---------------------------
19+
20+
For a list of previous security issues and their resolutions, see our :ref:`changelog`

docs/security/tradeoffs.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Trade-offs
55

66
The BusKill app was created for convenience, providing the user with an easy-to-use method of arming, disarming, and configuring BusKill with an intuitive GUI that "just works" on Linux, Windows, and MacOS.
77

8-
Convenience is a trade-off that comes at a cost of reduced security. Using this app requires your computer to not only run hundreds of lines of our code, but also thousands of lines of code from dependant libraries.
8+
Convenience is a trade-off that comes at a cost of reduced security. Using the BusKill app requires your computer to not only run hundreds of lines of our code, but also thousands of lines of code from dependant libraries.
99

1010
The most secure way to run BusKill is using a simple udev config as described here:
1111

docs/software_dev/autodoc.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
.. _autodoc:
22

3-
Source Code
3+
buskill-app
44
===========
55

6+
This section documents the main BusKill app
7+
8+
Source Code
9+
-----------
10+
611
This section documents the source code files and their classes/function using ``autodoc``.
712

813
You can find the sourcecode that this document refers to in the ``src/`` directory on our `github-app repo on github.com <https://github.com/BusKill/buskill-app/tree/master/src>`_

docs/software_dev/contributing.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/software_dev/documentation.rst

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
.. _documentation:
2+
3+
Documentation
4+
=============
5+
6+
This section documents how to update and build the documentation
7+
8+
Continuous Documentation
9+
------------------------
10+
11+
The BusKill project treats documentation-as-code. It is versioned, managed with ``git``, and automatically built and released with our `CI/CD GitHub Actions workflows <https://github.com/BusKill/buskill-app/blob/master/.github/workflows/docs_pages_workflow.yml>`_.
12+
13+
Our documentation is written in `reStructuredText (reST) <https://en.wikipedia.org/wiki/ReStructuredText>`_ and built using `sphinx <https://www.sphinx-doc.org/en/master/>`_ with the `Read The Docs theme <https://github.com/readthedocs/sphinx_rtd_theme>`_. This has the following benefits:
14+
15+
#. reST is human-readable plaintext. It plays nice with a VCS (like ``git``).
16+
17+
a. Plaintext is easier to review for PRs, making malicious PRs easier to detect.
18+
b. It's not necessary to build in order to read. The cryptographically-signed git commit sources can be read directly.
19+
c. Our documentation gets versioned exactly matching our code's release branches.
20+
21+
#. It's trivial for Sphinx to export to `multiple formats <https://www.sphinx-doc.org/en/master/usage/builders/index.html>`_, such as HTML, PDF, EPUB, etc.
22+
23+
#. reST is much more powerful than other human-readable markups.
24+
25+
a. We can define our own `extensions using python <https://www.sphinx-doc.org/en/master/development/tutorials/helloworld.html>`_ to do complex logic like `converting LibreOffice spreadsheets with calculations into tables <https://stackoverflow.com/questions/62682095/how-to-add-a-spreadsheet-in-read-the-docs>`_
26+
27+
#. Sphinx has built-in support for documenting python sourcecode using `autodoc <https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html>`_
28+
29+
Updating
30+
--------
31+
32+
If you'd like to update this documentation, you can `fork <https://docs.github.com/en/github/getting-started-with-github/fork-a-repo>`_ our `repo <https://github.com/buskill/buskill-app>`_, edit the files as-needed in the `docs directory <https://github.com/BusKill/buskill-app/tree/master/docs>`_, and `submit a PR <https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork>`_.
33+
34+
To know which file to edit, click the ``Edit on GitHub`` link on the top-right of the page you wish to edit.
35+
36+
.. _documentation_building:
37+
38+
Building
39+
--------
40+
41+
You can build our documentation on Debian 10 using the following commands
42+
43+
::
44+
45+
apt-get update
46+
apt-get -y install git firefox-esr python3-sphinx python3-sphinx-rtd-theme
47+
48+
git clone https://github.com/BusKill/buskill-app.git
49+
cd buskill-app/docs
50+
51+
make clean
52+
make html
53+
54+
After executing the above commands, you should have a new ``docs/_build/html`` directory. You can open your locally-built documentation in firefox by executing
55+
56+
::
57+
58+
firefox-esr docs/_build/html/index.html

docs/software_dev/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ This section is intended for the developer who wants to modify the source code o
99
:maxdepth: 3
1010

1111
autodoc
12+
documentation
1213
repo
13-
contributing

docs/software_usr/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This section will describe how to use the BusKill App to arm, disarm, and config
88
.. toctree::
99
:maxdepth: 3
1010

11+
requirements
1112
download
1213
gui
1314
cli

docs/software_usr/requirements.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.. _requirements:
2+
3+
System Requirements
4+
===========================
5+
6+
Our app is released as a self-contained executable, including the python interpreter and all other dependencies.
7+
8+
You need about 50 MB of disk space to download the BusKill app, depending on the platform.
9+
10+
.. _supported_platforms:
11+
12+
Supported Platforms
13+
-------------------
14+
15+
The below table shows which Operating Systems that the BusKill app has been tested on.
16+
17+
You can help the BusKill project by testing the BusKill app on other platforms and editing this table. For more info, see :ref:`contributing` and :ref:`documentation`.
18+
19+
+------------+-----------------------------------+-------------------------------------------------------+
20+
| Platform | Version | Remark |
21+
+============+===================================+=======================================================+
22+
| Windows | 10 | Supported |
23+
+------------+-----------------------------------+-------------------------------------------------------+
24+
| MacOS | 10.15 (Catalina) | Supported |
25+
+------------+-----------------------------------+-------------------------------------------------------+
26+
| Linux | Ubuntu 20.04 LTS (Focal Fossa) | Supported |
27+
+------------+-----------------------------------+-------------------------------------------------------+

0 commit comments

Comments
 (0)