feat: Add multi-version compose structure with organized data folders

- Add compose/ folder with modular compose files for all Windows versions
- Organize by category: desktop, legacy, server, tiny
- Create data/ subfolders for each version's storage
- Update .gitignore to track folder structure via .gitkeep files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Michel Abboud 2026-01-28 22:37:10 +00:00
parent acdeb62db2
commit c1d3f8e886
46 changed files with 366 additions and 10 deletions

6
.gitignore vendored
View File

@ -1 +1,5 @@
# Ignore data folder contents but keep structure
data/*
!data/*/
data/*/**
!data/*/.gitkeep

View File

@ -1,19 +1,25 @@
# Default compose file - Windows 11 Pro
# For more versions, see compose/ folder
x-common: &common
image: dockurr/windows
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
restart: unless-stopped
stop_grace_period: 2m
services:
windows:
image: dockurr/windows
<<: *common
container_name: windows
environment:
VERSION: "11"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
- ./data/win11:/storage

5
compose/all.yml Normal file
View File

@ -0,0 +1,5 @@
include:
- desktop.yml
- legacy.yml
- server.yml
- tiny.yml

9
compose/base.yml Normal file
View File

@ -0,0 +1,9 @@
x-common: &common
image: dockurr/windows
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
restart: unless-stopped
stop_grace_period: 2m

5
compose/desktop.yml Normal file
View File

@ -0,0 +1,5 @@
include:
- desktop/win11.yml
- desktop/win10.yml
- desktop/win8.yml
- desktop/win7.yml

39
compose/desktop/win10.yml Normal file
View File

@ -0,0 +1,39 @@
include:
- ../base.yml
services:
win10:
<<: *common
container_name: win10
environment:
VERSION: "10"
ports:
- 8010:8006
- 3310:3389/tcp
- 3310:3389/udp
volumes:
- ../../data/win10:/storage
win10e:
<<: *common
container_name: win10e
environment:
VERSION: "10e"
ports:
- 8014:8006
- 3314:3389/tcp
- 3314:3389/udp
volumes:
- ../../data/win10e:/storage
win10l:
<<: *common
container_name: win10l
environment:
VERSION: "10l"
ports:
- 8015:8006
- 3315:3389/tcp
- 3315:3389/udp
volumes:
- ../../data/win10l:/storage

39
compose/desktop/win11.yml Normal file
View File

@ -0,0 +1,39 @@
include:
- ../base.yml
services:
win11:
<<: *common
container_name: win11
environment:
VERSION: "11"
ports:
- 8011:8006
- 3311:3389/tcp
- 3311:3389/udp
volumes:
- ../../data/win11:/storage
win11e:
<<: *common
container_name: win11e
environment:
VERSION: "11e"
ports:
- 8012:8006
- 3312:3389/tcp
- 3312:3389/udp
volumes:
- ../../data/win11e:/storage
win11l:
<<: *common
container_name: win11l
environment:
VERSION: "11l"
ports:
- 8013:8006
- 3313:3389/tcp
- 3313:3389/udp
volumes:
- ../../data/win11l:/storage

27
compose/desktop/win7.yml Normal file
View File

@ -0,0 +1,27 @@
include:
- ../base.yml
services:
win7:
<<: *common
container_name: win7
environment:
VERSION: "7u"
ports:
- 8007:8006
- 3307:3389/tcp
- 3307:3389/udp
volumes:
- ../../data/win7:/storage
win7e:
<<: *common
container_name: win7e
environment:
VERSION: "7e"
ports:
- 8071:8006
- 3371:3389/tcp
- 3371:3389/udp
volumes:
- ../../data/win7e:/storage

27
compose/desktop/win8.yml Normal file
View File

@ -0,0 +1,27 @@
include:
- ../base.yml
services:
win81:
<<: *common
container_name: win81
environment:
VERSION: "8"
ports:
- 8008:8006
- 3308:3389/tcp
- 3308:3389/udp
volumes:
- ../../data/win81:/storage
win81e:
<<: *common
container_name: win81e
environment:
VERSION: "8e"
ports:
- 8081:8006
- 3381:3389/tcp
- 3381:3389/udp
volumes:
- ../../data/win81e:/storage

4
compose/legacy.yml Normal file
View File

@ -0,0 +1,4 @@
include:
- legacy/vista.yml
- legacy/winxp.yml
- legacy/win2k.yml

