diff --git a/.gitignore b/.gitignore index 4ce7620..a10140e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ /bin /obj -config.ini -result +config.ini \ No newline at end of file diff --git a/flake.lock b/flake.lock deleted file mode 100644 index bf41dd1..0000000 --- a/flake.lock +++ /dev/null @@ -1,44 +0,0 @@ -{ - "nodes": { - "beaker-src": { - "flake": false, - "locked": { - "lastModified": 1773829265, - "narHash": "sha256-K97/aeTrR5oGnIKdRhcC2xhqBDoVLDg4Eh4u/qZFGqE=", - "ref": "refs/heads/master", - "rev": "38aa54bb91597bd15ecd1dca1da6194c80249039", - "revCount": 20, - "type": "git", - "url": "https://git.bwaaa.monster/beaker" - }, - "original": { - "type": "git", - "url": "https://git.bwaaa.monster/beaker" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1773734432, - "narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cda48547b432e8d3b18b4180ba07473762ec8558", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "beaker-src": "beaker-src", - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index 6e86ab9..0000000 --- a/flake.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - beaker-src = { - url = "git+https://git.bwaaa.monster/beaker"; - flake = false; - }; - }; - - outputs = - { - self, - nixpkgs, - beaker-src, - }: - let - supportedSystems = [ - "x86_64-linux" - "aarch64-linux" - ]; - forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - in - { - formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt); - packages = forAllSystems ( - system: - let - pkgs = import nixpkgs { inherit system; }; - - beaker = pkgs.stdenv.mkDerivation { - pname = "beaker"; - version = "git"; - src = beaker-src; - makeFlags = [ - "INSTALL_PREFIX=$(out)/" - "LDCONFIG=true" - ]; - }; - in - { - default = pkgs.stdenv.mkDerivation { - pname = "omnisearch"; - version = "git"; - src = ./.; - - buildInputs = [ - pkgs.libxml2.dev - pkgs.curl.dev - pkgs.openssl - beaker - ]; - - preBuild = '' - makeFlagsArray+=( - "PREFIX=$out" - "CFLAGS=-Wall -Wextra -O2 -Isrc -I${pkgs.libxml2.dev}/include/libxml2" - "LIBS=-lbeaker -lcurl -lxml2 -lpthread -lm -lssl -lcrypto" - ) - ''; - - installPhase = '' - mkdir -p $out/bin $out/share/omnisearch - install -Dm755 bin/omnisearch $out/bin/omnisearch - cp -r templates static -t $out/share/omnisearch/ - ''; - - meta = { - description = "Lightweight metasearch engine in C"; - platforms = pkgs.lib.platforms.linux; - }; - }; - } - ); - nixosModules.default = import ./module.nix self; - }; -} diff --git a/module.nix b/module.nix deleted file mode 100644 index 40415b3..0000000 --- a/module.nix +++ /dev/null @@ -1,136 +0,0 @@ -self: - -{ - config, - lib, - pkgs, - ... -}: - -let - cfg = config.services.omnisearch; - pkg = cfg.package; - - finalConfigFile = - if cfg.configFile != null then - cfg.configFile - else - pkgs.writeText "omnisearch.ini" '' - [server] - host = ${cfg.settings.server.host} - port = ${toString cfg.settings.server.port} - domain = ${cfg.settings.server.domain} - - [proxy] - ${lib.optionalString (cfg.settings.proxy.proxy != null) "proxy = \"${cfg.settings.proxy.proxy}\""} - ${lib.optionalString ( - cfg.settings.proxy.list_file != null - ) "list_file = ${cfg.settings.proxy.list_file}"} - max_retries = ${toString cfg.settings.proxy.max_retries} - randomize_username = ${lib.boolToString cfg.settings.proxy.randomize_username} - randomize_password = ${lib.boolToString cfg.settings.proxy.randomize_password} - - [cache] - dir = ${cfg.settings.cache.dir} - ttl_search = ${toString cfg.settings.cache.ttl_search} - ttl_infobox = ${toString cfg.settings.cache.ttl_infobox} - ''; -in -{ - options.services.omnisearch = { - enable = lib.mkEnableOption "OmniSearch metasearch engine"; - - package = lib.mkOption { - type = lib.types.package; - default = self.packages.${pkgs.stdenv.hostPlatform.system}.default; - description = "The omnisearch package to use."; - }; - - configFile = lib.mkOption { - type = lib.types.nullOr lib.types.path; - default = null; - description = "Path to a custom config.ini. Overrides 'settings'."; - }; - - settings = { - server = { - host = lib.mkOption { - type = lib.types.str; - default = "0.0.0.0"; - }; - port = lib.mkOption { - type = lib.types.port; - default = 8087; - }; - domain = lib.mkOption { - type = lib.types.str; - default = "http://localhost:8087"; - }; - }; - proxy = { - proxy = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - }; - list_file = lib.mkOption { - type = lib.types.nullOr lib.types.str; - default = null; - }; - max_retries = lib.mkOption { - type = lib.types.int; - default = 3; - }; - randomize_username = lib.mkOption { - type = lib.types.bool; - default = true; - }; - randomize_password = lib.mkOption { - type = lib.types.bool; - default = true; - }; - }; - cache = { - dir = lib.mkOption { - type = lib.types.str; - default = "/var/cache/omnisearch"; - }; - ttl_search = lib.mkOption { - type = lib.types.int; - default = 3600; - }; - ttl_infobox = lib.mkOption { - type = lib.types.int; - default = 86400; - }; - }; - }; - }; - - config = lib.mkIf cfg.enable { - systemd.services.omnisearch = { - description = "OmniSearch Service"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - ExecStart = "${pkg}/bin/omnisearch"; - - WorkingDirectory = "/var/lib/omnisearch"; - StateDirectory = "omnisearch"; - CacheDirectory = "omnisearch"; - - BindReadOnlyPaths = [ - "${pkg}/share/omnisearch/templates:/var/lib/omnisearch/templates" - "${pkg}/share/omnisearch/static:/var/lib/omnisearch/static" - "${finalConfigFile}:/var/lib/omnisearch/config.ini" - ]; - - DynamicUser = true; - ProtectSystem = "strict"; - ProtectHome = true; - PrivateTmp = true; - Restart = "always"; - }; - }; - }; -}