Skip to content

Releases

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 02:26
a92a242

Nekomari v1.8.0

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
manual-komari-agent-<os>-<arch> Opt-in monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

Agent binaries are intentionally prefixed manual- for this release.
Existing Agents will not auto-update to them; install a checksum-verified
binary explicitly after reviewing the node and retaining its old binary.
Installer scripts and panel-requested automatic updates do not target these
assets. The previous release remains GitHub's latest installer target.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./manual-komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.8.0

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

Full Changelog: v1.7.30...v1.8.0

v1.7.30

Choose a tag to compare

@github-actions github-actions released this 08 Nov 05:49

Nekomari v1.7.30

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
manual-komari-agent-<os>-<arch> Opt-in monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

Agent binaries are intentionally prefixed manual- for this release.
Existing Agents will not auto-update to them; install a checksum-verified
binary explicitly after reviewing the node and retaining its old binary.
Installer scripts and panel-requested automatic updates do not target these
assets. The previous release remains GitHub's latest installer target.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./manual-komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.30

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Design bounded execution history and record v1.7.29 delivery by @Aone2233 in #164
  • Design fail-closed address-family selection for hostname probes by @Aone2233 in #168

Full Changelog: v1.7.29...v1.7.30

v1.7.29

Choose a tag to compare

@github-actions github-actions released this 05 Nov 02:43
94e1973

Nekomari v1.7.29

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.29

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Fix chart and history CSV export semantics by @Aone2233 in #163

Full Changelog: v1.7.28...v1.7.29

v1.7.28

Choose a tag to compare

@github-actions github-actions released this 04 Nov 05:44
545d3ac

Nekomari v1.7.28

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.28

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Add ping/record CSV export (v1.7.28 slice) by @Aone2233 in #162

Full Changelog: v1.7.27...v1.7.28

v1.7.27

Choose a tag to compare

@github-actions github-actions released this 04 Nov 04:52
24faa9d

Nekomari v1.7.27

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.27

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Record v1.7.26 delivery: conservative restart count live on OC424 by @Aone2233 in #159
  • 50-node capacity gate: harness, passing 30-minute run, docs by @Aone2233 in #160
  • v1.7.27: metric CSV export on the node chart page by @Aone2233 in #161

Full Changelog: v1.7.26...v1.7.27

v1.7.26

Choose a tag to compare

@github-actions github-actions released this 04 Nov 02:10
60b4524

Nekomari v1.7.26

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.26

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Record v1.7.25 delivery: rate-limited rule test send live on OC424 by @Aone2233 in #156
  • Record owner acceptance: v1.7.24 window coverage and v1.7.25 test send by @Aone2233 in #157
  • Add a conservative per-node restart count from uptime regressions by @Aone2233 in #158

Full Changelog: v1.7.25...v1.7.26

v1.7.25

Choose a tag to compare

@github-actions github-actions released this 03 Nov 15:16
05e7fe2

Nekomari v1.7.25

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.25

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

  • Record v1.7.24 production delivery by @Aone2233 in #154
  • Add a rate-limited test send for saved load-alert rules by @Aone2233 in #155

Full Changelog: v1.7.24...v1.7.25

v1.7.24

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:04
64b8f57

Nekomari v1.7.24

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.24

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

Full Changelog: v1.7.23...v1.7.24

v1.7.23

Choose a tag to compare

@github-actions github-actions released this 03 Nov 00:50
1e4d22a

Nekomari v1.7.23

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.23

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

Full Changelog: v1.7.22...v1.7.23

v1.7.22

Choose a tag to compare

@github-actions github-actions released this 02 Nov 15:44

Nekomari v1.7.22

Self-hosted server monitoring — a maintained continuation of
Komari, forked from 1.5.0-fix1.

Downloads

File What
nekomari-<os>-<arch> Server + web panel (default theme embedded)
komari-agent-<os>-<arch> Monitoring agent (probe)
sbom.spdx.json SPDX SBOM for the binaries above (syft)
SHA256SUMS.txt Checksums for every attached file

The agent asset intentionally keeps the komari-agent- prefix: that is the
name the agent's self-updater looks for (agent/update/update.go).
Renaming it would break auto-update.

Every attached binary also carries a build provenance attestation signed by
this workflow run. Verify one before running it:

gh attestation verify ./nekomari-linux-amd64 -R Aone2233/Nekomari

Quick start

./nekomari-<os>-<arch> server              # then open http://localhost:25774
./komari-agent-<os>-<arch> -e https://your-panel -t <token>

New in this fork

  • netcheck — probe which protocol a target actually answers, before you
    configure a monitoring task around it
  • ping task type auto — the agent picks a protocol the target answers
  • ping task type dual — measures ICMP and TCP side by side, so "target
    only answers TCP" stops looking like an outage
  • reference target on a ping task — compare the target against your gateway
    to tell a local problem from an upstream one
  • baseline alerting — alert on deviation from a rule's own P95 history
  • backup freshness metric (backup.age_seconds / backup.ok)
  • IP information API (/api/*/ip-info/v1) — geo, ASN, network type and
    Globalping latency, for themes that render an IP panel
  • address-family aware scheduling — a node with no IPv4 address is skipped
    on IPv4-literal targets instead of reporting a permanent 100% loss

Container image

docker run -d --name nekomari -p 25774:25774 \
  -v nekomari-data:/app/data \
  ghcr.io/aone2233/nekomari:v1.7.22

Multi-arch (linux/amd64, linux/arm64), anonymously pullable. The binary
inside is the same one attached below, not a separate build.

Always pass -v. The image declares VOLUME /app/data, so without it
Docker creates an anonymous volume — and recreating the container (which
is what an image update does) attaches a different one, so the panel comes
up empty and shows the install wizard. The data is orphaned, not deleted.
A named volume or a bind mount both work.

See FORK.md
for provenance, and docs/TESTING.md for which tests need a privileged or
IPv6-capable host.

What's Changed

Full Changelog: v1.7.21...v1.7.22