<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>selfhosting &amp;mdash; Marcin &#34;czach&#34; Trzaska</title>
    <link>https://blog.argilus.online/czach/tag:selfhosting</link>
    <description>Piszę, co mi przyjdzie do głowy. Na tematy różne.</description>
    <pubDate>Wed, 08 Jul 2026 10:57:03 +0200</pubDate>
    <item>
      <title>FitPub</title>
      <link>https://blog.argilus.online/czach/fitpub</link>
      <description>&lt;![CDATA[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.&#xA;&#xA;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.&#xA;&#xA;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ę.&#xA;Wrzuciłem do FitPuba całą tegoroczną aktywność z Garmina i… Jakoś to wygląda. &#xA;&#xA;Screenshot 2026 06 17 at 08.55.56&#xA;&#xA;Dodając w ustawieniach klucz API do OpenWeatherMap w aktywności pojawi się informacja o pogodzie z danego dnia.&#xA;&#xA;Screenshot 2026 06 17 at 08.59.03&#xA;&#xA;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.&#xA;&#xA;Mogę dać follow komuś z instancji fitpub.social i działa to też w drugą stronę (sprawdzone ;-)).&#xA;&#xA;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ś. &#xA;&#xA;Aplikacja udostępnia kilka ciekawych funkcji dostępnych w komercyjnych aplikacjach.&#xA;&#xA;Activity Dashboard&#xA; &#xA;Screenshot 2026 06 17 at 08.56.58&#xA;&#xA;Personal Records&#xA;&#xA;Screenshot 2026 06 17 at 08.57.12&#xA;&#xA;Training Loads&#xA;&#xA;Screenshot 2026 06 17 at 08.57.44&#xA;&#xA;No i, oczywiście, nie trzeba korzystać z wersji selfhosted. Jest ogólnodostępna instancja FitPub.&#xA;&#xA;Visited Peaks&#xA;&#xA;Zaciekawiony danymi na FitPub.social ściągnąłem na serwer mapę Polski &#xA;$ wget https://download.geofabrik.de/europe/poland-latest.osm.pbf&#xA;a następnie wrzuciłem ją na swoją instancję:&#xA;$ 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&#xA;I otrzymałem:&#xA;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&#xA;2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Peak import finished successfully&#xA;2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Starting peak backfill&#xA;2026-06-17T14:34:16.943Z  INFO 1 --- [           main] n.j.fitpub.service.PeakDetectionService  : Starting retroactive peak detection for 91 activities&#xA;FitPub znalazł i zrobił update dla wszystkich aktywności.&#xA;&#xA;Visited Peaks &#xA;&#xA;#fitpub #selfhosting #docker #Linux&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Pierwotnie wpis dotyczący <em>FitPub</em> był jako zapowiedź nowości na Argilusie, ale jest to na tyle ciekawy projekt, że poświęcam mu osobny wpis.</p>

<pre><code>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.
</code></pre>

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

<p><a href="https://blgpht.argilus.online/api/files/69/original/Screenshot_2026-06-17_at_08.55.56.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/69/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.55.56.png" alt="Screenshot 2026 06 17 at 08.55.56"></a></p>

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

<p><a href="https://blgpht.argilus.online/api/files/68/original/Screenshot_2026-06-17_at_08.59.03.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/68/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.59.03.png" alt="Screenshot 2026 06 17 at 08.59.03"></a></p>

<p>Problemem chyba jest federacja albo nie wiem co, bo z poziomu mojej instancji <a href="https://codeberg.org/superseriousbusiness/gotosocial#what-is-gotosocial" rel="nofollow"><em>GoToSocial</em></a> nie jestem w stanie dać sobie follow. Nie mogę się też wbić za pomocą klientów takich jak <em>Ivory</em>, czy <em>Ice Cubes</em> — chyba jeszcze brak obsługi.</p>

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

<p>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ś.</p>

<p>Aplikacja udostępnia kilka ciekawych funkcji dostępnych w komercyjnych aplikacjach.</p>

<h2 id="activity-dashboard">Activity Dashboard</h2>

<p><a href="https://blgpht.argilus.online/api/files/65/original/Screenshot_2026-06-17_at_08.56.58.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/65/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.56.58.png" alt="Screenshot 2026 06 17 at 08.56.58"></a></p>

<h2 id="personal-records">Personal Records</h2>

<p><a href="https://blgpht.argilus.online/api/files/66/original/Screenshot_2026-06-17_at_08.57.12.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/66/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.57.12.png" alt="Screenshot 2026 06 17 at 08.57.12"></a></p>

<h2 id="training-loads">Training Loads</h2>

<p><a href="https://blgpht.argilus.online/api/files/71/original/Screenshot_2026-06-17_at_08.57.44.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/71/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.57.44.png" alt="Screenshot 2026 06 17 at 08.57.44"></a></p>

<p>No i, oczywiście, nie trzeba korzystać z wersji selfhosted. Jest ogólnodostępna instancja <a href="https://fitpub.social" title="FitPub.social" rel="nofollow">FitPub</a>.</p>

<h2 id="visited-peaks">Visited Peaks</h2>

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

<pre><code>$ wget https://download.geofabrik.de/europe/poland-latest.osm.pbf
</code></pre>

<p>a następnie wrzuciłem ją na swoją instancję:</p>

<pre><code>$ 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
</code></pre>

<p>I otrzymałem:</p>

<pre><code>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
</code></pre>

<p><em>FitPub</em> znalazł i zrobił update dla wszystkich aktywności.</p>

<p><img src="https://blgpht.argilus.online/api/files/72/original/Screenshot_2026-06-17_at_16.41.32.png" alt="Visited Peaks" title="Visited Peaks"></p>

<p><a href="/czach/tag:fitpub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">fitpub</span></a> <a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a> <a href="/czach/tag:docker" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">docker</span></a> <a href="/czach/tag:Linux" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Linux</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/fitpub</guid>
      <pubDate>Wed, 17 Jun 2026 14:51:34 +0000</pubDate>
    </item>
    <item>
      <title>Dvinyl, FitPub…</title>
      <link>https://blog.argilus.online/czach/dvinyl-fitpub</link>
      <description>&lt;![CDATA[czyli nowości w argilusowym ogródku.&#xA;&#xA;Dvinyl&#xA;&#xA;Na pierwszy ogień poszła aplikacja do organizowania sobie nośników przyjemności: ;-)&#xA;&#xA;płyt winylowych&#xA;kaset magnetofonowych&#xA;płyt CD&#xA;kpłyt DVD&#xA;książek&#xA;gier &#xA;&#xA;Jak na razie zdecydowałem się jedynie na moduł płyt winylowych, bo tych mam mniej do ogarnięcia. ;-) &#xA;No i trzeba zakładać konta w serwisach typu Discogs. &#xA;&#xA;Miałem dwa podejścia do instalacji. Za pierwszym razem mi się nie udało. Niby Docker stwierdził, że wszystko wstało, ale aplikacja nie miała interfejsu sieciowego, na którym by nasłuchiwała. &#xA;&#xA;Odpuściłem&#xA;&#xA;Za dwa dni siadłem jeszcze raz i… poszło.&#xA;Dodałem pierwsze 10 płyt (tych w najlepszym stanie).&#xA;Dodawać można podając tytuł, wykonawcę a można podać lub zeskanować kod kreskowy.&#xA;&#xA;Screenshot 2026 06 17 at 08.24.43&#xA;&#xA;Każdą płytę można sprawdzić pod kątem wartości na podstawie danych z Discogs.&#xA;&#xA;Screenshot 2026 06 17 at 08.25.21&#xA;&#xA;h3 id=&#34;FitPub&#34;FitPub/h3&#xA;&#xA;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.&#xA;&#xA;Oj, tutaj była ostra jazda z instalacją. Coś nie chciało to ruszyć i dopiero z pomocą Gemini AI udało mi się postawić własną instancję.&#xA;Wrzuciłem do FitPuba całą tegoroczną aktywność z Garmina i… Jakoś to wygląda. &#xA;&#xA;Screenshot 2026 06 17 at 08.55.56&#xA;&#xA;Dodając w ustawieniach klucz API do OpenWeatherMap w aktywności pojawi się informacja o pogodzie z danego dnia.&#xA;&#xA;Screenshot 2026 06 17 at 08.59.03&#xA;&#xA;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.&#xA;&#xA;Mogę dać follow komuś z instancji fitpub.social i działa to też w drugą stronę (sprawdzone ;-)).&#xA;&#xA;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ś. &#xA;&#xA;Aplikacja udostępnia kilka ciekawych funkcji dostępnych w komercyjnych aplikacjach.&#xA;&#xA;Activity Dashboard&#xA; &#xA;Screenshot 2026 06 17 at 08.56.58&#xA;&#xA;Personal Records&#xA;&#xA;Screenshot 2026 06 17 at 08.57.12&#xA;&#xA;Training Loads&#xA;&#xA;Screenshot 2026 06 17 at 08.57.44&#xA;&#xA;No i, oczywiście, nie trzeba korzystać z wersji selfhosted. Jest ogólnodostępna instancja FitPub.&#xA;&#xA;h4 id=&#34;Peaks&#34;Visited Peaks/h4&#xA;&#xA;Zaciekawiony danymi na FitPub.social ściągnąłem na serwer mapę Polski &#xA;$ wget https://download.geofabrik.de/europe/poland-latest.osm.pbf&#xA;a następnie wrzuciłem ją na swoją instancję:&#xA;$ 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&#xA;I otrzymałem:&#xA;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&#xA;2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Peak import finished successfully&#xA;2026-06-17T14:34:16.906Z  INFO 1 --- [           main] n.j.fitpub.tools.peaks.PeakImportRunner  : Starting peak backfill&#xA;2026-06-17T14:34:16.943Z  INFO 1 --- [           main] n.j.fitpub.service.PeakDetectionService  : Starting retroactive peak detection for 91 activities&#xA;FitPub znalazł i zrobił update dla wszystkich aktywności.&#xA;&#xA;Visited Peaks &#xA;&#xA;#dvinyl #fitpub #selfhosting&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="czyli-nowości-w-argilusowym-ogródku">czyli nowości w argilusowym ogródku.</h2>

<h3 id="dvinyl">Dvinyl</h3>

<p>Na pierwszy ogień poszła aplikacja do organizowania sobie nośników przyjemności: ;–)</p>
<ul><li>płyt winylowych</li>
<li>kaset magnetofonowych</li>
<li>płyt CD</li>
<li>kpłyt DVD</li>
<li>książek</li>
<li>gier</li></ul>

<p>Jak na razie zdecydowałem się jedynie na moduł płyt winylowych, bo tych mam mniej do ogarnięcia. ;–)
No i trzeba zakładać konta w serwisach typu <a href="https://www.discogs.com/" title="Discogs" rel="nofollow"><em>Discogs</em></a>.</p>

<p>Miałem dwa podejścia do instalacji. Za pierwszym razem mi się nie udało. Niby <em>Docker</em> stwierdził, że wszystko wstało, ale aplikacja nie miała interfejsu sieciowego, na którym by nasłuchiwała.</p>

<p>Odpuściłem</p>

<p>Za dwa dni siadłem jeszcze raz i… poszło.
Dodałem pierwsze 10 płyt (tych w najlepszym stanie).
Dodawać można podając tytuł, wykonawcę a można podać lub zeskanować kod kreskowy.</p>

<p><a href="https://blgpht.argilus.online/api/files/67/original/Screenshot_2026-06-17_at_08.24.43.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/67/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.24.43.png" alt="Screenshot 2026 06 17 at 08.24.43"></a></p>

<p>Każdą płytę można sprawdzić pod kątem wartości na podstawie danych z <em>Discogs</em>.</p>

<p><a href="https://blgpht.argilus.online/api/files/70/original/Screenshot_2026-06-17_at_08.25.21.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/70/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.25.21.png" alt="Screenshot 2026 06 17 at 08.25.21"></a></p>

<h3 id="FitPub">FitPub</h3>

<pre><code>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.
</code></pre>

<p>Oj, tutaj była ostra jazda z instalacją. Coś nie chciało to ruszyć i dopiero z pomocą <em>Gemini AI</em> udało mi się postawić własną instancję.
Wrzuciłem do FitPuba całą tegoroczną aktywność z Garmina i… Jakoś to wygląda.</p>

<p><a href="https://blgpht.argilus.online/api/files/69/original/Screenshot_2026-06-17_at_08.55.56.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/69/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.55.56.png" alt="Screenshot 2026 06 17 at 08.55.56"></a></p>

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

<p><a href="https://blgpht.argilus.online/api/files/68/original/Screenshot_2026-06-17_at_08.59.03.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/68/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.59.03.png" alt="Screenshot 2026 06 17 at 08.59.03"></a></p>

<p>Problemem chyba jest federacja albo nie wiem co, bo z poziomu mojej instancji <a href="https://codeberg.org/superseriousbusiness/gotosocial#what-is-gotosocial" rel="nofollow"><em>GoToSocial</em></a> nie jestem w stanie dać sobie follow. Nie mogę się też wbić za pomocą klientów takich jak <em>Ivory</em>, czy <em>Ice Cubes</em> — chyba jeszcze brak obsługi.</p>

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

<p>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ś.</p>

<p>Aplikacja udostępnia kilka ciekawych funkcji dostępnych w komercyjnych aplikacjach.</p>

<h4 id="activity-dashboard">Activity Dashboard</h4>

<p><a href="https://blgpht.argilus.online/api/files/65/original/Screenshot_2026-06-17_at_08.56.58.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/65/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.56.58.png" alt="Screenshot 2026 06 17 at 08.56.58"></a></p>

<h4 id="personal-records">Personal Records</h4>

<p><a href="https://blgpht.argilus.online/api/files/66/original/Screenshot_2026-06-17_at_08.57.12.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/66/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.57.12.png" alt="Screenshot 2026 06 17 at 08.57.12"></a></p>

<h4 id="training-loads">Training Loads</h4>

<p><a href="https://blgpht.argilus.online/api/files/71/original/Screenshot_2026-06-17_at_08.57.44.png" rel="nofollow"><img src="https://blgpht.argilus.online/api/files/71/variants/ffmpeg-1280x1280-in/Screenshot_2026-06-17_at_08.57.44.png" alt="Screenshot 2026 06 17 at 08.57.44"></a></p>

<p>No i, oczywiście, nie trzeba korzystać z wersji selfhosted. Jest ogólnodostępna instancja <a href="https://fitpub.social" title="FitPub.social" rel="nofollow">FitPub</a>.</p>

<h4 id="Peaks">Visited Peaks</h4>

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

<pre><code>$ wget https://download.geofabrik.de/europe/poland-latest.osm.pbf
</code></pre>

<p>a następnie wrzuciłem ją na swoją instancję:</p>

<pre><code>$ 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
</code></pre>

<p>I otrzymałem:</p>

<pre><code>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
</code></pre>

<p><em>FitPub</em> znalazł i zrobił update dla wszystkich aktywności.</p>

<p><img src="https://blgpht.argilus.online/api/files/72/original/Screenshot_2026-06-17_at_16.41.32.png" alt="Visited Peaks" title="Visited Peaks"></p>

<p><a href="/czach/tag:dvinyl" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">dvinyl</span></a> <a href="/czach/tag:fitpub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">fitpub</span></a> <a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/dvinyl-fitpub</guid>
      <pubDate>Wed, 17 Jun 2026 06:30:54 +0000</pubDate>
    </item>
    <item>
      <title>Oikos (2)</title>
      <link>https://blog.argilus.online/czach/oikos-2</link>
      <description>&lt;![CDATA[Uzupełnienie wpisu Oikos.&#xA;&#xA;Aplikacja się rozwija i ma coraz więcej przydatnych funkcji. Od pewnego czasu obsługuje także język polski.&#xA;&#xA;Screenshot z uruchomioną w przeglądarce aplikacją Oikos&#xA;&#xA;#selfhosting #oikos&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p><strong>Uzupełnienie wpisu <a href="https://blog.argilus.online/czach/oikos" rel="nofollow">Oikos</a></strong>.</p>

<p>Aplikacja się rozwija i ma coraz więcej przydatnych funkcji. Od pewnego czasu obsługuje także język polski.</p>

<p><img src="https://blgpht.argilus.online/api/files/51/original/oikos.jpg" alt="Screenshot z uruchomioną w przeglądarce aplikacją *Oikos*"></p>

<p><a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a> <a href="/czach/tag:oikos" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">oikos</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/oikos-2</guid>
      <pubDate>Sun, 17 May 2026 15:52:52 +0000</pubDate>
    </item>
    <item>
      <title>Oikos</title>
      <link>https://blog.argilus.online/czach/oikos</link>
      <description>&lt;![CDATA[Dziś krótki wpis ze świata selfhostingu.&#xA;&#xA;Wczoraj do argilusowego ogródka wpadło następne narzędzie.&#xA;&#xA;Oikos&#xA;&#xA;The self-hosted family planner&#xA;&#xA;I wiecie co? Nawet mojej żonie się to spodobało.&#xA;Zalogowala się, uzupełniła kalendarz i stwierdziła:&#xA;Wreszcie mam kalendarz bez Googla&#xA;&#xA;Nom. Mi też się podoba.&#xA;Po skonfigurowaniu (ech ten język niemiecki ;-)) pulpit wita nas między innymi pogodą.&#xA;Dodałem eventy, rozpiskę swoich zestawów śniadaniowych (żeby bylo wiadome, kiedy się kończą) oraz planowane obiady i związane z nimi zakupy — wraz z przydzieleniem obowiązków.&#xA;Screenshot przeglądarki internetowej z selfhostowaną aplikacją Oikos. Widoczne są zadania do zrobienia, posiłki&#xA;Aplikacja świetnie działa jako PWA.&#xA;&#xA;#selfhosting #oikos&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Dziś krótki wpis ze świata selfhostingu.</p>

<p>Wczoraj do argilusowego ogródka wpadło następne narzędzie.</p>

<h2 id="oikos-https-ulsklyc-github-io-oikos-ref-blog-argilus-online-oikos"><a href="https://ulsklyc.github.io/oikos/?ref=blog.argilus.online" title="Oikos" rel="nofollow">Oikos</a></h2>

<p><em>The self-hosted family planner</em></p>

<p>I wiecie co? Nawet mojej żonie się to spodobało.
Zalogowala się, uzupełniła kalendarz i stwierdziła:
<em>Wreszcie mam kalendarz bez Googla</em></p>

<p>Nom. Mi też się podoba.
Po skonfigurowaniu (ech ten język niemiecki ;–)) pulpit wita nas między innymi pogodą.
Dodałem eventy, rozpiskę swoich zestawów śniadaniowych (żeby bylo wiadome, kiedy się kończą) oraz planowane obiady i związane z nimi zakupy — wraz z przydzieleniem obowiązków.
<img src="https://blgpht.argilus.online/api/files/26/original/Screenshot%202026-04-21%20at%2012.53.51.png" alt="Screenshot przeglądarki internetowej z selfhostowaną aplikacją Oikos. Widoczne są zadania do zrobienia, posiłki" title="Oikos w akcji">
Aplikacja świetnie działa jako <em>PWA</em>.</p>

<p><a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a> <a href="/czach/tag:oikos" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">oikos</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/oikos</guid>
      <pubDate>Tue, 21 Apr 2026 10:51:52 +0000</pubDate>
    </item>
    <item>
      <title>Nowości w argilusowym ogródku</title>
      <link>https://blog.argilus.online/czach/nowosci-w-argilusowym-ogrodku</link>
      <description>&lt;![CDATA[WishList&#xA;WishList&#xA;&#xA;Baaardzo fajne narzędzie do sporządzania listy życzeń prezentowych.&#xA;W moim przypadku to głównie płyty winylowe.&#xA;&#xA;Te z Allegro musiałem ręcznie dodawać.&#xA;Te z Muzikera - podałem URL reszta pól (w tym cena i okładka) dodały się same.&#xA;No fajne.&#xA;&#xA;Screenshot przeglądarki internetowej z otworzoną stroną z działającą instancją WishList&#xA;&#xA;#selfhosting #WishList&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="wishlist">WishList</h2>

<p><a href="https://github.com/cmintey/wishlist" title="WishList" rel="nofollow">WishList</a></p>

<p>Baaardzo fajne narzędzie do sporządzania listy życzeń prezentowych.
W moim przypadku to głównie płyty winylowe.</p>

<p>Te z Allegro musiałem ręcznie dodawać.
Te z Muzikera – podałem URL reszta pól (w tym cena i okładka) dodały się same.
No fajne.</p>

<p><img src="https://blgpht.argilus.online/api/files/12/original/01KNE7Y05QNVNVK5DQV0EK1WFF.jpeg" alt="Screenshot przeglądarki internetowej z otworzoną stroną z działającą instancją WishList" title="WishList w akcji"></p>

<p><a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a> <a href="/czach/tag:WishList" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">WishList</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/nowosci-w-argilusowym-ogrodku</guid>
      <pubDate>Sun, 05 Apr 2026 07:32:35 +0000</pubDate>
    </item>
    <item>
      <title>Office</title>
      <link>https://blog.argilus.online/czach/office</link>
      <description>&lt;![CDATA[Poszedłem za ciosem i wreszcie się udało. Postawiłem OnlyOffice, który współpracuje z NextCloudem na argilusowym serwerze.&#xA;Trochę okrężną drogą, bo jednak, co by nie pisać, NC, OO jakoś nie lubią się z FreeBSD.&#xA;&#xA;Koniec końców — udało się. I to nawet na dwa sposoby: &#xA;integracja z NextCloudem&#xA;jako osobna usługa z własną domeną.&#xA;&#xA;screenshot przeglądarki internetowej z uruchomioną chmurową wersją OnlyOffice poprzez NextClouda&#xA;&#xA;#selfhosting #nextcloud #onlyoffice&#xA;&#xA;-- &#xD;&#xA;Marcin &#34;czach&#34; Trzaska&#xD;&#xA;reply-to: @czach@mastodon.argilus.online]]&gt;</description>
      <content:encoded><![CDATA[<p>Poszedłem za ciosem i wreszcie się udało. Postawiłem OnlyOffice, który współpracuje z <em>NextCloudem</em> na argilusowym serwerze.
Trochę okrężną drogą, bo jednak, co by nie pisać, NC, OO jakoś nie lubią się z <em>FreeBSD</em>.</p>

<p>Koniec końców — udało się. I to nawet na dwa sposoby:
– integracja z NextCloudem
– jako osobna usługa z własną domeną.</p>

<p><img src="https://blgpht.argilus.online/api/files/8/original/Screenshot%202026-03-31%20at%2008.22.01.png" alt="screenshot przeglądarki internetowej z uruchomioną chmurową wersją OnlyOffice poprzez NextClouda"></p>

<p><a href="/czach/tag:selfhosting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">selfhosting</span></a> <a href="/czach/tag:nextcloud" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">nextcloud</span></a> <a href="/czach/tag:onlyoffice" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">onlyoffice</span></a></p>

<p>—
Marcin “czach” Trzaska
reply-to: <a href="https://blog.argilus.online/@/czach@mastodon.argilus.online" class="u-url mention" rel="nofollow">@<span>czach@mastodon.argilus.online</span></a></p>
]]></content:encoded>
      <guid>https://blog.argilus.online/czach/office</guid>
      <pubDate>Tue, 31 Mar 2026 06:30:06 +0000</pubDate>
    </item>
  </channel>
</rss>