Skip to content

Flotilla 1.5.0-beta.5

Pre-release
Pre-release

Choose a tag to compare

@melonfleet melonfleet released this 20 Oct 09:26
· 14 commits to main since this release
d735624

Flotilla is a native Mac app for Apple's container: run and manage Linux containers on this Mac, and on a fleet of Macs from one admin Mac.

This is a beta, built and tested against container 1.5.0. Expect rough edges, and please report what you find.

Requirements

  • A Mac with Apple silicon, macOS 26 or later.
  • Apple's container 1.5.0. Flotilla offers to download and install it on first run, through Apple's own Installer.

A new version number

Flotilla now has its own version number, in the form X.Y.Z. This is Flotilla 1.5.0-beta.5, tested with container 1.5.0. About in Settings says both, and the status bar shows the version. Updates still work as before: Flotilla orders its builds by build number, not by the label.

What's new since beta 4

One search box, and a new look for lists.

  • The search box in the window bar filters the page you're on, jumps to sections and to things by name on any Mac, and runs commands. ⌘K and ⌘F focus it, and ⌘K opens on a list of everything it can do.
  • Start with container:, image:, volume:, host: and so on to look only at that kind of thing, from any page. Start with / to run a command by name, such as /run-container or /pull-image. > still means commands only.
  • Every list is now two-line rows with a checkbox, one Sort menu and no Cards view. When a row is wide enough it becomes one line, as in Gmail.
  • Every list is a split view, like Mail: the list on the left, the selected item's page on the right. Drag the divider and Flotilla remembers it for each section. The arrows ↑ ↓ step through the list, and the expand button widens the page over the list.
  • A button in every section switches between two panes and list only. In list only, clicking a row slides its page in, and the ✕ or Esc closes it.
  • Tick several rows for a summary with the bulk actions. Row actions show when you hover or select a row, and always while VoiceOver is running.
  • Pages with tabs use an icon-only switcher, in the same order everywhere.
  • The Recent activity strip at the bottom of pages is gone. The Activity section has everything.
  • Logs and Activity are lists with a detail pane. Click a line to read it in full.
  • Selecting a group shows a live overview (how many services are running, each service, its network), with Edit.

Status bar.

  • A bar across the bottom of the window. On the left: ● Container, ● Helper and the version. On the right: Tasks. Each dot shows the state; click it for a menu.
  • The version menu checks for updates, shows the update channel, shows the suggestions library, and updates Flotilla or container on your hosts.
  • Update checks show what they're doing: checking, downloading, verifying, installing.

Tasks.

  • Every job you start, such as a pull, build, install or stack, becomes a task. Progress no longer takes over the window.
  • Tasks rises as a panel on the right side of the window. Each task is one line: an icon for its kind, its title, and its progress or elapsed time. Hover for where it runs and its current step. Open the caret for its steps and output.
  • The status bar shows Tasks on the right: a spinner, a count and the progress while jobs run, "Failed" in red after a failure, and "Done" for a moment after a success. When all is quiet it shows how many jobs finished.
  • Finished jobs fold into one line, "N finished". A failure among them is named there.
  • The panel puts itself away two seconds after the last job ends well. A failure keeps it up. ⌥⌘T shows or hides it.
  • Some tasks have a Stop button (pulling and building an image on this Mac) and Retry. Tasks that can't be safely repeated offer neither. There is no Pause.
  • When a container you ran is still running, its task has a Stop button. It stops that container, on the Mac it runs on. It matches the container by name and creation time, so a later container with the same name is never stopped by mistake. If Flotilla can't read the creation time, there is no Stop button.
  • A failed task raises a notice with Show Task and, if Flotilla is in the background, a macOS notification. Successes don't notify. Notifications has a switch for these.
  • Pulling or building, creating a machine or a cluster, and the other forms now return to their list when you start them. The job lives in Tasks, and two pulls are two tasks.
  • The dialogs for About and the Support Bundle no longer have the red dot. Each closes with its own button, or Esc. About is now in Settings.

