Serveri viide
See leht katab selle, mida leiate SSH-ga Rediacci serverisse sisenedes: kataloogipaigutuse, renet-käsud, systemd-teenused ja tavalised tööprotsessid.
Enamik kasutajaid haldab servereid rdc kaudu oma tööjaamast ja ei vaja seda lehte kunagi. See on siin täpsema silumise või serveri otse töötamise jaoks.
Kõrgetasemelise arhitektuuri kohta vaadake Arhitektuur. rdc ja renet erinevuse kohta vaadake rdc vs renet.
Kataloogipaigutus
/mnt/rediacc/ # Peamine andmesalv
├── repositories/ # Krüpteeritud kettapildid (LUKS)
│ └── {uuid} # Igaüks on silmuseseadme pilt
├── mounts/ # Ühenduspunktid dekrüpteeritud repositooriumite jaoks
│ └── {uuid}/
│ ├── .rediacc.json # Teenus → IP-pesa kaardistus
│ ├── .rediacc/docker/ # Dockeri deemoni andmed (pildid, konteinerid)
│ └── {service-name}/ # Teenuse kataloog
│ ├── docker-compose.yml # Compose'i definitsioon
│ ├── Rediaccfile # Elutsükli konksud (bash)
│ └── data/ # Püsivad andmed
├── immovable/ # Kirjutuskaitstud jagatud sisu
├── .credentials/ # Krüpteeritud saladused
└── .backup-*/ # BTRFS-hetktõmmised
/opt/rediacc/proxy/ # Traefiku pöördpuhverserver
├── docker-compose.yml
├── config.env # CERTBOT_EMAIL, CF_DNS_API_TOKEN
├── letsencrypt/ # ACME-sertifikaadid
└── traefik/dynamic/ # Dünaamilised marsruutifailid
/run/rediacc/docker-{id}.sock # Võrgupõhised Dockeri pesad
/var/lib/rediacc/router/ # Marsruuteri olek (pordi eraldised)
renet-käsud
renet on serveripoolne binaarne. Kõik käsud vajavad root-õigusi (sudo).
Repositooriumi elutsükkel
# Loetle kõik repositooriumid
renet repository list
# Kuva repositooriumi üksikasjad
renet repository status --name {uuid}
# Käivita repositoorium (ühenda + käivita Rediaccfile up)
renet repository up --name {uuid} --network-id {id} --password-stdin
# Peata repositoorium (käivita Rediaccfile down)
renet repository down --name {uuid} --network-id {id}
# Loo uus repositoorium
renet repository create --name {uuid} --network-id {id} --size 2G --encrypted
# Fork (kohene koopia BTRFS-reflinkide abil)
renet repository fork --source {uuid} --target {new-uuid}
# Laienda töötavat repositooriumi (ilma seisakuta)
renet repository expand --name {uuid} --size 4G
# Kustuta repositoorium ja kõik selle andmed
renet repository delete --name {uuid} --network-id {id}
Docker Compose
Käivitage compose-käsud konkreetse repositooriumi Dockeri deemoni vastu:
sudo renet compose -- up -d
sudo renet compose -- down
sudo renet compose -- logs -f
sudo renet compose -- config
Käivitage docker-käsud otse:
sudo renet docker --network-id {id} -- ps
sudo renet docker --network-id {id} -- logs -f {container}
sudo renet docker --network-id {id} -- exec -it {container} bash
Samuti saate kasutada Dockeri pesa otse:
DOCKER_HOST=unix:///run/rediacc/docker-{id}.sock docker ps
Käivitage compose alati kataloogist, mis sisaldab
docker-compose.yml-i, vastasel juhul Docker ei leia faili.
Failisüsteemi liivakast
# Kontrollige Landlocki tuge
renet sandbox-exec --detect
# Käivitage käsk Landlocki liivakastis (kasutatakse sisemiselt)
renet sandbox-exec --allow-rw /path --allow-ro /usr --allow-exec /bin -- command
sandbox-exec rakendab Landlock LSM failisüsteemi piiranguid, seejärel käivitab antud käsu. Seda käivitatakse automaatselt sandbox-gateway poolt (SSH ForceCommand töötleja) kõigi repositooriumitasandi ühenduste jaoks.
Lipud:
--allow-rw,--allow-ro,--allow-exec: Landlocki teereeglid--home-overlay: Ühenda OverlayFS kodu-kataloogi kohale repositooriumipõhise kirjutuse isoleerimiseks--sandbox-dir: Repositooriumipõhine tööala (<datastore>/.interim/sandbox/<name>/)--work-dir: Määrake töökataloog ja laadige.envrcrepositooriumi keskkonna jaoks--run-as: Langeta õigused sihtkasutajale pärast seadistust--reset-home: Tühjendage repositooriumipõhine kodu-ülekate värske alguse jaoks
sandbox-gateway on SSH ForceCommand töötleja, mis on seatud command= kaudu authorized_keys-is. Iga repositooriumi SSH-võti käivitab lüüsi repositooriumi nimega sisse küpsetatud kujul, mida klient ei saa võltsida. Lüüs ehitab sandbox-exec argumendid ja käivitab sudo kaudu.
Puhverserver ja marsruutimine
renet proxy status # Kontrolli Traefiku + marsruuteri tervist
renet proxy routes # Kuva kõik konfigureeritud marsruudid
renet proxy refresh # Värskenda marsruute töötavatest konteineritest
renet proxy up / down # Käivita/peata Traefik
renet proxy logs # Vaata puhverserveri logisid
Marsruudid avastatakse automaatselt konteineri siltidest. Vaadake Võrgundus, kuidas konfigureerida Traefiku silte.
Süsteemi olek
renet ps # Üldine süsteemi olek
renet list all # Kõik: süsteem, konteinerid, repositooriumid
renet list containers # Kõik konteinerid kõigil Dockeri deemonitel
renet list repositories # Repositooriumi olek ja ketta kasutus
renet list system # Protsessor, mälu, ketas, võrk
renet ips --network-id {id} # IP-eraldised võrgu jaoks
Deemoni haldamine
Igal repositooriumil on oma Dockeri deemon. Saate neid eraldi hallata:
renet daemon status --network-id {id} # Dockeri deemoni tervis
renet daemon start --network-id {id} # Käivita deemon
renet daemon stop --network-id {id} # Peata deemon
renet daemon logs --network-id {id} # Deemoni logid
Varundamine ja taastamine
Lükake varukoopiad teisele masinale või pilvesalvestusse:
# Lükka kaugmasinale (SSH + rsync)
renet backup push --name {uuid} --network-id {id} --target machine \
--dest-host {host} --dest-user {user} --dest-path /mnt/rediacc --dest {uuid}.backup
# Lükka pilvesalvestusse (rclone)
renet backup push --name {uuid} --network-id {id} --target storage \
--dest {uuid}.backup --rclone-backend {backend} --rclone-bucket {bucket}
# Tõmba kaugelt
renet backup pull --name {uuid} --network-id {id} --source machine \
--src-host {host} --src-user {user} --src-path /mnt/rediacc --src {uuid}.backup
# Loetle kaugvarukoopiad
renet backup list --source machine --src-host {host} --src-user {user} --src-path /mnt/rediacc
Enamik kasutajaid peaks kasutama hoopis
rdc repo push/pull.rdc-käsud käsitsevad mandaate ja masina lahendamist automaatselt.
Kontrollpunktimine (CRIU)
Kontrollpunkt salvestab töötavate konteinerite oleku, et neid hiljem taastada:
renet checkpoint create --network-id {id} # Salvesta töötava konteineri olek
renet checkpoint restore --network-id {id} # Taasta kontrollpunktist
renet checkpoint validate --network-id {id} # Kontrolli kontrollpunkti terviklikkust
Hooldus
renet prune --dry-run # Eelvaade mahajäetud võrkudest ja IP-dest
renet prune # Puhasta mahajäetud ressursid
renet datastore status # BTRFS-andmesalve tervis
renet datastore validate # Failisüsteemi tervikluse kontroll
renet datastore expand # Laienda andmesalve veebis
Systemd-teenused
Iga repositoorium loob need systemd-üksused:
| Üksus | Eesmärk |
|---|---|
rediacc-docker-{id}.service | Isoleeritud Dockeri deemon |
rediacc-docker-{id}.socket | Dockeri API pesa aktiveerimine |
rediacc-loopback-{id}.service | Loopback-IP aliase seadistus |
Globaalsed teenused, mis on jagatud kõigile repositooriumitele:
| Üksus | Eesmärk |
|---|---|
rediacc-router.service | Marsruudi avastamine (port 7111) |
rediacc-autostart.service | Käivitusaegne repositooriumi ühendamine |
Tavalised tööprotsessid
Juuruta uus teenus
- Looge krüpteeritud repositoorium:
renet repository create --name {uuid} --network-id {id} --size 2G --encrypted - Ühendage see ja lisage oma
docker-compose.yml,Rediaccfileja.rediacc.jsonfailid. - Käivitage see:
renet repository up --name {uuid} --network-id {id} --password-stdin
Pääsege töötava konteineri juurde
sudo renet docker --network-id {id} -- exec -it {container} bash
Leidke, milline Dockeri pesa konteinerit käitab
for sock in /run/rediacc/docker-*.sock; do
result=$(DOCKER_HOST=unix://$sock docker ps --format '{{.Names}}' 2>/dev/null | grep {name})
[ -n "$result" ] && echo "Found on: $sock"
done
Taastage teenus pärast konfiguratsioonimuudatusi
sudo renet compose -- up -d
Käivitage see kataloogist, kus asub docker-compose.yml. Muudetud konteinerid luuakse automaatselt uuesti.
Kontrollige kõiki konteinereid kõigil deemonitel
renet list containers
Näpunäited
- Kasutage alati
sudo-drenet compose,renet repositoryjarenet dockerkäskude jaoks, neil on vaja root-õigusi LUKS ja Dockeri toiminguteks ---eraldaja on nõutav enne argumentide edastamistrenet compose-le jarenet docker-ile- Käivitage compose kataloogist, mis sisaldab
docker-compose.yml-i .rediacc.json-pesa omistused on stabiilsed, ärge muutke neid pärast juurutamist- Kasutage
/run/rediacc/docker-{id}.sock-teid (systemd võib muuta pärand/var/run/-teid) - Käivitage aeg-ajalt
renet prune --dry-run, et leida mahajäetud ressursse - BTRFS-hetktõmmised (
renet backup) on kiired ja odavad, kasutage neid enne riskantseid muudatusi - Repositooriumid on LUKS-krüpteeritud, parooli kaotamine tähendab andmete kaotamist