mirror of
https://github.com/MAGICGrants/truenas-apps.git
synced 2026-01-09 20:47:58 -05:00
bump library (#289)
This commit is contained in:
@@ -11,7 +11,7 @@ keywords:
|
||||
- finance
|
||||
- budget
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -33,4 +33,4 @@ sources:
|
||||
- https://hub.docker.com/r/actualbudget/actual-server
|
||||
title: Actual Budget
|
||||
train: community
|
||||
version: 1.0.6
|
||||
version: 1.0.7
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -19,7 +19,7 @@ keywords:
|
||||
- dns
|
||||
- adblock
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -40,4 +40,4 @@ sources:
|
||||
- https://hub.docker.com/r/adguard/adguardhome
|
||||
title: AdGuard Home
|
||||
train: community
|
||||
version: 1.0.8
|
||||
version: 1.0.9
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ keywords:
|
||||
- media
|
||||
- audiobook
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -33,4 +33,4 @@ sources:
|
||||
- https://github.com/advplyr/audiobookshelf
|
||||
title: Audiobookshelf
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- torrent
|
||||
- usenet
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://github.com/autobrr/autobrr
|
||||
title: Autobrr
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- media
|
||||
- subtitles
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://github.com/morpheus65535/bazarr
|
||||
title: Bazarr
|
||||
train: community
|
||||
version: 1.0.9
|
||||
version: 1.0.10
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -12,7 +12,7 @@ keywords:
|
||||
- hard-drive
|
||||
- chia
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://www.chia.net/
|
||||
title: Chia
|
||||
train: community
|
||||
version: 1.0.3
|
||||
version: 1.0.4
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -20,7 +20,7 @@ keywords:
|
||||
- anti-virus
|
||||
- clamav
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -38,4 +38,4 @@ sources:
|
||||
- https://www.clamav.net/
|
||||
title: ClamAV
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -12,7 +12,7 @@ keywords:
|
||||
- cloudflare
|
||||
- tunnel
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://hub.docker.com/r/cloudflare/cloudflared
|
||||
title: Cloudflared
|
||||
train: community
|
||||
version: 1.0.8
|
||||
version: 1.0.9
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -9,7 +9,7 @@ icon: https://media.sys.truenas.net/apps/dashy/icons/icon.png
|
||||
keywords:
|
||||
- dashboard
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -29,4 +29,4 @@ sources:
|
||||
- https://github.com/lissy93/dashy
|
||||
title: Dashy
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ keywords:
|
||||
- ddns-updater
|
||||
- ddns
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://hub.docker.com/r/qmcgaw/ddns-updater
|
||||
title: DDNS Updater
|
||||
train: community
|
||||
version: 1.0.9
|
||||
version: 1.0.10
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -20,7 +20,7 @@ keywords:
|
||||
- torrent
|
||||
- download
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -38,4 +38,4 @@ sources:
|
||||
- https://deluge-torrent.org/
|
||||
title: Deluge
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- registry
|
||||
- container
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://github.com/distribution/distribution
|
||||
title: Distribution
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -29,7 +29,7 @@ keywords:
|
||||
- docker
|
||||
- compose
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -48,4 +48,4 @@ sources:
|
||||
- https://github.com/louislam/dockge
|
||||
title: Dockge
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ keywords:
|
||||
- diagram
|
||||
- whiteboard
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -32,4 +32,4 @@ sources:
|
||||
- https://github.com/jgraph/drawio
|
||||
title: Draw.io
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- files
|
||||
- browser
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -33,4 +33,4 @@ sources:
|
||||
- https://hub.docker.com/r/filebrowser/filebrowser
|
||||
title: File Browser
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -15,7 +15,7 @@ icon: https://media.sys.truenas.net/apps/flame/icons/icon.png
|
||||
keywords:
|
||||
- startpage
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -34,4 +34,4 @@ sources:
|
||||
- https://github.com/pawelmalak/flame
|
||||
title: Flame
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -41,4 +41,4 @@ sources:
|
||||
- https://hub.docker.com/r/freshrss/freshrss
|
||||
title: FreshRSS
|
||||
train: community
|
||||
version: 1.0.6
|
||||
version: 1.0.7
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- index
|
||||
- crawler
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://fscrawler.readthedocs.io/
|
||||
title: FSCrawler
|
||||
train: community
|
||||
version: 1.0.6
|
||||
version: 1.0.7
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -13,7 +13,7 @@ keywords:
|
||||
- metrics
|
||||
- dashboards
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -34,4 +34,4 @@ sources:
|
||||
- https://github.com/grafana
|
||||
title: Grafana
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -29,7 +29,7 @@ keywords:
|
||||
- video
|
||||
- transcoder
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -47,4 +47,4 @@ sources:
|
||||
- https://hub.docker.com/r/jlesage/handbrake
|
||||
title: Handbrake
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ icon: https://media.sys.truenas.net/apps/homarr/icons/icon.svg
|
||||
keywords:
|
||||
- dashboard
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://github.com/ajnart/homarr
|
||||
title: Homarr
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -9,7 +9,7 @@ icon: https://media.sys.truenas.net/apps/homepage/icons/icon.png
|
||||
keywords:
|
||||
- dashboard
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -33,4 +33,4 @@ sources:
|
||||
- https://github.com/benphelps/homepage
|
||||
title: Homepage
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -8,7 +8,7 @@ home: https://github.com/bastienwirtz/homer
|
||||
host_mounts: []
|
||||
icon: https://media.sys.truenas.net/apps/homer/icons/icon.png
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ tags:
|
||||
- homepage
|
||||
title: Homer
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -13,7 +13,7 @@ keywords:
|
||||
- file-sharing
|
||||
- kubo
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -33,4 +33,4 @@ sources:
|
||||
- https://ipfs.tech/
|
||||
title: IPFS
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -15,7 +15,7 @@ keywords:
|
||||
- media
|
||||
- streaming
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -35,4 +35,4 @@ sources:
|
||||
- https://jellyfin.org/
|
||||
title: Jellyfin
|
||||
train: community
|
||||
version: 1.0.12
|
||||
version: 1.0.13
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ icon: https://media.sys.truenas.net/apps/jellyseerr/icons/icon.svg
|
||||
keywords:
|
||||
- media
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -29,4 +29,4 @@ sources:
|
||||
- https://hub.docker.com/r/fallenbagel/jellyseerr
|
||||
title: Jellyseerr
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ keywords:
|
||||
- automation
|
||||
- ci/cd
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://www.jenkins.io/
|
||||
title: Jenkins
|
||||
train: community
|
||||
version: 1.0.2
|
||||
version: 1.0.3
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- comic
|
||||
- media
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://github.com/Casvt/Kapowarr
|
||||
title: Kapowarr
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -21,7 +21,7 @@ keywords:
|
||||
- ebook
|
||||
- manga
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -44,4 +44,4 @@ sources:
|
||||
- https://www.kavitareader.com
|
||||
title: Kavita
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- comics
|
||||
- mangas
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://hub.docker.com/r/gotson/komga
|
||||
title: Komga
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -10,7 +10,7 @@ keywords:
|
||||
- media
|
||||
- music
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -31,4 +31,4 @@ sources:
|
||||
- https://github.com/Lidarr/Lidarr
|
||||
title: Lidarr
|
||||
train: community
|
||||
version: 1.0.8
|
||||
version: 1.0.9
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- knowledge
|
||||
- management
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -28,4 +28,4 @@ sources:
|
||||
- https://github.com/logseq/logseq
|
||||
title: Logseq
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -11,7 +11,7 @@ keywords:
|
||||
- youtube-dl
|
||||
- yt-dlp
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -30,4 +30,4 @@ sources:
|
||||
- https://github.com/alexta69/metube
|
||||
title: MeTube
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
@@ -94,6 +94,8 @@ def perms_item(data, values=None, opts=None):
|
||||
|
||||
data.update({"mount_path": opts["mount_path"]})
|
||||
volume_mount = vol_mount(data, values)
|
||||
# For perms volume mount, always set read_only to false
|
||||
volume_mount.update({"read_only": False})
|
||||
|
||||
return {
|
||||
"vol_mount": volume_mount,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import hashlib
|
||||
import secrets
|
||||
import bcrypt
|
||||
import sys
|
||||
import re
|
||||
|
||||
from . import security
|
||||
|
||||
@@ -22,7 +24,31 @@ def secure_string(length):
|
||||
|
||||
|
||||
def basic_auth_header(username, password):
|
||||
return f"Basic {security.htpasswd(username, password)}"
|
||||
return f"Basic {basic_auth(username, password)}"
|
||||
|
||||
|
||||
def basic_auth(username, password):
|
||||
return security.htpasswd(username, password)
|
||||
|
||||
|
||||
def bcrypt_hash(password, escape=True):
|
||||
hashed = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8")
|
||||
if escape:
|
||||
# Docker compose will try to expand the value, so we need to escape it
|
||||
return hashed.replace("$", "$$")
|
||||
return hashed
|
||||
|
||||
|
||||
def match_regex(value, regex):
|
||||
if not re.match(regex, value):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def must_match_regex(value, regex):
|
||||
if not match_regex(value, regex):
|
||||
throw_error(f"Expected [{value}] to match [{regex}]")
|
||||
return value
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
@@ -81,3 +107,7 @@ def hash_data(data=""):
|
||||
|
||||
def get_image_with_hashed_data(images={}, name="", data=""):
|
||||
return f"ix-{get_image(images, name)}-{hash_data(data)}"
|
||||
|
||||
|
||||
def copy_dict(dict):
|
||||
return dict.copy()
|
||||
|
||||
@@ -20,7 +20,7 @@ keywords:
|
||||
- world
|
||||
- building
|
||||
lib_version: 1.0.0
|
||||
lib_version_hash: 66ead85a4b23fec4388da34e481b2041aa26171deaa90b5229f112a7ec519f2b
|
||||
lib_version_hash: cf9546c485fbe89048600cccef958ecf56873aa85b5d46b3f15cfe355ff93d3b
|
||||
maintainers:
|
||||
- email: dev@ixsystems.com
|
||||
name: truenas
|
||||
@@ -38,4 +38,4 @@ sources:
|
||||
- https://github.com/itzg/docker-minecraft-server
|
||||
title: Minecraft
|
||||
train: community
|
||||
version: 1.0.7
|
||||
version: 1.0.8
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user