diff --git a/Makefile b/Makefile index 22c0a159..973997be 100644 --- a/Makefile +++ b/Makefile @@ -269,3 +269,46 @@ clean-all: testenv clean .PHONY: testenv + +run-build: + $(DOCKER) buildx build -t registry.cn-hangzhou.aliyuncs.com/silentwind/kvmd:dev \ + --allow security.insecure --progress plain \ + --platform linux/amd64,linux/arm64,linux/arm/v7 \ + -f build/Dockerfile . \ + --push + +run-nogpio: testenv + - $(DOCKER) run --rm --name kvmd \ + --privileged \ + --volume `pwd`/testenv/run:/run/kvmd:rw \ + --volume `pwd`/testenv:/testenv:ro \ + --volume `pwd`/kvmd:/kvmd:ro \ + --volume `pwd`/testenv/env.py:/kvmd/env.py:ro \ + --volume `pwd`/web:/usr/share/kvmd/web:ro \ + --volume `pwd`/extras:/usr/share/kvmd/extras:ro \ + --volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \ + --volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \ + --device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \ + $(if $(TESTENV_RELAY),--device $(TESTENV_RELAY):$(TESTENV_RELAY),) \ + --publish 8080:8080/tcp \ + --publish 4430:4430/tcp \ + -it $(TESTENV_IMAGE) /bin/bash -c " \ + mkdir -p /tmp/kvmd-nginx \ + && mount -t debugfs none /sys/kernel/debug \ + && (socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \ + && cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \ + && cp -a /testenv/.ssl/nginx /etc/kvmd/nginx/ssl \ + && cp -a /testenv/.ssl/vnc /etc/kvmd/vnc/ssl \ + && touch /etc/kvmd/.docker_flag \ + && cp /testenv/platform /usr/share/kvmd \ + && cp /usr/share/kvmd/configs.default/kvmd/*.yaml /etc/kvmd \ + && cp /usr/share/kvmd/configs.default/kvmd/*passwd /etc/kvmd \ + && cp /usr/share/kvmd/configs.default/kvmd/*.secret /etc/kvmd \ + && cp /usr/share/kvmd/configs.default/kvmd/main/$(if $(P),$(P),$(DEFAULT_PLATFORM)).yaml /etc/kvmd/main.yaml \ + && ln -s /testenv/web.css /etc/kvmd/web.css \ + && mkdir -p /etc/kvmd/override.d \ + && cp /testenv/$(if $(P),$(P),$(DEFAULT_PLATFORM)).override.yaml /etc/kvmd/override.yaml \ + && python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf \ + && nginx -c /etc/kvmd/nginx/nginx.conf -g 'user http; error_log stderr;' \ + && $(if $(CMD),$(CMD),python -m kvmd.apps.kvmd --run) \ + " \ No newline at end of file diff --git a/build/Dockerfile b/build/Dockerfile index aec3c92b..e2e69607 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -73,8 +73,8 @@ RUN mkdir -p \ COPY testenv/fakes/vcgencmd /usr/bin/ COPY extras/ /usr/share/kvmd/extras/ COPY web/ /usr/share/kvmd/web/ -COPY testenv/web.css /usr/share/kvmd/web/ -COPY testenv/platform/ scripts/kvmd-gencert /usr/share/kvmd/ +COPY testenv/web.css /etc/kvmd/ +COPY build/platform scripts/kvmd-gencert /usr/share/kvmd/ COPY contrib/keymaps /usr/share/kvmd/keymaps COPY kvmd/ /kvmd COPY configs/kvmd/*.yaml configs/kvmd/*passwd build/supervisord.conf /etc/kvmd/ @@ -83,7 +83,7 @@ COPY configs/hw_info/* /etc/kvmd/hw_info/ COPY build/v2-hdmiusb-rpi4.override.yaml /etc/kvmd/override.yaml COPY configs/kvmd/main/v2-hdmiusb-rpi4.yaml /etc/kvmd/main.yaml -RUN touch /run/kvmd/ustreamer.sock \ +RUN touch /run/kvmd/ustreamer.sock /etc/kvmd/.docker_flag \ && touch /etc/kvmd/totp.secret \ && /usr/share/kvmd/kvmd-gencert --do-the-thing \ && /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc \ diff --git a/build/platform b/build/platform new file mode 100644 index 00000000..0f00370c --- /dev/null +++ b/build/platform @@ -0,0 +1,3 @@ +PIKVM_MODEL=docker_model +PIKVM_VIDEO=docker_video +PIKVM_BOARD=docker_board diff --git a/kvmd/apps/kvmd/info/extras.py b/kvmd/apps/kvmd/info/extras.py index a5f803bc..6f06b31c 100644 --- a/kvmd/apps/kvmd/info/extras.py +++ b/kvmd/apps/kvmd/info/extras.py @@ -31,6 +31,7 @@ from ....yamlconf.loader import load_yaml_file from .... import tools from .... import aiotools +from .... import env from .. import sysunit @@ -87,6 +88,8 @@ class ExtrasInfoSubmanager(BaseInfoSubmanager): (extra["enabled"], extra["started"]) = await sui.get_status(daemon) except Exception as err: get_logger(0).error("Can't get info about the service %r: %s", daemon, tools.efmt(err)) + if os.path.exists("/etc/kvmd/.docker_flag"): + extra["enabled"] = extra["started"] = True def __rewrite_app_port(self, extra: dict) -> None: port_path = extra.get("port", "") diff --git a/web/login/index.html b/web/login/index.html index 2ea5e1b9..4fbd1602 100644 --- a/web/login/index.html +++ b/web/login/index.html @@ -60,7 +60,7 @@ Password:  - + @@ -78,8 +78,8 @@ Select language:  diff --git a/web/share/js/i18n/i18n.js b/web/share/js/i18n/i18n.js index 93497996..9fffe152 100644 --- a/web/share/js/i18n/i18n.js +++ b/web/share/js/i18n/i18n.js @@ -55,7 +55,7 @@ $(document).ready(function() { defaultLang: selectOptionId, filePath: "/share/i18n/" }); - setCookie('userLanguage', "cn") + setCookie('userLanguage', selectOptionId) });