delonix storage
Volumes de REDE (NFS/CIFS/WebDAV) montáveis, estilo PersistentVolume do k8s.
NETWORK volumes (NFS/CIFS/WebDAV) you can mount, k8s PersistentVolume-style.
Monta pastas de um NAS (TrueNAS/Synology/Samba/Nextcloud) como volumes nomeados.
Por baixo é um volume do delonix-volume com driver de rede — mount -t nfs|cifs|davfs.
A password vem do cofre (--password-secret), nunca do argv. Ligado ao stack apply
(ordem Network→Volume→Storage→Image→Vm→Container). Montar precisa de CAP_SYS_ADMIN.
Mounts a folder from a NAS (TrueNAS/Synology/Samba/Nextcloud) as a named
volume. Under the hood it's a delonix-volume volume with a network driver —
mount -t nfs|cifs|davfs. The password comes from the vault
(--password-secret), never from argv. Wired into stack apply (order
Network→Volume→Storage→Image→Vm→Container). Mounting needs CAP_SYS_ADMIN.
📄 Implementação real em Rust: cmd/storage.rs
Usage: dlx storage [OPTIONS] <COMMAND>
Commands:
dash Storage/volumes dashboard (KPIs + table) — TUI, or `--once` snapshot
create Create (and mount) a network storage
ls List the network storages (volumes with a network driver)
inspect Details of a storage
rm Remove (and unmount) a storage. The DATA stays on the NAS — only the local mount is torn down, like docker
apply Apply the `kind: Storage` documents from a manifest
help Print this message or the help of the given subcommand(s)
Options:
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
-h, --help Print helpstorage apply
Apply the kind: Storage documents from a manifest
Usage: dlx storage apply [OPTIONS]
Options:
-f, --file <FILE>
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
-h, --help Print helpExemplos
delonix storage apply -f storage.yamlstorage inspect
Details of a storage
Usage: dlx storage inspect [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
-h, --help Print helpExemplos
delonix storage inspect nas-fotosstorage dash
Storage/volumes dashboard (KPIs + table) — TUI, or --once snapshot
Usage: dlx storage dash [OPTIONS]
Options:
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
--once
--json
-h, --help Print helpExemplos
delonix storage dashstorage create
Create (and mount) a network storage
Usage: dlx storage create [OPTIONS] --type <TYPE> --server <SERVER> --share <SHARE> <NAME>
Arguments:
<NAME>
Options:
--l18n <en|pt>
Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
--type <TYPE>
Type: `nfs` | `cifs`/`smb` (Samba/Windows) | `webdav` (Nextcloud/ownCloud) [possible values: nfs, cifs, smb, webdav]
--server <SERVER>
Server (host/IP), or the base URL in the `webdav` case
--share <SHARE>
Export/share: NFS path (`/mnt/pool/media`), CIFS share name (`media`), or the path in the WebDAV URL (`/remote.php/dav/...`)
--username <USERNAME>
User (cifs/webdav)
--password <PASSWORD>
Password (cifs/webdav) — prefer `--password-secret` to avoid exposing it
--password-secret <PASSWORD_SECRET>
Vault secret with the `password` key (cifs/webdav) — does not leak in shell history
--read-only
Mount read-only
--options <OPTIONS>
Extra mount options (`vers=4.1,soft`), appended to the derived ones
-h, --help
Print helpExemplos
delonix storage create media --type nfs --server 10.0.0.5 --share /mnt/pool/mediadelonix storage create docs --type cifs --server nas --share docs --username user --password-secret nas-passstorage ls
List the network storages (volumes with a network driver)
Usage: dlx storage ls [OPTIONS]
Options:
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
-o, --output <OUTPUT> Output format: `table` (default) or `json` (ADR-0005) [default: table] [possible values: table, json]
-h, --help Print helpExemplos
delonix storage lsstorage rm
Remove (and unmount) a storage. The DATA stays on the NAS — only the local mount is torn down, like docker
Usage: dlx storage rm [OPTIONS] <NAME>
Arguments:
<NAME>
Options:
--l18n <en|pt> Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
-h, --help Print helpExemplos
delonix storage rm mediaLaboratórioLab
Regista um export NFS como storage e monta-o num
container, com a password a vir do cofre em vez do manifesto.
printf 'password-do-nas' | delonix secret create nas-pass
delonix storage create nas1 --server 192.168.1.50 --share /export/dados --password-secret nas-pass
delonix container run --rm -v nas1:/mnt alpine sh -c 'echo ok > /mnt/teste'Register an NFS export as storage and mount it into a
container, with the password coming from the vault instead of the manifest.
printf 'nas-password' | delonix secret create nas-pass
delonix storage create nas1 --server 192.168.1.50 --share /export/data --password-secret nas-pass
delonix container run --rm -v nas1:/mnt alpine sh -c 'echo ok > /mnt/test'DesafioChallenge
Confirma no próprio NAS (por outra via — outro host, ou o
painel do NAS) que o ficheiro teste chegou mesmo lá — a prova de que o
storage não é um volume local disfarçado.
Confirm on the NAS itself (through another path — another host, or the
NAS's own panel) that the test file really landed there — the proof that
storage isn't a local volume in disguise.