Add filebrowser and guacamole configuration files with required fields and updated service settings

This commit is contained in:
gyurix
2025-04-24 23:09:56 +02:00
parent fc00642e4e
commit 93e12ecc79
10 changed files with 423 additions and 77 deletions

View File

@@ -0,0 +1,60 @@
{
"main": {
"SERVICE_NAME": "filebrowser",
"DOMAIN": "#FILEBROWSER_DOMAIN"
},
"containers": [
{
"IMAGE": "safebox/domain-check",
"UPDATE": "true",
"MEMORY": "64M",
"NAME": "domain_checker",
"ROLES": "domain_checker",
"NETWORK": "host",
"SELECTOR": "",
"SCALE": "0",
"EXTRA": "--rm --privileged",
"PRE_START": [],
"DEPEND": [],
"POST_START": [],
"CMD": "",
"ENVS": [
{
"PROXY": "smarthostloadbalancer"
},
{
"TARGET": "filebrowser"
},
{
"PORT": "9091"
},
{
"DOMAIN": "#FILEBROWSER_DOMAIN"
},
{
"SMARTHOST_PROXY_PATH": "/smarthost-domains"
},
{
"OPERATION": "CREATE"
}
],
"VOLUMES": [
{
"SOURCE": "/etc/user/config/smarthost-domains",
"DEST": "/smarthost-domains",
"TYPE": "rw"
},
{
"SOURCE": "/etc/system/data/dns/hosts.local",
"DEST": "/etc/dns/hosts.local",
"TYPE": "ro"
},
{
"SOURCE": "/var/run/docker.sock",
"DEST": "/var/run/docker.sock",
"TYPE": "rw"
}
]
}
]
}

View File

@@ -0,0 +1,6 @@
{
"filebrowser": {
"USER": "#FILEBROWSER_USER",
"PASS": "#FILEBROWSER_PASS"
}
}

View File

@@ -0,0 +1,75 @@
{
"main": {
"SERVICE_NAME": "firewalls",
"DOMAIN": "null"
},
"containers": [
{
"IMAGE": "safebox/firewall",
"NAME": "firewall",
"MEMORY": "64M",
"NETWORK": "host",
"SCALE": "0",
"VOLUMES": [
{
"SOURCE": "/run/",
"DEST": "/run/",
"TYPE": "rw"
},
{
"SOURCE": "/etc/user/config/services",
"DEST": "/services",
"TYPE": "ro"
},
{
"SOURCE": "/etc/system/data/dns/hosts.local",
"DEST": "/etc/dns/hosts.local",
"TYPE": "ro"
},
{
"SOURCE": "/var/run/docker.sock",
"DEST": "/var/run/docker.sock",
"TYPE": "rw"
}
],
"PORTS": [],
"READYNESS": [
{
"tcp": ""
},
{
"HTTP": ""
},
{
"EXEC": "/ready.sh"
}
],
"ENVS": [
{
"CHAIN": "DOCKER-USER"
},
{
"SOURCE": "smarthostbackend"
},
{
"TARGET": "filebrowser"
},
{
"TYPE": "tcp"
},
{
"TARGET_PORT": "80"
},
{
"COMMENT": "proxy for filebrowser"
}
],
"EXTRA": "--privileged --rm",
"DEPEND": "null",
"START_ON_BOOT": "false",
"CMD": "null",
"PRE_START": "null",
"POST_START": "null"
}
]
}

View File

@@ -0,0 +1,75 @@
{
"main": {
"SERVICE_NAME": "filebrowser",
"DOMAIN": "#TRANSMISSION_DOMAIN"
},
"containers": [
{
"IMAGE": "alpine:latest",
"UPDATE": "true",
"NAME": "filebrowser-init",
"NETWORK": "host",
"MEMORY": "64M",
"VOLUMES": [
{
"SOURCE": "USER_DATA",
"DEST": "/etc/user/data",
"TYPE": "rw"
}
],
"EXTRA": "--rm",
"DEPEND": "null",
"START_ON_BOOT": "false",
"ENTRYPOINT": "sh -c",
"CMD": "mkdir -p /etc/user/data/filebrowser && mkdir -p /etc/user/data/transmission/downloads/complete",
"PRE_START": "null",
"POST_START": "null"
},
{
"IMAGE": "filebrowser/filebrowser:latest",
"UPDATE": "true",
"NAME": "filebrowser",
"SELECTOR": "filebrowser",
"VOLUMES": [
{
"SOURCE": "/etc/user/data/filebrowser",
"DEST": "/srv",
"TYPE": "rw"
},
{
"SOURCE": "/etc/user/data/transmission/downloads",
"DEST": "/srv/transmission",
"TYPE": "rw"
}
],
"PORTS": [
{
"SOURCE": "null",
"DEST": "80",
"TYPE": "tcp"
}
],
"ENVS": [
{
"PUID": "1000"
},
{
"PGID": "1000"
}
],
"ENV_FILES": [
"/etc/user/secret/filebrowser/filebrowser.json"
],
"EXTRA": "--restart unless-stopped",
"DEPEND": [],
"START_ON_BOOT": "false",
"ENTRYPOINT": "sh",
"CMD": "-c '/filebrowser config init && /filebrowser users add \"$FILEBROWSER_USER\" \"$FILEBROWSER_PASS\" --perm.admin && /filebrowser'",
"PRE_START": "null",
"POST_START": [
"firewall-filebrowser",
"domain-filebrowser"
]
}
]
}

