Repository navigation
Sharing and Export
A .flotilla file says what to build: groups, containers, networks, volumes, machines, clusters
and hosts. Another Mac that imports it pulls the same images and creates the same things, empty. It
never holds content — no volume data, no image layers, no passwords, no keys.
One format serves both a single shared group and a whole-Mac export, so the two are the same kind of file. It is readable, versioned JSON — version 2. Version 1, the Flotillafile, still reads through the same import.
The Export Settings… file in Settings ▸ Advanced is something else: Flotilla's own preferences, not a configuration. See Settings.
A group's menu has Save to File…. It writes that group, its network and its volumes, with no checklist, and if anything was left out it says what in a short note afterwards. See Groups and suggestions.
File ▸ Export Configuration… (⇧⌘E, also in Go To) opens a checklist of what this Mac has:
- Groups, with how many services each has.
- Containers that stand on their own. Group members travel with their group, and a cluster's node is the cluster.
- Networks, other than the built-in ones.
- Volumes — "created empty".
- Machines, with their images.
- Kubernetes clusters — "on the default node image".
- Hosts — "paired again on the other Mac".
And under Also:
- Tags — on the things above.
- Host categories — Site, Rack and the like, with the values of the hosts above.
- Registry list — never sign-ins.
- DNS domains — recreating them needs an administrator, or the Flotilla Helper.
Nothing starts ticked, with Select All and Clear All at the top. You choose what goes in the file rather than discovering afterwards what did.
The rail shows The file will hold, item by item, and, before anything is written, Left out with a reason for each. A file that quietly builds something different on the other Mac is exactly what this screen exists to prevent. What can be left out, and why:
- A folder mounted from this Mac. Its path is on this Mac and names your account, so it is never written. Named volumes are kept.
- A variable that looks like a secret — a name containing PASSWORD, SECRET, TOKEN and the like. The file keeps the variable's name only, and the person importing it is asked for the value.
- Hosts' trust and keys. Each host is written as who and where, plus the key it must present — never trust, and never a key that proves anything.
- A container that overrides its image's entrypoint, which a file cannot express yet, or a published port range.
- A machine whose image is not known, so it could not be rebuilt.
- Host categories' values for Macs not in the file, This Mac's included.
Images are recorded with their digest, so an import can tell when a tag now points at different bytes than when the file was made.
File ▸ Import Configuration… (⇧⌘I), Go To, or double-click a .flotilla file in Finder. The
open panel takes .flotilla and .json files, which covers a Flotillafile too.
The file came from somewhere else, so it is treated as untrusted. It is read but never run: unknown
keys are refused rather than ignored, every value is checked against the same rules Flotilla uses for
container itself, everything is bounded — the file is at most 2 MB — and every command still goes
through the allowlist when you import.
Nothing is pulled, created or started until you press Import. The review shows:
- Each item, marked new or already on this Mac. A clash needs a decision: Skip, Rename, or, where it can, Replace. Renaming a group renames its services whose names are taken too, and settings that name them follow.
- Passwords the file names but cannot carry. Each is generated unless you tick Type it — type it when a volume or service already uses a known password.
- Images, pulled only if this Mac does not have them.
- Registries, added to your list if missing, and Make … the default registry if the file has a different default. Never signed in: the file holds no sign-ins.
-
DNS domains, which go through the Flotilla Helper or ask for an administrator password once,
and Name containers under …, which restarts
containerand stops every running container. - Hosts — see below.
The footer says how many items still need a decision, and Import waits until none do. If you chose Replace for anything, a final confirmation names everything that will be deleted first, with Replace and Import.
One job, in a fixed order: replacements first; then the pulls, the slow part and the one most likely to fail; then networks, volumes, machines and clusters; then what refers to them. Containers are created stopped and groups are saved ready to start, the same as a suggestion. Nothing runs until you start it.
If a step fails, the message says which, and what was already built and left in place, so the screen matches the Mac. Afterwards Flotilla notes any image that has changed since the file was made.
Imported hosts arrive unpaired: the file holds no trust and no keys. Each appears in Hosts, to pair from there as usual. Pairing is refused if a Mac presents a different key from the one in the file, so a file cannot be used to slip an impostor into your list under a familiar name. A host this Mac already knows is left as it is.
Import runs on This Mac. To set up the same thing on a host, import it there, or use Send to Hosts… for images and Push to Hosts… for networks and volumes from This Mac.
Flotilla — a native macOS app for Apple's container CLI. A personal project, free to use, Apache-2.0. No account, no telemetry.
Getting started
Fleet
Containers and resources
- Containers
- Groups and suggestions
- Images
- Registries
- Volumes and networks
- Kubernetes
- DNS
- Machines and containers
- Machines
- Terminal
- Files
Using Flotilla
- Menu bar and window
- Views and filtering
- Logs and diagnostics
- Sharing and export
- Flotillafile
- Settings
- Greta
- Flotilla Helper
More