piblog/src/piblog.md

355 lines
12 KiB
Markdown

---
title: piblog
subtitle: adventures with my raspberry pi
author: dozens
toc-title: entries
---
## about
Hi! This is my journal
about my experiences,
exploits,
and hijinks
while setting up a raspberry pi homelab.
it is a Pi 3 Model B named guyute
- www: tilde.town/~dozens
- email: dozens@tilde.team
- fedi: @dozens@tiny.tilde.website
- irc: dozens on {libera,tilde}.chat
- webring:
<a href="https://tilde.town/~dozens/webring/dozens/index.html?name=piblog&dir=prev">prev</a>
<a href="https://tilde.town/~dozens/webring/dozens/index.html">index</a>
<a href="https://tilde.town/~dozens/webring/dozens/index.html?name=piblog&dir=next">next</a>
<!-- BEGIN //-->
## <time>2023-11-13</time> - audiobooks
okay so tomasino reminded me today that i used to love listening to audiobooks.
https://labs.tomasino.org/audiobooks/
but i haven't done it as fanatically as i used to in a long time.
for a while, i didn't have a commute.
and now i do, but i often carpool.
but sometimes i have a solo, quiet commute.
ideal for some audiobooks!
further complications:
i am unable to download and archive audiobooks from overdrive the same way i used to be able to.
because they barely support their desktop apps anymore,
and instead push really hard for everybody to use their streaming apps.
but i learned that if i spoof my user-agent
https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/
then i can get a 'Have overdrive for mac/windows?' link upon checkout
that will enable me to download the odm file.
which i can then use to download the mp3s thanks to this special little script.
https://github.com/jamestomasino/dotfiles-minimal/blob/master/bin/overdrive
so that's great!
while i was troubleshooting all of this,
i downloaded a book to my linux laptop,
because the download link is already readily available there,
and then transferred it over to the pi.
so now i guess i'm going to start collecting and archiving audiobooks on the pi too!
i might look into jellyfin in earnest so i can serve them
and download them over my home network.
i might also have to start really considering a vpn
so i can access my files away from the house.
## <time>2023-11-07</time> - add email to calibre-web
just a quick note to look into configuring email for calibre-web
so i can send books direct to my kindle
whoa this fork looks really great
compared to what i have
<https://github.com/janeczku/calibre-web>
the ui looks good
and it has single click send to e-mail
and also "Magic Link" login for easy access on eReaders..
that's great.
what is that i'm running?
just the base `calibre-server` that comes with the calibre package in apt.
okay new goal: install and run `calibre-web`,
and stop using `calibre-server`?
## <time>2023-10-28</time> - abduco + dvtm = tmux replacement?
i can't remember how i fell down this rabbit hole..
i think it's because elly had been talking about dtach over on #tildetown,
which is a utility that just provides the attach/detach
functionality of tmux.
so anyway i started using abduco + dvtm on my pi
just to test it out
and see what it was like
and i quite like it!
dvtm especially is kind of nice
as a tiling window manager for the terminal.
abduco isn't in the package repository at work,
but i started using dtach + dvtm this week.
we'll see if i stick with it.
pretty nice so far!
- <https://www.brain-dump.org/projects/abduco/>
- <https://www.brain-dump.org/projects/dvtm/>
- <https://github.com/crigler/dtach>
## <time>2023-10-11</time> - jellyfin
just a quick note to remind myself to check out jellyfin
<https://jellyfin.org/>
a media server alternative to plex
that is supposed to be much lighter and more simple
than plex.
## <time>2023-09-29</time> - DeDRM
shelled into the pi and curled the latest DeDRM tools release
https://github.com/noDRM/DeDRM_tools/releases/tag/v10.0.3
but i kept getting an empty file for some reason?
no matter, downloaded it to my laptop and `scp`d it
unzipped it on the pi and
```
calibre-customize --add DeDRM.zip
```
it wasn't working at that point because i didn't have any keys defined in the `dedrm.json` so I `scp`d my config json from my laptop to `.config/calibre/plugins/DeDRM`. at this point, i'm still unable to open the book after adding it via the web ui. but when i `calibredb --add book.epub --with-library=books --duplicates` on the pi terminal, it adds it. (`--duplicates` is necessary only in this test instance because---oops!---turns out i already have this book in my library, but i am determined to use this opportunity to set up DeDRM. i will delete the duplicate later.) I can't verify in the web ui though because it's not showing the duplicate. must have merged it with the old one.
oh well. i'll try it again next time i get a book from the library. shortest wait: currently 6 weeks.
actually no, let's just go checkout an Available Now book. Song of Achilles. I liked Circe. Let's get this one.
- confirmed: can add the book via web ui, but not open or read it because of drm
- confirmed: can scp the book to the pi, `calibre add book.epub --with-library=books` and get an `Added book ids: <id>` message
- confirmed: new book does NOT show up in web ui after killing and restarting the daemon
- confirmed: the book IS there:
```
$ calibredb list --search='id:3' --with-library=books
id title authors
3 The Song of Achilles Madeline Miller
$ #wtf
```
what the hell. does `calibre-server` has a db cache or something? i don't see anything
https://manual.calibre-ebook.com/generated/en/calibre-server.html
i give up for now
~
to kill the process:
```
ps aux | grep calibre
```
and then kill the id
removing the dulplicate:
```
calibredb search 'title:"world we make"' --with-library=books
> 1,2
calibredb list --search 'id:2' --with-library=books
> (book info)
calibredb list --search 'id:1' --with-library=books
> (book info)
calibredb remove 2
```
tags: #calibre #drm
## <time>2023-09-29</time> - reboot
been uploading photos and books, and editing metadata for my rpgs.
pi became unresponsive last night / this morning to web and ssh so rebooted this morning and restarted web services. everything seems to be fine now.
found these resources recently and consider them next steps on my todo list:
- Add deDRM tools for CLI so I can upload library books. I can pretty much delete local calibre after this. https://github.com/noDRM/DeDRM_tools/blob/master/CALIBRE_CLI_INSTRUCTIONS.md
- Be your own CA Authority! which initially sounds to me like not that good of an idea, but then I can use `https` for my local webservices. https://jamielinux.com/docs/openssl-certificate-authority/
- still want to install a reverse proxy (lapis + openresty?) so i can hit canonical urls instead of typing in address + port number. this would make it easier to share URLs with household members. NOTE: do i want a local DNS server??
Incidentally, mDNS seemed to just magically start working on its self at some point. I can hit my pi's url on macbook and on my phone now. weeeeeird
tags: #reboot #mdns
## <time>2023-09-13</time> - rpg library
tried searching for an rpg that i know is in my collection and couldn't find it by title or by author.
this is going to be really painful until i update the metadata on everything.
i've done about 60 so far. out of 1.4k. big yikes!
tags: #calibre #rpg #metadata
## <time>2023-09-12</time> - mDNS
still can't hit any multi DNS urls on any of my devices.
not a solution but a workaround (for desktop only): added a line to `/etc/hosts` on my MBP:
```
192.168.0.83 pi.local
```
and now i can hit e.g. calibre with http://pi.local:8080
maybe i can configure something on my actual router?
tags: #mdns
## <time>2023-09-11</time> - miniflux
rss reader!
one thing i would like to be able to do
is to read my rss feeds on my computer
and on my phone
and on my tablet,
and have my un/read status sync between decives.
which i guess means hosting a feed reader!
i glanced at `awesome-selfhosted`
and then asked some of my friends in the basement
because i know that they have already undertaken
great adventures in rss,
trailblazers that they are.
and they recommended miniflux.
written in go, and it uses postgres.
luckily they have a docker image so i don't have to install either.
the docker-compose file on their installation instructions is a little out of date,
but you can find a more correct 'basic.yml' on github at `miniflux/v2`
after a few tweaks,
it is installed and running!
the ui is super minimal.
i'm sure i'll grow to like it,
but at the moment
i am missing the classic
three-pane "feeds / entries / content" view.
Up next:
- gemini/gopher server? just for fun
- nginx reverse proxy: i have three services running on three ports now. i want a proxy for more easiy routing between these. i choose nginx because lua, so i can fennel
tags: #rss #feeds #miniflux
## <time>2023-09-08</time> - calibre
had to add the upstream debian bullseye repo to install `calibre-server`. (and then remove it.) got the web server up and running pretty easy.
fussed around for a while trying to make a second calibre library out of my rpg collection. here's what ended up working:
create a new dir and then `calibredb add path/to/file.pdf --library-path new/library/location`. adding a single file this way created the necessary database file. then i was able to `find rpgsbak -type f -name '*.pdf' -exec -I {} calibredb add {} --library-path new/library/loction`. (or something like that; wrote the command just now from memory.) and pull all my pdfs in!
so now i have 1.4k pdfs in a new 'rpgs' library alongside my 'books' library.
on the whole, hobby ttrpg creators can stand to get a LOT better at exporting metadata with their pdfs. now i have a whole lot of manual updating to do. but i can read books and pdfs now from my calibre library on any device on the network.
also adding new items via the web ui is pretty easy!
TODO: disable converting to epub on 'read' for rpg library. 'download' to read still works great for reading in the meantime.
tags: #calibre
## <time>2023-09-03</time> - photoprism
browsed the photo hosting options on `awesome-selfhosted` on github and decided on photoprism
it has a docker image and i was able to get it working no problem, with no modifications. quick and easy. this is the future containers promised us.
the ui is slow. i have the number of workers cranked down to 1. might bump it to 2.
i had been rsyncing photos to the pi and then reindexing the collection. but i'm finding it quicker to do a bulk upload using the web ui. it's working rather reliably. it still has to reindex on upload, but i no longer have to reindex the entire collection.
tags: #photos #photoprism
## <time>2023-08-30</time> - git
Add a "git" user. Create a home dir for it. Do `git init --bare repo.git`.
Copy my ssh key over and add an entry to `.ssh/config`:
```
21 │ Host git
22 │ Hostname 192.168.0.83
23 │ User git
24 │ IdentityFile ~/.ssh/id_rsa
```
Now I can `git remote add pi git:repo.git` in a local repo and push away!
tags: #git
## <time>2023-08-28</time> - Hello World
Okay let's get this party started!
I have a raspberry pi model 3b that has been gathering dust in a drawer for a couple years now.
I decided I wanted to dust it off and use it to backup some photos and some files.
I bought a 4TB external hard drive and a 128gb microSD card and hooked it all up.
I downloaded the NOOBS installer from raspberrypi.com/software and installed it on the SD card, which I was able to do because I have a ton of dongles thanks to the fact that my MacbookPro has no peripherals. I popped the card in to the pi, connected my usb keyboard and hdmi monitor and booted it up, and went through the setup.
Then, after testing that I can ssh into the pi, I unplugged my keyboard and monitor and never plugged them back in again.
Plugged in my hard drive and formatted it with an ext3 filesystem.
Created a backup user. (Not a spare user in case of emergencies, but a user specifically for creating backups.)
Copied my ssh keys over:
```
ssh-copy-id -i ~/.ssh/id_rsa pi.local
```
Mounted the drive, added it to `/etc/fstab` so it will auto-mount, and added a slight delay to the boot command so that there is time for the drive to mount before the system boots. As suggested here:
<https://howtoforge.com/tutorial/raspberry-pi-as-backup-server-for-linux-and-windows/>
Copied over my first photo export and my calibre library with an `rsync -zaP`.
Messed around with mDNS and avahi-daemon because I can't hit http://pi.local in the browser. Still haven't figured this out.
tags: #mdns #getting-started
<!-- END //-->