Nectere suiteControl planev20261021-093014

Nectere Array

Array deploys and hosts the other Nectere apps. Install it once on a Docker machine, then deploy apps from its menu. Each deployed app becomes a tile on one dashboard and opens under Array's address with a single sign-in. Admins decide who sees each tile.

One address for every app One sign-in Per-tile access Deploy, update, restart, remove from the browser
Installsudo bash install_necterearray.sh --port 443 --dir /opt/necterearray

01The dashboard

The admin dashboard after sign-in, one tile per deployed app. The mock is live: open the menu, flip a tile with the round arrow, try Organize, or Open a running tile.

View as
Callouts
Mock
Not securehttps://array.corp.lab/Dashboard
  1. 1Menu. Dashboard, Deploy, Settings, Logs, Users.
  2. 2Machine load. CPU, memory and disk on the Array host. Hover for exact figures.
  3. 3Session. Signed-in user, Array version and Log out.
  4. 4Organize / Refresh. Organize reorders and renames tiles (admins only). Refresh reloads them.
  5. 5Tile. App colour stripe, tile name, app and product line, optional description.
  6. 6Status. Running, Stopped or Error, or a progress bar during deploy and update.
  7. 7Open / Flip. Open works only while the app is running. The round arrow flips to the management side.

02Install

