flake updates

This commit is contained in:
Adrian Gunnar Lauterer 2024-05-29 18:43:06 +02:00
parent 6aee571407
commit 6e61d54c68
7 changed files with 71 additions and 125 deletions

View File

@ -1,2 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.callPackage ./src/derivation.nix {}

View File

@ -2,16 +2,16 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1711200738,
"narHash": "sha256-dkJmk/ET/tRV4007O6kU101UEg1svUwiyk/zEEX9Tdg=",
"lastModified": 1716769173,
"narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "20bc93ca7b2158ebc99b8cef987a2173a81cde35",
"rev": "9ca3f649614213b2aaf5f1e16ec06952fe4c2632",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}

157
flake.nix
View File

@ -1,106 +1,69 @@
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
description = "Ozai WebUI";
outputs = { self, nixpkgs}:
let
supportedSystems = [ "x86_64-linux"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
lib = forAllSystems (system: nixpkgs.legacyPackages.${system}).lib;
types = forAllSystems (system: nixpkgs.legacyPackages.${system}).lib.types;
in
{
packages = forAllSystems (system:
let
python = pkgs.${system}.python3.withPackages (ps: [ps.flask ps.flask-socketio]);
ozai-webui = import ./default.nix { inherit (pkgs.${system}) pkgs; };
in {
default = ozai-webui;
});
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
devShells = forAllSystems (system:
let
python = pkgs.${system}.python3.withPackages (ps: [ps.flask ps.flask-socketio]);
in {
default = pkgs.${system}.mkShellNoCC {
packages = with pkgs.${system}; [
python
];
outputs = { self, nixpkgs, ... }@inputs:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
lib = pkgs.lib;
types = lib.types;
in
{
packages.x86_64-linux.default = pkgs.python3Packages.buildPythonApplication rec {
pname = "ozai-webui";
version = "0.1.1";
propagatedBuildInputs = [ pkgs.python3Packages.flask pkgs.python3Packages.flask-socketio pkgs.python3Packages.requests ];
src = ./src;
doCheck = false;
postInstall = ''
mkdir -p $out/share/ozai-webui
cp -r static $out/share/ozai-webui/static
cp -r templates $out/share/ozai-webui/templates
mv $out/bin/main.py $out/bin/ozai-webui
'';
};
nixosModules.ozai-webui = { config, pkgs, ... }: {
options.services.ozai-webui = {
enable = lib.mkEnableOption "Ozai WebUI";
host = lib.mkOption {
type = types.str;
default = "127.0.0.1";
description = "The host to run the server on";
};
});
port = lib.mkOption {
type = types.int;
default = 8080;
description = "The port to run the server on";
};
ozaiUrl = lib.mkOption {
type = types.str;
default = "http://localhost:8000/api/";
description = "The URL of the Ozai server";
};
secretKey = lib.mkOption {
type = types.str;
default = "secret_key";
description = "The secret key for the Flask app";
};
};
nixosModules = forAllSystems (system: let
ozai-webui = import ./default.nix { inherit (pkgs.${system}) pkgs; };
lib = pkgs.${system}.lib;
types = pkgs.${system}.lib.types;
in {
ozai-webui = { config, pkgs, ... }: {
options.services.ozai-webui = {
enable = lib.mkEnableOption "Ozai WebUI";
host = lib.mkOption {
type = types.str;
default = "127.0.0.1";
description = "The host to run the server on";
};
port = lib.mkOption {
type = types.int;
default = 8080;
description = "The port to run the server on";
};
ozaiUrl = lib.mkOption {
type = types.str;
default = "http://localhost:8000/api/";
description = "The URL of the Ozai server";
};
secretKey = lib.mkOption {
type = types.str;
default = "secret_key";
description = "The secret key for the Flask app";
};
};
config = lib.mkIf config.services.ozai-webui.enable {
systemd.services.ozai-webui = {
description = "Ozai WebUI";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${ozai-webui}/bin/ozai-webui --port ${toString config.services.ozai-webui.port} --host '${config.services.ozai-webui.host}' --ozai_url '${config.services.ozai-webui.ozaiUrl}' --secret_key '${config.services.ozai-webui.secretKey}' --static_folder '/share/ozai-webui/static' --template_folder '/share/ozai-webui/templates'";
Restart = "always";
};
};
};
};
});
nixosConfigurations = {
ozai-webui = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
self.nixosModules.x86_64-linux.ozai-webui
{
system.stateVersion = "23.11";
boot.isContainer = true;
services.ozai-webui.enable = true;
}
];
config = lib.mkIf config.services.ozai-webui.enable {
systemd.services.ozai-webui = {
description = "Ozai WebUI server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${self.packages.x86_64-linux.default}/bin/ozai-webui --port ${toString config.services.ozai-webui.port} --host '${config.services.ozai-webui.host}' --ozai_url '${config.services.ozai-webui.ozaiUrl}' --secret_key '${config.services.ozai-webui.secretKey}' --static_folder '${self.packages.x86_64-linux.default}/share/ozai-webui/static' --template_folder '${self.packages.x86_64-linux.default}/share/ozai-webui/templates'";
Restart = "always";
};
};
# nixosConfigurations = forAllSystems (system: {
# ozai-webui = { config, pkgs, ... }: {
# modules = [
# self.systems.${system}.nixosModules.ozai-webui
# {
# system.stateVersion = "23.11";
# boot.isContainer = true;
# services.ozai-webui.enable = true;
# }
# ];
# };
# });
};
};
};
}

View File

@ -1,17 +0,0 @@
{ lib, python3Packages }:
with python3Packages;
buildPythonApplication rec {
pname = "ozai-webui";
version = "0.1.1";
propagatedBuildInputs = [ flask flask-socketio ];
src = ./.;
doCheck = false;
#copy the static files to the output
postInstall = ''
mkdir -p $out/share/ozai-webui
cp -r static $out/share/ozai-webui/static
cp -r templates $out/share/ozai-webui/templates
mv $out/bin/main.py $out/bin/ozai-webui
'';
}

View File

@ -213,4 +213,4 @@ def ws_message(data):
if __name__ == '__main__':
# app.run(debug=True, host='0.0.0.0', port=5000,ssl_context='adhoc')
socketio.run(app, debug=False, host=ozai_webui_host, port=ozai_webui_port)
socketio.run(app, debug=False, host=ozai_webui_host, port=ozai_webui_port, allow_unsafe_werkzeug=True)

View File

@ -5,6 +5,8 @@ import os
requires = (
"flask",
"flask-socketio",
"requests",
)

View File

@ -8,7 +8,7 @@
* {
--border-color: #616C71;
--bg-transparency: 0.5;
--tile-size: 2em;
--tile-size: 3em;
--blue: 49, 157, 245;
--yellow: 210, 160, 0;
--red: 200, 50, 50;