Loading readme.md +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ docker run -it --rm -e "BOOT=http://example.com/image.iso" -p 8006:8006 --device - Set the `BOOT` environment variable to the URL of an ISO image you want to install. - Start the container and connect to port 8006 in your web browser. - Start the container and connect to [port 8006](http://localhost:8006) in your web browser. - You will see the screen and can control it via the keyboard and mouse. Loading src/config.sh +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ ARGS="$DEF_OPTS $CPU_OPTS $RAM_OPTS $MAC_OPTS $DISPLAY_OPTS $MON_OPTS $SERIAL_OP ARGS=$(echo "$ARGS" | sed 's/\t/ /g' | tr -s ' ') if [[ "${DISPLAY,,}" == "web" ]]; then rm -f /dev/shm/msg.html rm -f /dev/shm/index.html else if [[ "${DISPLAY,,}" == "vnc" ]]; then Loading src/reset.sh +4 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ echo # Helper variables STORAGE="/storage" INFO="/dev/shm/msg.html" PAGE="/dev/shm/index.html" TEMPLATE="/var/www/index.html" FOOTER1="$APP for Docker v$(</run/version)" Loading Loading @@ -56,6 +57,7 @@ html() { local title local body local script local footer title=$(escape "$APP") Loading @@ -67,10 +69,7 @@ html() body="<p class=\"loading\">${body/.../}</p>" fi local timeout="4999" [ -n "${2:-}" ] && timeout="$2" local script="<script>setTimeout(() => { document.location.reload(); }, $timeout);</script>" [[ "$timeout" == "0" ]] && script="" [ -n "${2:-}" ] && script="$2" || script="" local HTML HTML=$(<"$TEMPLATE") Loading @@ -81,6 +80,7 @@ html() HTML="${HTML/\[5\]/$FOOTER2}" echo "$HTML" > "$PAGE" echo "$body$script" > "$INFO" return 0 } Loading web/style.css→web/css/style.css +154 −0 Original line number Diff line number Diff line Loading @@ -4,21 +4,22 @@ body { font-family: Verdana, Arial, sans-serif; } #content-wrap { #content { text-align: center; padding: 20px; margin-top: 100px; margin-top: 50px; } #footer { footer { width: 98%; position: fixed; bottom: 0px; height: 40px; text-align: center; color: #0c8aeb; } #empty-space { #empty { height: 40px; /* Same height as footer */ } Loading @@ -30,6 +31,11 @@ a:visited { color: white; } footer a:link, footer a:visited, footer a:active { color: #0c8aeb; } footer a:hover { color: #73e6ff; } .loading:after { content: " ."; animation: dots 1s steps(5, end) infinite; Loading Loading @@ -57,3 +63,92 @@ a:visited { text-shadow: 0.25em 0 0 white, 0.5em 0 0 white; } } .spinner_LWk7 { animation: spinner_GWy6 1.2s linear infinite, spinner_BNNO 1.2s linear infinite } .spinner_yOMU { animation: spinner_GWy6 1.2s linear infinite, spinner_pVqn 1.2s linear infinite; animation-delay: .15s } .spinner_KS4S { animation: spinner_GWy6 1.2s linear infinite, spinner_6uKB 1.2s linear infinite; animation-delay: .3s } .spinner_zVee { animation: spinner_GWy6 1.2s linear infinite, spinner_Qw4x 1.2s linear infinite; animation-delay: .45s } @keyframes spinner_GWy6 { 0%, 50% { width: 9px; height: 9px } 10% { width: 11px; height: 11px } } @keyframes spinner_BNNO { 0%, 50% { x: 1.5px; y: 1.5px } 10% { x: .5px; y: .5px } } @keyframes spinner_pVqn { 0%, 50% { x: 13.5px; y: 1.5px } 10% { x: 12.5px; y: .5px } } @keyframes spinner_6uKB { 0%, 50% { x: 13.5px; y: 13.5px } 10% { x: 12.5px; y: 12.5px } } @keyframes spinner_Qw4x { 0%, 50% { x: 1.5px; y: 13.5px } 10% { x: .5px; y: 12.5px } } web/img/favicon.svg 0 → 100644 +1 −0 Original line number Diff line number Diff line <svg id="Capa_1" enable-background="new 0 0 511.962 511.962" height="512" viewBox="0 0 511.962 511.962" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m489.965 120.063c0-5.77-3.31-11.028-8.512-13.524l-218.984-105.063c-4.102-1.967-8.875-1.967-12.977 0l-218.985 105.063c-5.202 2.496-8.511 7.755-8.511 13.524l-.003 271.834c0 5.77 3.31 11.028 8.512 13.524l218.989 105.064c2.051.983 4.27 1.476 6.488 1.476 2.219 0 4.438-.492 6.488-1.476l218.989-105.064c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#4e6ba6"/><path d="m489.965 120.063c0-5.77-3.31-11.028-8.512-13.524l-218.984-105.063c-2.051-.984-4.269-1.476-6.488-1.476v511.962c2.219 0 4.438-.492 6.488-1.476l218.989-105.064c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#28487a"/><path d="m425.812 160.441c0-2.27-.519-4.457-1.457-6.432l-336.701-.095c-.967 1.999-1.504 4.22-1.504 6.526l-.002 191.081c0 5.769 3.31 11.028 8.512 13.524l154.833 74.285c2.051.983 4.27 1.476 6.488 1.476 2.219 0 4.438-.492 6.488-1.476l154.834-74.285c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#8dc2eb"/><path d="m424.354 154.009h-168.373v286.798c2.219 0 4.438-.492 6.488-1.476l154.834-74.285c5.202-2.496 8.512-7.755 8.512-13.524l-.003-191.081c0-2.27-.52-4.458-1.458-6.432z" fill="#5e9ff6"/><path d="m417.3 146.916-154.831-74.284c-4.102-1.967-8.875-1.967-12.977 0l-154.831 74.284c-3.122 1.498-5.555 3.996-7.007 6.998l168.328 80.812 168.374-80.717c-1.448-3.044-3.9-5.579-7.056-7.093z" fill="#ecf9fd"/><path d="m417.3 146.916-154.831-74.284c-2.051-.983-4.27-1.476-6.488-1.476v163.569l168.374-80.717c-1.447-3.043-3.899-5.578-7.055-7.092z" fill="#d9f3fc"/></g></svg> No newline at end of file Loading
readme.md +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ docker run -it --rm -e "BOOT=http://example.com/image.iso" -p 8006:8006 --device - Set the `BOOT` environment variable to the URL of an ISO image you want to install. - Start the container and connect to port 8006 in your web browser. - Start the container and connect to [port 8006](http://localhost:8006) in your web browser. - You will see the screen and can control it via the keyboard and mouse. Loading
src/config.sh +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ ARGS="$DEF_OPTS $CPU_OPTS $RAM_OPTS $MAC_OPTS $DISPLAY_OPTS $MON_OPTS $SERIAL_OP ARGS=$(echo "$ARGS" | sed 's/\t/ /g' | tr -s ' ') if [[ "${DISPLAY,,}" == "web" ]]; then rm -f /dev/shm/msg.html rm -f /dev/shm/index.html else if [[ "${DISPLAY,,}" == "vnc" ]]; then Loading
src/reset.sh +4 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ echo # Helper variables STORAGE="/storage" INFO="/dev/shm/msg.html" PAGE="/dev/shm/index.html" TEMPLATE="/var/www/index.html" FOOTER1="$APP for Docker v$(</run/version)" Loading Loading @@ -56,6 +57,7 @@ html() { local title local body local script local footer title=$(escape "$APP") Loading @@ -67,10 +69,7 @@ html() body="<p class=\"loading\">${body/.../}</p>" fi local timeout="4999" [ -n "${2:-}" ] && timeout="$2" local script="<script>setTimeout(() => { document.location.reload(); }, $timeout);</script>" [[ "$timeout" == "0" ]] && script="" [ -n "${2:-}" ] && script="$2" || script="" local HTML HTML=$(<"$TEMPLATE") Loading @@ -81,6 +80,7 @@ html() HTML="${HTML/\[5\]/$FOOTER2}" echo "$HTML" > "$PAGE" echo "$body$script" > "$INFO" return 0 } Loading
web/style.css→web/css/style.css +154 −0 Original line number Diff line number Diff line Loading @@ -4,21 +4,22 @@ body { font-family: Verdana, Arial, sans-serif; } #content-wrap { #content { text-align: center; padding: 20px; margin-top: 100px; margin-top: 50px; } #footer { footer { width: 98%; position: fixed; bottom: 0px; height: 40px; text-align: center; color: #0c8aeb; } #empty-space { #empty { height: 40px; /* Same height as footer */ } Loading @@ -30,6 +31,11 @@ a:visited { color: white; } footer a:link, footer a:visited, footer a:active { color: #0c8aeb; } footer a:hover { color: #73e6ff; } .loading:after { content: " ."; animation: dots 1s steps(5, end) infinite; Loading Loading @@ -57,3 +63,92 @@ a:visited { text-shadow: 0.25em 0 0 white, 0.5em 0 0 white; } } .spinner_LWk7 { animation: spinner_GWy6 1.2s linear infinite, spinner_BNNO 1.2s linear infinite } .spinner_yOMU { animation: spinner_GWy6 1.2s linear infinite, spinner_pVqn 1.2s linear infinite; animation-delay: .15s } .spinner_KS4S { animation: spinner_GWy6 1.2s linear infinite, spinner_6uKB 1.2s linear infinite; animation-delay: .3s } .spinner_zVee { animation: spinner_GWy6 1.2s linear infinite, spinner_Qw4x 1.2s linear infinite; animation-delay: .45s } @keyframes spinner_GWy6 { 0%, 50% { width: 9px; height: 9px } 10% { width: 11px; height: 11px } } @keyframes spinner_BNNO { 0%, 50% { x: 1.5px; y: 1.5px } 10% { x: .5px; y: .5px } } @keyframes spinner_pVqn { 0%, 50% { x: 13.5px; y: 1.5px } 10% { x: 12.5px; y: .5px } } @keyframes spinner_6uKB { 0%, 50% { x: 13.5px; y: 13.5px } 10% { x: 12.5px; y: 12.5px } } @keyframes spinner_Qw4x { 0%, 50% { x: 1.5px; y: 13.5px } 10% { x: .5px; y: 12.5px } }
web/img/favicon.svg 0 → 100644 +1 −0 Original line number Diff line number Diff line <svg id="Capa_1" enable-background="new 0 0 511.962 511.962" height="512" viewBox="0 0 511.962 511.962" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m489.965 120.063c0-5.77-3.31-11.028-8.512-13.524l-218.984-105.063c-4.102-1.967-8.875-1.967-12.977 0l-218.985 105.063c-5.202 2.496-8.511 7.755-8.511 13.524l-.003 271.834c0 5.77 3.31 11.028 8.512 13.524l218.989 105.064c2.051.983 4.27 1.476 6.488 1.476 2.219 0 4.438-.492 6.488-1.476l218.989-105.064c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#4e6ba6"/><path d="m489.965 120.063c0-5.77-3.31-11.028-8.512-13.524l-218.984-105.063c-2.051-.984-4.269-1.476-6.488-1.476v511.962c2.219 0 4.438-.492 6.488-1.476l218.989-105.064c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#28487a"/><path d="m425.812 160.441c0-2.27-.519-4.457-1.457-6.432l-336.701-.095c-.967 1.999-1.504 4.22-1.504 6.526l-.002 191.081c0 5.769 3.31 11.028 8.512 13.524l154.833 74.285c2.051.983 4.27 1.476 6.488 1.476 2.219 0 4.438-.492 6.488-1.476l154.834-74.285c5.202-2.496 8.512-7.755 8.512-13.524z" fill="#8dc2eb"/><path d="m424.354 154.009h-168.373v286.798c2.219 0 4.438-.492 6.488-1.476l154.834-74.285c5.202-2.496 8.512-7.755 8.512-13.524l-.003-191.081c0-2.27-.52-4.458-1.458-6.432z" fill="#5e9ff6"/><path d="m417.3 146.916-154.831-74.284c-4.102-1.967-8.875-1.967-12.977 0l-154.831 74.284c-3.122 1.498-5.555 3.996-7.007 6.998l168.328 80.812 168.374-80.717c-1.448-3.044-3.9-5.579-7.056-7.093z" fill="#ecf9fd"/><path d="m417.3 146.916-154.831-74.284c-2.051-.983-4.27-1.476-6.488-1.476v163.569l168.374-80.717c-1.447-3.043-3.899-5.578-7.055-7.092z" fill="#d9f3fc"/></g></svg> No newline at end of file