Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

lungo-cli

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lungo-cli - npm Package Compare versions

Comparing version
0.5.7
to
0.5.8
src/lungo_cli/plugins/jupyterhub/config/sudoers

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

+2
-2
Metadata-Version: 2.1
Name: lungo-cli
Version: 0.5.7
Version: 0.5.8
Summary: A user-friendly home lab setup designed for small-to-mid-scale on-premises hosting.

@@ -18,3 +18,3 @@ Home-page: https://github.com/raymond-u/lungo

Requires-Dist: pydantic-yaml (>=1.3.0,<2.0.0)
Requires-Dist: pydantic[email] (>=2.7.4,<3.0.0)
Requires-Dist: pydantic[email] (>=2.8.2,<3.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)

@@ -21,0 +21,0 @@ Requires-Dist: typer (>=0.12.3,<0.13.0)

@@ -6,3 +6,3 @@ [tool.black]

name = "lungo-cli"
version = "0.5.7"
version = "0.5.8"
description = "A user-friendly home lab setup designed for small-to-mid-scale on-premises hosting."

@@ -23,3 +23,3 @@ authors = ["raymond-u <36328498+raymond-u@users.noreply.github.com>"]

platformdirs = "^4.2.2"
pydantic = { extras = ["email"], version = "^2.7.4" }
pydantic = { extras = ["email"], version = "^2.8.2" }
pydantic-yaml = "^1.3.0"

@@ -38,3 +38,3 @@ requests = "^2.32.3"

mkdocs-glightbox = "^0.4.0"
mkdocs-material = "^9.5.27"
mkdocs-material = "^9.5.30"
mkdocs-typer = "^0.0.3"

@@ -41,0 +41,0 @@

@@ -14,7 +14,7 @@ import platform

OPENRESTY_VERSION: Final = "1.25.3.1-alpine-apk"
OPENRESTY_VERSION: Final = "1.25.3.2-alpine-apk"
KETO_VERSION: Final = "v0.12.0"
KRATOS_VERSION: Final = "v1.1.0"
OATHKEEPER_VERSION: Final = "v0.40.7"
NODE_VERSION: Final = "20.15.0-alpine"
NODE_VERSION: Final = "20.16.0-alpine"

@@ -21,0 +21,0 @@ KETO_ADMIN_API_BASE_URL: Final = "http://127.0.0.1:3939"

@@ -49,2 +49,3 @@ {% set plugin_name = plugin.manifest.name %}

include snippets/auth.conf;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

@@ -51,0 +52,0 @@

@@ -9,3 +9,3 @@ from typing import Any, override

name="filebrowser",
version="0.3.0",
version="0.3.1",
descriptive_name="File Browser",

@@ -12,0 +12,0 @@ description="File Browser as a Lungo plugin.",

@@ -23,3 +23,4 @@ {% set directories = config.directories %}

volumes:
- '{{ plugin.dirs.plugin_dir }}/config:/etc/jupyterhub:ro'
- '{{ plugin.dirs.plugin_dir }}/config/config.py:/etc/jupyterhub/config.py:ro'
- '{{ plugin.dirs.plugin_dir }}/config/sudoers:/etc/sudoers:ro'
- '{{ plugin.dirs.managed_dir }}:/srv/jupyterhub:rw'

@@ -26,0 +27,0 @@ {% for account in users.accounts %}

