Cockpit File Sharing puts Samba, NFS, iSCSI and S3 behind one web UI
A Cockpit plugin for managing Samba, NFS, iSCSI, and S3 storage services.
At a glance
- What is it?
- 45Drives cockpit-file-sharing is a GPL-3.0 Cockpit plugin that manages Samba shares through the net conf registry, plus NFS exports, iSCSI targets and S3 buckets. It is a good fit for admins of 45Drives and Ceph based storage servers, and a poor fit for anyone who wants a general purpose GUI file server.
- Who is it for?
- Adopt cockpit-file-sharing if you already run Cockpit on 45Drives or Ceph based storage and want Samba, NFS, iSCSI and S3 administration in the browser. Do not adopt it as a general purpose Linux file server GUI, because the Samba tab reads a live registry that only populates when smb.conf includes it, and the per-backend access models for S3 differ.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 7 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The Samba tab is a front end for the net conf registry
Cockpit File Sharing from 45Drives is a plugin that turns a plain Linux server into a managed file sharing box. It targets administrators who already run Cockpit and want to hand out storage over SMB, NFS, iSCSI or S3 without editing daemon configuration by hand. The interface is written in Vue, and the repository is laid out as a yarn workspace called file-sharing next to a houston-common package, with a Makefile that builds only the file-sharing subdirectory.
The mechanism behind the Samba tab matters, because it decides what you can see. The README states that the tab is a front end UI for the net conf registry used by Samba, which is a live configuration store rather than a text file. The practical consequence is stated plainly: shares configured by hand in /etc/samba/smb.conf do not appear in the interface. They can be brought in with the Import button at the bottom of the page, and the configuration file must contain include = registry in its [global] section, something the plugin can arrange in one click.
That design cuts both ways. It gives you a real, reversible editor for a registry the daemon reads live, and it gives you a blind spot for anything that was not written through the registry. An existing server with a hand-tuned smb.conf needs the include line and an import pass before the plugin shows anything useful.
Preset checkboxes write vfs objects lines for you
The most useful part of the share editor is that the headline options are not vague toggles. Each one writes a concrete block of Samba parameters into the share, which means a user who knows smb.conf can predict exactly what a click will do. Enabling Windows ACLs sets the acl_xattr vfs module and the two related options:
map acl inherit = yes
acl_xattr:ignore system acls = yes
vfs objects = acl_xattrShadow Copy is platform sensitive. On ZFS it selects the shadow_copy2 module with a snapdir and a timestamp format, while on Ceph it selects a different module entirely:
vfs objects = shadow_copy2
shadow:snapdir = .zfs/snapshot
shadow:sort = desc
shadow:format = %Y-%m-%d-%H%M%Svfs objects = ceph_snapshotsThe MacOS share option adds the catia and fruit streams_xattr modules, and Audit Logs turns on the full_audit module with a success and failure event list. Anything not covered by a preset is reachable through the Advanced Settings dropdown, which exposes the rest of the share parameters. The documentation points at smb.conf(5) for the full parameter list rather than duplicating it, which is the right call for a plugin that has to track Samba releases.
NFS exports, iSCSI targets and four different S3 backends
The other three services are grouped in the same plugin, and each one has its own shape.
For NFS the plugin creates, edits and removes shares, manages per client settings, and exports and imports configuration in the same format as /etc/exports. For iSCSI it manages virtual devices, with explicit support for single server and clustered environments, plus targets, target portals, initiator groups and CHAP configuration, and a view of active sessions. iSCSI configuration can be imported and exported as well.
S3 is the part with the most variation. The plugin detects and manages four supported backends: MinIO, RustFS, Ceph RGW and Garage. Bucket management is uniform: create, edit and delete buckets, then look at bucket usage and statistics. Access management is not. MinIO and RustFS get users, policies and groups, RustFS additionally gets access keys, Ceph RGW gets its own user and access management, and Garage gets key management. If you operate more than one of these backends, expect to learn the quirks of each instead of one uniform IAM screen.
The Samba side adds Ceph specific options that are absent from a plain Linux server: quota, layout pool, and a Cephfs remount so quota reports correctly to the client. A share path that does not exist can be created from the interface, and the Linux side path permissions are managed from the same dialog.
Ubuntu and Rocky installs: the 45Drives repo or an unsupported package file
Installation is documented per distribution, and the project clearly marks one route as recommended and the other as unsupported. On Ubuntu 20.04 and 22.04 the recommended path adds the 45Drives repository and installs the package through apt:
curl -sSL https://repo.45drives.com/setup | sudo bash
sudo apt update
sudo apt install cockpit-file-sharingThe direct download route exists too, and the documentation is explicit about the cost. Installing this way may work for other versions of Ubuntu and Debian, but it is unsupported, and you will not get automatic updates this way.
curl -LO https://github.com/45Drives/cockpit-file-sharing/releases/download/v4.6.1/cockpit-file-sharing_4.6.1-2jammy_all.deb
sudo apt install ./cockpit-file-sharing_4.6.1-2jammy_all.debOn Rocky 8 and Rocky 9 the same repository script works, with dnf taking the install. The release file names carry the distribution and package build in the name, for example the el9 noarch rpm, so the artifact you pick has to match your distribution family. Note the version pinned in the download URLs is older than the newest tagged release, so a reader following the commands literally lands on v4.6.1 rather than v4.6.3.
Building from source needs yarn 4 and the samba and nfs tooling
A generic installation path is documented for other distributions, and it splits into dependencies, build dependencies, and the build itself. The runtime dependency list differs between debian-like and RHEL-like systems, though the shape is the same on both:
# debian-like
cockpit-bridge
coreutils
attr
findutils
hostname
iproute2
libc-bin
systemd
nfs-kernel-server
samba-common-binThe RHEL-like list swaps nfs-kernel-server for nfs-utils, samba-common-bin for samba-common-tools, and iproute2 for iproute. The build dependencies are the sponge command from moreutils, the yarn package manager, and make. The workspace pins its package manager as [email protected] in package.json.
The build is three commands:
git clone https://github.com/45Drives/cockpit-file-sharing.git
cd cockpit-file-sharing
make
sudo make installThe Makefile treats the plugin sources as a single subdirectory, file-sharing, and exposes knobs such as DEBUG, which leaves JavaScript unminified when set to 1, and RESTART_COCKPIT, which is off by default. A word of caution: the same file carries a REMOTE_TEST_HOST pointing at a private address and a REMOTE_TEST_USER of root, which is a leftover from the maintainers' own test setup rather than something a user should copy.
Deleting a share leaves the files on disk
Several boundaries in this plugin are worth knowing before you point it at a production share.
Deleting a share does not delete data. The documentation is unambiguous that removing a share only removes the share definition from Samba and does not remove any files. That is the right default, but it means the storage footprint of a removed share stays until you clean it up yourself.
Editing is narrower than creating. When you open a share with the pencil icon, the settings are the same as at creation time, except you cannot change the share name or the path. Renaming a share or repointing it at a different directory means deleting and recreating it.
Guest access is one checkbox with real consequences. Enabling Guest Ok allows accessing the share with no password, and privileges are mapped to the guest account, which defaults to nobody. Read Only then decides whether clients can create or modify files and directories.
Version 4 also removed the friendly allow list fields. The valid users property is still available through advanced settings, so nothing is lost technically, but the interface no longer offers the first class UI for managing valid users and groups. Samba passwords are managed from a Manage Samba Passwords button in the Global Configuration section, and the user must already exist on the system, since this only sets the Samba password.
Recent releases, GPL-3.0 licensing, and what the repository does not cover
The project is not archived, and the last push was on 2026-10-09. Recent tagged releases include Cockpit File Sharing 4.6.3 on 2026-09-21, 4.6.2 on 2026-09-01 and 4.6.1 on 2026-07-23, so upgrades land through the package manager on the supported distributions rather than requiring a manual plugin build.
The licence is GPL-3.0. That matters in a specific way for a server plugin: distributing a modified version of the plugin carries the GPL obligations, and the Makefile header carries the same notice. This is a licensing statement, not legal advice, and the licence file in the repository is the authoritative text.
The gaps are as informative as the features. The README does not document rollback, so there is no stated procedure for reverting a share or a configuration change after the fact, and the export and import feature is the closest thing to a backup path, working in the same format as /etc/samba/smb.conf and /etc/exports. There is no documented audit trail of who changed which share, beyond the Samba full_audit logging preset that writes events to local5. The documentation also does not describe a command line interface for the plugin itself, so the browser is the only documented control surface.
Editorial conclusion
Adopt cockpit-file-sharing if you already run Cockpit on 45Drives or Ceph based storage and want Samba, NFS, iSCSI and S3 administration in the browser. Do not adopt it as a general purpose Linux file server GUI, because the Samba tab reads a live registry that only populates when smb.conf includes it, and the per-backend access models for S3 differ. Before you install, check that your Samba configuration carries include = registry in the [global] section, decide whether you want the 45Drives repository or the unsupported direct .deb and .rpm route, and confirm the required packages such as samba-common-bin and nfs-kernel-server are present on the target host.
Frequently asked questions
Will cockpit-file-sharing show shares I already created by hand in smb.conf?
No. The Samba tab reads the net conf registry, so hand written shares in /etc/samba/smb.conf do not appear until you import them with the Import button, and the file must contain include = registry in its [global] section, which the plugin can configure in one click.
Does removing a share in cockpit-file-sharing delete the files it pointed at?
It does not. Removing a share only removes the share definition from Samba and leaves the files on disk untouched, so cleaning up the data is a separate manual step.
Which S3 backends can I manage from the plugin, and is access management the same for each?
The plugin detects MinIO, RustFS, Ceph RGW and Garage, and bucket creation, editing, deletion and usage statistics work across all of them. Access management differs: MinIO and RustFS get users, policies and groups, RustFS also gets access keys, Ceph RGW has its own user and access management, and Garage gets key management.
How do I install cockpit-file-sharing on Ubuntu or Rocky, and what do I lose with the direct package download?
The recommended route runs the 45Drives repository setup script and then installs cockpit-file-sharing with apt on Ubuntu or dnf on Rocky. The direct .deb or .rpm download may work on other versions of these distributions, but it is unsupported and gives you no automatic updates.
Can I rename a share or change the path of an existing share in the editor?
No. When editing, the settings match creation, but the share name and path cannot be changed. A different name or location means removing the share and creating it again.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/45drives-cockpit-file-sharing)Was this useful?