Compare commits

..

16 Commits
v2.03 ... v2.06

Author SHA1 Message Date
Kroese
59b98fe211 fix: Disable kernel networking in bridge mode (#257) 2024-03-12 00:46:51 +01:00
Kroese
787f815527 fix: Disable Samba if networking is disabled (#254) 2024-03-11 14:14:45 +01:00
Kroese
77358f0632 feat: Add option to disable Samba (#253) 2024-03-11 13:30:07 +01:00
Asaf Hadad
68457e56d6 Fix typo (#210) 2024-03-01 16:38:40 +01:00
Kroese
f50b5d1564 build: Update VirtIO drivers to v0.1.248 (#205) 2024-02-29 13:36:41 +01:00
Kroese
bd3245595f Merge pull request #196 from dockur/renovate/qemux-qemu-docker-4.x
chore(deps): update qemux/qemu-docker docker tag to v4.15
2024-02-29 13:33:54 +01:00
Kroese
7e4afc3c43 Merge pull request #199 from eltociear/patch-1
chore: Update mido.sh
2024-02-28 16:48:31 +01:00
Ikko Eltociear Ashimine
0fa4217d1b chore: Update mido.sh
Microsft -> Microsoft
2024-02-29 00:44:54 +09:00
renovate[bot]
05896606cd chore(deps): update qemux/qemu-docker docker tag to v4.15 2024-02-28 07:53:26 +00:00
Kroese
aed184eb54 docs: Docker run command (#195) 2024-02-28 08:53:10 +01:00
Kroese
cbe7d6e565 docs: Disclaimer (#194) 2024-02-28 06:59:45 +01:00
Kroese
8544ce03b2 fix: Windows XP location (#193) 2024-02-28 06:41:21 +01:00
Kroese
515b6f51a4 docs: Readme (#186) 2024-02-22 15:16:02 +01:00
Kroese
f49a336efa docs: Readme (#180) 2024-02-19 13:40:44 +01:00
Kroese
537c8e8247 docs: Remote desktop (#177) 2024-02-16 16:57:06 +01:00
Kroese
0f2717fec4 fix: Prevent re-entry during shutdown (#176) 2024-02-16 16:00:21 +01:00
8 changed files with 40 additions and 12 deletions

View File

@@ -92,6 +92,13 @@ jobs:
uses: action-pack/bump@v2
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
-
name: Push to Gitlab mirror
uses: action-pack/gitlab-sync@v3
with:
url: ${{ secrets.GITLAB_URL }}
token: ${{ secrets.GITLAB_TOKEN }}
username: ${{ secrets.GITLAB_USERNAME }}
-
name: Send mail
uses: action-pack/send-mail@v1

View File

@@ -1,7 +1,7 @@
FROM scratch
COPY --from=qemux/qemu-docker:4.14 / /
COPY --from=qemux/qemu-docker:4.17 / /
ARG DEBCONF_NOWARNINGS="yes"
ARG DEBCONF_NOWARNINGS "yes"
ARG DEBIAN_FRONTEND "noninteractive"
ARG DEBCONF_NONINTERACTIVE_SEEN "true"
@@ -23,7 +23,7 @@ COPY ./src /run/
COPY ./assets /run/assets
ADD https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py /usr/sbin/wsdd
ADD https://github.com/qemus/virtiso/releases/download/v0.1.240/virtio-win-0.1.240.iso /run/drivers.iso
ADD https://github.com/qemus/virtiso/releases/download/v0.1.248/virtio-win-0.1.248.iso /run/drivers.iso
RUN chmod +x /run/*.sh && chmod +x /usr/sbin/wsdd

View File

@@ -11,7 +11,7 @@
</div></h1>
Windows in a docker container.
Windows in a Docker container.
## Features
@@ -44,7 +44,7 @@ services:
Via `docker run`
```bash
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
```
## FAQ
@@ -94,6 +94,14 @@ docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
To install ARM64 versions of Windows use [dockur/windows-arm](https://github.com/dockur/windows-arm/).
* ### How do I connect using RDP?
The web-viewer is mainly meant to be used during installation, as its picture quality is low, and it has no audio or clipboard for example.
So for a better experience you can connect using any Microsoft Remote Desktop client to the IP of the container, using the username `docker` and by leaving the password empty.
There is a good RDP client for [Android](https://play.google.com/store/apps/details?id=com.microsoft.rdc.androidx) available from the Play Store. One for [iOS](https://apps.apple.com/nl/app/microsoft-remote-desktop/id714464092?l=en-GB) is in the Apple Store. For Linux you can use [rdesktop](http://www.rdesktop.org/) and for Windows you don't need to install anything as it is already ships as part of the operating system.
* ### How do I increase the amount of CPU or RAM?
By default, 2 CPU cores and 4 GB of RAM are allocated to the container, as those are the minimum requirements of Windows 11.
@@ -136,7 +144,7 @@ docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
* ### How do I install a custom image?
In order to download a custom ISO image, start a clean container with the URL specified in the `VERSION` environment variable:
In order to download a custom ISO image, start a clean container with the URL of the ISO specified in the `VERSION` environment variable:
```yaml
environment:
@@ -219,6 +227,8 @@ docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
```yaml
environment:
DHCP: "Y"
devices:
- /dev/vhost-net
device_cgroup_rules:
- 'c *:* rwm'
```
@@ -264,7 +274,7 @@ docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-ti
* ### Is this project legal?
Yes, this project contains only open-source code and does not distribute any copyrighted material. Neither does it try to circumvent any copyright protection measures. So under all applicable laws, this project would be considered legal.
Yes, this project contains only open-source code and does not distribute any copyrighted material. Any product keys found in the code are just generic placeholders provided by Microsoft for trial purposes. So under all applicable laws, this project would be considered legal.
## Stars
[![Stars](https://starchart.cc/dockur/windows.svg?variant=adaptive)](https://starchart.cc/dockur/windows)

View File

@@ -23,6 +23,10 @@ trap - ERR
info "Booting $APP using $VERS..."
[[ "$DEBUG" == [Yy1]* ]] && echo "Arguments: $ARGS" && echo
if [[ "$CONSOLE" == [Yy]* ]]; then
exec qemu-system-x86_64 ${ARGS:+ $ARGS}
fi
{ qemu-system-x86_64 ${ARGS:+ $ARGS} >"$QEMU_OUT" 2>"$QEMU_LOG"; rc=$?; } || :
(( rc != 0 )) && error "$(<"$QEMU_LOG")" && exit 15
@@ -31,4 +35,5 @@ tail -fn +0 "$QEMU_LOG" 2>/dev/null &
cat "$QEMU_TERM" 2> /dev/null | tee "$QEMU_PTY" &
wait $! || :
sleep 1 && finish 0
sleep 1 & wait $!
finish 0

View File

@@ -72,7 +72,7 @@ fi
if [[ "${VERSION,,}" == "winxpx86" ]]; then
DETECTED="winxpx86"
VERSION="https://dl.bobpony.com/windows/xp/professional/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso"
VERSION="https://dl.bobpony.com/windows/xp/professional/en_windows_xp_professional_with_service_pack_3_x86_cd_x14-80428.iso"
fi
if [[ "${VERSION,,}" == "core11" ]]; then
@@ -763,8 +763,8 @@ prepareXP() {
sed -i '/^\[SCSI\]/s/$/\niaStor=\"Intel\(R\) SATA RAID\/AHCI Controller\"/' "$target/TXTSETUP.SIF"
sed -i '/^\[HardwareIdsDatabase\]/s/$/\nPCI\\VEN_8086\&DEV_2922\&CC_0106=\"iaStor\"/' "$target/TXTSETUP.SIF"
local key="M6TF9-8XQ2M-YQK9F-7TBB2-XGG88"
[[ "${arch,,}" == "amd64" ]] && key="B66VY-4D94T-TPPD4-43F72-8X4FY"
# Windows XP Pro generic key (no activation)
local key="DR8GV-C8V6J-BYXHG-7PYJR-DB66Y"
find "$target" -maxdepth 1 -type f -iname winnt.sif -exec rm {} \;

View File

@@ -571,7 +571,7 @@ verify_media() {
# IMPORTANT: These checksums are not necessarily subject to being updated
# Unfortunately, the maintenance burden would be too large and even if I did there would still be some time gap between Microsoft releasing a new ISO and me updating the checksum (also, users would have to update this script)
# For these reasons, I've opted for a slightly more manual verification where you have to look up the checksum to see if it's a well-known Windows ISO checksum
# Ultimately, you have to trust Microsft because they could still include a backdoor in the verified ISO (keeping Windows air gapped could help with this)
# Ultimately, you have to trust Microsoft because they could still include a backdoor in the verified ISO (keeping Windows air gapped could help with this)
# Community contributions for these checksums are welcome
#
# Leading backslash is to avoid prepending a newline while maintaining alignment

View File

@@ -50,6 +50,8 @@ finish() {
local pid
local reason=$1
touch "$QEMU_END"
if [ -f "$QEMU_PID" ]; then
pid=$(<"$QEMU_PID")

View File

@@ -1,7 +1,11 @@
#!/usr/bin/env bash
set -Eeuo pipefail
: "${SAMBA:="Y"}"
[[ "$DHCP" == [Yy1]* ]] && return 0
[[ "$SAMBA" != [Yy1]* ]] && return 0
[[ "$NETWORK" != [Yy1]* ]] && return 0
SHARE="$STORAGE/shared"