PerKeep
Important URLs
TODO
- Setting up your own Cloud Storage with Perkeep and Tailscale | by Selahaddinh | Medium
- LinuxFest Northwest 2018: Perkeep - YouTube
Install the Thing
go version
# 1.21 MINIMUM
git clone https://github.com/perkeep/perkeep.git perkeep.org
cd perkeep.org
go run make.go
cd ~/go/bin
ls
Getting Started
- Install Perkeep
- Add Go path in
.bashrc
or.zshrc
perkeepd
- We need a service file to start this don't we
pk-put init
Reminders
cd ~/.config/perkeep
CLI Tools
perkeepd
pk
pk-deploy
pk-get
pk-mount
pk-put
Actually using the thing
Checkout the UI at localhost:3179/ui/
How do I actually store and retrieve a file in perkeep?
echo "I Like Pie" >> test.md
filenode=`pk-put file ./test.md`
echo $filenode
pk-get $filenode
pk-get -contents $filenode > test2.md
cat test2.md
How do I actually name a file rather than just referencing a hash?
Perkeep thinks in terms of the permanode, that hash, rather than the file name. Files can have titles and tags. For example.
echo "Your Life Matters" >> life.md
filenode=`pk-put blob --permanode --title='life.md' --tag=inspiration ./life.md`
pk-get
**Installing pk-mount **
which pk-mount
pk-mount --help
go install perkeep.org/cmd/pk-mount@latest
Mounting pk-mount file system
# Plz don't run as root, pk-mount okay, but perkeepd NOPE NOPE NOPE
sudo mkdir /mnt/pk
sudo chown $USER:$USER /mnt/pk
# Init Perkeep
pk-put init
pk-put init --newkey
# For local perkeep instance
pk-mount /mnt/pk &
# If you get an error install fuse, AND REBOOT
# Mounting a remote perkeep instance
pk-mount -server http://192.168.133.168:3179 /mnt/pk
pk-mount /home/paul/test/pk2
# Accessing your files
cd /mnt/pk
ls
# test
echo "I Like Pie" >> test.md
filenode=`pk-put file ./test.md`
echo $filenode
pk-get $filenode
pk-get -contents $filenode > test2.md
cat test2.md
# To kill, you can also use `killall`
pkill perkeepd
pkill pk-mount
Now how do we choose what root node to actually mount? Can't do this, turns out this is not actually possible. If you want to do that use virtual links.
cd your_desired_path
ln -s /mnt/pk/roots/SUB_ROOT SUB_ROOT
https://perkeep.org/cmd/pk-mount/
Version Control, Accessing Content form a specific point in time
- Camlistore Time Travel - YouTube
- pk-mount (perkeep/cmd/pk-mount) - Perkeep
- Check the
at
folder, so
cd /mnt/pk/at
ls
cat README.txt
Copy Perkeep ID
cd ~/.config/perkeep
remote_user=root
remote_host=10.10.10.10
scp -r ~/.config/perkeep/ $remote_user@$remote_host:~/.config/
ssh $remote_user@$remote_host
~/.config/perkeep/
sed -i 's/original/new/g' file.txt
User Stories
So what do I want to use perkeep for?
My number one use case for Perkeep is to use it in replacement of dentropydaemon-wiki/Software/List/Obsidian sync. pk-mount can track every file and how it changes within my obsidian vault. I can even still have git stored in there and backed up. Perkeep would work nicely with
Perkeep could be the solution to my cloud storage account. I would like to track all my photos, personal videos, personal documents, data exports, voice recordings, and quantified self information.
I don't need many of my files as raw files. My school notes can be archived, most sources of quantified self data can be archived.
The ebooks and audiobooks would have to be mounted on some sort of file system to work with calibre. It would be nice to do backup and restores to perkeep.
Movies and Music are not stored on the cloud storage drive.
Docker and Perkeep
- You still need to compile for the CLI tools and stuff
- You also need to run perkeepd before you can connect to the server
- docker
- Stepan Pantera / docker-perkeep · GitLab
Notable Conversations
- Update on Perkeep, Brad, Mathieu, Open Collective donations
- https://groups.google.com/g/perkeep/c/rl5PQo5rm4o/m/MaoaRjb7AgAJ
Sources
- by Ben Meier | Medium
- Setting up your own Cloud Storage with Perkeep and Tailscale | by Selahaddinh | Medium