How to use it
A vault is the encrypted container on Ghostfork — one per git repo. You create a vault, then push your existing git repo into it. How vaults work →
A. Push a new project into a vault
$ gf login --server https://app.ghostfork.io --username <username>
$ gf init-vault my-project
$ mkdir my-project && cd my-project
$ git init -b main
$ echo "# my-project" > README.md
$ git add . && git commit -m "first commit"
$ git remote add origin gf://<username>/my-project
$ git push -u origin main
✓ pushed. encrypted in transit.
B. Push an existing repo into a vault
$ gf login --server https://app.ghostfork.io --username <username>
$ gf init-vault my-project
$ cd <existing project folder>
$ git remote add origin gf://<username>/my-project
$ git push -u origin <branch name>
✓ pushed.
C. Clone on a new machine, same username
$ gf login --server https://app.ghostfork.io --username <username>
$ git clone gf://<username>/my-project
[gf] decrypting locally...
✓ done. your code, intact.
D. Clone with a different username
$ gf login --server https://app.ghostfork.io --username <new-username>
$ gf add-user my-project <new-username>
✓ access granted.
$ git clone gf://<original-owner>/my-project
✓ done. your code, intact.
All encryption and decryption happens locally on your machine. The server holds ciphertext it cannot read.