FROM docker.io/jupyterhub/jupyterhub:{{ plugin.custom.jupyterhub_version }}
RUN python3 -m pip install --no-cache-dir --upgrade setuptools pip && \
RUN apt-get update && \
apt-get install -y sudo && \
rm -rf /var/lib/apt/lists/* && \
python3 -m pip install --no-cache-dir --upgrade setuptools pip && \
python3 -m pip install --no-cache-dir 'jupyterlab=={{ plugin.custom.jupyterlab_version }}'

@@ -4,0 +7,0 @@ RUN \

@@ -38,2 +38,3 @@ {% set plugin_name = plugin.manifest.name %}

include snippets/auth.conf;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

@@ -40,0 +41,0 @@

@@ -15,3 +15,3 @@ from pathlib import Path

name="jupyterhub",
version="0.3.1",
version="0.3.2",
descriptive_name="JupyterHub",

@@ -44,3 +44,3 @@ description="JupyterHub as a Lungo plugin.",

"jupyterhub_version": "4.1.5",
"jupyterlab_version": "4.2.3",
"jupyterlab_version": "4.2.4",
}

@@ -47,0 +47,0 @@

@@ -10,3 +10,3 @@ from pathlib import Path

name="privatebin",
version="0.3.0",
version="0.3.1",
descriptive_name="Pastebin",

@@ -28,3 +28,3 @@ description="PrivateBin as a Lungo plugin.",

def get_custom_rendering_context(self) -> dict[str, Any]:
return {"privatebin_version": "1.7.3"}
return {"privatebin_version": "1.7.4"}

@@ -31,0 +31,0 @@ @override

@@ -25,2 +25,3 @@ {% set directories = config.directories %}

- '{{ plugin.dirs.plugin_dir }}/config/rsession.conf:/etc/rstudio/rsession.conf:ro'
- '{{ plugin.dirs.plugin_dir }}/config/sudoers:/etc/sudoers:ro'
- '{{ plugin.dirs.managed_dir }}:/var/lib/rstudio-server:rw'

@@ -27,0 +28,0 @@ {% for account in users.accounts %}

@@ -38,2 +38,3 @@ {% set plugin_name = plugin.manifest.name %}

include snippets/auth.conf;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

@@ -40,0 +41,0 @@

@@ -15,3 +15,3 @@ from pathlib import Path

name="rstudio",
version="0.3.0",
version="0.3.1",
descriptive_name="RStudio",

@@ -18,0 +18,0 @@ description="RStudio as a Lungo plugin.",

@@ -10,3 +10,3 @@ <script lang="ts">

<div class="flex flex-col items-center">
<span class="h-24 w-24 py-2">
<span class="size-24 py-2">
<ScreenCastIcon />

@@ -13,0 +13,0 @@ </span>

@@ -17,2 +17,3 @@ {% set plugin_name = plugin.manifest.name %}

include snippets/proxy.conf;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

@@ -19,0 +20,0 @@

@@ -19,3 +19,3 @@ from ipaddress import IPv4Network

name="xray",
version="0.3.1",
version="0.3.2",
descriptive_name="Xray",

@@ -49,3 +49,3 @@ description="Xray as a Lungo plugin.",

"xray_salt": salt,
"xray_version": "1.8.16",
"xray_version": "1.8.21",
}

@@ -52,0 +52,0 @@

@@ -1,2 +0,2 @@

highlight.js@^11.9.0
uuid@^9.0.1
highlight.js@^11.10.0
uuid@^10.0.0

@@ -114,3 +114,3 @@ <script lang="ts">

<div class="flex flex-col items-center">
<span class="h-24 w-24 py-2">
<span class="size-24 py-2">
<NetworkLockIcon />

@@ -117,0 +117,0 @@ </span>

@@ -46,3 +46,4 @@ {% set network = config.network %}

## Advanced Proxy Configuration
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 10s;

@@ -20,9 +20,9 @@ {

"@sveltejs/adapter-node": "^5.2.0",
"@sveltejs/enhanced-img": "^0.3.0",
"@sveltejs/kit": "^2.5.17",
"@sveltejs/enhanced-img": "^0.3.1",
"@sveltejs/kit": "^2.5.18",
"@sveltejs/vite-plugin-svelte": "^3.1.1",
"@tailwindcss/typography": "^0.5.13",
"@types/set-cookie-parser": "^2.4.9",
"@typescript-eslint/eslint-plugin": "^7.14.1",
"@typescript-eslint/parser": "^7.14.1",
"@types/set-cookie-parser": "^2.4.10",
"@typescript-eslint/eslint-plugin": "^7.17.0",
"@typescript-eslint/parser": "^7.17.0",
"autoprefixer": "^10.4.19",

@@ -32,16 +32,15 @@ "daisyui": "^4.12.10",

"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.41.0",
"json-schema-to-typescript": "^14.1.0",
"eslint-plugin-svelte": "^2.43.0",
"json-schema-to-typescript": "^15.0.0",
"openapi-typescript": "^6.7.6",
"postcss": "^8.4.38",
"postcss": "^8.4.40",
"postcss-load-config": "^4.0.2",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.5",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.6",
"prettier-plugin-tailwindcss": "^0.6.5",
"svelte": "^4.2.18",
"svelte-check": "^3.8.4",
"tailwindcss": "^3.4.4",
"tslib": "^2.6.3",
"typescript": "^5.5.2",
"vite": "^5.3.1"
"tailwindcss": "^3.4.7",
"typescript": "^5.5.4",
"vite": "^5.3.5"
},

@@ -53,3 +52,3 @@ "type": "module",

},
"packageManager": "pnpm@8.15.8"
"packageManager": "pnpm@8.15.9"
}

@@ -41,3 +41,3 @@ <script lang="ts">

<a href="/account">
<span class="h-6 w-6">
<span class="size-6">
<SettingsIcon />

@@ -50,3 +50,3 @@ </span>

<button use:safeClick={{ callback: handleLogout }}>
<span class="h-6 w-6">
<span class="size-6">
<LogoutIcon />

@@ -53,0 +53,0 @@ </span>

@@ -27,3 +27,3 @@ <script lang="ts">

<label for="nav-drawer" class="btn btn-circle btn-ghost drawer-button">
<span class="h-6 w-6">
<span class="size-6">
<SwappableIcon icon={MenuIcon} altIcon={CloseIcon} altIconActive={checked} rotate />

@@ -50,3 +50,3 @@ </span>

>
<span class="h-6 w-6">
<span class="size-6">
<SwappableIcon

@@ -73,3 +73,3 @@ class={active && $darkTheme === false ? "fill-neutral-content" : ""}

<button class="btn btn-circle btn-ghost h-10 min-h-0 w-10" on:click={handleFullscreen}>
<span class="h-6 w-6">
<span class="size-6">
<FullscreenIcon />

@@ -89,3 +89,3 @@ </span>

<summary
class="inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-full bg-accent text-sm font-bold text-accent-content"
class="inline-flex size-8 cursor-pointer items-center justify-center rounded-full bg-accent text-sm font-bold text-accent-content"
>

@@ -99,3 +99,3 @@ {getNameInitials(name.first, name.last)}

<button
class="inline-flex h-8 w-8 items-center justify-center rounded-full bg-accent text-sm font-bold text-accent-content"
class="inline-flex size-8 items-center justify-center rounded-full bg-accent text-sm font-bold text-accent-content"
>

@@ -102,0 +102,0 @@ {getNameInitials(name.first, name.last)}

@@ -30,5 +30,5 @@ <script lang="ts">

/>
<button class="absolute right-3 top-3 h-6 w-6" type="button" on:click={handleClick}>
<button class="absolute right-3 top-3 size-6" type="button" on:click={handleClick}>
<SwappableIcon icon={VisibilityOnIcon} altIcon={VisibilityOffIcon} altIconActive={visible} />
</button>
</span>

@@ -12,3 +12,3 @@ <script lang="ts">

if (typeof url === "string") {
const { path, query, hash } = getUrlParts(url)
let { path, query, hash } = getUrlParts(url)
const params = new URLSearchParams(query)

@@ -15,0 +15,0 @@ params.delete("iframe", "1")

@@ -28,3 +28,3 @@ <script lang="ts">

<button class="btn btn-circle btn-ghost h-10 min-h-0 w-10" on:click={handleSwitchTheme}>
<span class="h-6 w-6">
<span class="size-6">
<SwappableIcon icon={DarkModeIcon} altIcon={LightModeIcon} altIconActive={$darkTheme} rotate>

@@ -38,3 +38,3 @@ <input class="theme-controller" type="checkbox" value="dark" />

<details class="dropdown dropdown-end dropdown-bottom flex items-center">
<summary class="h-6 w-6 cursor-pointer">
<summary class="size-6 cursor-pointer">
<ExpandIcon />

@@ -46,3 +46,3 @@ </summary>

<div class="dropdown dropdown-end dropdown-bottom flex items-center">
<button class="h-6 w-6">
<button class="size-6">
<ExpandIcon />

@@ -49,0 +49,0 @@ </button>

@@ -29,3 +29,3 @@ <script lang="ts">

/>
<span class="pointer-events-none absolute left-3 top-3 hidden h-6 w-6 peer-checked:inline">
<span class="pointer-events-none absolute left-3 top-3 hidden size-6 peer-checked:inline">
<CheckIcon />

@@ -32,0 +32,0 @@ </span>

Sorry, the diff of this file is too big to display