Skip to content

Operating a server

Files

The file manager browses and edits the server over the connection you already have. Writes are atomic, and a config file is never overwritten blindly.

Where you can go

In easy mode, the file manager shows your apps: each app's directory under /srv. Each app's page also has a Files tab that opens straight onto it.

Browsing

Listings stream: a directory with a hundred thousand files starts appearing at once, and is sorted when the listing completes. If you move on before a listing finishes, what was still arriving for the old directory is discarded. Choosing a file shows a preview beside the list.

Transfers

Native VM picks the fastest safe way for each job:

WorkHow
A folder, up or downrsync over SSH. Thousands of small files over SFTP are slow; rsync moved 2,000 in 0.3 s in testing.
A single fileSFTP, streamed in chunks, with progress you can trust and a cancel that lands mid-file.
Sizes and searchdu and find on the server, in one command rather than one round trip per file.

rsync checks the server's host key against the one you trusted, strictly. It signs in with your key file or ssh-agent. A saved password can't be handed to rsync safely, so for servers you sign in to with a password, folders travel over SFTP instead, and the transfer says so rather than being quietly slow.

Saving files your user can't write

SFTP runs as the user it signed in as and can't become root partway through. So when a file needs root, Native VM writes it through sudo -n on the same connection: the bytes go to a temporary file beside the destination, its mode is set, and it's renamed over the original. This is a choice made for the file, never a retry: a write that failed on permissions may have failed for another reason too.

sudo -n never prompts. Where there's no password-less rule, Native VM says so and how to add one.

Every write is atomic

A write goes to a temporary file in the destination's own directory, is flushed to disk, then renamed over the original. Nothing ever truncates a file and then writes it, so an interrupted save leaves the original intact. Cancelling a transfer removes its temporary file.

Editing a config file

Open a file to edit it in place. Saving is never a blind overwrite:

  1. When you open the file, Native VM remembers its checksum.
  2. When you save, it reads the file again. If it changed, you get a diff of their change and nothing is written. There's deliberately no button to force it.
  3. Only when the file is unchanged is the original copied to /var/backups/nativevm/<time>/, keeping its path, and your version written atomically.

The editor highlights the shapes configuration files have in common, so a config reads clearly without a heavyweight code editor.