Sync a workspace through your own server
To sync through your own server, choose Workspace ▸ Put Workspace on a Server… on your Mac and fill in the connection sheet. nokko uploads a copy to a folder you pick, over SFTP, and other devices join that folder.
For Mac, iPhone · Last checked
Check your host allows this
A storage service, a NAS or a rented server is a more usual home for this. Some are covered further down.
What you need
- A server you can reach over SSH with SFTP turned on
- Its address, its port and your username
- A password, or somewhere to add a public key
- An empty folder for the workspace, or a place nokko can make one
Start on a Mac. The iPhone can join a server workspace, but cannot put one there.
The connection sheet, field by field
On the Mac
| Field | What to enter |
|---|---|
| Host | Your server's name or IP address, such as ssh.yourhost.com. Type the name alone. With user@host or sftp://host, Test Connection stays grey until you remove the extra part. Generate Key splits it for you. |
| Port | 22 unless your host says otherwise. |
| Username | Your SSH or SFTP username. |
| Folder | The folder for this workspace. It must start with /, or Test Connection stays grey. If the path is not at the top of the server, nokko looks inside your home folder. The sheet then shows the full path. |
| Browse… | Lists the server's real folders. It works once the server is trusted. Create makes a folder, and Choose This Folder fills in the field. |
| Sign in with | SSH key or Password. A password is kept in this Mac's Keychain. |
| Test Connection | Connects, signs in and counts the files in the folder. It gives up after 25 seconds and says why. |
| Fingerprint prompt | The first time, First contact with this server shows the server's identity. Compare it with what your host publishes, then click Accept and Continue, or Go Back. nokko refuses to connect if it ever changes. |
| Upload Workspace | Appears after a passing test. It stays grey if the folder already holds files, because uploading never merges into an occupied folder. |
Put a workspace on your server
On the Mac
- Open the workspace and choose Workspace ▸ Put Workspace on a Server…. You can also use Share… in Settings ▸ General.
- Fill in Host, Port and Username.
- Choose SSH key or Password under Sign in with. For a key, follow Generate and add the key first.
- Type a first guess in Folder, such as
/nokko. Browse… only works after the first test, so the field needs something now. - Click Test Connection, compare the fingerprint and click Accept and Continue.
- If you want a different folder, click Browse…, pick or create it, and test again.
- When the sheet says the folder is empty and ready, click Upload Workspace.
Your local folder stays where it is, and the server gets a copy. nokko syncs a couple of seconds after each change, every 60 seconds, and when you press the sync button.
If the folder is not there yet, nokko creates it. Only its parent has to exist. A deeper path whose parent is missing fails, with a message telling you to use Browse.
Generate and add the key
On the Mac
- Fill in Host, Port and Username first. A key belongs to that exact combination.
- With SSH key selected, click Generate Key. The public half is copied to your clipboard, and the button becomes Copy Public Key.
- Add that line to your server: paste it into your host's SSH keys page, or add it as a new line in
~/.ssh/authorized_keys. - Save it there, then come back and click Test Connection.
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI… nokko-syncThe key is ed25519. Its private half stays in this device's Keychain and does not sync, so each device gets its own key. Clicking the button again gives you the same key, so a retry does not undo what you pasted.
The sheet's small caption mentions hPanel, which is Hostinger's control panel. If you use another host, ignore that name. On Hostinger, its illustrated guide shows where the key goes: paste nokko's public line where it asks for the key, and skip its steps for generating one. Read the storage warning above first.
Join from another Mac
On the Mac
- Choose Workspace ▸ New Workspace…, select On a server and click Connect to Server….
- Enter the same Host, Port, Username and Folder as the first Mac. Workspace ▸ Edit Server Connection… on that Mac shows them.
- For a key, click Generate Key and add this Mac's key to the server as well. Do not remove the first one.
- Give the workspace a Name. Under Local copy, click Choose… to pick where its folder goes.
- Click Test Connection and accept the fingerprint.
- Click Download 41 Files. The button shows the real count.