Forms.

  • Every form has the same buttons at the top right: ⋯ for rare extras (such as Delete or Save to File), ✕ to close, and the main action on the right in the accent colour. The main action is ▶ when it starts a job that shows in Tasks, and ✓ when it keeps your changes. Hover for its exact name.
  • There is no button row at the bottom of a form. Messages sit in a band under the header.
  • ✕ and Esc ask first if you have unsaved changes, as Back does.
  • Add Host uses the same layout, with explanations on the right.

Groups.

  • Add Service opens a picker. Choose from the library's single-container suggestions, from the images on this Mac, or start blank. A matching recipe fills in ports, environment and volumes.
  • Pick one for a prefilled form. Pick several to add them straight to the group, each with its own name, a free host port and its own password.
  • A service needs a host port that is a real port mapping. A pick with no free port is refused with a message saying which services need one, rather than saved and failing at Start.
  • A group saved earlier with a bad port isn't lost. Flotilla keeps the service, drops that port and flags it for you to fix.
  • The flag shows in the Containers list, on the group's page and in its form. Start won't create that service until you choose a host port, or choose Keep Without It to keep it with no published port.
  • A recipe fills in a service only for the same major version of the image: PostgreSQL 17 doesn't get PostgreSQL 18's settings. An image with no version tag, such as latest, gets none.
  • A picked service keeps its recipe's volume owner, so a fresh volume is set up for images that don't run as root, as it is for a single run.
  • Leaving the picker, or choosing Blank Service, cancels an Add that is still preparing, so it can't add anything afterwards.

Tooltips.

  • Every icon button and menu now says what it does when you hover. Some wrong, stale or vague ones were fixed, such as "Create Machine" on a ▶ and "Close (Esc)". Tab icons keep their tooltips. A check in the build fails if an icon is added without one.

The Flotilla Helper.

  • The Helper is the background service for jobs that need administrator rights: DNS names across Macs, installing container, and updating Flotilla on hosts. It registers itself at launch in a signed build, shows its real state in the status bar, and offers Restart, Reinstall and Remove.

Hosts.

  • A host's page can reach it by SSH, Screen Sharing and Files. SSH runs your own ssh, with your keys. Flotilla can make its own key for its hosts, copy it to a host, and later replace or remove it. Your other keys are not touched.
  • Screen Sharing and File Sharing open in macOS. Each shows a dot for whether the service is on.
  • Hosts show their Mac model's own icon, and group headings match the ones in Containers.
  • Host health is steadier. Flotilla reconnects after your network changes, a busy host shows amber, and a host that is waiting on an update says so instead of failing. Switching sections quickly no longer piles up checks on unreachable hosts, and Flotilla now quits when asked.
  • The Updates tab of a host lists macOS and kernel security advisories that apply to its version.

Files.

  • A container's Files tab is a small Finder: Icons, List and Columns views, Group By, search, and a path bar. You can create folders, rename, move and delete (Delete always asks). Another Mac's containers stay read-only.

Suggestions.

  • Suggestions is now one section in the sidebar, under Overview, with tabs: All, Apps, Stacks, Volumes, Networks, Domains, Machines, Clusters. Each tab shows how many suggestions match your search. Apps and stacks come from the library; volumes, networks, domains, machines and clusters come from the suggestions built into Flotilla. There is no Images or Registries tab.
  • The tabs are rows in a split view, like the other lists: the list on the left, the selected suggestion's details on the right.
  • Use… opens the form for that kind (Run, the stack form, New Volume, New Network, New DNS Domain, New Machine or New Cluster), full width and already filled in. The filled-in values don't count as unsaved changes, so leaving without editing asks nothing. Nothing is created until you press the form's main action.
  • Close or finish a form, or visit another section, and you come back to the same tab, search, category, selection and Mac.
  • The search box finds suggestions of every kind from any page. Choosing one opens Suggestions on its tab with the row selected. It never creates anything. A tab with no match offers Show all matches.
  • The suggestion galleries inside Containers, Volumes, Networks, DNS, Machines and Clusters are gone. Their Suggestions… menu items, the "start from a suggestion" links in empty lists, and File ▸ Suggestions now open the matching tab.
  • Machines can be created from a suggestion on This Mac only, as the New Machine form is today.
  • The library's logos appear beside each suggestion, and in Containers and Images made from one. Machines and registries show their distribution's or registry's logo when the library has it.
  • Search finds suggestions by category, image and licence, as well as name.
  • Tick several apps or stacks and use them in turn, one form each, with "1 of N". If two want the same port, the later one gets a free port. Volumes, networks, domains, machines and clusters are used one at a time.
  • A fresh volume is set up for images that don't run as root, when a recipe asks, so they can write to it. This happens only on a volume Flotilla has just created, and it refuses a volume that already has data.
  • Vulnerability reports: the library is scanned daily in the cloud and Flotilla matches the report against your images on your Mac. Findings show on image and container pages, and as a chip on image rows. They are advisory and never stop anything. Nothing about your Mac is sent.

