diff options
| author | Luke Hoersten <[email protected]> | 2026-07-28 21:11:08 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-28 21:11:08 -0500 |
| commit | 207bff9cb9773e3e0ef7fe7114e4b1aa70ffd4b6 (patch) | |
| tree | cc38ab4e2cb82ecdc9a8e4d03b3afbe2f6af6be0 /mattertimesync | |
| parent | a55c5e9d35530d03fa8c52ceef5d2457827f0851 (diff) | |
- Rename role dir and all vars from mattertimesync to mattertimectl
- Rename the server subrole to controller
- Build via cargo instead of npm; run the binary directly (no node)
- Default fabricLabel to "Matter Time Controller"
Diffstat (limited to 'mattertimesync')
| -rw-r--r-- | mattertimesync/build/defaults/main.yaml | 9 | ||||
| -rw-r--r-- | mattertimesync/build/meta/main.yaml | 4 | ||||
| -rw-r--r-- | mattertimesync/build/tasks/main.yaml | 58 | ||||
| -rw-r--r-- | mattertimesync/server/defaults/main.yaml | 25 | ||||
| -rw-r--r-- | mattertimesync/server/handlers/main.yaml | 6 | ||||
| -rw-r--r-- | mattertimesync/server/meta/main.yaml | 4 | ||||
| -rw-r--r-- | mattertimesync/server/tasks/main.yaml | 80 | ||||
| -rw-r--r-- | mattertimesync/server/templates/config.json.j2 | 6 | ||||
| -rw-r--r-- | mattertimesync/server/templates/mattertimesync.service.j2 | 15 | ||||
| -rw-r--r-- | mattertimesync/server/templates/mattertimesync.timer.j2 | 10 |
10 files changed, 0 insertions, 217 deletions
diff --git a/mattertimesync/build/defaults/main.yaml b/mattertimesync/build/defaults/main.yaml deleted file mode 100644 index bee4e58..0000000 --- a/mattertimesync/build/defaults/main.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- - -mattertimesync_version: "0.1.0" -# https://github.com/lukehoersten/mattertimesync/tags -# Pure-JS project: npm run bundle produces one self-contained mattertimesync.mjs -# (no native modules), so the target only needs node to run it. -mattertimesync_tar: "https://github.com/{{github_user}}/mattertimesync/archive/refs/tags/v{{mattertimesync_version}}.tar.gz" -mattertimesync_build_dir: "{{build_work_dir}}/mattertimesync-{{mattertimesync_version}}" -mattertimesync_srv_dir: "{{build_srv_dir}}" diff --git a/mattertimesync/build/meta/main.yaml b/mattertimesync/build/meta/main.yaml deleted file mode 100644 index 6116998..0000000 --- a/mattertimesync/build/meta/main.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -dependencies: - - nodejs diff --git a/mattertimesync/build/tasks/main.yaml b/mattertimesync/build/tasks/main.yaml deleted file mode 100644 index c586e01..0000000 --- a/mattertimesync/build/tasks/main.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- - -- name: ensure build work dir exists - become: yes - file: - path: "{{build_work_dir}}" - state: "directory" - owner: "{{ansible_user}}" - group: "{{ansible_user}}" - mode: "0755" - -- name: unarchive mattertimesync source - unarchive: - remote_src: yes - src: "{{mattertimesync_tar}}" - dest: "{{build_work_dir}}/" - creates: "{{mattertimesync_build_dir}}" - -- name: check if mattertimesync build exists - stat: - path: "{{mattertimesync_srv_dir}}/mattertimesync-{{mattertimesync_version}}.tar.gz" - register: build_file - -- name: install mattertimesync build dependencies - command: "npm ci" - args: - chdir: "{{mattertimesync_build_dir}}" - # Keep the npm cache on build_work_dir (the SSD) instead of the SD card. - environment: - npm_config_cache: "{{build_work_dir}}/.npm" - when: not build_file.stat.exists - -- name: bundle mattertimesync - command: "npm run bundle" - args: - chdir: "{{mattertimesync_build_dir}}" - creates: "{{mattertimesync_build_dir}}/mattertimesync.mjs" - environment: - npm_config_cache: "{{build_work_dir}}/.npm" - when: not build_file.stat.exists - -- name: create build server dir - become: yes - file: - path: "{{mattertimesync_srv_dir}}" - mode: "0755" - state: "directory" - -- name: create gz archive of mattertimesync bundle - become: yes - archive: - path: "{{mattertimesync_build_dir}}/mattertimesync.mjs" - dest: "{{mattertimesync_srv_dir}}/mattertimesync-{{mattertimesync_version}}.tar.gz" - format: "gz" - # force a real tar for the single-file bundle; the module otherwise gzips a - # lone file into a bare .gz that the server's unarchive can't extract. - force_archive: true - when: not build_file.stat.exists diff --git a/mattertimesync/server/defaults/main.yaml b/mattertimesync/server/defaults/main.yaml deleted file mode 100644 index e78e700..0000000 --- a/mattertimesync/server/defaults/main.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- - -# https://github.com/lukehoersten/mattertimesync/tags -mattertimesync_version: "0.1.0" - -mattertimesync_user: "mattertimesync" -mattertimesync_install_dir: "/opt/mattertimesync" -mattertimesync_config_dir: "/etc/mattertimesync" -# Persistent Matter fabric state — holds the controller's private keys and -# operational certs, so it stays mode 0700 and owned by the service user. -mattertimesync_storage_path: "/var/lib/mattertimesync" - -# --- config.json --- -# IANA time-zone name (never a fixed UTC offset; DST is derived from it). -mattertimesync_timezone: "America/Chicago" -mattertimesync_log_level: "info" # debug, info, warn, error -mattertimesync_fabric_label: "Matter Time Sync" - -# --- systemd timer schedule --- -mattertimesync_on_boot_sec: "2min" -mattertimesync_on_active_sec: "1h" -mattertimesync_randomized_delay_sec: "5min" - -# mattertimesync_bin_url: — required, set in host_vars, e.g. -# http://{{build_server_host}}:{{build_server_port}}/mattertimesync-{{mattertimesync_version}}.tar.gz diff --git a/mattertimesync/server/handlers/main.yaml b/mattertimesync/server/handlers/main.yaml deleted file mode 100644 index 9b124e3..0000000 --- a/mattertimesync/server/handlers/main.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -- name: reload systemd - become: yes - systemd: - daemon_reload: "yes" diff --git a/mattertimesync/server/meta/main.yaml b/mattertimesync/server/meta/main.yaml deleted file mode 100644 index 6116998..0000000 --- a/mattertimesync/server/meta/main.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -dependencies: - - nodejs diff --git a/mattertimesync/server/tasks/main.yaml b/mattertimesync/server/tasks/main.yaml deleted file mode 100644 index 7be2392..0000000 --- a/mattertimesync/server/tasks/main.yaml +++ /dev/null @@ -1,80 +0,0 @@ ---- - -- name: add mattertimesync user - become: yes - user: - name: "{{mattertimesync_user}}" - system: "yes" - shell: "/usr/sbin/nologin" - home: "{{mattertimesync_storage_path}}" - create_home: "no" - -- name: create mattertimesync directories - become: yes - file: - path: "{{item.path}}" - state: "directory" - owner: "{{item.owner}}" - group: "{{item.owner}}" - mode: "{{item.mode}}" - loop: - - { path: "{{mattertimesync_install_dir}}", owner: "root", mode: "0755" } - - { path: "{{mattertimesync_config_dir}}", owner: "root", mode: "0755" } - - { path: "{{mattertimesync_storage_path}}", owner: "{{mattertimesync_user}}", mode: "0700" } - -- name: check installed mattertimesync version - become: yes - stat: - path: "{{mattertimesync_install_dir}}/.installed-{{mattertimesync_version}}" - register: mattertimesync_installed - -- name: install mattertimesync bundle - become: yes - unarchive: - remote_src: yes - src: "{{mattertimesync_bin_url}}" - dest: "{{mattertimesync_install_dir}}/" - owner: "root" - group: "root" - when: not mattertimesync_installed.stat.exists - -- name: stamp installed mattertimesync version - become: yes - copy: - dest: "{{mattertimesync_install_dir}}/.installed-{{mattertimesync_version}}" - content: "{{mattertimesync_version}}\n" - mode: "0644" - when: not mattertimesync_installed.stat.exists - -- name: configure mattertimesync - become: yes - template: - src: "config.json.j2" - dest: "{{mattertimesync_config_dir}}/config.json" - owner: "root" - group: "{{mattertimesync_user}}" - mode: "0640" - -- name: install mattertimesync systemd service - become: yes - template: - src: "mattertimesync.service.j2" - dest: "/etc/systemd/system/mattertimesync.service" - mode: "0644" - notify: reload systemd - -- name: install mattertimesync systemd timer - become: yes - template: - src: "mattertimesync.timer.j2" - dest: "/etc/systemd/system/mattertimesync.timer" - mode: "0644" - notify: reload systemd - -- name: enable mattertimesync timer - become: yes - systemd: - name: "mattertimesync.timer" - enabled: "yes" - state: "started" - daemon_reload: "yes" diff --git a/mattertimesync/server/templates/config.json.j2 b/mattertimesync/server/templates/config.json.j2 deleted file mode 100644 index a9b30c3..0000000 --- a/mattertimesync/server/templates/config.json.j2 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "storagePath": "{{mattertimesync_storage_path}}", - "timezone": "{{mattertimesync_timezone}}", - "logLevel": "{{mattertimesync_log_level}}", - "fabricLabel": "{{mattertimesync_fabric_label}}" -} diff --git a/mattertimesync/server/templates/mattertimesync.service.j2 b/mattertimesync/server/templates/mattertimesync.service.j2 deleted file mode 100644 index e47cc35..0000000 --- a/mattertimesync/server/templates/mattertimesync.service.j2 +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Matter device clock synchronization -Wants=network-online.target -After=network-online.target time-sync.target - -[Service] -Type=oneshot -User={{mattertimesync_user}} -Group={{mattertimesync_user}} -ExecStart=/usr/bin/node {{mattertimesync_install_dir}}/mattertimesync.mjs --config {{mattertimesync_config_dir}}/config.json sync -NoNewPrivileges=true -PrivateTmp=true -ProtectSystem=strict -ProtectHome=true -ReadWritePaths={{mattertimesync_storage_path}} diff --git a/mattertimesync/server/templates/mattertimesync.timer.j2 b/mattertimesync/server/templates/mattertimesync.timer.j2 deleted file mode 100644 index e378dfc..0000000 --- a/mattertimesync/server/templates/mattertimesync.timer.j2 +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Periodic Matter device clock synchronization - -[Timer] -OnBootSec={{mattertimesync_on_boot_sec}} -OnUnitActiveSec={{mattertimesync_on_active_sec}} -RandomizedDelaySec={{mattertimesync_randomized_delay_sec}} - -[Install] -WantedBy=timers.target |
