Merge pull request 'open-webui-oci: replace version with image option' (#3) from develop into release-25.11
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 5s
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 5s
Reviewed-on: #3
This commit is contained in:
commit
31f195ff89
4 changed files with 76 additions and 8 deletions
|
|
@ -9,19 +9,33 @@ View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/ma
|
||||||
- [Homepage](https://openwebui.com/)
|
- [Homepage](https://openwebui.com/)
|
||||||
- [GitHub](https://github.com/open-webui/open-webui)
|
- [GitHub](https://github.com/open-webui/open-webui)
|
||||||
- [Environment Configuration](https://docs.openwebui.com/getting-started/env-configuration/)
|
- [Environment Configuration](https://docs.openwebui.com/getting-started/env-configuration/)
|
||||||
|
- [Nixpkgs Docker tools](https://github.com/NixOS/nixpkgs/blob/master/doc/build-helpers/images/dockertools.section.md)
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{ inputs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ inputs.synix.nixosModules.open-webui-oci ];
|
imports = [ inputs.synix.nixosModules.open-webui-oci ];
|
||||||
|
|
||||||
services.open-webui-oci.enable = true;
|
services.open-webui-oci.enable = true;
|
||||||
|
|
||||||
|
# You can provide an image to use:
|
||||||
|
services.open-webui-oci.image = pkgs.dockerTools.pullImage {
|
||||||
|
imageName = "ghcr.io/open-webui/open-webui";
|
||||||
|
imageDigest = "sha256:2deb90b0423473d8f97febced2e62b8fd898aa3eb61877bb3aa336370214c258";
|
||||||
|
hash = "sha256-2cdKfvZGUyPUm7TFXcf5OcG9ey4BvOZPUOVim1S2C+s=";
|
||||||
|
finalImageName = "ghcr.io/open-webui/open-webui";
|
||||||
|
finalImageTag = "0.8.5";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You can use `nix-prefetch-docker` to get the attribute set to pass to `dockerTools.pullImage`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/open-webui/open-webui --arch amd64 --os linux --image-tag 0.8.5
|
||||||
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Visit the web interface at your specified location to create an admin account.
|
Visit the web interface at your specified location to create an admin account.
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,15 @@
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
testPkgs.testers.runNixOSTest ./tests/run/synapse.nix;
|
testPkgs.testers.runNixOSTest ./tests/run/synapse.nix;
|
||||||
|
|
||||||
|
# NOTE: disabled for now since the test takes too long to execute
|
||||||
|
# open-webui-oci-test =
|
||||||
|
# let
|
||||||
|
# testPkgs = import nixpkgs {
|
||||||
|
# inherit system;
|
||||||
|
# };
|
||||||
|
# in
|
||||||
|
# testPkgs.testers.runNixOSTest ./tests/run/open-webui-oci.nix;
|
||||||
}
|
}
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,14 @@
|
||||||
let
|
let
|
||||||
cfg = config.services.open-webui-oci;
|
cfg = config.services.open-webui-oci;
|
||||||
|
|
||||||
|
image = pkgs.dockerTools.pullImage {
|
||||||
|
imageName = "ghcr.io/open-webui/open-webui";
|
||||||
|
imageDigest = "sha256:2deb90b0423473d8f97febced2e62b8fd898aa3eb61877bb3aa336370214c258";
|
||||||
|
hash = "sha256-2cdKfvZGUyPUm7TFXcf5OcG9ey4BvOZPUOVim1S2C+s=";
|
||||||
|
finalImageName = "ghcr.io/open-webui/open-webui";
|
||||||
|
finalImageTag = "0.8.5";
|
||||||
|
};
|
||||||
|
|
||||||
defaultEnv = {
|
defaultEnv = {
|
||||||
ANONYMIZED_TELEMETRY = "False";
|
ANONYMIZED_TELEMETRY = "False";
|
||||||
BYPASS_MODEL_ACCESS_CONTROL = "True";
|
BYPASS_MODEL_ACCESS_CONTROL = "True";
|
||||||
|
|
@ -42,11 +50,10 @@ in
|
||||||
{
|
{
|
||||||
options.services.open-webui-oci = {
|
options.services.open-webui-oci = {
|
||||||
enable = mkEnableOption "Open WebUI container with Podman.";
|
enable = mkEnableOption "Open WebUI container with Podman.";
|
||||||
version = mkOption {
|
image = mkOption {
|
||||||
type = types.str;
|
type = types.package;
|
||||||
default = "main";
|
default = image;
|
||||||
example = "v0.8.5";
|
description = "The Docker image to use (`pkgs.dockerTools.pullImage`).";
|
||||||
description = "Container version string.";
|
|
||||||
};
|
};
|
||||||
externalUrl = mkOption {
|
externalUrl = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
|
|
@ -93,7 +100,8 @@ in
|
||||||
virtualisation.oci-containers.backend = "podman";
|
virtualisation.oci-containers.backend = "podman";
|
||||||
|
|
||||||
virtualisation.oci-containers.containers."open-webui" = {
|
virtualisation.oci-containers.containers."open-webui" = {
|
||||||
image = "ghcr.io/open-webui/open-webui:${cfg.version}";
|
image = with cfg.image; imageName + ":" + imageTag;
|
||||||
|
imageFile = cfg.image;
|
||||||
environment =
|
environment =
|
||||||
defaultEnv
|
defaultEnv
|
||||||
// cfg.environment
|
// cfg.environment
|
||||||
|
|
|
||||||
37
tests/run/open-webui-oci.nix
Normal file
37
tests/run/open-webui-oci.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
let
|
||||||
|
port = 3000;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "open-webui-oci-test";
|
||||||
|
|
||||||
|
nodes.machine =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../modules/nixos/open-webui-oci
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
virtualisation.diskSize = 32768;
|
||||||
|
virtualisation.memorySize = 8192;
|
||||||
|
|
||||||
|
services.open-webui-oci = {
|
||||||
|
enable = true;
|
||||||
|
inherit port;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
|
||||||
|
machine.wait_for_unit("default.target")
|
||||||
|
|
||||||
|
machine.wait_for_unit("podman-open-webui.service")
|
||||||
|
machine.wait_for_open_port(${toString port})
|
||||||
|
|
||||||
|
machine.succeed("curl --fail --retry 10 --retry-delay 5 --retry-connrefused http://localhost:${toString port}/")
|
||||||
|
'';
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue