Indeks dnevnikaDockup / bilješka s terena
Note / self-host-memos

Kako samostalno hostati Memos u 2026.: bilješke, pristup API-ju i sigurnosne kopije

Praktični vodič za samostalno hostanje Memosa koji obuhvaća Docker, portove, trajne podatke, TLS, sigurnost, sigurnosne kopije i probleme koji onemogućuju upotrebu u produkciji. Korak po korak.

Na Memos gledajte kao na mali sustav, a ne kao na Docker image. Cilj Memosa za korisnike je jasan: brzo zapisivanje Markdown bilješki uz API; implementacija je prihvatljiva tek kada možete izraditi privatnu bilješku i privitak, dohvatiti ih putem API-ja, urediti ih i potvrditi da su i dalje dostupni nakon zamjene containera.

Ta razlika otkriva problem s kojim se operatori susreću nakon lokalnog testiranja: datoteka baze podataka nalazi se na sloju containera i nestaje nakon zamjene. Tako plan sigurnosnog kopiranja i nadogradnje postaje dovoljno konkretan za testiranje.

Pretvorite lokalnu naredbu u servis koji možete pregledavati

Prvi container trebao bi se moći jednostavno obrisati i ponovno izraditi. Držite podatke izvan sloja za pisanje, povežite port 5230 samo tamo gdje mu proxy može pristupiti i konfiguraciju proslijedite tijekom pokretanja.

docker run -d \
  --name memos \
  --restart unless-stopped \
  -p 127.0.0.1:5230:5230 \
  -v memos-data:/var/opt/memos \
  neosmemo/memos:stable --mode prod --port 5230

Nakon početnog testiranja fiksirajte image. Pročitajte najraniju pogrešku pri pokretanju umjesto završne poruke o ponovnom pokretanju, provjerite svaki mount naredbom docker inspect i pratite logove dok izrađujete privatnu bilješku i privitak, dohvaćate ih putem API-ja, uređujete ih i potvrđujete da su i dalje dostupni nakon zamjene containera. Taj slijed razlikuje neispravnu naredbu za image od problema s ovisnošću ili dozvolama.

Najprije definirajte što znači uspjeh za Memos

Za Memos odvojite četiri područja: ulazni promet, listener na portu 5230, trajno stanje te pomoćne servise ili lokalne kapacitete. Za lokalno pokretanje potreban je jedan trajni volume za ugrađenu bazu podataka i resurse. Tu granicu testirajte prije objave, a zatim ponovno nakon zamjene containera.

Pokrenite provjereni tijek — izradite privatnu bilješku i privitak, dohvatite ih putem API-ja, uredite ih i potvrdite da su i dalje dostupni nakon zamjene containera — prije nego što tu separaciju proglasite dovršenom. Mjerite SQLite zapise, rast privitaka, API promet i pretraživanje nakupljenih bilješki te rezultat pohranite uz zapis o implementaciji. Time dobivate i kriterij prihvaćanja i početnu osnovu za planiranje kapaciteta.

Memosu nemojte dati pristup cijelom hostu

Za Memos vrijedna površina nije nužno početna stranica. Najčešća je pogreška ostaviti registraciju otvorenom dulje nego što je predviđeno. Namjerno joj se suprotstavite: zatvorite registraciju kada je to potrebno i privatne bilješke zaštitite snažnim računom i HTTPS-om.

Memos u ovoj osnovnoj konfiguraciji nema obaveznu bootstrap tajnu; umjesto toga zaštitite stvarni administratorski račun ili autentikaciju uzvodno. Koristite neprivilegiranog korisnika containera kada ga image podržava i nemojte mountati nepovezane vjerodajnice. Ograničenja brzine ili veličine primijenite na ulazu, gdje nepouzdani posao može trošiti SQLite zapise, povećavati privitke, API promet i pretraživanje nakupljenih bilješki.

TLS je jednostavan; generirani URL-ovi nisu

Izbjegavajte privremene i trajne javne origine za Memos. Umjesto toga koristite stabilan HTTPS origin za browser i API klijente, odabrani DNS naziv usmjerite na platformsku rutu i proxy prosljeđujte samo na port 5230.

Ovu radnju izvedite izvan hosta: izradite privatnu bilješku i privitak, dohvatite ih putem API-ja, uredite ih i potvrdite da su i dalje dostupni nakon zamjene containera. Ako ulazni promet ne prolazi, vodič za otklanjanje problema s pogreškom 502 obrađuje pogreške s portom i listenerom. Ako Memos primi zahtjev, ali se datoteka baze podataka nalazi na sloju containera i nestane nakon zamjene, dokazi sada upućuju na problem izvan proxija.

Dokažite da Memos preživljava zamjenu

Image containera može se ponovno preuzeti; Memos baza podataka i preneseni resursi ne mogu. Mountajte /var/opt/memos prije bootstrap postupka, zapišite bezopasne ogledne podatke i zamijenite container kako biste dokazali da je ta putanja zaista trajna. Pregledajte efektivni mount umjesto da vjerujete nazivu Compose datoteke i provjerite može li runtime korisnik pisati na mjesto koje Memos očekuje.

Odaberite razdoblje zadržavanja i odredište izvan hosta, a zatim uvježbajte oporavak bez diranja produkcije. Vježba je uspješna samo kada se vrate korisnici, bilješke, oznake i resursi te kada API dohvati poznatu privatnu bilješku. Za stanje temeljeno na bazi podataka kombinirajte snapshotove pohrane s izvozima konzistentnima na razini aplikacije, kao što je opisano u članku oporavak u određenoj vremenskoj točki u odnosu na snapshotove.

