feat: add GeoIP country lookup with embedded DB-IP Lite database (PLAN.md 4.3)
Embeds a DB-IP Lite country MMDB (~5MB) in the binary via go:embed, keeping the single-binary deployment story clean. Country codes are stored alongside login attempts and sessions, shown in the dashboard (Top IPs, Top Countries card, Recent/Active Sessions, session detail). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
10
flake.nix
10
flake.nix
@@ -18,14 +18,22 @@
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
mainGo = builtins.readFile ./cmd/oubliette/main.go;
|
||||
version = builtins.head (builtins.match ''.*const Version = "([^"]+)".*'' mainGo);
|
||||
geoipDb = pkgs.fetchurl {
|
||||
url = "https://download.db-ip.com/free/dbip-country-lite-2026-02.mmdb.gz";
|
||||
hash = "sha256-xmQZEJZ5WzE9uQww1Sdb8248l+liYw46tjbfJeu945Q=";
|
||||
};
|
||||
in
|
||||
{
|
||||
default = pkgs.buildGoModule {
|
||||
pname = "oubliette";
|
||||
inherit version;
|
||||
src = ./.;
|
||||
vendorHash = "sha256-smMg/J1igSoSBkzdm9HJOp5OYY8MEccodCD/zVK31IQ=";
|
||||
vendorHash = "sha256-/zxK6CABLYBNtuSOI8dIVgMNxKiDIcbZUS7bQR5TenA=";
|
||||
subPackages = [ "cmd/oubliette" ];
|
||||
nativeBuildInputs = [ pkgs.gzip ];
|
||||
preBuild = ''
|
||||
gunzip -c ${geoipDb} > internal/geoip/dbip-country-lite.mmdb
|
||||
'';
|
||||
meta = {
|
||||
description = "SSH honeypot";
|
||||
mainProgram = "oubliette";
|
||||
|
||||
Reference in New Issue
Block a user