15
compose/legacy/vista.yml Normal file
View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
vista:
<<: *common
container_name: vista
environment:
VERSION: "vu"
ports:
- 8006:8006
- 3306:3389/tcp
- 3306:3389/udp
volumes:
- ../../data/vista:/storage

15
compose/legacy/win2k.yml Normal file
View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2k:
<<: *common
container_name: win2k
environment:
VERSION: "2k"
ports:
- 8000:8006
- 3300:3389/tcp
- 3300:3389/udp
volumes:
- ../../data/win2k:/storage

15
compose/legacy/winxp.yml Normal file
View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
winxp:
<<: *common
container_name: winxp
environment:
VERSION: "xp"
ports:
- 8005:8006
- 3305:3389/tcp
- 3305:3389/udp
volumes:
- ../../data/winxp:/storage

8
compose/server.yml Normal file
View File

@ -0,0 +1,8 @@
include:
- server/win2025.yml
- server/win2022.yml
- server/win2019.yml
- server/win2016.yml
- server/win2012.yml
- server/win2008.yml
- server/win2003.yml

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2003:
<<: *common
container_name: win2003
environment:
VERSION: "2003"
ports:
- 8003:8006
- 3303:3389/tcp
- 3303:3389/udp
volumes:
- ../../data/win2003:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2008:
<<: *common
container_name: win2008
environment:
VERSION: "2008"
ports:
- 8108:8006
- 3208:3389/tcp
- 3208:3389/udp
volumes:
- ../../data/win2008:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2012:
<<: *common
container_name: win2012
environment:
VERSION: "2012"
ports:
- 8112:8006
- 3212:3389/tcp
- 3212:3389/udp
volumes:
- ../../data/win2012:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2016:
<<: *common
container_name: win2016
environment:
VERSION: "2016"
ports:
- 8016:8006
- 3316:3389/tcp
- 3316:3389/udp
volumes:
- ../../data/win2016:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2019:
<<: *common
container_name: win2019
environment:
VERSION: "2019"
ports:
- 8019:8006
- 3319:3389/tcp
- 3319:3389/udp
volumes:
- ../../data/win2019:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2022:
<<: *common
container_name: win2022
environment:
VERSION: "2022"
ports:
- 8022:8006
- 3322:3389/tcp
- 3322:3389/udp
volumes:
- ../../data/win2022:/storage

View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
win2025:
<<: *common
container_name: win2025
environment:
VERSION: "2025"
ports:
- 8025:8006
- 3325:3389/tcp
- 3325:3389/udp
volumes:
- ../../data/win2025:/storage

3
compose/tiny.yml Normal file
View File

@ -0,0 +1,3 @@
include:
- tiny/tiny11.yml
- tiny/tiny10.yml

15
compose/tiny/tiny10.yml Normal file
View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
tiny10:
<<: *common
container_name: tiny10
environment:
VERSION: "tiny10"
ports:
- 8110:8006
- 3110:3389/tcp
- 3110:3389/udp
volumes:
- ../../data/tiny10:/storage

15
compose/tiny/tiny11.yml Normal file
View File

@ -0,0 +1,15 @@
include:
- ../base.yml
services:
tiny11:
<<: *common
container_name: tiny11
environment:
VERSION: "tiny11"
ports:
- 8111:8006
- 3111:3389/tcp
- 3111:3389/udp
volumes:
- ../../data/tiny11:/storage

0
data/tiny10/.gitkeep Normal file
View File

0
data/tiny11/.gitkeep Normal file
View File

0
data/vista/.gitkeep Normal file
View File

0
data/win10/.gitkeep Normal file
View File

0
data/win10e/.gitkeep Normal file
View File

0
data/win10l/.gitkeep Normal file
View File

0
data/win11/.gitkeep Normal file
View File

0
data/win11e/.gitkeep Normal file
View File

0
data/win11l/.gitkeep Normal file
View File

0
data/win2003/.gitkeep Normal file
View File

0
data/win2008/.gitkeep Normal file
View File

0
data/win2012/.gitkeep Normal file
View File

0
data/win2016/.gitkeep Normal file
View File

0
data/win2019/.gitkeep Normal file
View File

0
data/win2022/.gitkeep Normal file
View File

0
data/win2025/.gitkeep Normal file
View File

0
data/win2k/.gitkeep Normal file
View File

0
data/win7/.gitkeep Normal file
View File

0
data/win7e/.gitkeep Normal file
View File

0
data/win81/.gitkeep Normal file
View File

0
data/win81e/.gitkeep Normal file
View File

0
data/winxp/.gitkeep Normal file
View File