Array is the only Nectere app installed by hand. Everything else is deployed from it. Requirements are a Linux, macOS or Windows machine with Docker (the Linux installer adds Docker if it's missing) and a GitHub token that can read the Nectere images.

MachineRun
Linuxsudo bash install_necterearray.sh
macOSbash install_necterearray_mac.sh
Windows.\install_necterearray_win.ps1

Array listens on 443 unless you pass --port 8443 (-Port 8443 on Windows). The installer prints the address to open when it finishes.

[OK]    Docker is available
[OK]    Generated .env with credential key
[OK]    Shared network nectere-net ready
[INFO]  Pulling ghcr.io/pipefl/necterearray:latest...
[INFO]  Starting Nectere Array...
[OK]    Nectere Array is running!
[INFO]  Open https://localhost:443 to complete setup

First ten minutes

  1. Open the printed address and accept the certificate warning.
  2. Create the admin account.
  3. In Menu › Settings, paste the GitHub token and Save. Docker engine should read Connected.
  4. Pick an app under Menu › Deploy.
  5. Add people in Menu › Users and grant tiles with each tile's Access button.

Upgrading Array

Rerun the installer. It pulls the latest Array and restarts it. Users, tiles and settings are kept, and deployed apps stay up during the restart.

03Sign-in and first run

On first visit Array shows a setup form. Whoever completes it becomes the first admin.

Screen
Not securehttps://array.corp.lab/loginSign-in
MessageWhere it comes from
Please fill in all fields.Setup form, empty field.
Passwords do not match.Setup form, confirmation mismatch.
Password must be at least 8 characters.Setup form and Add User.
Please enter username and password.Sign-in form, empty field.
Invalid credentialsWrong username or password. Counts toward lockout.
Too many failed sign-in attempts. Try again in 5 minute(s).Five failures for this username in 15 minutes. Wait 5 minutes.
Connection error. Please try again.Array didn't respond. Check that it's running.

Sessions last 8 hours.

04Top bar

https://array.corp.lab/Top bar

Host meters

Each segment is 10%. A red disk meter means free up space before deploying more apps. The sliders below drive the demo meters.

CPU
MEM
DISK
UsageSegment colourTooltip example
0–59%greenCPU 23%
60–84%amberMemory 64% (20.4 / 31.3 GB)
85–100%redDisk 88% (219.7 / 249.6 GB)

The meters are hidden on narrow screens.

Session controls

Log out also ends the session in every app opened through Array. When the 8 hours expire Array returns to the sign-in page.

Deploy opens a flyout of every app in the catalog. Hover for a description; click to open the Deploy window with that app selected. Click outside the menu or press Esc to close it.

View as
https://array.corp.lab/Menu
ItemGoes toWho sees it
DashboardYour tilesEveryone
Deploy ›App list, then the Deploy windowAdmins
SettingsDocker status and your GitHub tokenAdmins
LogsToday's Array activityAdmins
UsersAdd, promote and delete usersAdmins

06Tiles

One tile per deployed instance. The front opens the app; the back manages it, and only admins can flip. Clicking the body of a running tile is the same as Open.

Front and back

front, running
back, flipped
PartWhat it showsExample
Accent stripeApp colour.#3b82f6
Tile nameSet at deploy, changed in Organize.Anvil — Prod
AppNectere app.Nectere Anvil
ProductWhat the app does.Terraform Deployment Manager
BlurbOptional description.Azure landing zones and lab VMs
Back actionsAdmin actions.Logs, .env, State, Access, Update, Destroy

Statuses

StatusLooks likeOpen button
runningRunningPrimary, enabled
stoppedStoppedDisabled
deployingProgress bar + percent (tooltip Deploying… 45%)Disabled
updatingProgress bar + percent (tooltip Updating… 72%)Disabled
error (couldn't start; check Logs)ErrorDisabled
missing (removed outside Array)MissingDisabled

Staying current

Tiles refresh themselves every 30 seconds, faster during a deploy or update, so other admins' changes appear without a reload. Flipped tiles stay flipped.

Empty states

Admin, no tiles

Your instances

No Instances Yet

Open the menu and pick Deploy to spin up your first Nectere instance.

User, no access

Your instances

No Instances Yet

You have not been given access to any tiles yet. Ask an Array admin.

Toasts

Bottom right, gone after 3 seconds. Green edge for success, red for errors.

Deploying Nectere Amphora…
Instance running
Drag tiles to rearrange, pencil to rename
Saved — container recreated
Access updated
Deploy failed: registry pull error: {"error":"unauthorized"}
No tiles to organize yet
Done: restart

07Organize mode

Organize turns every tile face up with a dashed outline and a pencil. Drag tiles to reorder. The pencil renames: Enter or click away saves, Esc cancels. Done saves the order.

https://array.corp.lab/Organize
  • Renaming changes the label only. The app, its data and its address are untouched.
  • Names max out at 60 characters. A blank name is ignored.
  • Background refreshes don't move tiles while organizing.
  • With no tiles, Organize shows No tiles to organize yet.

08Deploying an app

Pick an app from Menu › Deploy. On Deploy the window closes and a new tile shows progress until it reads Running. A first deploy of an app can take a minute or two to download.

Deploy modal
Validation + selects
FieldRequiredNotes
ApplicationYesPrefilled from the Deploy flyout.
Tile NameYesShown on the tile, e.g. Anvil — Prod.
DescriptionNoShown under the product line.
AuthenticationYesCan't be changed after deploy. See below.

Progress bar

BarWhat's happening
5–45%Downloading. Slowest on a first deploy.
55–78%Setting up storage.
88%Starting.
100%Running. If the app isn't up within about 30 seconds the tile shows Error.

Which sign-in to pick

Array — single sign-on (recommended)No second login. Array admins are admins in the app. Other users on the tile get read-only access where the app supports it.
Application — app manages its own usersThe app runs its own setup, sign-in and user list inside the tile. Use it when the app needs users or permissions Array doesn't manage.

09Opening an app

Open shows the app over the dashboard under a bar with the app colour and tile name. Open in tab moves it to its own tab. ✕ Close or Esc returns to the tiles. The browser address stays Array's, so there are no extra bookmarks or certificates.

Not securehttps://array.corp.lab/Framed viewer

When access is refused

Shown when the session has expired or an admin removed you from the tile. Reopen the tile from the dashboard.

https://array.corp.lab/i/3f9a1c07/
Access expired - open this app from the Array dashboard. Go back to the Array dashboard.
https://array.corp.lab/i/3f9a1c07/
You no longer have access to this tile. Go back to the Array dashboard.

10Managing an instance

Each button on the back of a tile opens a window. Clicking the backdrop doesn't close it; use the window's own buttons. Esc currently closes every window, the menu and the viewer at once, including an unsaved .env editor.

Logs

The app's recent output, newest at the bottom. Check here first when a tile shows Error.

Container logs

.env

App settings, one NAME=value per line. Save & recreate restarts the app for a few seconds with the new values. Data is kept.

.env editor
  • Lines starting with # are ignored.
  • Leave ARRAY_AUTH_MODE and ARRAY_AUTH_KEY alone. Array sets them.
  • Changing a *_CREDENTIAL_KEY on an app with data makes that data unreadable.
  • Saving asks for confirmation.

State

Start, Stop and Restart. Only the actions valid for the current status are enabled.

Running
Stopped

Access

Lists plain users only, since admins see every tile. Changes apply immediately, including to anyone who has the app open.

Access
No plain users yet

Update

Checks for a newer published version. Nothing downloads until you press the button. Tiles update independently, so two Anvil tiles can run different versions.

Result
Update check
Result lineWhenButton
Update availableNewer version published.Primary Update now
No update available — up to dateAlready current.Secondary Re-pull anyway
Could not reach GHCR — check the token in SettingsCheck failed, usually the GitHub token.Secondary Force re-pull

All three buttons update the app. The tile shows Updating with a progress bar, then Running. Settings, users and data are kept.

Destroy

Removes the app and its tile. Data is kept unless Delete data directory too is ticked, which is permanent.

Destroy

11Settings

Docker engine should read Connected. While it reads Unreachable, nothing can be deployed or managed. GHCR Registry holds the GitHub token used to download apps; deploys fail until one is saved.

Engine
https://array.corp.lab/Settings
  • Use a classic GitHub token with read:packages.
  • A saved token is never displayed. The label reads (token saved) or (none saved), and saving a blank box keeps the current one.
  • An expired token makes deploys and updates fail with unauthorized.

12Logs

Today's Array activity: sign-ins, deploy steps, updates, settings changes and refused tile access. Auto-refresh follows it live.

https://array.corp.lab/Logs

Format is [time] [level] [area] what happened. ERROR lines usually match a failed deploy or update.

13Users

Two roles. Admins do everything. Users see and open only the tiles they've been granted. Plain users get Promote and Delete; admins get Delete only.

https://array.corp.lab/Users
Add User
Duplicate name

Permissions

ActionAdminUser
See tilesAllGranted tiles only
Open a tile, Open in tab✓✓ (their tiles)
Deploy, rename, reorder✓✕
Start, stop, restart, update, destroy✓✕
.env editor, Access lists✓✕
Settings, Logs, Users panels✓✕

Deleting a user removes them from every tile. You can't delete your own account.

14Apps you can deploy

The app colour is used for the tile stripe, hover outline and viewer dot.

AppWhat it's for
Nectere AnvilTerraform packages, variables, plans, applies, drift checks
Nectere AtlasMulti-host Ansible: inventories, playbooks, runs, terminals
Nectere ArchContainer deployments to Azure
Nectere ApertureRemote PowerShell against Windows machines
Nectere AmphoraObject store to object store migration
Nectere AndanteStep-sequenced automation

An app can be deployed more than once, for example a prod Anvil and a lab Anvil. Each instance has separate data and updates, and separate users when it uses Application sign-in.

15Things to know

  • Prefer Array sign-on. Application sign-in means a separate login per tile, and two tiles of the same app can sign each other out in one browser.
  • Destroy keeps data by default. Delete data directory too can't be undone.
  • Don't touch *_CREDENTIAL_KEY. Changing it locks the app out of its existing data.
  • Update is per tile. Check each instance separately.
  • Access changes are immediate. Plain users never see tiles they aren't on, and removal cuts off an open session too.
  • Esc closes everything, unsaved .env edits included.
  • Array admin is effectively server admin. It can start, stop, change and remove every app on the machine.

16Troubleshooting

You seeDo this
Deploy fails with unauthorizedToken missing, expired or lacking read:packages. Save a new one in Settings and redeploy.
Deploy fails with not foundThe app image isn't published yet. Ask the image maintainer.
Settings shows UnreachableArray can't reach Docker. Rerun the installer.
Tile shows ErrorFlip the tile and check Logs. A bad .env change is the usual cause; revert it and save.
Tile shows MissingThe app was removed outside Array. Destroy the tile and redeploy.
The viewer shows Proxy errorApp stopped or still starting. Check State, wait a few seconds, reopen.
The viewer says Access expiredClose the viewer and press Open again.
Update says up to date but you expected a new versionIt isn't published yet. Check later.
Locked out after typing a wrong passwordWait 5 minutes.