Tropic Host

Karakeep VPS-en: saját könyvjelzőarchívum kereséssel és MI-vel

7 perc olvasás
Tropic
Karakeep VPS-en: saját könyvjelzőarchívum kereséssel és MI-vel

Language: hu

Karakeep: személyes könyvjelzőarchívum telepítése VPS-re

Egy link mentése egyszerű. Hat hónappal később megtalálni már nehezebb – különösen akkor, ha az oldal megváltozott, eltűnt, vagy több száz könyvjelző között veszett el.

A Karakeep nemcsak az URL-t menti el, hanem az oldal tartalmát, előnézetét, jegyzeteit, képeit és PDF-fájljait is. Az archívumban szöveg alapján kereshet, az elemeket listákba rendezheti, és MI-vel automatikusan címkézheti őket. A saját VPS-én fut, a nyelvi modell csatlakoztatása pedig opcionális.

Az alábbiakban bemutatjuk a Karakeep lehetőségeit, a szerverigényeket, valamint a telepítését Ubuntu 24.04 rendszeren Docker Compose-zal, HTTPS-szel és biztonsági mentésekkel.

A Karakeep hét lépésben

  1. Hozzon létre egy Linux VPS-t, és irányítson rá egy olyan aldomaint, mint a keep.example.com.
  2. Telepítse a Docker Engine-t és a Docker Compose-t.
  3. Töltse le a hivatalos docker-compose.yml fájlt.
  4. Generálja a titkos kulcsokat, majd indítsa el a Karakeepet, a Chrome-ot és a Meilisearchöt.
  5. Zárja le a belső 3000-es portot, és engedélyezze a HTTPS-t Caddy segítségével.
  6. Hozza létre az első fiókot, majd tiltsa le a nyílt regisztrációt.
  7. Telepítse a böngészőbővítményt vagy a mobilalkalmazást, és importálja a könyvjelzőit.

A szolgáltatás elindításához nincs szükség MI-kulcsra. Enélkül is működik az oldalak mentése, a listák, a jegyzetek, az OCR és a teljes szöveges keresés. Az automatikus címkék és összefoglalók azonban nem készülnek el.

Mi a Karakeep?

A Karakeep egy nyílt forráskódú, saját üzemeltetésű alkalmazás, amely linkeket, szöveges jegyzeteket, képeket és PDF-fájlokat tárol egyetlen könyvtárban. A projekt korábbi neve Hoarder volt.

A név a szétszórt tárgyakat jelölő arab karakeeb szóból származik: ezek első pillantásra lomnak tűnnek, de rejtett értéket hordozhatnak. Ez pontosan jellemzi a tipikus könyvjelzőgyűjteményt is: sok hasznos anyag gyűlik össze, de a megfelelő elem megtalálása nehéz.

Egy link hozzáadása után a Karakeep lekéri annak címét és leírását, kinyeri az olvasható szöveget, előnézetet készít, és szükség esetén elmenti az oldal helyi másolatát.

FunkcióBöngésző könyvjelzőiKarakeep
Mi kerül mentésreURL és címSzöveg, előnézet, jegyzetek és mellékletek
KeresésCím és cím alapjánTartalom, címkék és jegyzetek alapján
Ha az oldal eltűnikEgy hibás URL maradSzöveg, képernyőkép vagy teljes archívum marad
RendezésMappákCímkék, kézi és intelligens listák
HozzáférésA böngészőbenWeb, bővítmények, iOS és Android
SzerverBöngészőprofil vagy annak felhőszolgáltatásaSaját VPS vagy otthoni szerver

A Karakeep fő funkciói

Linkek, jegyzetek, képek és PDF-ek

Minden elem lehet link, szöveges jegyzet vagy feltöltött fájl. Az OCR szöveget nyer ki a képekből és PDF-ekből, így azok is kereshetővé válnak. Egy elemhez jegyzetet, idézetet vagy további fájlt is csatolhat.

Tartalomkeresés

A Meilisearch indexeli a mentett szöveget, a jegyzeteket és a metaadatokat. Nem kell emlékeznie a pontos címre: egy kifejezés vagy téma is elég. Embeddingek beállítása esetén jelentés szerinti szemantikus keresés is elérhető.

Intelligens és közös listák

Egy elem egyszerre több listához is tartozhat, duplikáció nélkül. Egy lista maradhat privát, megosztható linken keresztül, vagy más felhasználókkal közösen szerkeszthető.

Az intelligens lista elmentett keresési lekérdezés, amely automatikusan frissül. Például megjelenítheti az összes ai címkével ellátott elemet, amelyet az elmúlt héten adtak hozzá.

Oldalak archiválása

Alapértelmezés szerint a Karakeep a kinyert szöveget és az oldal látható részének képernyőképét menti el. Külön engedélyezhető a teljes oldalas pillanatkép, a PDF vagy az önálló HTML-archívum is. Ez megvédi a könyvtárat a megszűnt linkektől, de növeli a lemezhasználatot.

Hitelesítés mögötti oldalak, fejlett botvédelem és interaktív alkalmazások nem biztos, hogy teljesen elmenthetők. A fontos anyagokat érdemes külön PDF-ként vagy fájlként feltölteni.