Pet provjera boljih od health provjere containera

Nemojte promet prvog korisnika koristiti kao test prihvaćanja za Memos. Pripremite bezopasno ogledno stanje i pokrenite cijelu radnju „izradite privatnu bilješku i privitak, dohvatite ih putem API-ja, uredite ih i potvrdite da su i dalje dostupni nakon zamjene containera”. Zabilježite točan javni URL, rezultat, referencu imagea i interval logova povezan s izvođenjem.

Zamijenite container i ponovite postupak bez ponovne izgradnje podataka. Zatim se oporavite na praznom hostu; uvjet oporavka jest da se vrate korisnici, bilješke, oznake i resursi te da API dohvati poznatu privatnu bilješku. U svakom prolazu pratite SQLite zapise, rast privitaka, API promet i pretraživanje nakupljenih bilješki te definirajte upozorenje oko pogoršanja transakcije, a ne oko metrika neaktivnog containera.

Jedna bi provjera namjerno trebala biti neuspješna: pošaljite bezopasan unos blizu ograničenja resursa ili formata povezanog s ovom granicom: datoteka baze podataka nalazi se na sloju containera i nestaje nakon zamjene. Provjerite identificira li rezultirajuća poruka Memosa relevantnu granicu umjesto da pokrene brisanje podataka ili beskonačno ponovno pokretanje. Vratite valjano stanje i potvrdite da ista ogledna transakcija uspijeva. Ovu kratku vježbu uvrstite u kontrolni popis za izdanje.

Logovi koji odgovaraju na sljedeće pitanje

Kao smoke test Memosa nakon svake implementacije koristite postupak: izradite privatnu bilješku i privitak, dohvatite ih putem API-ja, uredite ih i potvrdite da su i dalje dostupni nakon zamjene containera. Prateće metrike su SQLite zapisi, rast privitaka, API promet i pretraživanje nakupljenih bilješki; upozorenje postavite kada se ti resursi približe razini koja narušava korisničku radnju.

Glavni rizik promjene jest to što se migracije Memos baze podataka trebaju uvježbati na kopiji jer se cijelo stanje servisa nalazi na jednoj kompaktnoj putanji. Sigurno izdanje započinje snapshotom iz kojeg se može obaviti oporavak i provjerava svaku jednosmjernu promjenu stanja prije preusmjeravanja prometa. Kada se datoteka baze podataka nalazi na sloju containera i nestane nakon zamjene, zadržite neuspjeli container dovoljno dugo da pročitate njegovu konfiguraciju i prvu pogrešku.

Koristite Dockup za platformni sloj

Dockup uklanja ručni rad oko reverse proxija i životnog ciklusa Memosa. Servis tijekom zamjena dobiva stabilnu HTTPS rutu prema portu 5230, ubrizganu konfiguraciju i trajnu pohranu. Povezani korisnički server slijedi isti model kao računanje koje hosta Dockup.

Nakon pokretanja ispunite aplikacijski ugovor: koristite stabilan HTTPS origin za browser i API klijente, potvrdite lokalni zahtjev — jedan trajni volume za ugrađenu bazu podataka i resurse — i izvedite ovaj dokaz: izradite privatnu bilješku i privitak, dohvatite ih putem API-ja, uredite ih i potvrdite da su i dalje dostupni nakon zamjene containera. Tako iskustvo pokretanja jednim klikom ostaje korisno, bez zanemarivanja detalja koji Memos čine oporavljivim i sigurnim.

Često postavljana pitanja

Što je Memosu potrebno za implementaciju u produkciji?

Usmjerite Memos container na portu 5230 kroz jedan HTTPS origin. Za lokalno pokretanje potreban je jedan trajni volume za ugrađenu bazu podataka i resurse. Nemojte Memos proglasiti spremnim dok ne možete izraditi privatnu bilješku i privitak, dohvatiti ih putem API-ja, urediti ih i potvrditi da su i dalje dostupni nakon zamjene containera.

Koji Memos podaci pripadaju sigurnosnoj kopiji?

Učinite /var/opt/memos trajnim i uključite Memos bazu podataka i prenesene resurse u isti manifest za oporavak. Čisti Memos oporavak uspješan je samo kada se vrate korisnici, bilješke, oznake i resursi te kada API dohvati poznatu privatnu bilješku.

Zahtijeva li Memos HTTPS iza reverse proxija?

Za javni Memos origin koristite HTTPS, a port 5230 zadržite na internoj ruti. Ispravno primijenite postavku Memosa: koristite stabilan HTTPS origin za browser i API klijente. Za Memos HTTPS štiti vjerodajnice ili korisnički sadržaj tijekom prijenosa i održava dosljedno ponašanje klijenta ovisno o originu.

Kako testirati nadogradnju Memosa?

Vratite trenutačno stanje Memosa u izoliranu implementaciju, primijenite kandidatsku verziju i ponovite transakciju prihvaćanja. Obratite posebnu pozornost jer se migracije Memos baze podataka trebaju uvježbati na kopiji, budući da se cijelo stanje servisa nalazi na jednoj kompaktnoj putanji. Zadržite prethodni Memos image dok ne razumijete granice migracije podataka i vraćanja na prethodnu verziju.