No description
Find a file
Rodrigo Pinto 1885d43fa6 Added more endpoints and modals
- Added endpoints to create folders, upload files and unlink files and
  folders;
- Added modals to show loading indicators, confirmation and warnings.
2024-12-05 18:25:20 -03:00
docs/source Add top level sequence diagram 2024-11-11 13:24:23 -08:00
packages Added more endpoints and modals 2024-12-05 18:25:20 -03:00
.gitignore QR code generator, update readme 2024-11-29 17:22:29 -03:00
.python-version Initialize project with uv 2024-11-05 11:01:52 -05:00
hello.py Initialize project with uv 2024-11-05 11:01:52 -05:00
pyproject.toml Adding Tahoe-LAFS (conclusion) 2024-11-12 01:09:50 -03:00
README.md QR code generator, update readme 2024-11-29 17:22:29 -03:00
uv.lock Adding Tahoe-LAFS (conclusion) 2024-11-12 01:09:50 -03:00

Private Facts

Private Facts is a web app to track your private info.

Why private facts?

The project intends to be a demonstration of how to use Tahoe-lafs "provider independent privacy".

Installation

Install from source

git clone https://github.com/blaisep/private_facts.git && cd private_facts

Install from (Docker) Image

TBA

a bash code block

SvelteKit

Requirements

  • NodeJs > 20.0
  • Pnpm

Install dependencies and run:

cd packages
pnpm install
pnpm dev --open

Usage

Run using a (OCI) container

A Python code block

Feedback

The project issue tracker is getting migrated. For now, feel free to open an issue and let us know how how to improve.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Install dependencies

uv venv
source .venv/bin/activate
uv pip install -r pyproject.toml

Set up developer environment

Setup a grid:

grid-manager --config ./gm0 create

Initiate Tahoe-LAFS servers (one introducer, two storage servers and a client server, each in a separate terminal window):

Introducer server:

.venv/bin/tahoe create-introducer --listen=tcp --port=6001 --location=tcp:localhost:6001 ./introducer
.venv/bin/tahoe -d introducer run

Two storage servers:

.venv/bin/tahoe create-node --introducer $(cat introducer/private/introducer.furl) --nickname storage0 --webport 6101 --location tcp:localhost:6102 --port 6102 ./storage0
.venv/bin/tahoe create-node --introducer $(cat introducer/private/introducer.furl) --nickname storage1 --webport 6201 --location tcp:localhost:6202 --port 6202 ./storage1
.venv/bin/tahoe -d storage0 run
.venv/bin/tahoe -d storage1 run

Add storage servers to grid and create certificates:

grid-manager --config ./gm0 add storage0 $(cat storage0/node.pubkey)
grid-manager --config ./gm0 add storage1 $(cat storage1/node.pubkey)
grid-manager --config ./gm0 sign storage0 > ./storage0/gridmanager.cert 30
grid-manager --config ./gm0 sign storage1 > ./storage1/gridmanager.cert 30

Edit storage servers to make them announce their certificates to the grid. Edit the tahoe.cfg file in storage0 and storage1:

[storage]
grid_management = true

[grid_manager_certificates]
default = gridmanager.cert

Re-start storage servers.

Client:

.venv/bin/tahoe create-client --introducer $(cat introducer/private/introducer.furl) --nickname webapp --webport 6301 --shares-total=3 --shares-needed=2 --shares-happy=3 ./webapp
.venv/bin/tahoe -d webapp run

Getting ready for your first pull request

Please make sure to update tests as appropriate.

We Manage the project with uv, you don't have to.

License

MIT