Opcionális MI-címkézés

A Karakeep külső, OpenAI-kompatibilis API-n vagy helyi Ollama-modellen keresztül címkéket és rövid összefoglalókat tud generálni. MI nélkül is teljes értékű könyvjelzőkezelő marad.

A helyi modell nem küldi el az anyagokat külső szolgáltatónak, viszont lényegesen több RAM-ot igényel. Emiatt az Ollamát gyakran a fő Karakeep-példánytól külön üzemeltetik.

A Karakeep szerverigényei

A hivatalos dokumentáció nem határoz meg rögzített minimális CPU- és RAM-értéket. A teljes telepítés három konténert tartalmaz:

  • A Karakeep tárolja az adatbázist és biztosítja a felületet;
  • a headless Chrome oldalakat nyit meg, JavaScriptet futtat és képernyőképeket készít;
  • a Meilisearch indexeli a könyvtárat.

Egy felhasználóhoz, helyi LLM nélkül, praktikus konfiguráció:

  • 2 vCPU;
  • 2 GB RAM;
  • 20–30 GB SSD vagy NVMe;
  • Ubuntu 24.04 LTS;
  • nyilvános IP-cím és domain.

Több felhasználó, nagy import, sok RSS-feed és PDF esetén kényelmesebb a 4 GB RAM. A lemezigény az archiválási módtól függ: a szöveg kevés helyet foglal, míg a teljes képernyőképek, PDF-ek és videók gyorsan növelhetik a könyvtár méretét.

A Karakeep telepítése VPS-re

Ez a példa Ubuntu 24.04-et és a keep.example.com aldomaint használja.

1. DNS és tűzfal beállítása

Hozzon létre egy A DNS-rekordot, amely a szerver IP-címére mutat, majd csatlakozzon SSH-n keresztül:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

Ne zárja be a jelenlegi SSH-munkamenetet, amíg nem ellenőrizte, hogy egy új kapcsolat működik.

2. Docker telepítése

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. A Karakeep konfiguráció letöltése

mkdir -p /opt/karakeep
cd /opt/karakeep

curl -fsSLo docker-compose.yml \
  https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml

Generáljon két különböző titkos kulcsot:

openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'

Hozza létre az /opt/karakeep/.env fájlt:

KARAKEEP_VERSION=release
NEXTAUTH_SECRET=INSERT_THE_FIRST_SECRET
MEILI_MASTER_KEY=INSERT_THE_SECOND_SECRET
NEXTAUTH_URL=https://keep.example.com
DISABLE_SIGNUPS=false
DB_WAL_MODE=true
RATE_LIMITING_ENABLED=true

Ne tegye közzé a .env fájlt: az első titkos kulcs a hitelesítési tokeneket írja alá, a második pedig a Meilisearchöt védi.

4. A belső port lezárása

A docker-compose.yml fájlban cserélje le ezt:

ports:
  - 3000:3000

erre:

ports:
  - 127.0.0.1:3000:3000

Ezzel megakadályozza, hogy a 3000-es port közvetlenül elérhető legyen az internetről.

5. A konténerek elindítása

cd /opt/karakeep
docker compose up -d
docker compose ps

A web, chrome és meilisearch szolgáltatásnak futnia kell. A naplókat ezzel tekintheti meg:

docker compose logs --tail=200

