Language: ro
Karakeep: instalarea unei arhive personale de bookmarkuri pe VPS
Salvarea unui link este simplă. Găsirea lui peste șase luni este mai dificilă, mai ales dacă pagina s-a schimbat, a dispărut sau s-a pierdut printre sute de bookmarkuri.
Karakeep păstrează nu doar URL-ul, ci și conținutul paginii, previzualizarea, notițele, imaginile și fișierele PDF. Poți căuta în arhivă după text, poți organiza elementele în liste și le poți eticheta automat cu AI. Serviciul rulează pe propriul VPS, iar conectarea unui model lingvistic este opțională.
Mai jos prezentăm capacitățile Karakeep, cerințele serverului și instalarea pe Ubuntu 24.04 cu Docker Compose, HTTPS și backupuri.
Karakeep în șapte pași
- Creează un Linux VPS și direcționează spre el o subdomenă precum
keep.example.com. - Instalează Docker Engine și Docker Compose.
- Descarcă fișierul oficial
docker-compose.yml. - Generează secretele și pornește Karakeep, Chrome și Meilisearch.
- Închide portul intern 3000 și activează HTTPS prin Caddy.
- Creează primul cont, apoi dezactivează înregistrarea deschisă.
- Instalează extensia de browser sau aplicația mobilă și importă bookmarkurile.
Pentru a porni serviciul nu este necesară o cheie AI. Fără ea, salvarea paginilor, listele, notițele, OCR-ul și căutarea full-text vor funcționa în continuare. Etichetele și rezumatele automate nu vor fi generate.
Ce este Karakeep
Karakeep este o aplicație open-source, self-hosted, pentru stocarea linkurilor, notițelor text, imaginilor și fișierelor PDF într-o singură bibliotecă. Proiectul s-a numit anterior Hoarder.
Numele provine din cuvântul arab karakeeb, folosit pentru lucruri împrăștiate care par dezordine, dar pot avea o valoare ascunsă. Descrie bine o colecție obișnuită de bookmarkuri: există mult material util, dar găsirea elementului potrivit este dificilă.
După ce adaugi un link, Karakeep îi preia titlul și descrierea, extrage textul lizibil, creează o previzualizare și poate salva o copie locală a paginii când este necesar.
| Funcție | Bookmarkuri în browser | Karakeep |
|---|---|---|
| Ce se stochează | URL și titlu | Text, previzualizare, notițe și atașamente |
| Căutare | După titlu și adresă | După conținut, etichete și notițe |
| Dacă pagina dispare | Rămâne un URL nefuncțional | Rămân textul, o captură sau o arhivă completă |
| Organizare | Foldere | Etichete, liste manuale și liste inteligente |
| Acces | În browser | Web, extensii, iOS și Android |
| Server | Profilul browserului sau serviciul său cloud | VPS-ul sau serverul tău de acasă |
Principalele funcții Karakeep
Linkuri, notițe, imagini și PDF-uri
Fiecare element poate fi un link, o notiță text sau un fișier încărcat. OCR-ul extrage textul din imagini și PDF-uri, astfel încât și acestea devin ușor de căutat. Poți atașa unei intrări o notiță, un citat sau un fișier suplimentar.
Căutarea conținutului
Meilisearch indexează textul salvat, notițele și metadatele. Nu trebuie să-ți amintești titlul exact: este suficientă o expresie sau o temă. Când sunt configurate embeddings, este disponibilă și căutarea semantică după sens.
Liste inteligente și colaborative
O singură intrare poate aparține simultan mai multor liste, fără duplicare. O listă poate rămâne privată, poate fi partajată printr-un link sau poate fi editată împreună cu alți utilizatori.
O listă inteligentă este o interogare de căutare salvată, care se actualizează automat. De exemplu, poate afișa toate elementele etichetate cu ai și adăugate în ultima săptămână.
Arhivarea paginilor
În mod implicit, Karakeep stochează textul extras și o captură a părții vizibile a paginii. Poți activa suplimentar o captură a paginii complete, un PDF sau o arhivă HTML autonomă. Astfel biblioteca este protejată împotriva linkurilor moarte, dar consumul de spațiu crește.
Paginile care necesită autentificare, au protecție anti-bot avansată sau sunt aplicații interactive pot să nu fie salvate complet. Materialele importante este mai bine să fie încărcate separat ca PDF sau fișier.
Etichetarea AI opțională
Karakeep poate genera etichete și rezumate scurte printr-un API extern compatibil cu OpenAI sau printr-un model local Ollama. Fără AI, aplicația rămâne un manager de bookmarkuri complet funcțional.
Un model local nu trimite materialele către un furnizor extern, dar necesită semnificativ mai mult RAM. Din acest motiv, Ollama este adesea găzduit separat de instanța principală Karakeep.
Cerințele serverului Karakeep
Documentația oficială nu precizează un minim fix pentru CPU și RAM. O instalare completă include trei containere:
- Karakeep stochează baza de date și oferă interfața;
- Chrome headless deschide pagini, rulează JavaScript și face capturi de ecran;
- Meilisearch indexează biblioteca.
O configurație practică pentru un utilizator fără LLM local este:
- 2 vCPU;
- 2 GB RAM;
- SSD sau NVMe de 20–30 GB;
- Ubuntu 24.04 LTS;
- adresă IP publică și domeniu.
Pentru mai mulți utilizatori, un import mare, multe fluxuri RSS și PDF-uri, 4 GB RAM sunt mai confortabili. Cerințele de spațiu depind de modul de arhivare: textul ocupă puțin, în timp ce capturile complete, PDF-urile și videoclipurile pot mări rapid biblioteca.
Cum instalezi Karakeep pe VPS
În acest exemplu folosim Ubuntu 24.04 și subdomeniul keep.example.com.
1. Configurează DNS-ul și firewallul
Creează un record DNS de tip A care indică spre adresa IP a serverului, apoi conectează-te prin SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableNu închide sesiunea SSH curentă până nu verifici că o conexiune nouă funcționează.
2. Instalează Docker
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 version3. Descarcă configurația Karakeep
mkdir -p /opt/karakeep
cd /opt/karakeep
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.ymlGenerează două secrete diferite:
openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'Creează /opt/karakeep/.env:
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=trueNu publica .env: primul secret semnează tokenurile de autentificare, iar al doilea protejează Meilisearch.
4. Închide portul intern
În docker-compose.yml, înlocuiește:
ports:
- 3000:3000cu:
ports:
- 127.0.0.1:3000:3000Astfel portul 3000 nu va mai fi accesibil direct de pe internet.
5. Pornește containerele
cd /opt/karakeep
docker compose up -d
docker compose psServiciile web, chrome și meilisearch ar trebui să ruleze. Vezi logurile cu:
docker compose logs --tail=2006. Activează HTTPS
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 caddyDacă DNS-ul este configurat și porturile 80 și 443 sunt deschise, Caddy va obține automat un certificat TLS. Apoi deschide https://keep.example.com.
7. Creează administratorul și închide înregistrarea
Primul utilizator înregistrat devine automat administrator. După crearea contului, setează în .env:
DISABLE_SIGNUPS=trueAplică modificarea:
cd /opt/karakeep
docker compose up -dAdministratorul va putea în continuare să creeze manual alte conturi.
Importul datelor, extensii și aplicații mobile
Karakeep oferă extensii pentru Chrome, Firefox și Safari, precum și aplicații pentru iOS și Android. Pe telefon, un link poate fi trimis către arhivă prin meniul Share al sistemului.
Bookmarkurile existente pot fi importate dintr-un fișier HTML standard al browserului, Pocket, Omnivore și alte servicii acceptate. Este mai bine să adaugi o arhivă mare în tranșe: serverul trebuie să deschidă paginile, să extragă textul, să creeze capturi și să construiască indexul de căutare.
Cum activezi AI și arhivarea paginilor complete
Pentru OpenAI, adaugă în .env:
OPENAI_API_KEY=YOUR_API_KEYUn alt serviciu compatibil cu OpenAI poate necesita suplimentar OPENAI_BASE_URL. Pentru un model local, folosește OLLAMA_BASE_URL cu o adresă accesibilă din container.
Activează separat o copie locală completă a unei pagini:
CRAWLER_FULL_PAGE_ARCHIVE=trueSunt disponibile și opțiunile CRAWLER_FULL_PAGE_SCREENSHOT=true și CRAWLER_STORE_PDF=true. Nu activa toate modurile decât dacă sunt necesare: cresc vizibil consumul de spațiu. După modificarea .env, rulează docker compose up -d.
Securitate, actualizări și backupuri
Crawlerul Karakeep deschide adresele salvate de utilizatori din rețeaua serverului. De aceea, nu lăsa înregistrarea deschisă și acordă acces doar persoanelor de încredere. Există protecție SSRF de bază, dar pentru un serviciu public proiectul oficial recomandă izolarea browserului sau rutarea lui printr-un proxy cu acces restricționat.
Folosește și HTTPS, parole puternice, nu expune portul 3000 și actualizează regulat containerele:
cd /opt/karakeep
docker compose up --pull always -dBaza de date principală și materialele salvate sunt stocate în volumul Docker numit data. Oprește containerele înainte de a-l copia:
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 startNumele karakeep_data presupune că directorul proiectului este /opt/karakeep; îl poți verifica prin docker volume ls. Indexul Meilisearch poate fi reconstruit, dar pentru o bibliotecă mare este util să faci backup și pentru volumul karakeep_meilisearch.
Trimite arhiva din /var/backups/karakeep către alt server, NAS sau object storage. O copie pe același VPS nu protejează împotriva defectării discului sau ștergerii mașinii virtuale.
Ce VPS să alegi pentru Karakeep
Pentru o bibliotecă personală fără Ollama, este potrivit un Linux VPS cu 2 vCPU, 2 GB RAM și 20–30 GB NVMe. Pentru importuri mari, mai mulți utilizatori și arhivare completă, alege 4 GB RAM și un disc mai mare.
Karakeep poate rula pe un VPS de la tropic.host: o adresă IP permanentă simplifică configurarea domeniului, iar stocarea NVMe este utilă pentru SQLite, indexul de căutare și numeroasele fișiere mici. Resursele pot fi mărite pe măsură ce arhiva crește.
Planifică separat resursele pentru Ollama: chiar și un model lingvistic mic poate necesita mai multă memorie decât întreaga stivă principală Karakeep.
Concluzie
Karakeep transformă linkurile împrăștiate într-o bibliotecă personală și ușor de căutat. Salvează pagini, notițe, imagini și PDF-uri și oferă OCR, liste, extensii, aplicații mobile și etichetare AI opțională.
Pentru început sunt suficiente un VPS mic, Docker Compose, un domeniu și HTTPS. După instalare, închide înregistrarea, monitorizează spațiul pe disc și păstrează un backup extern.
FAQ
Karakeep este gratuit?
Versiunea self-hosted este open source și nu necesită un abonament obligatoriu. Plătești pentru VPS, domeniu, spațiul de backup și, când este necesar, un API AI extern.
Este necesară o cheie API pentru ca Karakeep să funcționeze?
Nu. Salvarea și indexarea materialelor, listele, notițele, OCR-ul și căutarea full-text funcționează fără AI. Un model este necesar pentru etichete automate, rezumate și funcții similare.
De cât RAM are nevoie Karakeep?
Un punct de pornire practic pentru un utilizator fără Ollama este 2 GB RAM. Pentru importuri mari, mai mulți utilizatori și procesare activă, 4 GB sunt mai potriviți.
Pot importa bookmarkuri din browser sau Pocket?
Da. Karakeep acceptă un fișier HTML standard cu bookmarkuri, Pocket, Omnivore și alte câteva formate. După import, Karakeep procesează paginile și le adaugă în căutare.
O să rămână disponibil un articol dacă site-ul original dispare?
Karakeep stochează textul extras și o captură, iar când este activată arhivarea completă, păstrează o copie locală sau un PDF. Paginile care necesită autentificare și aplicațiile web complexe pot fi salvate doar parțial.
