From 65312a688b81a9a000042bec81904fc76c678e6f Mon Sep 17 00:00:00 2001 From: myve Date: Tue, 23 Jul 2024 19:56:57 -0600 Subject: [PATCH] Optimize build parameters --- base.sh | 204 ------------------ base/Dockerfile | 59 +++++ base/app/entrypoint | 24 +++ base/app/init.d/01-init.sh | 6 + base/app/init.d/10-nginx.sh | 46 ++++ base/app/init.d/10-novnc.sh | 36 ++++ .../.github/ISSUE_TEMPLATE/bug_report.md | 0 .../novnc}/.github/ISSUE_TEMPLATE/config.yml | 0 .../.github/ISSUE_TEMPLATE/feature_request.md | 0 .../app/novnc}/.github/workflows/deploy.yml | 0 .../app/novnc}/.github/workflows/lint.yml | 0 .../app/novnc}/.github/workflows/test.yml | 0 .../novnc}/.github/workflows/translate.yml | 0 {novnc => base/app/novnc}/.gitignore | 0 {novnc => base/app/novnc}/.gitmodules | 0 {novnc => base/app/novnc}/AUTHORS | 0 {novnc => base/app/novnc}/LICENSE.txt | 0 {novnc => base/app/novnc}/README.md | 0 .../app/novnc}/app/error-handler.js | 0 {novnc => base/app/novnc}/app/images/alt.svg | 0 .../app/novnc}/app/images/clipboard.svg | 0 .../app/novnc}/app/images/connect.svg | 0 {novnc => base/app/novnc}/app/images/ctrl.svg | 0 .../app/novnc}/app/images/ctrlaltdel.svg | 0 .../app/novnc}/app/images/disconnect.svg | 0 {novnc => base/app/novnc}/app/images/drag.svg | 0 .../app/novnc}/app/images/error.svg | 0 {novnc => base/app/novnc}/app/images/esc.svg | 0 .../app/novnc}/app/images/expander.svg | 0 .../app/novnc}/app/images/fullscreen.svg | 0 .../app/novnc}/app/images/handle.svg | 0 .../app/novnc}/app/images/handle_bg.svg | 0 .../app/novnc}/app/images/icons/Makefile | 0 .../novnc}/app/images/icons/novnc-icon-sm.svg | 0 .../novnc}/app/images/icons/novnc-icon.svg | 0 .../novnc}/app/images/icons/novnc-ios-120.png | Bin .../novnc}/app/images/icons/novnc-ios-152.png | Bin .../novnc}/app/images/icons/novnc-ios-167.png | Bin .../novnc}/app/images/icons/novnc-ios-180.png | Bin .../novnc}/app/images/icons/novnc-ios-40.png | Bin .../novnc}/app/images/icons/novnc-ios-58.png | Bin .../novnc}/app/images/icons/novnc-ios-60.png | Bin .../novnc}/app/images/icons/novnc-ios-80.png | Bin .../novnc}/app/images/icons/novnc-ios-87.png | Bin .../app/images/icons/novnc-ios-icon.svg | 0 .../app/novnc}/app/images/icons/novnc.ico | Bin {novnc => base/app/novnc}/app/images/info.svg | 0 .../app/novnc}/app/images/keyboard.svg | 0 .../app/novnc}/app/images/power.svg | 0 .../app/novnc}/app/images/settings.svg | 0 {novnc => base/app/novnc}/app/images/tab.svg | 0 .../app/novnc}/app/images/toggleextrakeys.svg | 0 .../app/novnc}/app/images/warning.svg | 0 .../app/novnc}/app/images/windows.svg | 0 {novnc => base/app/novnc}/app/locale/README | 0 {novnc => base/app/novnc}/app/locale/cs.json | 0 {novnc => base/app/novnc}/app/locale/de.json | 0 {novnc => base/app/novnc}/app/locale/el.json | 0 {novnc => base/app/novnc}/app/locale/es.json | 0 {novnc => base/app/novnc}/app/locale/fr.json | 0 {novnc => base/app/novnc}/app/locale/it.json | 0 {novnc => base/app/novnc}/app/locale/ja.json | 0 {novnc => base/app/novnc}/app/locale/ko.json | 0 {novnc => base/app/novnc}/app/locale/nl.json | 0 {novnc => base/app/novnc}/app/locale/pl.json | 0 .../app/novnc}/app/locale/pt_BR.json | 0 {novnc => base/app/novnc}/app/locale/ru.json | 0 {novnc => base/app/novnc}/app/locale/sv.json | 0 {novnc => base/app/novnc}/app/locale/tr.json | 0 .../app/novnc}/app/locale/zh_CN.json | 0 .../app/novnc}/app/locale/zh_TW.json | 0 {novnc => base/app/novnc}/app/localization.js | 0 {novnc => base/app/novnc}/app/sounds/CREDITS | 0 {novnc => base/app/novnc}/app/sounds/bell.mp3 | Bin {novnc => base/app/novnc}/app/sounds/bell.oga | Bin .../app/novnc}/app/styles/Orbitron700.ttf | Bin .../app/novnc}/app/styles/Orbitron700.woff | Bin {novnc => base/app/novnc}/app/styles/base.css | 0 .../app/novnc}/app/styles/input.css | 0 {novnc => base/app/novnc}/app/ui.js | 0 {novnc => base/app/novnc}/app/webutil.js | 0 {novnc => base/app/novnc}/core/base64.js | 0 {novnc => base/app/novnc}/core/crypto/aes.js | 0 .../app/novnc}/core/crypto/bigint.js | 0 .../app/novnc}/core/crypto/crypto.js | 0 {novnc => base/app/novnc}/core/crypto/des.js | 0 {novnc => base/app/novnc}/core/crypto/dh.js | 0 {novnc => base/app/novnc}/core/crypto/md5.js | 0 {novnc => base/app/novnc}/core/crypto/rsa.js | 0 .../app/novnc}/core/decoders/copyrect.js | 0 .../app/novnc}/core/decoders/hextile.js | 0 .../app/novnc}/core/decoders/jpeg.js | 0 .../app/novnc}/core/decoders/raw.js | 0 .../app/novnc}/core/decoders/rre.js | 0 .../app/novnc}/core/decoders/tight.js | 0 .../app/novnc}/core/decoders/tightpng.js | 0 .../app/novnc}/core/decoders/zrle.js | 0 {novnc => base/app/novnc}/core/deflator.js | 0 {novnc => base/app/novnc}/core/display.js | 0 {novnc => base/app/novnc}/core/encodings.js | 0 {novnc => base/app/novnc}/core/inflator.js | 0 .../app/novnc}/core/input/domkeytable.js | 0 .../app/novnc}/core/input/fixedkeys.js | 0 .../app/novnc}/core/input/gesturehandler.js | 0 .../app/novnc}/core/input/keyboard.js | 0 .../app/novnc}/core/input/keysym.js | 0 .../app/novnc}/core/input/keysymdef.js | 0 {novnc => base/app/novnc}/core/input/util.js | 0 {novnc => base/app/novnc}/core/input/vkeys.js | 0 .../app/novnc}/core/input/xtscancodes.js | 0 {novnc => base/app/novnc}/core/ra2.js | 0 {novnc => base/app/novnc}/core/rfb.js | 0 .../app/novnc}/core/util/browser.js | 0 {novnc => base/app/novnc}/core/util/cursor.js | 0 .../app/novnc}/core/util/element.js | 0 {novnc => base/app/novnc}/core/util/events.js | 0 .../app/novnc}/core/util/eventtarget.js | 0 {novnc => base/app/novnc}/core/util/int.js | 0 .../app/novnc}/core/util/logging.js | 0 .../app/novnc}/core/util/strings.js | 0 {novnc => base/app/novnc}/core/websock.js | 0 .../app/novnc}/docs/API-internal.md | 0 {novnc => base/app/novnc}/docs/API.md | 0 {novnc => base/app/novnc}/docs/EMBEDDING.md | 0 {novnc => base/app/novnc}/docs/LIBRARY.md | 0 .../app/novnc}/docs/LICENSE.BSD-2-Clause | 0 .../app/novnc}/docs/LICENSE.BSD-3-Clause | 0 .../app/novnc}/docs/LICENSE.MPL-2.0 | 0 .../app/novnc}/docs/LICENSE.OFL-1.1 | 0 .../app/novnc}/docs/flash_policy.txt | 0 {novnc => base/app/novnc}/docs/links | 0 {novnc => base/app/novnc}/docs/notes | 0 {novnc => base/app/novnc}/docs/novnc_proxy.1 | 0 {novnc => base/app/novnc}/docs/rfb_notes | 0 .../app/novnc}/docs/rfbproto-3.3.pdf | Bin .../app/novnc}/docs/rfbproto-3.7.pdf | Bin .../app/novnc}/docs/rfbproto-3.8.pdf | Bin {novnc => base/app/novnc}/eslint.config.mjs | 0 {novnc => base/app/novnc}/karma.conf.js | 0 {novnc => base/app/novnc}/package.json | 0 {novnc => base/app/novnc}/po/Makefile | 0 {novnc => base/app/novnc}/po/cs.po | 0 {novnc => base/app/novnc}/po/de.po | 0 {novnc => base/app/novnc}/po/el.po | 0 {novnc => base/app/novnc}/po/es.po | 0 {novnc => base/app/novnc}/po/fr.po | 0 {novnc => base/app/novnc}/po/it.po | 0 {novnc => base/app/novnc}/po/ja.po | 0 {novnc => base/app/novnc}/po/ko.po | 0 {novnc => base/app/novnc}/po/nl.po | 0 {novnc => base/app/novnc}/po/noVNC.pot | 0 {novnc => base/app/novnc}/po/pl.po | 0 {novnc => base/app/novnc}/po/po2js | 0 {novnc => base/app/novnc}/po/pt_BR.po | 0 {novnc => base/app/novnc}/po/ru.po | 0 {novnc => base/app/novnc}/po/sv.po | 0 {novnc => base/app/novnc}/po/tr.po | 0 {novnc => base/app/novnc}/po/xgettext-html | 0 {novnc => base/app/novnc}/po/zh_CN.po | 0 {novnc => base/app/novnc}/po/zh_TW.po | 0 .../app/novnc}/snap/hooks/configure | 0 .../app/novnc}/snap/local/svc_wrapper.sh | 0 {novnc => base/app/novnc}/snap/snapcraft.yaml | 0 {novnc => base/app/novnc}/tests/assertions.js | 0 .../app/novnc}/tests/fake.websocket.js | 0 .../app/novnc}/tests/playback-ui.js | 0 {novnc => base/app/novnc}/tests/playback.js | 0 .../app/novnc}/tests/test.base64.js | 0 .../app/novnc}/tests/test.browser.js | 0 .../app/novnc}/tests/test.copyrect.js | 0 .../app/novnc}/tests/test.deflator.js | 0 .../app/novnc}/tests/test.display.js | 0 .../app/novnc}/tests/test.gesturehandler.js | 0 .../app/novnc}/tests/test.helper.js | 0 .../app/novnc}/tests/test.hextile.js | 0 .../app/novnc}/tests/test.inflator.js | 0 {novnc => base/app/novnc}/tests/test.int.js | 0 {novnc => base/app/novnc}/tests/test.jpeg.js | 0 .../app/novnc}/tests/test.keyboard.js | 0 .../app/novnc}/tests/test.localization.js | 0 {novnc => base/app/novnc}/tests/test.raw.js | 0 {novnc => base/app/novnc}/tests/test.rfb.js | 0 {novnc => base/app/novnc}/tests/test.rre.js | 0 {novnc => base/app/novnc}/tests/test.tight.js | 0 .../app/novnc}/tests/test.tightpng.js | 0 {novnc => base/app/novnc}/tests/test.util.js | 0 .../app/novnc}/tests/test.websock.js | 0 .../app/novnc}/tests/test.webutil.js | 0 {novnc => base/app/novnc}/tests/test.zrle.js | 0 .../app/novnc}/tests/vnc_playback.html | 0 {novnc => base/app/novnc}/utils/README.md | 0 .../app/novnc}/utils/b64-to-binary.pl | 0 {novnc => base/app/novnc}/utils/convert.js | 0 .../app/novnc}/utils/genkeysymdef.js | 0 {novnc => base/app/novnc}/utils/novnc_proxy | 0 {novnc => base/app/novnc}/utils/u2x11 | 0 {novnc => base/app/novnc}/utils/validate | 0 {novnc => base/app/novnc}/vendor/pako/LICENSE | 0 .../app/novnc}/vendor/pako/README.md | 0 .../novnc}/vendor/pako/lib/utils/common.js | 0 .../novnc}/vendor/pako/lib/zlib/adler32.js | 0 .../novnc}/vendor/pako/lib/zlib/constants.js | 0 .../app/novnc}/vendor/pako/lib/zlib/crc32.js | 0 .../novnc}/vendor/pako/lib/zlib/deflate.js | 0 .../novnc}/vendor/pako/lib/zlib/gzheader.js | 0 .../novnc}/vendor/pako/lib/zlib/inffast.js | 0 .../novnc}/vendor/pako/lib/zlib/inflate.js | 0 .../novnc}/vendor/pako/lib/zlib/inftrees.js | 0 .../novnc}/vendor/pako/lib/zlib/messages.js | 0 .../app/novnc}/vendor/pako/lib/zlib/trees.js | 0 .../novnc}/vendor/pako/lib/zlib/zstream.js | 0 {novnc => base/app/novnc}/vnc.html | 0 {novnc => base/app/novnc}/vnc_lite.html | 0 base/up | 11 + firefox.sh => firefox/firefox.sh | 0 base:i3.sh => i3/i3.sh | 0 webtop:plasma.sh => plasma/webtop:plasma.sh | 0 remmina.sh | 54 ----- 218 files changed, 182 insertions(+), 258 deletions(-) delete mode 100644 base.sh create mode 100644 base/Dockerfile create mode 100755 base/app/entrypoint create mode 100755 base/app/init.d/01-init.sh create mode 100755 base/app/init.d/10-nginx.sh create mode 100755 base/app/init.d/10-novnc.sh rename {novnc => base/app/novnc}/.github/ISSUE_TEMPLATE/bug_report.md (100%) rename {novnc => base/app/novnc}/.github/ISSUE_TEMPLATE/config.yml (100%) rename {novnc => base/app/novnc}/.github/ISSUE_TEMPLATE/feature_request.md (100%) rename {novnc => base/app/novnc}/.github/workflows/deploy.yml (100%) rename {novnc => base/app/novnc}/.github/workflows/lint.yml (100%) rename {novnc => base/app/novnc}/.github/workflows/test.yml (100%) rename {novnc => base/app/novnc}/.github/workflows/translate.yml (100%) rename {novnc => base/app/novnc}/.gitignore (100%) rename {novnc => base/app/novnc}/.gitmodules (100%) rename {novnc => base/app/novnc}/AUTHORS (100%) rename {novnc => base/app/novnc}/LICENSE.txt (100%) rename {novnc => base/app/novnc}/README.md (100%) rename {novnc => base/app/novnc}/app/error-handler.js (100%) rename {novnc => base/app/novnc}/app/images/alt.svg (100%) rename {novnc => base/app/novnc}/app/images/clipboard.svg (100%) rename {novnc => base/app/novnc}/app/images/connect.svg (100%) rename {novnc => base/app/novnc}/app/images/ctrl.svg (100%) rename {novnc => base/app/novnc}/app/images/ctrlaltdel.svg (100%) rename {novnc => base/app/novnc}/app/images/disconnect.svg (100%) rename {novnc => base/app/novnc}/app/images/drag.svg (100%) rename {novnc => base/app/novnc}/app/images/error.svg (100%) rename {novnc => base/app/novnc}/app/images/esc.svg (100%) rename {novnc => base/app/novnc}/app/images/expander.svg (100%) rename {novnc => base/app/novnc}/app/images/fullscreen.svg (100%) rename {novnc => base/app/novnc}/app/images/handle.svg (100%) rename {novnc => base/app/novnc}/app/images/handle_bg.svg (100%) rename {novnc => base/app/novnc}/app/images/icons/Makefile (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-icon-sm.svg (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-icon.svg (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-120.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-152.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-167.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-180.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-40.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-58.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-60.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-80.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-87.png (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc-ios-icon.svg (100%) rename {novnc => base/app/novnc}/app/images/icons/novnc.ico (100%) rename {novnc => base/app/novnc}/app/images/info.svg (100%) rename {novnc => base/app/novnc}/app/images/keyboard.svg (100%) rename {novnc => base/app/novnc}/app/images/power.svg (100%) rename {novnc => base/app/novnc}/app/images/settings.svg (100%) rename {novnc => base/app/novnc}/app/images/tab.svg (100%) rename {novnc => base/app/novnc}/app/images/toggleextrakeys.svg (100%) rename {novnc => base/app/novnc}/app/images/warning.svg (100%) rename {novnc => base/app/novnc}/app/images/windows.svg (100%) rename {novnc => base/app/novnc}/app/locale/README (100%) rename {novnc => base/app/novnc}/app/locale/cs.json (100%) rename {novnc => base/app/novnc}/app/locale/de.json (100%) rename {novnc => base/app/novnc}/app/locale/el.json (100%) rename {novnc => base/app/novnc}/app/locale/es.json (100%) rename {novnc => base/app/novnc}/app/locale/fr.json (100%) rename {novnc => base/app/novnc}/app/locale/it.json (100%) rename {novnc => base/app/novnc}/app/locale/ja.json (100%) rename {novnc => base/app/novnc}/app/locale/ko.json (100%) rename {novnc => base/app/novnc}/app/locale/nl.json (100%) rename {novnc => base/app/novnc}/app/locale/pl.json (100%) rename {novnc => base/app/novnc}/app/locale/pt_BR.json (100%) rename {novnc => base/app/novnc}/app/locale/ru.json (100%) rename {novnc => base/app/novnc}/app/locale/sv.json (100%) rename {novnc => base/app/novnc}/app/locale/tr.json (100%) rename {novnc => base/app/novnc}/app/locale/zh_CN.json (100%) rename {novnc => base/app/novnc}/app/locale/zh_TW.json (100%) rename {novnc => base/app/novnc}/app/localization.js (100%) rename {novnc => base/app/novnc}/app/sounds/CREDITS (100%) rename {novnc => base/app/novnc}/app/sounds/bell.mp3 (100%) rename {novnc => base/app/novnc}/app/sounds/bell.oga (100%) rename {novnc => base/app/novnc}/app/styles/Orbitron700.ttf (100%) rename {novnc => base/app/novnc}/app/styles/Orbitron700.woff (100%) rename {novnc => base/app/novnc}/app/styles/base.css (100%) rename {novnc => base/app/novnc}/app/styles/input.css (100%) rename {novnc => base/app/novnc}/app/ui.js (100%) rename {novnc => base/app/novnc}/app/webutil.js (100%) rename {novnc => base/app/novnc}/core/base64.js (100%) rename {novnc => base/app/novnc}/core/crypto/aes.js (100%) rename {novnc => base/app/novnc}/core/crypto/bigint.js (100%) rename {novnc => base/app/novnc}/core/crypto/crypto.js (100%) rename {novnc => base/app/novnc}/core/crypto/des.js (100%) rename {novnc => base/app/novnc}/core/crypto/dh.js (100%) rename {novnc => base/app/novnc}/core/crypto/md5.js (100%) rename {novnc => base/app/novnc}/core/crypto/rsa.js (100%) rename {novnc => base/app/novnc}/core/decoders/copyrect.js (100%) rename {novnc => base/app/novnc}/core/decoders/hextile.js (100%) rename {novnc => base/app/novnc}/core/decoders/jpeg.js (100%) rename {novnc => base/app/novnc}/core/decoders/raw.js (100%) rename {novnc => base/app/novnc}/core/decoders/rre.js (100%) rename {novnc => base/app/novnc}/core/decoders/tight.js (100%) rename {novnc => base/app/novnc}/core/decoders/tightpng.js (100%) rename {novnc => base/app/novnc}/core/decoders/zrle.js (100%) rename {novnc => base/app/novnc}/core/deflator.js (100%) rename {novnc => base/app/novnc}/core/display.js (100%) rename {novnc => base/app/novnc}/core/encodings.js (100%) rename {novnc => base/app/novnc}/core/inflator.js (100%) rename {novnc => base/app/novnc}/core/input/domkeytable.js (100%) rename {novnc => base/app/novnc}/core/input/fixedkeys.js (100%) rename {novnc => base/app/novnc}/core/input/gesturehandler.js (100%) rename {novnc => base/app/novnc}/core/input/keyboard.js (100%) rename {novnc => base/app/novnc}/core/input/keysym.js (100%) rename {novnc => base/app/novnc}/core/input/keysymdef.js (100%) rename {novnc => base/app/novnc}/core/input/util.js (100%) rename {novnc => base/app/novnc}/core/input/vkeys.js (100%) rename {novnc => base/app/novnc}/core/input/xtscancodes.js (100%) rename {novnc => base/app/novnc}/core/ra2.js (100%) rename {novnc => base/app/novnc}/core/rfb.js (100%) rename {novnc => base/app/novnc}/core/util/browser.js (100%) rename {novnc => base/app/novnc}/core/util/cursor.js (100%) rename {novnc => base/app/novnc}/core/util/element.js (100%) rename {novnc => base/app/novnc}/core/util/events.js (100%) rename {novnc => base/app/novnc}/core/util/eventtarget.js (100%) rename {novnc => base/app/novnc}/core/util/int.js (100%) rename {novnc => base/app/novnc}/core/util/logging.js (100%) rename {novnc => base/app/novnc}/core/util/strings.js (100%) rename {novnc => base/app/novnc}/core/websock.js (100%) rename {novnc => base/app/novnc}/docs/API-internal.md (100%) rename {novnc => base/app/novnc}/docs/API.md (100%) rename {novnc => base/app/novnc}/docs/EMBEDDING.md (100%) rename {novnc => base/app/novnc}/docs/LIBRARY.md (100%) rename {novnc => base/app/novnc}/docs/LICENSE.BSD-2-Clause (100%) rename {novnc => base/app/novnc}/docs/LICENSE.BSD-3-Clause (100%) rename {novnc => base/app/novnc}/docs/LICENSE.MPL-2.0 (100%) rename {novnc => base/app/novnc}/docs/LICENSE.OFL-1.1 (100%) rename {novnc => base/app/novnc}/docs/flash_policy.txt (100%) rename {novnc => base/app/novnc}/docs/links (100%) rename {novnc => base/app/novnc}/docs/notes (100%) rename {novnc => base/app/novnc}/docs/novnc_proxy.1 (100%) rename {novnc => base/app/novnc}/docs/rfb_notes (100%) rename {novnc => base/app/novnc}/docs/rfbproto-3.3.pdf (100%) rename {novnc => base/app/novnc}/docs/rfbproto-3.7.pdf (100%) rename {novnc => base/app/novnc}/docs/rfbproto-3.8.pdf (100%) rename {novnc => base/app/novnc}/eslint.config.mjs (100%) rename {novnc => base/app/novnc}/karma.conf.js (100%) rename {novnc => base/app/novnc}/package.json (100%) rename {novnc => base/app/novnc}/po/Makefile (100%) rename {novnc => base/app/novnc}/po/cs.po (100%) rename {novnc => base/app/novnc}/po/de.po (100%) rename {novnc => base/app/novnc}/po/el.po (100%) rename {novnc => base/app/novnc}/po/es.po (100%) rename {novnc => base/app/novnc}/po/fr.po (100%) rename {novnc => base/app/novnc}/po/it.po (100%) rename {novnc => base/app/novnc}/po/ja.po (100%) rename {novnc => base/app/novnc}/po/ko.po (100%) rename {novnc => base/app/novnc}/po/nl.po (100%) rename {novnc => base/app/novnc}/po/noVNC.pot (100%) rename {novnc => base/app/novnc}/po/pl.po (100%) rename {novnc => base/app/novnc}/po/po2js (100%) rename {novnc => base/app/novnc}/po/pt_BR.po (100%) rename {novnc => base/app/novnc}/po/ru.po (100%) rename {novnc => base/app/novnc}/po/sv.po (100%) rename {novnc => base/app/novnc}/po/tr.po (100%) rename {novnc => base/app/novnc}/po/xgettext-html (100%) rename {novnc => base/app/novnc}/po/zh_CN.po (100%) rename {novnc => base/app/novnc}/po/zh_TW.po (100%) rename {novnc => base/app/novnc}/snap/hooks/configure (100%) rename {novnc => base/app/novnc}/snap/local/svc_wrapper.sh (100%) rename {novnc => base/app/novnc}/snap/snapcraft.yaml (100%) rename {novnc => base/app/novnc}/tests/assertions.js (100%) rename {novnc => base/app/novnc}/tests/fake.websocket.js (100%) rename {novnc => base/app/novnc}/tests/playback-ui.js (100%) rename {novnc => base/app/novnc}/tests/playback.js (100%) rename {novnc => base/app/novnc}/tests/test.base64.js (100%) rename {novnc => base/app/novnc}/tests/test.browser.js (100%) rename {novnc => base/app/novnc}/tests/test.copyrect.js (100%) rename {novnc => base/app/novnc}/tests/test.deflator.js (100%) rename {novnc => base/app/novnc}/tests/test.display.js (100%) rename {novnc => base/app/novnc}/tests/test.gesturehandler.js (100%) rename {novnc => base/app/novnc}/tests/test.helper.js (100%) rename {novnc => base/app/novnc}/tests/test.hextile.js (100%) rename {novnc => base/app/novnc}/tests/test.inflator.js (100%) rename {novnc => base/app/novnc}/tests/test.int.js (100%) rename {novnc => base/app/novnc}/tests/test.jpeg.js (100%) rename {novnc => base/app/novnc}/tests/test.keyboard.js (100%) rename {novnc => base/app/novnc}/tests/test.localization.js (100%) rename {novnc => base/app/novnc}/tests/test.raw.js (100%) rename {novnc => base/app/novnc}/tests/test.rfb.js (100%) rename {novnc => base/app/novnc}/tests/test.rre.js (100%) rename {novnc => base/app/novnc}/tests/test.tight.js (100%) rename {novnc => base/app/novnc}/tests/test.tightpng.js (100%) rename {novnc => base/app/novnc}/tests/test.util.js (100%) rename {novnc => base/app/novnc}/tests/test.websock.js (100%) rename {novnc => base/app/novnc}/tests/test.webutil.js (100%) rename {novnc => base/app/novnc}/tests/test.zrle.js (100%) rename {novnc => base/app/novnc}/tests/vnc_playback.html (100%) rename {novnc => base/app/novnc}/utils/README.md (100%) rename {novnc => base/app/novnc}/utils/b64-to-binary.pl (100%) rename {novnc => base/app/novnc}/utils/convert.js (100%) rename {novnc => base/app/novnc}/utils/genkeysymdef.js (100%) rename {novnc => base/app/novnc}/utils/novnc_proxy (100%) rename {novnc => base/app/novnc}/utils/u2x11 (100%) rename {novnc => base/app/novnc}/utils/validate (100%) rename {novnc => base/app/novnc}/vendor/pako/LICENSE (100%) rename {novnc => base/app/novnc}/vendor/pako/README.md (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/utils/common.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/adler32.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/constants.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/crc32.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/deflate.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/gzheader.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/inffast.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/inflate.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/inftrees.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/messages.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/trees.js (100%) rename {novnc => base/app/novnc}/vendor/pako/lib/zlib/zstream.js (100%) rename {novnc => base/app/novnc}/vnc.html (100%) rename {novnc => base/app/novnc}/vnc_lite.html (100%) create mode 100755 base/up rename firefox.sh => firefox/firefox.sh (100%) rename base:i3.sh => i3/i3.sh (100%) rename webtop:plasma.sh => plasma/webtop:plasma.sh (100%) delete mode 100644 remmina.sh diff --git a/base.sh b/base.sh deleted file mode 100644 index 5a0c085..0000000 --- a/base.sh +++ /dev/null @@ -1,204 +0,0 @@ -## Dockerfile -cat >Dockerfile <<- 'Dockerfile' -# syntax = docker/dockerfile:1.2 -FROM quay.io/archlinux/archlinux:base-devel -USER root - -# Docker ENV variables -# # Required -# ENV MYVNC_VNCPASS -# # Optional -# ENV MYVNC_CUSTOM_TITLE -# ENV MYVNC_PROXYPATH (eg, "/subpath/" or "/subpath") -# ENV MYVNC_VNCSHARING (eg, "true" to allow sharing (defaults to "false")) -# ENV MYVNC_VNCSERVER_HOST (eg, localhost or 192.168.1.1) -# ENV MYVNC_VNCSERVER_PORT (eg, 5900) - -# Build ARG for additional pacman packages to install (eg, openssh) -ARG pkg - -# Install packages -COPY mirrorlist /etc/pacman.d/mirrorlist -RUN pacman-key --init \ - && sed -i '/ParallelDownloads/c ParallelDownloads = 10' /etc/pacman.conf \ - && pacman -Sy --ask 4 archlinux-keyring \ - && pacman -Su --ask 4 --needed \ - sudo bash-completion ${pkg} \ - inetutils python-numpy python-setuptools \ - nginx-mainline \ - && pacman -Scc --ask 4 \ - && useradd --create-home --gid users --shell /usr/bin/bash user \ - && echo 'user ALL=(ALL:ALL) NOPASSWD: MISCELLANEOUS, /usr/bin/nginx' >/etc/sudoers.d/zz-DOCKER \ - && echo 'Defaults lecture = never' >>/etc/sudoers.d/zz-DOCKER \ - && passwd -l root >/dev/null 2>&1 \ - && sed '/^http {/a\ \ - include /app/nginx/\*.conf;\n\ \ - types_hash_max_size 4096;\n\ \ - server_names_hash_bucket_size 128;\n' -i /etc/nginx/nginx.conf \ - && mkdir -p /app/init.d /app/nginx /app/logs - -# Install noVNC -COPY novnc /app/novnc - -# Install all init scripts -COPY docker-entrypoint.sh /docker-entrypoint.sh -COPY 01-init.sh 10-novnc.sh 10-nginx.sh /app/init.d/ - -# Proper permissions -RUN chmod +x /docker-entrypoint.sh /app/init.d/* \ - && chown -R user:users /app - -# Default environment -USER user -WORKDIR /home/user -ENV DISPLAY=:0 -ENV SHELL=/usr/bin/bash - -# Expose nginx port for VNC webui -EXPOSE 6900 - -# Docker entrypoint -ENTRYPOINT ["/docker-entrypoint.sh"] -Dockerfile - -## Init script, always runs first -cat >01-init.sh <<- '01-init.sh' -#!/usr/bin/env bash -# Create base directories -for dir in vnc config ssh -do - [ -d ~/.${dir} ] || mkdir -p ~/.${dir} -done - -## OPTIONAL: More commands may be added below - -01-init.sh - -## NoVNC setup -cat >10-novnc.sh <<- '10-novnc.sh' -#!/usr/bin/env bash -# Turn vnc sharing on/off -if [[ ${MYVNC_VNCSHARING} == "true" ]] || [[ ${MYVNC_VNCSHARING} == "1" ]] -then - _MYVNC_VNCSHARING=true -else - _MYVNC_VNCSHARING=false -fi - -# Always default to remote scaling -sed -i "/UI.initSetting\|resize/ s/resize', '.*');/resize', 'scale');/" /app/novnc/app/ui.js - -# Always default to autoconnect=true -sed -i "/let autoconnect/ s/autoconnect', .*);/autoconnect', true);/" /app/novnc/app/ui.js - -# Change vnc shared view settings (defaults to false/off) -sed -i "/UI.initSetting\|shared/ s/shared', .*);/shared', ${_MYVNC_VNCSHARING});/" /app/novnc/app/ui.js - -# NoVNC custom title -sed -i "/noVNC<\/title>/ s/noVNC/${MYVNC_CUSTOM_TITLE:-noVNC}/g" /app/novnc/*.html - -# Apply subpath to websocket -if [[ ${MYVNC_PROXYPATH} == "/" ]] -then - unset _MYVNC_PROXYPATH -elif [ ${MYVNC_PROXYPATH} ] -then - _MYVNC_PROXYPATH=$(echo ${MYVNC_PROXYPATH%/} | sed "s|^.*/||") - sed -i "/UI.initSetting/ s|websockify|${_MYVNC_PROXYPATH}/&|" /app/novnc/app/ui.js -fi - -# Start NoVNC -/app/novnc/utils/novnc_proxy \ - --listen 6080 \ - --vnc ${MYVNC_VNCSERVER_HOST:-localhost}:${MYVNC_VNCSERVER_PORT:-5900} \ - --file-only & -10-novnc.sh - -## Nginx setup -cat >10-nginx.sh <<- '10-nginx.sh' -#!/usr/bin/env bash -# Reformat path -if [[ ${MYVNC_PROXYPATH} == "/" ]] -then - unset _MYVNC_PROXYPATH -elif [ ${MYVNC_PROXYPATH} ] -then - _MYVNC_PROXYPATH=$(echo ${MYVNC_PROXYPATH%/} | sed "s|^.*/||;s|^|/|") -fi - -# Add novnc virtual proxy conf -cat >/app/nginx/novnc.conf <<- novnc -upstream vnc_proxy { - server 127.0.0.1:6080; -} - -server { - listen 6900; - - location ${_MYVNC_PROXYPATH}/websockify { - proxy_http_version 1.1; - proxy_pass http://vnc_proxy/; - proxy_set_header Upgrade \$http_upgrade; - proxy_set_header Connection "upgrade"; - - # VNC connection timeout - proxy_read_timeout 3600s; - proxy_send_timeout 3600s; - - # Disable cache - proxy_buffering off; - } - - location ${_MYVNC_PROXYPATH}/ { - index vnc.html; - alias /app/novnc/; - try_files \$uri \$uri/ /vnc.html; - - # In the location block related to noVNC - add_header Cache-Control no-cache; - } -} -novnc - -# Start nginx -sudo /usr/bin/nginx -g "daemon off;" & -10-nginx.sh - -## Docker entrypoint -cat >docker-entrypoint.sh <<- 'docker-entrypoint.sh' -#!/usr/bin/env bash -# Export all variables -set -a - -# Abort if an error is encountered -set -e - -# SSH config -if [ -f ~/.ssh/id_ed25519 ] -then - chmod 0600 ~/.ssh/id_ed25519 -fi - -# Run all scripts in init folder -for file in /app/init.d/*.sh -do - /usr/bin/bash -c ${file} >>/app/logs/$(echo ${file} | sed 's|/app/init.d/||;s|\.sh$||').log -done - -# Read cli parameters -exec "${@}" & - -# Monitor log -tail -f /app/logs/*.log -docker-entrypoint.sh - -## Fetch latest mirrorlist -curl --fail --silent https://myvelabs.com/lab/archlinux/raw/branch/master/mirrorlist -o mirrorlist - -## Docker build -# eg, ARCHPKG=openssh -# eg, BUILDTAG=base -DOCKER_BUILDKIT=1 docker build ./. \ - --build-arg pkg=${ARCHPKG:-""} \ - --tag myvnc/${BUILDTAG:-base} \ - && rm -f Dockerfile *.sh mirrorlist \ No newline at end of file diff --git a/base/Dockerfile b/base/Dockerfile new file mode 100644 index 0000000..29faa29 --- /dev/null +++ b/base/Dockerfile @@ -0,0 +1,59 @@ +# syntax = docker/dockerfile:1.2 +FROM quay.io/archlinux/archlinux:base-devel +USER root + +# Docker ENV variables +# # Required +# ENV MYVNC_VNCPASS +# # Optional +# ENV MYVNC_CUSTOM_TITLE +# ENV MYVNC_PROXYPATH (eg, "/subpath/" or "/subpath") +# ENV MYVNC_VNCSHARING (eg, "true" to allow sharing (defaults to "false")) +# ENV MYVNC_VNCSERVER_HOST (eg, localhost or 192.168.1.1) +# ENV MYVNC_VNCSERVER_PORT (eg, 5900) + +# Build ARG for additional pacman packages to install (eg, openssh) +ARG pkg + +# Install packages +COPY mirrorlist /etc/pacman.d/mirrorlist +RUN pacman-key --init \ + && sed -i '/ParallelDownloads/c ParallelDownloads = 10' /etc/pacman.conf \ + && pacman -Sy --ask 4 archlinux-keyring \ + && pacman -Su --ask 4 --needed \ + sudo bash-completion ${pkg} \ + inetutils python-numpy python-setuptools \ + nginx-mainline \ + && pacman -Scc --ask 4 \ + && useradd --create-home --gid users --shell /usr/bin/bash user \ + && echo 'user ALL=(ALL:ALL) NOPASSWD: MISCELLANEOUS, /usr/bin/nginx' >/etc/sudoers.d/zz-DOCKER \ + && echo 'Defaults lecture = never' >>/etc/sudoers.d/zz-DOCKER \ + && passwd -l root >/dev/null 2>&1 \ + && sed '/^http {/a\ \ + include /app/nginx/\*.conf;\n\ \ + types_hash_max_size 4096;\n\ \ + server_names_hash_bucket_size 128;\n' -i /etc/nginx/nginx.conf \ + && mkdir -p /app/init.d /app/nginx /app/logs + +# Install noVNC +COPY novnc /app/novnc + +# Install all init scripts +COPY docker-entrypoint.sh /docker-entrypoint.sh +COPY 01-init.sh 10-novnc.sh 10-nginx.sh /app/init.d/ + +# Proper permissions +RUN chmod +x /docker-entrypoint.sh /app/init.d/* \ + && chown -R user:users /app + +# Default environment +USER user +WORKDIR /home/user +ENV DISPLAY=:0 +ENV SHELL=/usr/bin/bash + +# Expose nginx port for VNC webui +EXPOSE 6900 + +# Docker entrypoint +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/base/app/entrypoint b/base/app/entrypoint new file mode 100755 index 0000000..b1ea375 --- /dev/null +++ b/base/app/entrypoint @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Export all variables +set -a + +# Abort if an error is encountered +set -e + +# SSH config +if [ -f ~/.ssh/id_ed25519 ] +then + chmod 0600 ~/.ssh/id_ed25519 +fi + +# Run all scripts in init folder +for file in /app/init.d/*.sh +do + /usr/bin/bash -c ${file} >>/app/logs/$(echo ${file} | sed 's|/app/init.d/||;s|\.sh$||').log +done + +# Read cli parameters +exec "${@}" & + +# Monitor log +tail -f /app/logs/*.log diff --git a/base/app/init.d/01-init.sh b/base/app/init.d/01-init.sh new file mode 100755 index 0000000..23a21d3 --- /dev/null +++ b/base/app/init.d/01-init.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# Create base directories +for dir in vnc config ssh +do + [ -d ~/.${dir} ] || mkdir -p ~/.${dir} +done diff --git a/base/app/init.d/10-nginx.sh b/base/app/init.d/10-nginx.sh new file mode 100755 index 0000000..c369e18 --- /dev/null +++ b/base/app/init.d/10-nginx.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# Reformat path +if [[ ${MYVNC_PROXYPATH} == "/" ]] +then + unset _MYVNC_PROXYPATH +elif [ ${MYVNC_PROXYPATH} ] +then + _MYVNC_PROXYPATH=$(echo ${MYVNC_PROXYPATH%/} | sed "s|^.*/||;s|^|/|") +fi + +# Add novnc virtual proxy conf +cat >/app/nginx/novnc.conf <<- novnc +upstream vnc_proxy { + server 127.0.0.1:6080; +} + +server { + listen 6900; + + location ${_MYVNC_PROXYPATH}/websockify { + proxy_http_version 1.1; + proxy_pass http://vnc_proxy/; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection "upgrade"; + + # VNC connection timeout + proxy_read_timeout 3600s; + proxy_send_timeout 3600s; + + # Disable cache + proxy_buffering off; + } + + location ${_MYVNC_PROXYPATH}/ { + index vnc.html; + alias /app/novnc/; + try_files \$uri \$uri/ /vnc.html; + + # In the location block related to noVNC + add_header Cache-Control no-cache; + } +} +novnc + +# Start nginx +sudo /usr/bin/nginx -g "daemon off;" & diff --git a/base/app/init.d/10-novnc.sh b/base/app/init.d/10-novnc.sh new file mode 100755 index 0000000..afa6d4c --- /dev/null +++ b/base/app/init.d/10-novnc.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Turn vnc sharing on/off +if [[ ${MYVNC_VNCSHARING} == "true" ]] || [[ ${MYVNC_VNCSHARING} == "1" ]] +then + _MYVNC_VNCSHARING=true +else + _MYVNC_VNCSHARING=false +fi + +# Always default to remote scaling +sed -i "/UI.initSetting\|resize/ s/resize', '.*');/resize', 'scale');/" /app/novnc/app/ui.js + +# Always default to autoconnect=true +sed -i "/let autoconnect/ s/autoconnect', .*);/autoconnect', true);/" /app/novnc/app/ui.js + +# Change vnc shared view settings (defaults to false/off) +sed -i "/UI.initSetting\|shared/ s/shared', .*);/shared', ${_MYVNC_VNCSHARING});/" /app/novnc/app/ui.js + +# NoVNC custom title +sed -i "/<title>noVNC<\/title>/ s/noVNC/${MYVNC_CUSTOM_TITLE:-noVNC}/g" /app/novnc/*.html + +# Apply subpath to websocket +if [[ ${MYVNC_PROXYPATH} == "/" ]] +then + unset _MYVNC_PROXYPATH +elif [ ${MYVNC_PROXYPATH} ] +then + _MYVNC_PROXYPATH=$(echo ${MYVNC_PROXYPATH%/} | sed "s|^.*/||") + sed -i "/UI.initSetting/ s|websockify|${_MYVNC_PROXYPATH}/&|" /app/novnc/app/ui.js +fi + +# Start NoVNC +/app/novnc/utils/novnc_proxy \ + --listen 6080 \ + --vnc ${MYVNC_VNCSERVER_HOST:-localhost}:${MYVNC_VNCSERVER_PORT:-5900} \ + --file-only & diff --git a/novnc/.github/ISSUE_TEMPLATE/bug_report.md b/base/app/novnc/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from novnc/.github/ISSUE_TEMPLATE/bug_report.md rename to base/app/novnc/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/novnc/.github/ISSUE_TEMPLATE/config.yml b/base/app/novnc/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from novnc/.github/ISSUE_TEMPLATE/config.yml rename to base/app/novnc/.github/ISSUE_TEMPLATE/config.yml diff --git a/novnc/.github/ISSUE_TEMPLATE/feature_request.md b/base/app/novnc/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from novnc/.github/ISSUE_TEMPLATE/feature_request.md rename to base/app/novnc/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/novnc/.github/workflows/deploy.yml b/base/app/novnc/.github/workflows/deploy.yml similarity index 100% rename from novnc/.github/workflows/deploy.yml rename to base/app/novnc/.github/workflows/deploy.yml diff --git a/novnc/.github/workflows/lint.yml b/base/app/novnc/.github/workflows/lint.yml similarity index 100% rename from novnc/.github/workflows/lint.yml rename to base/app/novnc/.github/workflows/lint.yml diff --git a/novnc/.github/workflows/test.yml b/base/app/novnc/.github/workflows/test.yml similarity index 100% rename from novnc/.github/workflows/test.yml rename to base/app/novnc/.github/workflows/test.yml diff --git a/novnc/.github/workflows/translate.yml b/base/app/novnc/.github/workflows/translate.yml similarity index 100% rename from novnc/.github/workflows/translate.yml rename to base/app/novnc/.github/workflows/translate.yml diff --git a/novnc/.gitignore b/base/app/novnc/.gitignore similarity index 100% rename from novnc/.gitignore rename to base/app/novnc/.gitignore diff --git a/novnc/.gitmodules b/base/app/novnc/.gitmodules similarity index 100% rename from novnc/.gitmodules rename to base/app/novnc/.gitmodules diff --git a/novnc/AUTHORS b/base/app/novnc/AUTHORS similarity index 100% rename from novnc/AUTHORS rename to base/app/novnc/AUTHORS diff --git a/novnc/LICENSE.txt b/base/app/novnc/LICENSE.txt similarity index 100% rename from novnc/LICENSE.txt rename to base/app/novnc/LICENSE.txt diff --git a/novnc/README.md b/base/app/novnc/README.md similarity index 100% rename from novnc/README.md rename to base/app/novnc/README.md diff --git a/novnc/app/error-handler.js b/base/app/novnc/app/error-handler.js similarity index 100% rename from novnc/app/error-handler.js rename to base/app/novnc/app/error-handler.js diff --git a/novnc/app/images/alt.svg b/base/app/novnc/app/images/alt.svg similarity index 100% rename from novnc/app/images/alt.svg rename to base/app/novnc/app/images/alt.svg diff --git a/novnc/app/images/clipboard.svg b/base/app/novnc/app/images/clipboard.svg similarity index 100% rename from novnc/app/images/clipboard.svg rename to base/app/novnc/app/images/clipboard.svg diff --git a/novnc/app/images/connect.svg b/base/app/novnc/app/images/connect.svg similarity index 100% rename from novnc/app/images/connect.svg rename to base/app/novnc/app/images/connect.svg diff --git a/novnc/app/images/ctrl.svg b/base/app/novnc/app/images/ctrl.svg similarity index 100% rename from novnc/app/images/ctrl.svg rename to base/app/novnc/app/images/ctrl.svg diff --git a/novnc/app/images/ctrlaltdel.svg b/base/app/novnc/app/images/ctrlaltdel.svg similarity index 100% rename from novnc/app/images/ctrlaltdel.svg rename to base/app/novnc/app/images/ctrlaltdel.svg diff --git a/novnc/app/images/disconnect.svg b/base/app/novnc/app/images/disconnect.svg similarity index 100% rename from novnc/app/images/disconnect.svg rename to base/app/novnc/app/images/disconnect.svg diff --git a/novnc/app/images/drag.svg b/base/app/novnc/app/images/drag.svg similarity index 100% rename from novnc/app/images/drag.svg rename to base/app/novnc/app/images/drag.svg diff --git a/novnc/app/images/error.svg b/base/app/novnc/app/images/error.svg similarity index 100% rename from novnc/app/images/error.svg rename to base/app/novnc/app/images/error.svg diff --git a/novnc/app/images/esc.svg b/base/app/novnc/app/images/esc.svg similarity index 100% rename from novnc/app/images/esc.svg rename to base/app/novnc/app/images/esc.svg diff --git a/novnc/app/images/expander.svg b/base/app/novnc/app/images/expander.svg similarity index 100% rename from novnc/app/images/expander.svg rename to base/app/novnc/app/images/expander.svg diff --git a/novnc/app/images/fullscreen.svg b/base/app/novnc/app/images/fullscreen.svg similarity index 100% rename from novnc/app/images/fullscreen.svg rename to base/app/novnc/app/images/fullscreen.svg diff --git a/novnc/app/images/handle.svg b/base/app/novnc/app/images/handle.svg similarity index 100% rename from novnc/app/images/handle.svg rename to base/app/novnc/app/images/handle.svg diff --git a/novnc/app/images/handle_bg.svg b/base/app/novnc/app/images/handle_bg.svg similarity index 100% rename from novnc/app/images/handle_bg.svg rename to base/app/novnc/app/images/handle_bg.svg diff --git a/novnc/app/images/icons/Makefile b/base/app/novnc/app/images/icons/Makefile similarity index 100% rename from novnc/app/images/icons/Makefile rename to base/app/novnc/app/images/icons/Makefile diff --git a/novnc/app/images/icons/novnc-icon-sm.svg b/base/app/novnc/app/images/icons/novnc-icon-sm.svg similarity index 100% rename from novnc/app/images/icons/novnc-icon-sm.svg rename to base/app/novnc/app/images/icons/novnc-icon-sm.svg diff --git a/novnc/app/images/icons/novnc-icon.svg b/base/app/novnc/app/images/icons/novnc-icon.svg similarity index 100% rename from novnc/app/images/icons/novnc-icon.svg rename to base/app/novnc/app/images/icons/novnc-icon.svg diff --git a/novnc/app/images/icons/novnc-ios-120.png b/base/app/novnc/app/images/icons/novnc-ios-120.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-120.png rename to base/app/novnc/app/images/icons/novnc-ios-120.png diff --git a/novnc/app/images/icons/novnc-ios-152.png b/base/app/novnc/app/images/icons/novnc-ios-152.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-152.png rename to base/app/novnc/app/images/icons/novnc-ios-152.png diff --git a/novnc/app/images/icons/novnc-ios-167.png b/base/app/novnc/app/images/icons/novnc-ios-167.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-167.png rename to base/app/novnc/app/images/icons/novnc-ios-167.png diff --git a/novnc/app/images/icons/novnc-ios-180.png b/base/app/novnc/app/images/icons/novnc-ios-180.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-180.png rename to base/app/novnc/app/images/icons/novnc-ios-180.png diff --git a/novnc/app/images/icons/novnc-ios-40.png b/base/app/novnc/app/images/icons/novnc-ios-40.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-40.png rename to base/app/novnc/app/images/icons/novnc-ios-40.png diff --git a/novnc/app/images/icons/novnc-ios-58.png b/base/app/novnc/app/images/icons/novnc-ios-58.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-58.png rename to base/app/novnc/app/images/icons/novnc-ios-58.png diff --git a/novnc/app/images/icons/novnc-ios-60.png b/base/app/novnc/app/images/icons/novnc-ios-60.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-60.png rename to base/app/novnc/app/images/icons/novnc-ios-60.png diff --git a/novnc/app/images/icons/novnc-ios-80.png b/base/app/novnc/app/images/icons/novnc-ios-80.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-80.png rename to base/app/novnc/app/images/icons/novnc-ios-80.png diff --git a/novnc/app/images/icons/novnc-ios-87.png b/base/app/novnc/app/images/icons/novnc-ios-87.png similarity index 100% rename from novnc/app/images/icons/novnc-ios-87.png rename to base/app/novnc/app/images/icons/novnc-ios-87.png diff --git a/novnc/app/images/icons/novnc-ios-icon.svg b/base/app/novnc/app/images/icons/novnc-ios-icon.svg similarity index 100% rename from novnc/app/images/icons/novnc-ios-icon.svg rename to base/app/novnc/app/images/icons/novnc-ios-icon.svg diff --git a/novnc/app/images/icons/novnc.ico b/base/app/novnc/app/images/icons/novnc.ico similarity index 100% rename from novnc/app/images/icons/novnc.ico rename to base/app/novnc/app/images/icons/novnc.ico diff --git a/novnc/app/images/info.svg b/base/app/novnc/app/images/info.svg similarity index 100% rename from novnc/app/images/info.svg rename to base/app/novnc/app/images/info.svg diff --git a/novnc/app/images/keyboard.svg b/base/app/novnc/app/images/keyboard.svg similarity index 100% rename from novnc/app/images/keyboard.svg rename to base/app/novnc/app/images/keyboard.svg diff --git a/novnc/app/images/power.svg b/base/app/novnc/app/images/power.svg similarity index 100% rename from novnc/app/images/power.svg rename to base/app/novnc/app/images/power.svg diff --git a/novnc/app/images/settings.svg b/base/app/novnc/app/images/settings.svg similarity index 100% rename from novnc/app/images/settings.svg rename to base/app/novnc/app/images/settings.svg diff --git a/novnc/app/images/tab.svg b/base/app/novnc/app/images/tab.svg similarity index 100% rename from novnc/app/images/tab.svg rename to base/app/novnc/app/images/tab.svg diff --git a/novnc/app/images/toggleextrakeys.svg b/base/app/novnc/app/images/toggleextrakeys.svg similarity index 100% rename from novnc/app/images/toggleextrakeys.svg rename to base/app/novnc/app/images/toggleextrakeys.svg diff --git a/novnc/app/images/warning.svg b/base/app/novnc/app/images/warning.svg similarity index 100% rename from novnc/app/images/warning.svg rename to base/app/novnc/app/images/warning.svg diff --git a/novnc/app/images/windows.svg b/base/app/novnc/app/images/windows.svg similarity index 100% rename from novnc/app/images/windows.svg rename to base/app/novnc/app/images/windows.svg diff --git a/novnc/app/locale/README b/base/app/novnc/app/locale/README similarity index 100% rename from novnc/app/locale/README rename to base/app/novnc/app/locale/README diff --git a/novnc/app/locale/cs.json b/base/app/novnc/app/locale/cs.json similarity index 100% rename from novnc/app/locale/cs.json rename to base/app/novnc/app/locale/cs.json diff --git a/novnc/app/locale/de.json b/base/app/novnc/app/locale/de.json similarity index 100% rename from novnc/app/locale/de.json rename to base/app/novnc/app/locale/de.json diff --git a/novnc/app/locale/el.json b/base/app/novnc/app/locale/el.json similarity index 100% rename from novnc/app/locale/el.json rename to base/app/novnc/app/locale/el.json diff --git a/novnc/app/locale/es.json b/base/app/novnc/app/locale/es.json similarity index 100% rename from novnc/app/locale/es.json rename to base/app/novnc/app/locale/es.json diff --git a/novnc/app/locale/fr.json b/base/app/novnc/app/locale/fr.json similarity index 100% rename from novnc/app/locale/fr.json rename to base/app/novnc/app/locale/fr.json diff --git a/novnc/app/locale/it.json b/base/app/novnc/app/locale/it.json similarity index 100% rename from novnc/app/locale/it.json rename to base/app/novnc/app/locale/it.json diff --git a/novnc/app/locale/ja.json b/base/app/novnc/app/locale/ja.json similarity index 100% rename from novnc/app/locale/ja.json rename to base/app/novnc/app/locale/ja.json diff --git a/novnc/app/locale/ko.json b/base/app/novnc/app/locale/ko.json similarity index 100% rename from novnc/app/locale/ko.json rename to base/app/novnc/app/locale/ko.json diff --git a/novnc/app/locale/nl.json b/base/app/novnc/app/locale/nl.json similarity index 100% rename from novnc/app/locale/nl.json rename to base/app/novnc/app/locale/nl.json diff --git a/novnc/app/locale/pl.json b/base/app/novnc/app/locale/pl.json similarity index 100% rename from novnc/app/locale/pl.json rename to base/app/novnc/app/locale/pl.json diff --git a/novnc/app/locale/pt_BR.json b/base/app/novnc/app/locale/pt_BR.json similarity index 100% rename from novnc/app/locale/pt_BR.json rename to base/app/novnc/app/locale/pt_BR.json diff --git a/novnc/app/locale/ru.json b/base/app/novnc/app/locale/ru.json similarity index 100% rename from novnc/app/locale/ru.json rename to base/app/novnc/app/locale/ru.json diff --git a/novnc/app/locale/sv.json b/base/app/novnc/app/locale/sv.json similarity index 100% rename from novnc/app/locale/sv.json rename to base/app/novnc/app/locale/sv.json diff --git a/novnc/app/locale/tr.json b/base/app/novnc/app/locale/tr.json similarity index 100% rename from novnc/app/locale/tr.json rename to base/app/novnc/app/locale/tr.json diff --git a/novnc/app/locale/zh_CN.json b/base/app/novnc/app/locale/zh_CN.json similarity index 100% rename from novnc/app/locale/zh_CN.json rename to base/app/novnc/app/locale/zh_CN.json diff --git a/novnc/app/locale/zh_TW.json b/base/app/novnc/app/locale/zh_TW.json similarity index 100% rename from novnc/app/locale/zh_TW.json rename to base/app/novnc/app/locale/zh_TW.json diff --git a/novnc/app/localization.js b/base/app/novnc/app/localization.js similarity index 100% rename from novnc/app/localization.js rename to base/app/novnc/app/localization.js diff --git a/novnc/app/sounds/CREDITS b/base/app/novnc/app/sounds/CREDITS similarity index 100% rename from novnc/app/sounds/CREDITS rename to base/app/novnc/app/sounds/CREDITS diff --git a/novnc/app/sounds/bell.mp3 b/base/app/novnc/app/sounds/bell.mp3 similarity index 100% rename from novnc/app/sounds/bell.mp3 rename to base/app/novnc/app/sounds/bell.mp3 diff --git a/novnc/app/sounds/bell.oga b/base/app/novnc/app/sounds/bell.oga similarity index 100% rename from novnc/app/sounds/bell.oga rename to base/app/novnc/app/sounds/bell.oga diff --git a/novnc/app/styles/Orbitron700.ttf b/base/app/novnc/app/styles/Orbitron700.ttf similarity index 100% rename from novnc/app/styles/Orbitron700.ttf rename to base/app/novnc/app/styles/Orbitron700.ttf diff --git a/novnc/app/styles/Orbitron700.woff b/base/app/novnc/app/styles/Orbitron700.woff similarity index 100% rename from novnc/app/styles/Orbitron700.woff rename to base/app/novnc/app/styles/Orbitron700.woff diff --git a/novnc/app/styles/base.css b/base/app/novnc/app/styles/base.css similarity index 100% rename from novnc/app/styles/base.css rename to base/app/novnc/app/styles/base.css diff --git a/novnc/app/styles/input.css b/base/app/novnc/app/styles/input.css similarity index 100% rename from novnc/app/styles/input.css rename to base/app/novnc/app/styles/input.css diff --git a/novnc/app/ui.js b/base/app/novnc/app/ui.js similarity index 100% rename from novnc/app/ui.js rename to base/app/novnc/app/ui.js diff --git a/novnc/app/webutil.js b/base/app/novnc/app/webutil.js similarity index 100% rename from novnc/app/webutil.js rename to base/app/novnc/app/webutil.js diff --git a/novnc/core/base64.js b/base/app/novnc/core/base64.js similarity index 100% rename from novnc/core/base64.js rename to base/app/novnc/core/base64.js diff --git a/novnc/core/crypto/aes.js b/base/app/novnc/core/crypto/aes.js similarity index 100% rename from novnc/core/crypto/aes.js rename to base/app/novnc/core/crypto/aes.js diff --git a/novnc/core/crypto/bigint.js b/base/app/novnc/core/crypto/bigint.js similarity index 100% rename from novnc/core/crypto/bigint.js rename to base/app/novnc/core/crypto/bigint.js diff --git a/novnc/core/crypto/crypto.js b/base/app/novnc/core/crypto/crypto.js similarity index 100% rename from novnc/core/crypto/crypto.js rename to base/app/novnc/core/crypto/crypto.js diff --git a/novnc/core/crypto/des.js b/base/app/novnc/core/crypto/des.js similarity index 100% rename from novnc/core/crypto/des.js rename to base/app/novnc/core/crypto/des.js diff --git a/novnc/core/crypto/dh.js b/base/app/novnc/core/crypto/dh.js similarity index 100% rename from novnc/core/crypto/dh.js rename to base/app/novnc/core/crypto/dh.js diff --git a/novnc/core/crypto/md5.js b/base/app/novnc/core/crypto/md5.js similarity index 100% rename from novnc/core/crypto/md5.js rename to base/app/novnc/core/crypto/md5.js diff --git a/novnc/core/crypto/rsa.js b/base/app/novnc/core/crypto/rsa.js similarity index 100% rename from novnc/core/crypto/rsa.js rename to base/app/novnc/core/crypto/rsa.js diff --git a/novnc/core/decoders/copyrect.js b/base/app/novnc/core/decoders/copyrect.js similarity index 100% rename from novnc/core/decoders/copyrect.js rename to base/app/novnc/core/decoders/copyrect.js diff --git a/novnc/core/decoders/hextile.js b/base/app/novnc/core/decoders/hextile.js similarity index 100% rename from novnc/core/decoders/hextile.js rename to base/app/novnc/core/decoders/hextile.js diff --git a/novnc/core/decoders/jpeg.js b/base/app/novnc/core/decoders/jpeg.js similarity index 100% rename from novnc/core/decoders/jpeg.js rename to base/app/novnc/core/decoders/jpeg.js diff --git a/novnc/core/decoders/raw.js b/base/app/novnc/core/decoders/raw.js similarity index 100% rename from novnc/core/decoders/raw.js rename to base/app/novnc/core/decoders/raw.js diff --git a/novnc/core/decoders/rre.js b/base/app/novnc/core/decoders/rre.js similarity index 100% rename from novnc/core/decoders/rre.js rename to base/app/novnc/core/decoders/rre.js diff --git a/novnc/core/decoders/tight.js b/base/app/novnc/core/decoders/tight.js similarity index 100% rename from novnc/core/decoders/tight.js rename to base/app/novnc/core/decoders/tight.js diff --git a/novnc/core/decoders/tightpng.js b/base/app/novnc/core/decoders/tightpng.js similarity index 100% rename from novnc/core/decoders/tightpng.js rename to base/app/novnc/core/decoders/tightpng.js diff --git a/novnc/core/decoders/zrle.js b/base/app/novnc/core/decoders/zrle.js similarity index 100% rename from novnc/core/decoders/zrle.js rename to base/app/novnc/core/decoders/zrle.js diff --git a/novnc/core/deflator.js b/base/app/novnc/core/deflator.js similarity index 100% rename from novnc/core/deflator.js rename to base/app/novnc/core/deflator.js diff --git a/novnc/core/display.js b/base/app/novnc/core/display.js similarity index 100% rename from novnc/core/display.js rename to base/app/novnc/core/display.js diff --git a/novnc/core/encodings.js b/base/app/novnc/core/encodings.js similarity index 100% rename from novnc/core/encodings.js rename to base/app/novnc/core/encodings.js diff --git a/novnc/core/inflator.js b/base/app/novnc/core/inflator.js similarity index 100% rename from novnc/core/inflator.js rename to base/app/novnc/core/inflator.js diff --git a/novnc/core/input/domkeytable.js b/base/app/novnc/core/input/domkeytable.js similarity index 100% rename from novnc/core/input/domkeytable.js rename to base/app/novnc/core/input/domkeytable.js diff --git a/novnc/core/input/fixedkeys.js b/base/app/novnc/core/input/fixedkeys.js similarity index 100% rename from novnc/core/input/fixedkeys.js rename to base/app/novnc/core/input/fixedkeys.js diff --git a/novnc/core/input/gesturehandler.js b/base/app/novnc/core/input/gesturehandler.js similarity index 100% rename from novnc/core/input/gesturehandler.js rename to base/app/novnc/core/input/gesturehandler.js diff --git a/novnc/core/input/keyboard.js b/base/app/novnc/core/input/keyboard.js similarity index 100% rename from novnc/core/input/keyboard.js rename to base/app/novnc/core/input/keyboard.js diff --git a/novnc/core/input/keysym.js b/base/app/novnc/core/input/keysym.js similarity index 100% rename from novnc/core/input/keysym.js rename to base/app/novnc/core/input/keysym.js diff --git a/novnc/core/input/keysymdef.js b/base/app/novnc/core/input/keysymdef.js similarity index 100% rename from novnc/core/input/keysymdef.js rename to base/app/novnc/core/input/keysymdef.js diff --git a/novnc/core/input/util.js b/base/app/novnc/core/input/util.js similarity index 100% rename from novnc/core/input/util.js rename to base/app/novnc/core/input/util.js diff --git a/novnc/core/input/vkeys.js b/base/app/novnc/core/input/vkeys.js similarity index 100% rename from novnc/core/input/vkeys.js rename to base/app/novnc/core/input/vkeys.js diff --git a/novnc/core/input/xtscancodes.js b/base/app/novnc/core/input/xtscancodes.js similarity index 100% rename from novnc/core/input/xtscancodes.js rename to base/app/novnc/core/input/xtscancodes.js diff --git a/novnc/core/ra2.js b/base/app/novnc/core/ra2.js similarity index 100% rename from novnc/core/ra2.js rename to base/app/novnc/core/ra2.js diff --git a/novnc/core/rfb.js b/base/app/novnc/core/rfb.js similarity index 100% rename from novnc/core/rfb.js rename to base/app/novnc/core/rfb.js diff --git a/novnc/core/util/browser.js b/base/app/novnc/core/util/browser.js similarity index 100% rename from novnc/core/util/browser.js rename to base/app/novnc/core/util/browser.js diff --git a/novnc/core/util/cursor.js b/base/app/novnc/core/util/cursor.js similarity index 100% rename from novnc/core/util/cursor.js rename to base/app/novnc/core/util/cursor.js diff --git a/novnc/core/util/element.js b/base/app/novnc/core/util/element.js similarity index 100% rename from novnc/core/util/element.js rename to base/app/novnc/core/util/element.js diff --git a/novnc/core/util/events.js b/base/app/novnc/core/util/events.js similarity index 100% rename from novnc/core/util/events.js rename to base/app/novnc/core/util/events.js diff --git a/novnc/core/util/eventtarget.js b/base/app/novnc/core/util/eventtarget.js similarity index 100% rename from novnc/core/util/eventtarget.js rename to base/app/novnc/core/util/eventtarget.js diff --git a/novnc/core/util/int.js b/base/app/novnc/core/util/int.js similarity index 100% rename from novnc/core/util/int.js rename to base/app/novnc/core/util/int.js diff --git a/novnc/core/util/logging.js b/base/app/novnc/core/util/logging.js similarity index 100% rename from novnc/core/util/logging.js rename to base/app/novnc/core/util/logging.js diff --git a/novnc/core/util/strings.js b/base/app/novnc/core/util/strings.js similarity index 100% rename from novnc/core/util/strings.js rename to base/app/novnc/core/util/strings.js diff --git a/novnc/core/websock.js b/base/app/novnc/core/websock.js similarity index 100% rename from novnc/core/websock.js rename to base/app/novnc/core/websock.js diff --git a/novnc/docs/API-internal.md b/base/app/novnc/docs/API-internal.md similarity index 100% rename from novnc/docs/API-internal.md rename to base/app/novnc/docs/API-internal.md diff --git a/novnc/docs/API.md b/base/app/novnc/docs/API.md similarity index 100% rename from novnc/docs/API.md rename to base/app/novnc/docs/API.md diff --git a/novnc/docs/EMBEDDING.md b/base/app/novnc/docs/EMBEDDING.md similarity index 100% rename from novnc/docs/EMBEDDING.md rename to base/app/novnc/docs/EMBEDDING.md diff --git a/novnc/docs/LIBRARY.md b/base/app/novnc/docs/LIBRARY.md similarity index 100% rename from novnc/docs/LIBRARY.md rename to base/app/novnc/docs/LIBRARY.md diff --git a/novnc/docs/LICENSE.BSD-2-Clause b/base/app/novnc/docs/LICENSE.BSD-2-Clause similarity index 100% rename from novnc/docs/LICENSE.BSD-2-Clause rename to base/app/novnc/docs/LICENSE.BSD-2-Clause diff --git a/novnc/docs/LICENSE.BSD-3-Clause b/base/app/novnc/docs/LICENSE.BSD-3-Clause similarity index 100% rename from novnc/docs/LICENSE.BSD-3-Clause rename to base/app/novnc/docs/LICENSE.BSD-3-Clause diff --git a/novnc/docs/LICENSE.MPL-2.0 b/base/app/novnc/docs/LICENSE.MPL-2.0 similarity index 100% rename from novnc/docs/LICENSE.MPL-2.0 rename to base/app/novnc/docs/LICENSE.MPL-2.0 diff --git a/novnc/docs/LICENSE.OFL-1.1 b/base/app/novnc/docs/LICENSE.OFL-1.1 similarity index 100% rename from novnc/docs/LICENSE.OFL-1.1 rename to base/app/novnc/docs/LICENSE.OFL-1.1 diff --git a/novnc/docs/flash_policy.txt b/base/app/novnc/docs/flash_policy.txt similarity index 100% rename from novnc/docs/flash_policy.txt rename to base/app/novnc/docs/flash_policy.txt diff --git a/novnc/docs/links b/base/app/novnc/docs/links similarity index 100% rename from novnc/docs/links rename to base/app/novnc/docs/links diff --git a/novnc/docs/notes b/base/app/novnc/docs/notes similarity index 100% rename from novnc/docs/notes rename to base/app/novnc/docs/notes diff --git a/novnc/docs/novnc_proxy.1 b/base/app/novnc/docs/novnc_proxy.1 similarity index 100% rename from novnc/docs/novnc_proxy.1 rename to base/app/novnc/docs/novnc_proxy.1 diff --git a/novnc/docs/rfb_notes b/base/app/novnc/docs/rfb_notes similarity index 100% rename from novnc/docs/rfb_notes rename to base/app/novnc/docs/rfb_notes diff --git a/novnc/docs/rfbproto-3.3.pdf b/base/app/novnc/docs/rfbproto-3.3.pdf similarity index 100% rename from novnc/docs/rfbproto-3.3.pdf rename to base/app/novnc/docs/rfbproto-3.3.pdf diff --git a/novnc/docs/rfbproto-3.7.pdf b/base/app/novnc/docs/rfbproto-3.7.pdf similarity index 100% rename from novnc/docs/rfbproto-3.7.pdf rename to base/app/novnc/docs/rfbproto-3.7.pdf diff --git a/novnc/docs/rfbproto-3.8.pdf b/base/app/novnc/docs/rfbproto-3.8.pdf similarity index 100% rename from novnc/docs/rfbproto-3.8.pdf rename to base/app/novnc/docs/rfbproto-3.8.pdf diff --git a/novnc/eslint.config.mjs b/base/app/novnc/eslint.config.mjs similarity index 100% rename from novnc/eslint.config.mjs rename to base/app/novnc/eslint.config.mjs diff --git a/novnc/karma.conf.js b/base/app/novnc/karma.conf.js similarity index 100% rename from novnc/karma.conf.js rename to base/app/novnc/karma.conf.js diff --git a/novnc/package.json b/base/app/novnc/package.json similarity index 100% rename from novnc/package.json rename to base/app/novnc/package.json diff --git a/novnc/po/Makefile b/base/app/novnc/po/Makefile similarity index 100% rename from novnc/po/Makefile rename to base/app/novnc/po/Makefile diff --git a/novnc/po/cs.po b/base/app/novnc/po/cs.po similarity index 100% rename from novnc/po/cs.po rename to base/app/novnc/po/cs.po diff --git a/novnc/po/de.po b/base/app/novnc/po/de.po similarity index 100% rename from novnc/po/de.po rename to base/app/novnc/po/de.po diff --git a/novnc/po/el.po b/base/app/novnc/po/el.po similarity index 100% rename from novnc/po/el.po rename to base/app/novnc/po/el.po diff --git a/novnc/po/es.po b/base/app/novnc/po/es.po similarity index 100% rename from novnc/po/es.po rename to base/app/novnc/po/es.po diff --git a/novnc/po/fr.po b/base/app/novnc/po/fr.po similarity index 100% rename from novnc/po/fr.po rename to base/app/novnc/po/fr.po diff --git a/novnc/po/it.po b/base/app/novnc/po/it.po similarity index 100% rename from novnc/po/it.po rename to base/app/novnc/po/it.po diff --git a/novnc/po/ja.po b/base/app/novnc/po/ja.po similarity index 100% rename from novnc/po/ja.po rename to base/app/novnc/po/ja.po diff --git a/novnc/po/ko.po b/base/app/novnc/po/ko.po similarity index 100% rename from novnc/po/ko.po rename to base/app/novnc/po/ko.po diff --git a/novnc/po/nl.po b/base/app/novnc/po/nl.po similarity index 100% rename from novnc/po/nl.po rename to base/app/novnc/po/nl.po diff --git a/novnc/po/noVNC.pot b/base/app/novnc/po/noVNC.pot similarity index 100% rename from novnc/po/noVNC.pot rename to base/app/novnc/po/noVNC.pot diff --git a/novnc/po/pl.po b/base/app/novnc/po/pl.po similarity index 100% rename from novnc/po/pl.po rename to base/app/novnc/po/pl.po diff --git a/novnc/po/po2js b/base/app/novnc/po/po2js similarity index 100% rename from novnc/po/po2js rename to base/app/novnc/po/po2js diff --git a/novnc/po/pt_BR.po b/base/app/novnc/po/pt_BR.po similarity index 100% rename from novnc/po/pt_BR.po rename to base/app/novnc/po/pt_BR.po diff --git a/novnc/po/ru.po b/base/app/novnc/po/ru.po similarity index 100% rename from novnc/po/ru.po rename to base/app/novnc/po/ru.po diff --git a/novnc/po/sv.po b/base/app/novnc/po/sv.po similarity index 100% rename from novnc/po/sv.po rename to base/app/novnc/po/sv.po diff --git a/novnc/po/tr.po b/base/app/novnc/po/tr.po similarity index 100% rename from novnc/po/tr.po rename to base/app/novnc/po/tr.po diff --git a/novnc/po/xgettext-html b/base/app/novnc/po/xgettext-html similarity index 100% rename from novnc/po/xgettext-html rename to base/app/novnc/po/xgettext-html diff --git a/novnc/po/zh_CN.po b/base/app/novnc/po/zh_CN.po similarity index 100% rename from novnc/po/zh_CN.po rename to base/app/novnc/po/zh_CN.po diff --git a/novnc/po/zh_TW.po b/base/app/novnc/po/zh_TW.po similarity index 100% rename from novnc/po/zh_TW.po rename to base/app/novnc/po/zh_TW.po diff --git a/novnc/snap/hooks/configure b/base/app/novnc/snap/hooks/configure similarity index 100% rename from novnc/snap/hooks/configure rename to base/app/novnc/snap/hooks/configure diff --git a/novnc/snap/local/svc_wrapper.sh b/base/app/novnc/snap/local/svc_wrapper.sh similarity index 100% rename from novnc/snap/local/svc_wrapper.sh rename to base/app/novnc/snap/local/svc_wrapper.sh diff --git a/novnc/snap/snapcraft.yaml b/base/app/novnc/snap/snapcraft.yaml similarity index 100% rename from novnc/snap/snapcraft.yaml rename to base/app/novnc/snap/snapcraft.yaml diff --git a/novnc/tests/assertions.js b/base/app/novnc/tests/assertions.js similarity index 100% rename from novnc/tests/assertions.js rename to base/app/novnc/tests/assertions.js diff --git a/novnc/tests/fake.websocket.js b/base/app/novnc/tests/fake.websocket.js similarity index 100% rename from novnc/tests/fake.websocket.js rename to base/app/novnc/tests/fake.websocket.js diff --git a/novnc/tests/playback-ui.js b/base/app/novnc/tests/playback-ui.js similarity index 100% rename from novnc/tests/playback-ui.js rename to base/app/novnc/tests/playback-ui.js diff --git a/novnc/tests/playback.js b/base/app/novnc/tests/playback.js similarity index 100% rename from novnc/tests/playback.js rename to base/app/novnc/tests/playback.js diff --git a/novnc/tests/test.base64.js b/base/app/novnc/tests/test.base64.js similarity index 100% rename from novnc/tests/test.base64.js rename to base/app/novnc/tests/test.base64.js diff --git a/novnc/tests/test.browser.js b/base/app/novnc/tests/test.browser.js similarity index 100% rename from novnc/tests/test.browser.js rename to base/app/novnc/tests/test.browser.js diff --git a/novnc/tests/test.copyrect.js b/base/app/novnc/tests/test.copyrect.js similarity index 100% rename from novnc/tests/test.copyrect.js rename to base/app/novnc/tests/test.copyrect.js diff --git a/novnc/tests/test.deflator.js b/base/app/novnc/tests/test.deflator.js similarity index 100% rename from novnc/tests/test.deflator.js rename to base/app/novnc/tests/test.deflator.js diff --git a/novnc/tests/test.display.js b/base/app/novnc/tests/test.display.js similarity index 100% rename from novnc/tests/test.display.js rename to base/app/novnc/tests/test.display.js diff --git a/novnc/tests/test.gesturehandler.js b/base/app/novnc/tests/test.gesturehandler.js similarity index 100% rename from novnc/tests/test.gesturehandler.js rename to base/app/novnc/tests/test.gesturehandler.js diff --git a/novnc/tests/test.helper.js b/base/app/novnc/tests/test.helper.js similarity index 100% rename from novnc/tests/test.helper.js rename to base/app/novnc/tests/test.helper.js diff --git a/novnc/tests/test.hextile.js b/base/app/novnc/tests/test.hextile.js similarity index 100% rename from novnc/tests/test.hextile.js rename to base/app/novnc/tests/test.hextile.js diff --git a/novnc/tests/test.inflator.js b/base/app/novnc/tests/test.inflator.js similarity index 100% rename from novnc/tests/test.inflator.js rename to base/app/novnc/tests/test.inflator.js diff --git a/novnc/tests/test.int.js b/base/app/novnc/tests/test.int.js similarity index 100% rename from novnc/tests/test.int.js rename to base/app/novnc/tests/test.int.js diff --git a/novnc/tests/test.jpeg.js b/base/app/novnc/tests/test.jpeg.js similarity index 100% rename from novnc/tests/test.jpeg.js rename to base/app/novnc/tests/test.jpeg.js diff --git a/novnc/tests/test.keyboard.js b/base/app/novnc/tests/test.keyboard.js similarity index 100% rename from novnc/tests/test.keyboard.js rename to base/app/novnc/tests/test.keyboard.js diff --git a/novnc/tests/test.localization.js b/base/app/novnc/tests/test.localization.js similarity index 100% rename from novnc/tests/test.localization.js rename to base/app/novnc/tests/test.localization.js diff --git a/novnc/tests/test.raw.js b/base/app/novnc/tests/test.raw.js similarity index 100% rename from novnc/tests/test.raw.js rename to base/app/novnc/tests/test.raw.js diff --git a/novnc/tests/test.rfb.js b/base/app/novnc/tests/test.rfb.js similarity index 100% rename from novnc/tests/test.rfb.js rename to base/app/novnc/tests/test.rfb.js diff --git a/novnc/tests/test.rre.js b/base/app/novnc/tests/test.rre.js similarity index 100% rename from novnc/tests/test.rre.js rename to base/app/novnc/tests/test.rre.js diff --git a/novnc/tests/test.tight.js b/base/app/novnc/tests/test.tight.js similarity index 100% rename from novnc/tests/test.tight.js rename to base/app/novnc/tests/test.tight.js diff --git a/novnc/tests/test.tightpng.js b/base/app/novnc/tests/test.tightpng.js similarity index 100% rename from novnc/tests/test.tightpng.js rename to base/app/novnc/tests/test.tightpng.js diff --git a/novnc/tests/test.util.js b/base/app/novnc/tests/test.util.js similarity index 100% rename from novnc/tests/test.util.js rename to base/app/novnc/tests/test.util.js diff --git a/novnc/tests/test.websock.js b/base/app/novnc/tests/test.websock.js similarity index 100% rename from novnc/tests/test.websock.js rename to base/app/novnc/tests/test.websock.js diff --git a/novnc/tests/test.webutil.js b/base/app/novnc/tests/test.webutil.js similarity index 100% rename from novnc/tests/test.webutil.js rename to base/app/novnc/tests/test.webutil.js diff --git a/novnc/tests/test.zrle.js b/base/app/novnc/tests/test.zrle.js similarity index 100% rename from novnc/tests/test.zrle.js rename to base/app/novnc/tests/test.zrle.js diff --git a/novnc/tests/vnc_playback.html b/base/app/novnc/tests/vnc_playback.html similarity index 100% rename from novnc/tests/vnc_playback.html rename to base/app/novnc/tests/vnc_playback.html diff --git a/novnc/utils/README.md b/base/app/novnc/utils/README.md similarity index 100% rename from novnc/utils/README.md rename to base/app/novnc/utils/README.md diff --git a/novnc/utils/b64-to-binary.pl b/base/app/novnc/utils/b64-to-binary.pl similarity index 100% rename from novnc/utils/b64-to-binary.pl rename to base/app/novnc/utils/b64-to-binary.pl diff --git a/novnc/utils/convert.js b/base/app/novnc/utils/convert.js similarity index 100% rename from novnc/utils/convert.js rename to base/app/novnc/utils/convert.js diff --git a/novnc/utils/genkeysymdef.js b/base/app/novnc/utils/genkeysymdef.js similarity index 100% rename from novnc/utils/genkeysymdef.js rename to base/app/novnc/utils/genkeysymdef.js diff --git a/novnc/utils/novnc_proxy b/base/app/novnc/utils/novnc_proxy similarity index 100% rename from novnc/utils/novnc_proxy rename to base/app/novnc/utils/novnc_proxy diff --git a/novnc/utils/u2x11 b/base/app/novnc/utils/u2x11 similarity index 100% rename from novnc/utils/u2x11 rename to base/app/novnc/utils/u2x11 diff --git a/novnc/utils/validate b/base/app/novnc/utils/validate similarity index 100% rename from novnc/utils/validate rename to base/app/novnc/utils/validate diff --git a/novnc/vendor/pako/LICENSE b/base/app/novnc/vendor/pako/LICENSE similarity index 100% rename from novnc/vendor/pako/LICENSE rename to base/app/novnc/vendor/pako/LICENSE diff --git a/novnc/vendor/pako/README.md b/base/app/novnc/vendor/pako/README.md similarity index 100% rename from novnc/vendor/pako/README.md rename to base/app/novnc/vendor/pako/README.md diff --git a/novnc/vendor/pako/lib/utils/common.js b/base/app/novnc/vendor/pako/lib/utils/common.js similarity index 100% rename from novnc/vendor/pako/lib/utils/common.js rename to base/app/novnc/vendor/pako/lib/utils/common.js diff --git a/novnc/vendor/pako/lib/zlib/adler32.js b/base/app/novnc/vendor/pako/lib/zlib/adler32.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/adler32.js rename to base/app/novnc/vendor/pako/lib/zlib/adler32.js diff --git a/novnc/vendor/pako/lib/zlib/constants.js b/base/app/novnc/vendor/pako/lib/zlib/constants.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/constants.js rename to base/app/novnc/vendor/pako/lib/zlib/constants.js diff --git a/novnc/vendor/pako/lib/zlib/crc32.js b/base/app/novnc/vendor/pako/lib/zlib/crc32.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/crc32.js rename to base/app/novnc/vendor/pako/lib/zlib/crc32.js diff --git a/novnc/vendor/pako/lib/zlib/deflate.js b/base/app/novnc/vendor/pako/lib/zlib/deflate.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/deflate.js rename to base/app/novnc/vendor/pako/lib/zlib/deflate.js diff --git a/novnc/vendor/pako/lib/zlib/gzheader.js b/base/app/novnc/vendor/pako/lib/zlib/gzheader.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/gzheader.js rename to base/app/novnc/vendor/pako/lib/zlib/gzheader.js diff --git a/novnc/vendor/pako/lib/zlib/inffast.js b/base/app/novnc/vendor/pako/lib/zlib/inffast.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/inffast.js rename to base/app/novnc/vendor/pako/lib/zlib/inffast.js diff --git a/novnc/vendor/pako/lib/zlib/inflate.js b/base/app/novnc/vendor/pako/lib/zlib/inflate.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/inflate.js rename to base/app/novnc/vendor/pako/lib/zlib/inflate.js diff --git a/novnc/vendor/pako/lib/zlib/inftrees.js b/base/app/novnc/vendor/pako/lib/zlib/inftrees.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/inftrees.js rename to base/app/novnc/vendor/pako/lib/zlib/inftrees.js diff --git a/novnc/vendor/pako/lib/zlib/messages.js b/base/app/novnc/vendor/pako/lib/zlib/messages.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/messages.js rename to base/app/novnc/vendor/pako/lib/zlib/messages.js diff --git a/novnc/vendor/pako/lib/zlib/trees.js b/base/app/novnc/vendor/pako/lib/zlib/trees.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/trees.js rename to base/app/novnc/vendor/pako/lib/zlib/trees.js diff --git a/novnc/vendor/pako/lib/zlib/zstream.js b/base/app/novnc/vendor/pako/lib/zlib/zstream.js similarity index 100% rename from novnc/vendor/pako/lib/zlib/zstream.js rename to base/app/novnc/vendor/pako/lib/zlib/zstream.js diff --git a/novnc/vnc.html b/base/app/novnc/vnc.html similarity index 100% rename from novnc/vnc.html rename to base/app/novnc/vnc.html diff --git a/novnc/vnc_lite.html b/base/app/novnc/vnc_lite.html similarity index 100% rename from novnc/vnc_lite.html rename to base/app/novnc/vnc_lite.html diff --git a/base/up b/base/up new file mode 100755 index 0000000..a8bafb5 --- /dev/null +++ b/base/up @@ -0,0 +1,11 @@ +## Docker build +# eg, ARCHPKG=openssh +# eg, BUILDTAG=base + +## Fetch latest mirrorlist +curl --fail --silent https://myvelabs.com/lab/archlinux/raw/branch/master/mirrorlist -o mirrorlist + +DOCKER_BUILDKIT=1 docker build ./. \ + --build-arg pkg=${ARCHPKG:-""} \ + --tag myvnc/${BUILDTAG:-base} \ + && rm -f Dockerfile *.sh mirrorlist diff --git a/firefox.sh b/firefox/firefox.sh similarity index 100% rename from firefox.sh rename to firefox/firefox.sh diff --git a/base:i3.sh b/i3/i3.sh similarity index 100% rename from base:i3.sh rename to i3/i3.sh diff --git a/webtop:plasma.sh b/plasma/webtop:plasma.sh similarity index 100% rename from webtop:plasma.sh rename to plasma/webtop:plasma.sh diff --git a/remmina.sh b/remmina.sh deleted file mode 100644 index 1e7101a..0000000 --- a/remmina.sh +++ /dev/null @@ -1,54 +0,0 @@ -## Dockerfile -cat >Dockerfile <<- 'Dockerfile' -# syntax = docker/dockerfile:1.2 -FROM myvnc/base:i3 -USER root - -# Choose a terminal -ENV TERMINAL=terminator - -# install packages -RUN --mount=type=cache,sharing=locked,target=/var/cache/pacman \ - pacman -Syu --ask 4 --needed \ - remmina libvncserver \ - ${TERMINAL} \ - openssh \ - && pacman -Scc --ask 4 - -# Tigervnc -COPY 20-remmina.sh /app/init.d/ -RUN chmod +x /app/init.d/* - -# Reset user home directory -USER user -WORKDIR /home/user -Dockerfile - -## Remmina setup -cat >20-remmina.sh <<- '20-remmina.sh' -#!/usr/bin/env bash -# Remmina config -cat >~/.config/i3/config.d/remmina.conf <<- 'remmina.conf' -# Open terminal -exec --no-startup-id i3-msg 'workspace "2"; exec /usr/bin/${TERMINAL}' - -# Maximize -for_window [class="remmina"] move container to workspace "1" -for_window [class="${TERMINAL}"] move container to workspace "2" -remmina.conf - -# Remmina startup -install /dev/stdin ~/.config/i3/startapp.sh <<- startapp.sh -#!/usr/bin/env bash -# Run remmina -while true -do - /usr/bin/remmina -done -startapp.sh -20-remmina.sh - -## Docker build -DOCKER_BUILDKIT=1 docker build ./. \ - --tag myvnc/remmina \ - && rm -f Dockerfile *.sh \ No newline at end of file