A teammate joins the same way. There are no invitations here: give them access to the server, and add a key for each of their devices. If the folder is empty, the button reads Create Shared Workspace and starts a new workspace there.
Join on iPhone
On iPhone
- Open Settings and tap Join a Workspace…, then Your Own Server.
- Enter Host, Port, User and Folder on the server. There is no Browse here, so type the full path the Mac uses. Copy it exactly. A wrong path is not refused: nokko makes that folder and joins it empty.
- Under Sign in with, choose A Key or A Password.
- For a key, tap Make a Key for This iPhone. Then use Share the Public Key or Copy the Public Key, and add it to the server.
- Type a name for this iPhone, the first time, and a Workspace name.
- Tap Join. Under First Time Connecting, compare the fingerprint with the one your host publishes, or the one you noted on the Mac, then tap Trust This Server.

The note on this screen mentions Workspace ▸ Sharing, but on the Mac the details are under Workspace ▸ Edit Server Connection…. Send the key to yourself in a way you trust. It is the public half, so it is not a secret, but it must arrive unchanged.
When two devices change one file
Conflicts work as they do with GitHub. nokko merges the two versions line by line, and keeps both only when the very same line changed two ways. People and conflicts shows how to resolve one.
A server keeps no history, so there is no Activity feed and no record of who changed what. You may see short-lived .nokko-lock files beside a file while it is being written. Leave them alone: nokko clears them.
Deleted files and the 30-day trash
A file deleted on any device moves into a dated folder on the server. nokko removes those folders once they are 30 days old.
.nokko-trash/2026-11-04/Client Work/Retainer.mdnokko has no button to bring one back. Copy the file to its original path with an SFTP app or your host's file manager, and nokko downloads it on the next pass. The folder's name starts with a dot, so you may need to show hidden files.
What the server must support
| Feature | What nokko needs |
|---|---|
| Host key | ed25519 or ECDSA. A server offering only an RSA host key will not connect. |
| Encryption | AES-GCM: aes256-gcm@openssh.com or aes128-gcm@openssh.com. |
| Key exchange | curve25519 or ECDH on the NIST curves. |
| SFTP | The sftp subsystem turned on for your account. |
posix-rename@openssh.com | Lets nokko replace a file in one atomic step. Without it, nokko removes the old file and then renames the new one, so a cut connection can leave a gap. |
If a server lacks the host key or the encryption, nokko cannot finish the handshake. The sheet then says the server did not answer, even though the machine is up. Ask your host which ciphers and host keys it offers.
Troubleshooting
| What you see | What it means | What to do |
|---|---|---|
| The server did not answer at ssh.yourhost.com:22. | What it meansNo connection, or no shared encryption. | What to doCheck Host and Port, and that SSH is on. Then check what the server must support. |
| The server refused the password for alex. | What it meansWrong password or username. | What to doRetype it. Some hosts lock an account after repeated failures. |
| The server refused the key for alex | What it meansThe public key is not on the server for that user. | What to doAdd it to authorized_keys or your host's SSH keys page, save it, and test again. |
| The server closed the connection. | What it meansThe server hung up, or the test ran past 25 seconds. | What to doCheck the host, the port and that SSH access is on. For a key, check it is saved on the server. |
| The account can log in but has no SFTP access. | What it meansThe login works but SFTP is off for that account. | What to doTurn SFTP on for the account, or ask your host. During sync the footer says the server refused to start SFTP. |
| The connection closed before the check finished. | What it meansThe link dropped during the test. | What to doClick Test Connection again. |
| The folder does not exist on the server. | What it meansThe path is wrong. | What to doUse Browse… to pick a real folder. |
| A path followed by does not exist on the server | What it meansThe folder's parent is missing. | What to doUse Browse…, or Create the parent first. |
| The server refused permission. | What it meansYour account cannot write there. | What to doPick a folder you own, or fix its permissions on the server. |
| This folder already holds 12 files. | What it meansUploading never merges into an occupied folder. | What to doPick an empty folder, or join this one as a new workspace. |
| A name followed by already holds files | What it meansThe local folder for a join is not empty. | What to doGive the workspace another name, or choose another location. |
| The server's identity changed in the footer | What it meansThe server now shows a different key. This can be a rebuild, or someone in the middle. | What to doOnly continue if you know why. Click it, test, compare the new fingerprint with your host's. |
| the server refused the credentials in the footer, with or without a capital | What it meansA saved password or key stopped working. | What to doClick it, fix the sign-in, and test again. |
| The server refused this iPhone's sign-in. | What it meansThe iPhone's key or password is not accepted. | What to doAdd this iPhone's own key to the server. The Mac's key is not shared with it. |
| The server's key does not match the one this iPhone trusts. | What it meansThe key changed since this iPhone trusted it. | What to doCheck with your host before you do anything else. |
Hetzner Storage Box
- Reachability: turn on External Reachability in Hetzner Console, or you cannot connect from your own Mac.
- Host and username: the host is
uXXXXX.your-storagebox.de, and your username is theuXXXXXpart. - Port: SFTP works on port 22 or 23. Port 22 is always on. Port 23 needs SSH Support turned on.
- Sign in with: Password on port 22 is simplest. To use a key, turn on SSH Support, set Port to
23before you click Generate Key, then runpbpaste | ssh -p 23 uXXXXX@uXXXXX.your-storagebox.de install-ssh-keyin Terminal. That adds the key without removing others. Do not copyauthorized_keysup withscp, which replaces every key on the box. - Folder: only
/home/is writable, so use a path such as/home/nokko. - Fingerprint: compare what nokko shows with the SHA256 value on the ED25519 or ECDSA line Hetzner publishes.
- Connections: a Storage Box allows up to 10 at once.
Hetzner's docs: Storage Box general information, which lists the fingerprints, and access over SSH.
A spare Mac with Remote Login
- On the spare Mac, choose Apple menu ▸ System Settings, click General, then Sharing.
- Click the Info button next to Remote Login and turn it on.
- Under Allow access for, choose Only these users and add your own user.
- Note the command shown, such as
ssh alex@studio-mac.local. In nokko, the part before@is Username and the part after is Host.
Use a full path for Folder, such as /Users/alex/nokko. Password is that Mac's login password. For a key, add it to ~/.ssh/authorized_keys on the spare Mac.
The spare Mac must be awake and reachable, or other devices read as offline. Apple notes that remote login can make a Mac less secure, so read Apple's guide first.
Synology DSM 7
- In DSM, open Control Panel ▸ File Services ▸ FTP.
- Tick Enable SFTP service and click Apply.
- The default port is 22. If you set a custom one, enter the same number in Port.
Use your DSM username and Password. Synology's page describes RSA key pairs and nokko's key is ed25519, so start with a password. Use Browse… for Folder, so you see the paths the NAS really offers. See Synology's SFTP help.
Any Linux VPS
You maintain this server: its updates, firewall and backups are yours. DigitalOcean and Hetzner Cloud both start you as root, and their pages show how to connect. Do not sync as root. Make an ordinary user for nokko.
sudo adduser nokko
sudo mkdir -p /home/nokko/.ssh
sudo nano /home/nokko/.ssh/authorized_keys # paste nokko's public key
sudo chmod 700 /home/nokko/.ssh
sudo chmod 600 /home/nokko/.ssh/authorized_keys
sudo chown -R nokko:nokko /home/nokko/.sshIn nokko, Host is the server's IP address, Username is nokko and Folder can be /home/nokko/workspace. To check the fingerprint, run this on the server and compare the result with nokko's prompt:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubQuestions
- Why does nokko say my server did not answer when I can log in with Terminal?
- nokko speaks a narrower set of SSH options than Terminal. It needs an ed25519 or ECDSA host key and AES-GCM encryption. If the server offers neither, the handshake fails and the sheet reports no answer. Check the host and port first, then ask your host which ciphers and host keys it offers.
- Can two people use the same server login with nokko?
- nokko allows it, because a server has no idea who a person is. Each device still needs its own key or the password. There is no history on a server, so nokko cannot show who changed a file. If you need that record, use GitHub, which gives each person their own account.