Marcin Modest Trzaska

docker

Na dzień dobry – brak kawy. Skończyła się. Znaczy ta bezkofeinowa. Placebo z rana. Potem aktualizacja Grimory w Dockerze.

Nic tam nie ruszałem a pełno błędów.

$ sudo docker compose pull && sudo docker compose up -d && sudo docker image prune -f 
yaml: while parsing a block mapping at line 1, column 3: line 22, column 4: did not find expected key

I tak w dwóch miejscach. Wcięcia się nie podobały w docker-compose.yml.

A później — jeszcze lepiej:

$ sudo docker compose pull && sudo docker compose up -d && sudo docker image prune -f 
[+] pull 2/2
 ✔ Image grimmory/grimmory:latest           Pulled                                                                                                                             0.9s
 ✔ Image lscr.io/linuxserver/mariadb:11.4.5 Pulled                                                                                                                             1.1s
[+] up 1/1
 ✘ Contain... Error response from daemon: Conflict. The container name "/mariadb" is already in use by container "52aa973123812b440acab7f257f1c82c11d0955b4f7297cf3df939dbe1dcb12c". You have to remove (or rename) that container to be able to reuse that name. 0.0s
Error response from daemon: Conflict. The container name "/mariadb" is already in use by container "52aa973123812b440acab7f257f1c82c11d0955b4f7297cf3df939dbe1dcb12c". You have to remove (or rename) that container to be able to reuse that name.
$ sudo docker rm -f mariadb && sudo docker compose up -d
mariadb
[+] up 1/2
 ✔ Container mariadb Healthy                                                                                                                                                   5.7s
 ⠸ Container grimory Starting                                                                                                                                                  5.9s
Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint grimory (cbaf0f9b92de56ca146fa409f048a2006818886df531fd5fe37a343f9e2e0244): Bind for 0.0.0.0:6060 failed: port is already allocated
$ sudo docker ps | grep 6060
26dd551ae886   d35cf2753c67                                                     "/usr/local/bin/entr…"   3 weeks ago      Up 3 weeks (healthy)        0.0.0.0:6060->6060/tcp, [::]:6060->6060/tcp                                                          booklore
$ sudo docker rm -f booklore

WTF? Skąd tam się wzięło booklore — przecież kilka miesięcy temu zastąpiłem to właśnie Grimory?!

Ale poszło w końcu:

$ sudo docker compose pull && sudo docker compose up -d && sudo docker image prune -f 
[+] pull 2/2
 ✔ Image lscr.io/linuxserver/mariadb:11.4.5 Pulled                                                                                                                             1.2s
 ✔ Image grimmory/grimmory:latest           Pulled                                                                                                                             1.1s
[+] up 2/2
 ✔ Container mariadb Healthy                                                                                                                                                   0.5s
 ✔ Container grimory Started                                                                                                                                                   0.1s
Deleted Images:
untagged: grimmory/grimmory@sha256:fffd0ae0bfccd64ca00441e8fa58a14e286b9115e5df1cb47eecf294ad09e6ff
deleted: sha256:d35cf2753c677d31165845383f86417225d8a1f3b9126d9ba7312d834d996feb
deleted: sha256:90e89d354d35b795e700b78a50aef55188cdc59d3a3acf7c3bf3feece59c2683

Total reclaimed space: 107.4MB

#docker #grimmory #booklore

— Marcin “czach” Trzaska reply-to: @czach@mastodon.argilus.online

Pierwotnie wpis dotyczący FitPub był jako zapowiedź nowości na Argilusie, ale jest to na tyle ciekawy projekt, że poświęcam mu osobny wpis.

FitPub is a self-hosted fitness tracking platform for the Fediverse. It lets people upload workout files, review their activities with maps and metrics, and share them through ActivityPub instead of locking them into a closed social network.

Muszę przyznać, że z instalacją FitPub była ostra jazda. Coś nie chciało to ruszyć i dopiero z pomocą Gemini AI udało mi się postawić własną instancję. Wrzuciłem do FitPuba całą tegoroczną aktywność z Garmina i… Jakoś to wygląda.

Screenshot 2026 06 17 at 08.55.56

Dodając w ustawieniach klucz API do OpenWeatherMap w aktywności pojawi się informacja o pogodzie z danego dnia.

Screenshot 2026 06 17 at 08.59.03

Problemem chyba jest federacja albo nie wiem co, bo z poziomu mojej instancji GoToSocial nie jestem w stanie dać sobie follow. Nie mogę się też wbić za pomocą klientów takich jak Ivory, czy Ice Cubes — chyba jeszcze brak obsługi.

Mogę dać follow komuś z instancji fitpub.social i działa to też w drugą stronę (sprawdzone ;–)).

Próbowałem też zautomatyzować wrzucanie treningów, bo na razie trzeba to robić ręcznie, ale poległem i jedyne co udało mi się uzyskać, to krótki skrypt do ściągania aktywności z Garmina i ręczne wrzucenie jej do FitPuba. Zawsze coś.

Aplikacja udostępnia kilka ciekawych funkcji dostępnych w komercyjnych aplikacjach.

Activity Dashboard

Screenshot 2026 06 17 at 08.56.58

Personal Records

Screenshot 2026 06 17 at 08.57.12

Training Loads

Screenshot 2026 06 17 at 08.57.44

No i, oczywiście, nie trzeba korzystać z wersji selfhosted. Jest ogólnodostępna instancja FitPub.

Visited Peaks

Zaciekawiony danymi na FitPub.social ściągnąłem na serwer mapę Polski

$ wget https://download.geofabrik.de/europe/poland-latest.osm.pbf

a następnie wrzuciłem ją na swoją instancję:

$ sudo docker compose -f /opt/fitpub/docker-compose.yml run --rm   -v /srv/fitpub/osm/poland-latest.osm.pbf:/data/poland-latest.osm.pbf:ro   --entrypoint java   fitpub   -jar /app/import-peaks.jar --truncate --backfill /data/poland-latest.osm.pbf

I otrzymałem:

2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.f.t.peaks.PlanetPeakImportService    : Peak import summary: entities=272178230, nodes=238757866, candidates=16456, staged=12810, inserted=12810, updated=0, skippedUnnamed=3646, skippedUnsupported=238741410, elevationParsed=10171, elevationMissingOrInvalid=2639
2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Peak import finished successfully
2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Starting peak backfill
2026-06-17T14:34:16.943Z  INFO 1 --- [           main] n.j.fitpub.service.PeakDetectionService  : Starting retroactive peak detection for 91 activities

FitPub znalazł i zrobił update dla wszystkich aktywności.

Visited Peaks

#fitpub #selfhosting #docker #Linux

— Marcin “czach” Trzaska reply-to: @czach@mastodon.argilus.online