Greta.

  • A microphone button in Greta's message field dictates into it (also ⇧⌘D). Speech is recognised on this Mac only and nothing is sent until you press Send.
  • Conversations are rows with Pin, Rename, Duplicate, Archive and Delete, and the message field is a Messages-style capsule.
  • A banner at the top of Greta's panel says she is experimental: her answers can be wrong, so check anything she suggests before you run it.

Containers and machines.

  • Restart policies and health checks run on the Mac that runs the container, and host checks work on hosts too. Checks only reach a TCP port the container publishes on this Mac's loopback. An admin sets HTTP and port checks on a host, not commands.
  • A machine's page can check for package updates on Alpine (apk) and AlmaLinux (dnf). Installing stays up to you. The checks now work with container 1.5.0, which runs a machine's command through the machine's own shell; each check is sent as one fixed, quoted command. A check can start a machine that was just stopped, and the page says so.
  • Groups and stacks can run on any host.

First run and Settings.

  • First launch opens a setup assistant: role, look, Greta, preparing this Mac (container and Local Network, never silently), and online checks. Run it again from Help ▸ Setup Assistant.
  • Settings has a sidebar of sections with icon tiles, like 1Password. About lives in Settings, and lists every network destination Flotilla can contact.
  • Dismissing a half-filled form asks first, whichever way you leave it (Back, Cancel, Esc, ⌘K, ⌘Q).

What testers must do

  • Approve the Helper once. After updating, macOS may ask you to allow the Flotilla Helper in System Settings ▸ General ▸ Login Items & Extensions. Approve it. Without it, DNS across Macs, installing container and host updates can't run.
  • Greta's microphone. The first time, macOS asks for microphone access. The speech model for your language then downloads from Apple, once, only when you click Download.
  • Hosts. Update the admin Mac first. It then updates its hosts by itself, one at a time, when each is idle. A host on beta 4 can't do the new health-check and policy actions until it's updated.

Downloads

  • Flotilla-1.5.0-beta.5.dmg: drag Flotilla to Applications.
  • Flotilla-1.5.0-beta.5.pkg: for MDM and scripted installs.
  • Flotilla-1.5.0-beta.5.zip and .tar.gz: the same signed, notarised app.

Updating from beta 4

Flotilla updates itself through Sparkle. Beta 4 keeps working with the suggestions library it has, and doesn't read the new library format. Beta 5 reads both the old and the new format.

Known limits

  • A new host needs one click on macOS's local network prompt; a configuration profile cannot grant it.
  • Containers on different Macs reach each other through published ports only.
  • A cluster on a host is reached with kubectl on that host.
  • Creating a cluster on a host shows no progress until it finishes, which can take several minutes.
  • The Docker Hub browser searches Docker Hub only.
  • With Show Flotilla in: Menu bar, a window still opens at login.
  • Vulnerability reports cover the library's images only, not images you built or pulled elsewhere.
  • Dictation needs a language Apple's speech recognition offers on the Mac. Otherwise the button is off.
  • Files can't change a machine's files, or another Mac's containers.
  • A machine's update check can start a machine that was just stopped.
  • Machine update checks cover Alpine and AlmaLinux only.
  • Tasks can't be paused, and a run, a stack or a machine create can't be cancelled or retried. A run's task can Stop the container it made.