Memos Místo Instagramu

Ještě z Vánoc mám tady na blogu zápisek, kde píšu, že si pohrávám s myšlenkou hodit na malinu nějaký gts, až budu mít chuť se socializovat. Nakonec to gts nebylo, ale stejná potřeba mě dohnala k Memos - jednoduchý self-hosted poznámkovník s podporou příloh a viditelností per zápisek. Nemám Instagram ani žádnou jinou sociální síť a fotky jsem doteď posílal rodině a kámošům jednotlivě přes WhatsApp jako nějaký partyzán. Teď mám na to konečně vlastní zeď.

Co to je a kde to běží

Memos běží jako Docker kontejner na malině, na memo.chrmz.io, přes stejný Cloudflare tunel, který táhne i blog a repo. Musel jsem sáhnout po arm/v7 image, protože malina má i přes 64bitové jádro pořád 32bitový userland - vyplatilo se to ověřit přes Docker Hub API dřív, než jsem cokoliv stahoval, ať netahám image, co mi stejně nenaběhne.

Každý zápisek má viditelnost - private, protected nebo public. Fotky, co chci sdílet, označím jako public a rozešlu odkaz, stejně jako story na Instagramu, jen bez algoritmu, reklam a cizích serverů. Zbytek - krátké poznámky, logy - nechávám private, takže je to vlastně i takový osobní deník navrch.

Úložiště

K malině jsem připojil starý externí disk a nechtěl jsem na něj hned nastěhovat celou databázi - FAT32 nemá pořádné POSIXové zamykání a SQLite by si na to mohlo časem stěžovat. Databáze tak zůstává na SD kartě, ale samotné fotky (assets) mountuju z disku přímo do cesty, kterou si Memos myslí, že je jeho vlastní datový adresář. Memos totiž neumí nastavit úložiště mimo něj - zjistil jsem to až po chvíli pátrání v issues, request na tohle byl zavřený jako "not planned". Trik s vnořeným bind mountem to ale obejde a malina tak nezatěžuje SD kartu zbytečným zápisem.

HEIC a WebP

iPhone fotí do HEIC, který mimo Safari nikde pořádně nezobrazíš, a Memos žádnou konverzi na serveru nedělá - servíruje přesně to, co dostane. V nastavení fotoaparátu jsem přepnul formát na "Most Compatible", takže teď rovnou cvakám JPEG. Případně si to na Macu ještě proženu přes vlastní img-to-webp skript, který to zmenší a hlavně ořízne EXIF - nemám potřebu sdílet k fotce i GPS souřadnice.

A bonus - tréninky

Gymlog bot, co mi commituje tréninky z Hevy do repa (viz server-bot-zraje a taky projekty), teď po každém tréninku pošle krátké shrnutí i na Memos zeď - název, délka a seznam cviků. Fotku bohužel přidat nešlo, Hevy API žádné fotky z appky nevrací, i když se k tréninku dají v appce přidat. Škoda, ale budiž.

Mám tak jedno místo na fotky, krátké poznámky i tréninky a nikam kvůli tomu neposílám svoje data pryč z domu. Uvidíme, jak dlouho vydržím to nepoužívat jako Instagram a spíš jako deník, co nikdo nečte :).