Váš vlastný server Blossom
Naposledy aktualizované: 27. októbra 2026
Herkos Drive rozdelí každý súbor na šifrované bloky a uchováva ich na viacerých serveroch Blossom: tri kópie, aspoň na dvoch druhoch serverov a jednu na vašom vlastnom serveri. Verejné servery uchovávajú bloky zadarmo, ale nič nesľubujú: môžu ich vymazať, zaplniť sa alebo skončiť.
Vlastný server Blossom uchová vašu kópiu tak dlho, ako sa rozhodnete, a bloky prijíma len z vášho Drive. Táto stránka vysvetľuje, ako ho nastaviť v troch krokoch, plus nočnú zálohu. Dobre sa hodí k vášmu vlastnému poštovému relé, a ak už server máte, zaberie to asi pätnásť minút.
Ktorý server použiť
blossom-server od hzrd149, verzia 6.4.1 (6. októbra 2026, licencia MIT). 27. októbra 2026 sme ho spustili s konfiguráciou nižšie a s vlastným kódom Drive na nahrávanie a overili, čo Drive potrebuje, nie čo server inzeruje:
| Čo robí Drive | Výsledok |
|---|---|
Nahráva šifrované bloky po 8 MiB (application/octet-stream) |
Prijaté |
| Pred nahraním sa pýta (BUD-06) | Odpovedá a akýkoľvek iný kľúč odmietne |
| Požiada váš server, aby skopíroval blok z verejného (BUD-04) | Skopírované |
| Číta blok bez identifikácie | Vydané, bajt po bajte |
| Odstráni blok kľúčom, ktorý ho nahral | Odstránené: ďalšia požiadavka vráti 404 |
| Nahrávanie z akéhokoľvek iného kľúča | Odmietnuté (401) |
Čo potrebujete
- Stroj, ktorý je stále zapnutý a dostupný z internetu: malý VPS alebo počítač doma. Potrebuje toľko miesta na disku, koľko obsahuje váš Drive, a nejakú rezervu do budúcnosti.
- Doménu alebo subdoménu, ktorá naň smeruje, napríklad
blossom.example.com. - Docker a reverzný proxy server, ktorý poskytuje HTTPS. Príklady používajú Caddy, ktorý si certifikát získa sám.
- Kľúč zväzku vášho Drive. Herkos Drive ho zobrazuje v Nastavenia → Servery → Tvoj vlastný server ako 64 písmen a číslic. Nie je to kľúč vášho profilu: Drive nikdy nenahráva kľúčom profilu, takže server, ktorý prijíma len váš npub, by Drive odmietol.
Krok 1: spustite server
Vytvorte preň priečinok, napríklad /root/blossom, a uložte doň tieto dva
súbory. Prvý je docker-compose.yml:
services:
blossom:
image: ghcr.io/hzrd149/blossom-server:6.4.1
environment:
BLOSSOM_REQUIRE_CONFIG: "1"
ports:
- "127.0.0.1:3000:3000"
volumes:
- data:/app/data
- ./config.yml:/app/config.yml:ro
restart: unless-stopped
volumes:
data: {}
Druhý je config.yml. Do publicDomain zadajte svoju doménu a kľúč zväzku
vložte tam, kde je YOUR-VOLUME-KEY:
port: 3000
host: 0.0.0.0
publicDomain: blossom.example.com
storage:
backend: local
local:
dir: ./data/blobs
rules:
- type: "*"
expiration: 100 years
pubkeys:
- "YOUR-VOLUME-KEY"
upload:
requireAuth: true
maxSize: 104857600
requirePubkeyInRule: true
mirror:
enabled: true
requireAuth: true
delete:
requireAuth: true
list:
enabled: false
media:
enabled: false
report:
enabled: false
landing:
enabled: false
Čo to znamená: nahrávať a žiadať o kópie smie len váš kľúč zväzku
(requirePubkeyInRule) a blok sa uchováva, kým ho Drive neodstráni. Server
vyžaduje v každom pravidle dobu platnosti; 100 years bez čítania je v praxi
nikdy a Drive svoje bloky aj tak pravidelne číta. Port počúva len na samotnom
stroji (127.0.0.1): všetko ide cez proxy.
Spustite ho:
cd /root/blossom
docker compose up -d
Krok 2: dajte pred neho HTTPS
S Caddy je celá konfigurácia (/etc/caddy/Caddyfile):
blossom.example.com {
reverse_proxy 127.0.0.1:3000
}
Ak ten istý Caddy už obsluhuje vaše relé, pridajte tento blok pod ten jeho.
Znova načítajte Caddy (sudo systemctl reload caddy). Keď teraz otvoríte
https://blossom.example.com v prehliadači, mal by odpovedať, a to 404:
domovská stránka zámerne nie je.
Krok 3: povedzte to Herkos Drive
- V Herkos Drive otvorte Nastavenia → Servery, pridajte
https://blossom.example.coma označte ho ako tvoj. - Drive sa ho pred každým nahraním spýta. Odvtedy dostane každý nový súbor kópiu tam a súbory, ktoré už máte, dostanú svoju, keď Drive nabudúce skontroluje kópie.
- Ostatné servery v zozname ponechajte. Váš je jednou z troch kópií, nikdy jedinou: ak vypadne, vaše súbory sú stále na ostatných a Drive vám to oznámi po týždni ticha.
Krok 4: zálohujte ho každú noc
Ak váš server zlyhá, Drive si to všimne a dotknutým súborom vytvorí kópie na ostatných serveroch vo vašom zozname. Kópia na vašom serveri je však jediná, ktorá nezávisí od nikoho iného, a nočná záloha vám ju umožní obnoviť bez toho, aby ste všetko znova kopírovali cez internet.
Server uchováva všetko vo zväzku Docker blossom_data (názov začína priečinkom,
v ktorom sú súbory; overte ho príkazom docker volume ls): bloky, každý
v jednom súbore, a malú databázu SQLite, ktorá hovorí, kto ktorý nahral. Bloky
sa nikdy nemenia, ale databáza sa nesmie kopírovať, kým sa do nej zapisuje.
Preto skript všetko skopíruje počas behu servera, zastaví ho na tých pár sekúnd,
ktoré trvá skopírovať, čo sa medzitým zmenilo, znova ho spustí a až potom kópiu
nahrá. Kým je zastavený, Drive to jednoducho o chvíľu neskôr skúsi znova.
Kópia odchádza zo servera pomocou restic, ktorý ju zašifruje skôr, než odíde. Použite miesto u iného poskytovateľa, než je server: účet SFTP (storage box, počítač doma) alebo úložisko kompatibilné s S3. Ak už takto zálohujete svoje relé, použite to isté miesto s iným priečinkom.
-
Nainštalujte nástroje a vytvorte repozitár. Heslo si uložte aj do správcu hesiel: bez neho sa kópie nedajú prečítať, a ak by bolo len na serveri, zanikne spolu so serverom. Pre SFTP potrebuje root aj kľúč SSH, ktorý záložný stroj akceptuje (
sudo ssh-keygen -t ed25519, potom tam pridajte/root/.ssh/id_ed25519.pub).sudo apt install restic rsync sudo sh -c 'openssl rand -base64 32 > /root/.restic-blossom-password' sudo sh -c 'cat > /root/.restic-blossom-env' <<'END' export RESTIC_REPOSITORY=sftp:backup@backup.example.com:/blossom export RESTIC_PASSWORD_FILE=/root/.restic-blossom-password END sudo chmod 600 /root/.restic-blossom-password /root/.restic-blossom-env sudo sh -c '. /root/.restic-blossom-env && restic init' -
Uložte toto ako
/usr/local/bin/backup-blossoma nastavte ho ako spustiteľný (sudo chmod 700 /usr/local/bin/backup-blossom). Ak vaše súbory nie sú v/root/blossom, zmeňteBLOSSOM_DIR. Uchováva posledných 14 dní, 8 týždňov a 12 mesiacov. Bloky sa nikdy nemenia, takže každá noc pridá len to, čo je nové.#!/bin/sh set -eu . /root/.restic-blossom-env BLOSSOM_DIR=/root/blossom COPY=/var/backups/blossom-data VOLUME=$(docker volume inspect --format '{{ .Mountpoint }}' blossom_data) mkdir -p "$COPY" rsync -a --delete "$VOLUME/" "$COPY/" cd "$BLOSSOM_DIR" docker compose stop blossom trap 'docker compose start blossom' EXIT rsync -a --delete "$VOLUME/" "$COPY/" docker compose start blossom trap - EXIT restic backup "$COPY" --tag blossom restic forget --tag blossom --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune -
Spustite ho raz ručne (
sudo /usr/local/bin/backup-blossom) a potom ho naplánujte cezsudo crontab -e. Druhý riadok každý mesiac spätne prečíta desatinu uložených údajov, zakaždým inú desatinu, aby overil, že sa kópie stále dajú otvoriť. Z času na čas sa pozrite do/var/log/backup-blossom.log: riadok sFatalznamená, že kópia v tú noc zlyhala. Ak sa relé zálohuje na tom istom stroji, tieto časy sa s jeho časmi neprekrývajú.35 4 * * * /usr/local/bin/backup-blossom >> /var/log/backup-blossom.log 2>&1 55 5 2 * * . /root/.restic-blossom-env && restic check --read-data-subset=10% >> /var/log/backup-blossom.log 2>&1
Obnovenie (nový server alebo po zlyhaní disku): znova nastavte server
(kroky 1 a 2) a zopakujte body 1 a 2 tohto kroku s tým istým repozitárom,
ale namiesto vytvárania nového hesla zapíšte uložené heslo do
/root/.restic-blossom-password a vynechajte restic init. Potom skopírujte
najnovšiu zálohu do zväzku servera:
sudo sh -c '. /root/.restic-blossom-env && restic restore latest --tag blossom --target /'
cd /root/blossom && sudo docker compose stop blossom
sudo rsync -a --delete /var/backups/blossom-data/ "$(sudo docker volume inspect --format '{{ .Mountpoint }}' blossom_data)/"
sudo docker compose start blossom
Keď nabudúce skontroluje kópie, Drive bloky opäť nájde a z ostatných serverov dokopíruje všetko, čo pribudlo po poslednej zálohe. Celý tento reťazec sme vyskúšali 27. októbra 2026: záloha, odstránenie servera, obnovenie, spätné prečítanie každého bloku s overením jeho vlastného hashu a nakoniec odstránenie kľúčom Drive.
Raz za rok vykonajte toto obnovenie na náhradnom stroji a overte, že server odpovedá s vašimi blokmi: je to jediný test, ktorý preverí celý reťazec vrátane hesla.
Dobré vedieť
- Nahrávať môže len váš Drive. Ktokoľvek, kto pozná adresu bloku, si ho môže stiahnuť, ako na každom serveri Blossom, ale blok je zašifrovaný: bez kľúčov z vášho Drive je to šum.
- Ak sa váš kľúč zväzku zmení (Drive vám dá vedieť, keď sa zväzok obnovuje),
pridajte nový ako ďalší riadok pod
pubkeys, reštartujte (docker compose up -d) a starý tam nechajte. - Aktualizácie. Prečítajte si zoznam zmien,
zmeňte verziu v
image:a spustitedocker compose pulladocker compose up -d. - Vaša IP adresa. Server vidí adresu každej aplikácie, ktorá sa k nemu pripojí, ako každý server. Na vašom vlastnom serveri ich vidíte len vy.