Migrate vega Newt from Docker to native multi-instance systemd services #25

Open
opened 2026-07-01 16:17:28 +01:00 by nimmo · 0 comments
Owner

Goal

Replace the Docker-based newt and newt-appdata containers on vega with NixOS-managed multi-instance services.

Acceptance Checklist

  • Add a custom multi-instance Newt module.
  • Define a shared endpoint and per-instance environment files.
  • Add the SOPS secrets for the default and appdata Newt instances.
  • Start the native Newt instances successfully.
  • Confirm Pangolin shows the native instances online.
  • Stop the Docker Newt containers only after the native services are healthy.

Target Shape

services.nimmo.newt = {
  enable = true;
  endpoint = "https://pangolin.nimmog.uk";

  instances = {
    default.environmentFile = config.sops.secrets."newt/vega/default/env".path;
    appdata.environmentFile = config.sops.secrets."newt/vega/appdata/env".path;
  };
};

Verification

systemctl status newt-default.service
systemctl status newt-appdata.service
journalctl -u newt-default.service -n 100 --no-pager
journalctl -u newt-appdata.service -n 100 --no-pager

Notes

The issue should preserve both Pangolin organisations and avoid a blind cutover.

## Goal Replace the Docker-based `newt` and `newt-appdata` containers on `vega` with NixOS-managed multi-instance services. ## Acceptance Checklist - Add a custom multi-instance Newt module. - Define a shared endpoint and per-instance environment files. - Add the SOPS secrets for the `default` and `appdata` Newt instances. - Start the native Newt instances successfully. - Confirm Pangolin shows the native instances online. - Stop the Docker Newt containers only after the native services are healthy. ## Target Shape ```nix services.nimmo.newt = { enable = true; endpoint = "https://pangolin.nimmog.uk"; instances = { default.environmentFile = config.sops.secrets."newt/vega/default/env".path; appdata.environmentFile = config.sops.secrets."newt/vega/appdata/env".path; }; }; ``` ## Verification ```bash systemctl status newt-default.service systemctl status newt-appdata.service journalctl -u newt-default.service -n 100 --no-pager journalctl -u newt-appdata.service -n 100 --no-pager ``` ## Notes The issue should preserve both Pangolin organisations and avoid a blind cutover.
Sign in to join this conversation.
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/nixos-config#25
No description provided.