22
filebrowser/template.json Normal file
View File

@@ -0,0 +1,22 @@
{
"name": "filebrowser",
"fields": [
{
"description": "Please add your filebrowser domain:",
"key": "FILEBROWSER_DOMAIN",
"value": "",
"required": "true"
},
{
"description": "Please add a username:",
"key": "FILEBROWSER_USER",
"value": ""
},
{
"description": "Please add a password for user:",
"key": "FILEBROWSER_PASS",
"value": "",
"type": "password"
}
]
}

View File

@@ -1,7 +1,7 @@
{ {
"main": { "main": {
"SERVICE_NAME": "homeassistant", "SERVICE_NAME": "guacamole",
"DOMAIN": "#HOMEASSISTANT_DOMAIN" "DOMAIN": "#GUACAMOLE_DOMAIN"
}, },
"containers": [ "containers": [
{ {
@@ -26,10 +26,10 @@
"TARGET": "homeassistant" "TARGET": "homeassistant"
}, },
{ {
"PORT": "8123" "PORT": "80"
}, },
{ {
"DOMAIN": "#HOMEASSISTANT_DOMAIN" "DOMAIN": "#GUACAMOLE_DOMAIN"
}, },
{ {
"SMARTHOST_PROXY_PATH": "/smarthost-domains" "SMARTHOST_PROXY_PATH": "/smarthost-domains"

View File

@@ -52,16 +52,16 @@
"SOURCE": "smarthostbackend" "SOURCE": "smarthostbackend"
}, },
{ {
"TARGET": "homeassistant" "TARGET": "guacamole"
}, },
{ {
"TYPE": "tcp" "TYPE": "tcp"
}, },
{ {
"TARGET_PORT": "8123" "TARGET_PORT": "80"
}, },
{ {
"COMMENT": "proxy for homeassistant" "COMMENT": "proxy for guacamole"
} }
], ],
"EXTRA": "--privileged --rm", "EXTRA": "--privileged --rm",

View File

@@ -0,0 +1,19 @@
{
"guacamolemysql": {
"MYSQL_DATABASE": "DB_MYSQL",
"MYSQL_USER": "DB_USER",
"MYSQL_PASSWORD": "DB_PASSWORD",
"MYSQL_ROOT_PASSWORD": "DB_ROOT_PASSWORD"
},
"guacamoletomcat": {
"ADMIN_NAME": "GUACAMOLE_ADMIN_NAME",
"ADMIN_PASSWORD": "GUACAMOLE_ADMIN_PASSWORD",
"MYSQL_DATABASE": "DB_MYSQL",
"MYSQL_USER": "DB_USER",
"MYSQL_PASSWORD": "DB_PASSWORD",
"MYSQL_HOSTNAME": "guacamolemysql-db",
"GUACD_HOSTNAME": "guacd-app",
"TOTP_ENABLED": "TOTP_USE",
"BAN_ADDRESS_DURATION": "BAN_DURATION"
}
}

View File

@@ -1,63 +1,125 @@
{ {
"main": { "main": {
"SERVICE_NAME": "homeassistant", "SERVICE_NAME": "guacamole",
"DOMAIN": "DOMAIN" "DOMAIN": "DOMAIN"
}, },
"containers": [ "containers": [
{ {
"IMAGE": "alpine:latest", "IMAGE": "mariadb:latest",
"UPDATE": "true", "UPDATE": "true",
"NAME": "homeassistant-init", "NAME": "guacamolemysql-db",
"NETWORK": "host", "MEMORY": "256M",
"MEMORY": "64M", "NETWORK": "guacamole-net",
"SELECTOR": "guacamolemysql",
"VOLUMES": [ "VOLUMES": [
{ {
"SOURCE": "USER_DATA", "SOURCE": "/etc/user/data/guacamole/db",
"DEST": "/etc/user/data", "DEST": "/var/lib/mysql",
"TYPE": "rw" "TYPE": "rw"
} },
],
"EXTRA": "--rm",
"DEPEND": "null",
"START_ON_BOOT": "false",
"ENTRYPOINT": "sh -c",
"CMD": "mkdir -p /etc/user/data/homeassistant/config",
"PRE_START": "null",
"POST_START": "null"
},
{
"IMAGE": "ghcr.io/home-assistant/home-assistant:stable",
"UPDATE": "true",
"NAME": "homeassistant",
"NETWORK": "host",
"VOLUMES": [
{ {
"SOURCE": "/etc/user/data/homeassistant/config", "SOURCE": "/etc/system/log/guacamole/db",
"DEST": "/config", "DEST": "/var/lib/mysql/mysql-bin",
"TYPE": "rw" "TYPE": "rw"
} }
], ],
"PORTS": [ "PORTS": [
{ {
"SOURCE": "8123", "SOURCE": "null",
"DEST": "8123", "DEST": "3306",
"TYPE": "tcp" "TYPE": "tcp"
} }
], ],
"ENVS": [ "READYNESS": [
{ {
"NAME": "TZ", "tcp": "3306"
"VALUE": "HOMEASSISTANT_TZ" },
{
"HTTP": ""
},
{
"EXEC": "/ready.sh"
} }
], ],
"EXTRA": "--restart unless-stopped", "ENV_FILES": [
"DEPEND": [], "/etc/user/secret/guacamole/guacamole.json"
],
"EXTRA": "--restart always",
"DEPEND": "null",
"START_ON_BOOT": "false", "START_ON_BOOT": "false",
"CMD": "null", "CMD": "null",
"PRE_START": "null", "PRE_START": "null",
"POST_START": "null"
},
{
"IMAGE": "registry.format.hu/guacamole-guacd",
"UPDATE": "true",
"NAME": "guacd-app",
"MEMORY": "256M",
"NETWORK": "guacamole-net",
"SELECTOR": "guacdapp",
"PORTS": [
{
"SOURCE": "null",
"DEST": "4822",
"TYPE": "tcp"
}
],
"READYNESS": [
{
"tcp": ""
},
{
"HTTP": ""
},
{
"EXEC": "/ready.sh"
}
],
"EXTRA": "",
"DEPEND": "null",
"START_ON_BOOT": "true",
"CMD": "null",
"PRE_START": "null",
"POST_START": "null"
},
{
"IMAGE": "safebox/guacamole-tomcat",
"UPDATE": "true",
"NAME": "guacamoletomcat",
"ROLES": "backend-www",
"MEMORY": "256M",
"NETWORK": "guacamole-net",
"SELECTOR": "guacamoletomcat",
"PORTS": [
{
"SOURCE": "null",
"DEST": "8080",
"TYPE": "tcp"
}
],
"READYNESS": [
{
"tcp": ""
},
{
"HTTP": ""
},
{
"EXEC": "/ready.sh"
}
],
"EXTRA": "null",
"ENV_FILES": [
"/etc/user/secret/guacamole/guacamole.json"
],
"DEPEND": "null",
"START_ON_BOOT": "true",
"CMD": "null",
"PRE_START": "null",
"POST_START": [ "POST_START": [
"firewall-homeassistant", "firewall-guacamole",
"domain-homeassistant" "domain-guacamole"
] ]
} }
] ]

View File

@@ -1,37 +1,64 @@
{ {
"name": "guacamole", "name": "guacamole",
"fields": [ "fields": [
{ {
"description": "Please add Guacamole domain:", "description": "Please add Guacamole domain:",
"key": "GUACAMOLE_DOMAIN", "key": "GUACAMOLE_DOMAIN",
"value": "", "value": "",
"required": "true" "required": "true"
}, },
{ {
"description": "Please add Guacamole admin username:", "description": "Please add Guacamole admin username:",
"key": "GUACAMOLE_USERNAME", "key": "GUACAMOLE_USERNAME",
"value": "", "value": "",
"required": "true" "required": "true"
}, },
{ {
"description": "Please add Guacamole admin password:", "description": "Please add Guacamole admin password:",
"key": "GUACAMOLE_PASSWORD", "key": "GUACAMOLE_PASSWORD",
"value": "", "value": "",
"required": "true", "required": "true",
"type": "password" "type": "password"
}, },
{ {
"description": "Do you want TOTP via login?", "description": "Do you want TOTP via login?",
"key": "GUACAMOLE_TOTP", "key": "GUACAMOLE_TOTP",
"value": "yes,no", "value": "yes,no",
"required": "true", "required": "true",
"type": "select" "type": "select"
}, },
{ {
"description": "Do you want limitation in case invalid login or password? Please add a number how many minutes for deny retry. If you add 0 means it will disabled.", "description": "Do you want limitation in case invalid login or password? Please add a number how many minutes for deny retry. If you add 0 means it will disabled.",
"key": "GUACAMOLE_BAN_DURATION", "key": "GUACAMOLE_BAN_DURATION",
"value": "5", "value": "5"
"required": "true" },
} {
] "description": "MYSQL database name",
"key": "MYSQL_DATABASE",
"value": "",
"required": "true",
"generated": ""
},
{
"description": "MYSQL username",
"key": "MYSQL_USER",
"value": "",
"required": "true",
"generated": "time|md5|8"
},
{
"description": "MYSQL password for user",
"key": "MYSQL_PASSWORD",
"value": "",
"required": "true",
"generated": "random|md5|12"
},
{
"description": "MYSQL root user password",
"key": "MYSQL_ROOT_PASSWORD",
"value": "",
"required": "true",
"generated": "random|sha256|20"
}
]
} }