6. HTTPS engedélyezése

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
keep.example.com {
    reverse_proxy 127.0.0.1:3000
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Ha a DNS beállítása megtörtént, és a 80-as és 443-as port nyitva van, a Caddy automatikusan TLS-tanúsítványt szerez. Ezután nyissa meg a https://keep.example.com címet.

7. Rendszergazda létrehozása és a regisztráció lezárása

Az elsőként regisztráló felhasználó automatikusan rendszergazda lesz. A fiók létrehozása után állítsa be ezt az .env fájlban:

DISABLE_SIGNUPS=true

Alkalmazza a módosítást:

cd /opt/karakeep
docker compose up -d

A rendszergazda továbbra is létrehozhat kézzel további fiókokat.

Adatok importálása, bővítmények és mobilalkalmazások

A Karakeephez Chrome-, Firefox- és Safari-bővítmények, valamint iOS- és Android-alkalmazások érhetők el. Telefonon a rendszer megosztási menüjén keresztül küldhet egy linket az archívumba.

A meglévő könyvjelzők szabványos böngésző-HTML-fájlból, Pocketből, Omnivore-ból és más támogatott szolgáltatásokból importálhatók. A nagy archívumot érdemes több részletben hozzáadni: a szervernek meg kell nyitnia az oldalakat, ki kell nyernie a szöveget, képernyőképeket kell készítenie, és fel kell építenie a keresési indexet.

MI és teljes oldalas archiválás engedélyezése

OpenAI esetén adja hozzá az alábbi sort az .env fájlhoz:

OPENAI_API_KEY=YOUR_API_KEY

Egy másik OpenAI-kompatibilis szolgáltatásnak ezen felül szüksége lehet az OPENAI_BASE_URL értékre. Helyi modellhez használja az OLLAMA_BASE_URL változót olyan címmel, amely elérhető a konténerből.

Az oldal teljes helyi másolatát külön engedélyezheti:

CRAWLER_FULL_PAGE_ARCHIVE=true

Elérhető még a CRAWLER_FULL_PAGE_SCREENSHOT=true és a CRAWLER_STORE_PDF=true beállítás is. Ne engedélyezzen minden módot, csak ha szükséges: ezek jelentősen növelik a lemezhasználatot. Az .env módosítása után futtassa a docker compose up -d parancsot.

Biztonság, frissítések és biztonsági mentések

A Karakeep feltérképezője a felhasználók által mentett címeket az Ön szerverének hálózatából nyitja meg. Ezért ne hagyja nyitva a regisztrációt, és csak megbízható személyeknek adjon hozzáférést. Alapszintű SSRF-védelem rendelkezésre áll, de nyilvános szolgáltatás esetén a hivatalos projekt a böngésző elkülönítését vagy korlátozott proxyn keresztüli átirányítását javasolja.

Használjon HTTPS-t és erős jelszavakat, ne tegye ki a 3000-es portot, és frissítse rendszeresen a konténereket:

cd /opt/karakeep
docker compose up --pull always -d

A fő adatbázis és a mentett anyagok a data nevű Docker-volume-ban találhatók. Másolás előtt állítsa le a konténereket:

mkdir -p /var/backups/karakeep
cd /opt/karakeep
docker compose stop

docker run --rm \
  -v karakeep_data:/source:ro \
  -v /var/backups/karakeep:/backup \
  alpine sh -c 'tar czf /backup/data-$(date +%F).tar.gz -C /source .'

cp .env docker-compose.yml /var/backups/karakeep/
docker compose start

A karakeep_data név azt feltételezi, hogy a projektkönyvtár /opt/karakeep; ezt a docker volume ls paranccsal ellenőrizheti. A Meilisearch indexe újraépíthető, de nagy könyvtár esetén hasznos a karakeep_meilisearch volume mentése is.

A /var/backups/karakeep könyvtárban lévő archívumot küldje másik szerverre, NAS-ra vagy objektumtárolóba. Az ugyanazon a VPS-en tárolt másolat nem véd a lemez meghibásodása vagy a virtuális gép törlése ellen.

Milyen VPS-t válasszon a Karakeephez?

Ollama nélküli személyes könyvtárhoz elegendő egy 2 vCPU-val, 2 GB RAM-mal és 20–30 GB NVMe-tárhellyel rendelkező Linux VPS. Nagy import, több felhasználó és teljes archiválás esetén válasszon 4 GB RAM-ot és nagyobb lemezt.

A Karakeep futtatható a tropic.host VPS-én: az állandó IP-cím egyszerűsíti a domain beállítását, az NVMe-tárhely pedig hasznos az SQLite, a keresési index és sok kis fájl számára. Az archívum növekedésével növelheti az erőforrásokat.

A helyi Ollama erőforrásait külön tervezze meg: még egy kisebb nyelvi modell is több memóriát igényelhet, mint a teljes fő Karakeep-stack.

Összegzés

A Karakeep a szétszórt linkeket személyes, kereshető könyvtárrá alakítja. Oldalakat, jegyzeteket, képeket és PDF-eket ment, valamint támogatja az OCR-t, a listákat, a bővítményeket, a mobilalkalmazásokat és az opcionális MI-címkézést.

A kezdéshez elegendő egy kis VPS, Docker Compose, egy domain és HTTPS. Telepítés után zárja le a regisztrációt, figyelje a lemezhasználatot, és tartson külső biztonsági mentést.

FAQ

Ingyenes a Karakeep?

A saját üzemeltetésű változat nyílt forráskódú, és nem igényel kötelező előfizetést. A VPS-ért, a domainért, a biztonsági mentés tárhelyéért és szükség esetén külső MI-API-ért kell fizetni.

Szükség van API-kulcsra a Karakeep működéséhez?

Nem. Az anyagok mentése és indexelése, a listák, a jegyzetek, az OCR és a teljes szöveges keresés MI nélkül is működik. Az automatikus címkékhez, összefoglalókhoz és kapcsolódó funkciókhoz modellre van szükség.

Mennyi RAM-ot igényel a Karakeep?

Ollama nélküli, egyszemélyes használathoz praktikus kezdés a 2 GB RAM. Nagy importnál, több felhasználónál és aktív feldolgozásnál a 4 GB kényelmesebb.

Importálhatok könyvjelzőket böngészőből vagy a Pocketből?

Igen. A Karakeep támogatja a szabványos böngésző-könyvjelző HTML-fájlt, a Pocketet, az Omnivore-t és több más formátumot. Importálás után feldolgozza az oldalakat, és hozzáadja őket a kereséshez.

Elérhető marad egy cikk, ha az eredeti webhely eltűnik?

A Karakeep elmenti a kinyert szöveget és a képernyőképet, teljes archiválás esetén pedig helyi másolatot vagy PDF-et is. A hitelesítés mögötti oldalak és az összetett webalkalmazások csak részben menthetők.