From 2f5eb0d02515b857076b607d384d048ccd52225b Mon Sep 17 00:00:00 2001 From: popov Date: Tue, 18 Nov 2025 10:12:03 +0000 Subject: [PATCH 1/8] add portainer update cmds --- linux/docker install.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/linux/docker install.md b/linux/docker install.md index 966fd37..eee397b 100644 --- a/linux/docker install.md +++ b/linux/docker install.md @@ -27,6 +27,14 @@ docker pull portainer/helper-reset-password docker run --rm -v /mnt/storage/docker_volumes/portainer_data:/data portainer/helper-reset-password +# update portainer + +docker stop portainer + +docker rm portainer + +docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always --pull=always -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/data/docker_vol/portainer:/data portainer/portainer-ce + # start sudo systemctl start docker sudo systemctl enable docker From 02910fa1aaa04e74878f735d60bb51229870a6ae Mon Sep 17 00:00:00 2001 From: popov Date: Tue, 18 Nov 2025 11:46:48 +0000 Subject: [PATCH 2/8] switch portainer database instructions --- linux/docker install.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux/docker install.md b/linux/docker install.md index eee397b..cb589fa 100644 --- a/linux/docker install.md +++ b/linux/docker install.md @@ -35,6 +35,11 @@ docker rm portainer docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always --pull=always -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/data/docker_vol/portainer:/data portainer/portainer-ce +# start portainer with a database copy (/portainer-database-backup.db) +docker run --rm -v /mnt/data/docker_vol/portainer:/data -v /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/BACKUPS/20251118-133605:/backup alpine sh -c "rm /data/portainer.db && cp /backup/portainer-database-backup.db /data/portainer.db && ls -lh /data/portainer.db" + # remove backup/broken database + docker run --rm -v /mnt/data/docker_vol/portainer:/data alpine rm /data/portainer.db && echo "Old database removed" + # start sudo systemctl start docker sudo systemctl enable docker From de554968a3bc71033ea6cd7e7af5bd3133efe059 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Tue, 18 Nov 2025 15:07:47 +0200 Subject: [PATCH 3/8] NUC yml config backup --- .../BACKUPS/20251118-133605/README.md | 48 ++ .../all-containers-compose.yml | 487 ++++++++++++++++++ .../container-amd-strix-halo-llama-rocm.yml | 93 ++++ ...ner-amd-strix-halo-llama-vulkan-amdvlk.yml | 79 +++ ...ainer-amd-strix-halo-llama-vulkan-radv.yml | 79 +++ .../container-docker-model-runner.yml | 37 ++ .../20251118-133605/container-portainer.yml | 77 +++ .../container-rincoin-node2.yml | 65 +++ .../20251118-133605/container-windows.yml | 80 +++ .../portainer-automatic-backup.db.bak | Bin 0 -> 524288 bytes .../portainer-database-backup.db | Bin 0 -> 524288 bytes .../BACKUPS/BACKUP-SUMMARY.md | 88 ++++ ...ortainer-backup_2025-11-18_11-44-16.tar.gz | Bin 0 -> 77152 bytes portainer-compose-stacks/EDGE-AGENT-SETUP.md | 123 +++++ .../portainer-edge-agent.yml | 27 + 15 files changed, 1283 insertions(+) create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/README.md create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/all-containers-compose.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-rocm.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-amdvlk.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-radv.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-docker-model-runner.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-portainer.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-rincoin-node2.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/container-windows.yml create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/portainer-automatic-backup.db.bak create mode 100644 portainer-compose-stacks/BACKUPS/20251118-133605/portainer-database-backup.db create mode 100644 portainer-compose-stacks/BACKUPS/BACKUP-SUMMARY.md create mode 100644 portainer-compose-stacks/BACKUPS/portainer-backup_2025-11-18_11-44-16.tar.gz create mode 100644 portainer-compose-stacks/EDGE-AGENT-SETUP.md create mode 100644 portainer-compose-stacks/portainer-edge-agent.yml diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/README.md b/portainer-compose-stacks/BACKUPS/20251118-133605/README.md new file mode 100644 index 0000000..a26dea8 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/README.md @@ -0,0 +1,48 @@ +# Portainer Backup - November 18, 2025 + +This backup was created before resetting the Portainer database due to stale environment configurations causing the UI to show "environment unreachable" errors. + +## Contents + +### Docker Compose Files +- `all-containers-compose.yml` - Combined compose file for ALL running containers +- `container-*.yml` - Individual compose files for each container + +### Database Backups +- `portainer-database-backup.db` - Full Portainer database from before reset (512KB) +- `portainer-automatic-backup.db.bak` - Automatic backup created by Portainer during upgrade + +### Running Containers at Backup Time +1. portainer +2. windows +3. rincoin-node2 +4. amd-strix-halo-llama-rocm +5. amd-strix-halo-llama-vulkan-radv +6. amd-strix-halo-llama-vulkan-amdvlk +7. docker-model-runner + +## Restore Instructions + +### To restore Portainer database: +```bash +docker stop portainer +docker run --rm -v /mnt/data/docker_vol/portainer:/data -v $(pwd):/backup alpine \ + cp /backup/portainer-database-backup.db /data/portainer.db +docker start portainer +``` + +### To restore individual containers: +```bash +docker-compose -f container-NAME.yml up -d +``` + +### To restore all containers: +```bash +docker-compose -f all-containers-compose.yml up -d +``` + +## Notes +- The Portainer configuration export from the UI was not included (would need to be exported manually) +- These backups were generated using docker-autocompose tool +- Backup created: 2025-11-18 13:36:05 + diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/all-containers-compose.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/all-containers-compose.yml new file mode 100644 index 0000000..96426c2 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/all-containers-compose.yml @@ -0,0 +1,487 @@ +networks: + amd-strix-halo-network: + external: true + name: "amd-strix-halo-network" + rincoin_default: + external: true + name: "rincoin_default" + windows_default: + external: true + name: "windows_default" + +services: + + amd-strix-halo-llama-rocm: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-rocm" + + devices: + - "/dev/kfd:/dev/kfd" + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "NVIDIA_VISIBLE_DEVICES=all" + - "NVIDIA_DRIVER_CAPABILITIES=all" + - "PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "container=oci" + - "ROCM_PATH=/opt/rocm-7.0" + - "HIP_PLATFORM=amd" + - "HIP_PATH=/opt/rocm-7.0" + - "HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin" + - "HIP_INCLUDE_PATH=/opt/rocm-7.0/include" + - "HIP_LIB_PATH=/opt/rocm-7.0/lib" + - "HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode" + - "LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib" + - "LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64" + - "CPATH=/opt/rocm-7.0/include" + - "PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig" + + hostname: "2e51d282e4eb" + + image: "kyuz0/amd-strix-halo-toolboxes:rocm-7rc-rocwmma" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "b1864fdd57497c82872e0e6ab2dfe1e8debf08ace59f99770d77e1f6470ceec2" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:46c514ed4c8812d12463c0f02ade88a6efa5cc5589c68c5fc98d21966116bbba" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-rocm" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8080:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + + amd-strix-halo-llama-vulkan-amdvlk: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-vulkan-amdvlk" + + devices: + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "PATH=/usr/local/bin:/usr/bin" + - "container=oci" + + hostname: "c8be19c21b4e" + + image: "kyuz0/amd-strix-halo-toolboxes:vulkan-amdvlk" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "1430c92ed79d5a3fc253eda643fa9adf142075a04f23daa62a2dd75d1bc5b7fc" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:f22a85316fff63e48b37939a242ca9f9c1fe190c9b91edc58d78d2ce8f6b9307" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-vulkan-amdvlk" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8082:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + + amd-strix-halo-llama-vulkan-radv: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-vulkan-radv" + + devices: + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "PATH=/usr/local/bin:/usr/bin" + - "container=oci" + + hostname: "f16c8811fad8" + + image: "kyuz0/amd-strix-halo-toolboxes:vulkan-radv" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "b8d7ece75362f882f6b566c45be63ddc7ef9196bf9cb4cd751229013cfd7751e" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:523867cfaf7346460b4857ea164353a3048ef24f844e627535c1639c3f1b1b3f" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-vulkan-radv" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8081:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + + docker-model-runner: + container_name: "docker-model-runner" + entrypoint: + - "/app/model-runner" + environment: + - "MODEL_RUNNER_PORT=12434" + - "MODEL_RUNNER_ENVIRONMENT=moby" + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "MODEL_RUNNER_SOCK=/var/run/model-runner/model-runner.sock" + - "LLAMA_SERVER_PATH=/app/bin" + - "HOME=/home/modelrunner" + - "MODELS_PATH=/models" + - "LD_LIBRARY_PATH=/app/lib" + hostname: "b1ab3b3c51a3" + image: "docker/model-runner:latest" + ipc: "private" + labels: + com.docker.desktop.service: "model-runner" + com.docker.model-runner.role: "controller" + org.opencontainers.image.ref.name: "ubuntu" + org.opencontainers.image.version: "24.04" + logging: + driver: "json-file" + options: {} + network_mode: "bridge" + ports: + - "127.0.0.1:12434:12434/tcp" + restart: "always" + user: "modelrunner" + volumes: + - "docker-model-runner-models:/models" + working_dir: "/app" + + portainer: + + container_name: "portainer" + + entrypoint: + - "/portainer" + + environment: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + + hostname: "c64ad6b64b85" + + image: "portainer/portainer-ce" + + ipc: "private" + + labels: + com.docker.desktop.extension.api.version: ">= 0.2.2" + com.docker.desktop.extension.icon: "https://portainer-io-assets.sfo2.cdn.digitaloceanspaces.com/logos/portainer.png" + com.docker.extension.additional-urls: "[{\"title\":\"Website\",\"url\":\"https://www.portainer.io?utm_campaign=DockerCon&utm_source=DockerDesktop\"\ + },{\"title\":\"Documentation\",\"url\":\"https://docs.portainer.io\"},{\"title\":\"Support\",\"\ + url\":\"https://join.slack.com/t/portainer/shared_invite/zt-txh3ljab-52QHTyjCqbe5RibC2lcjKA\"\ + }]" + com.docker.extension.detailed-description: "

Portainer’s\ + \ Docker Desktop extension gives you access to all of Portainer’s rich management functionality\ + \ within your docker desktop experience.

With Portainer\ + \ you can:

  • See all your running containers
  • Easily view all of your container\ + \ logs
  • Console into containers
  • Easily deploy your code into containers using a\ + \ simple form
  • Turn your YAML into custom templates for easy reuse

About Portainer 

Portainer is the worlds’\ + \ most popular universal container management platform with more than 650,000 active monthly users.\ + \ Portainer can be used to manage Docker Standalone, Kubernetes and Docker Swarm environments\ + \ through a single common interface. It includes a simple GitOps automation engine and a Kube\ + \ API. 

Portainer Business Edition is our fully supported\ + \ commercial grade product for business-wide use. It includes all the functionality that businesses\ + \ need to manage containers at scale. Visit Portainer.io to learn more about\ + \ Portainer Business and get 3 free nodes.

" + com.docker.extension.publisher-url: "https://www.portainer.io" + com.docker.extension.screenshots: "[{\"alt\": \"screenshot one\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-1.png\"\ + },{\"alt\": \"screenshot two\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-2.png\"\ + },{\"alt\": \"screenshot three\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-3.png\"\ + },{\"alt\": \"screenshot four\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-4.png\"\ + },{\"alt\": \"screenshot five\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-5.png\"\ + },{\"alt\": \"screenshot six\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-6.png\"\ + },{\"alt\": \"screenshot seven\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-7.png\"\ + },{\"alt\": \"screenshot eight\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-8.png\"\ + },{\"alt\": \"screenshot nine\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-9.png\"\ + }]" + io.portainer.server: "true" + org.opencontainers.image.description: "Docker container management made simple, with the world’s\ + \ most popular GUI-based container management platform." + org.opencontainers.image.title: "Portainer" + org.opencontainers.image.vendor: "Portainer.io" + + logging: + driver: "json-file" + options: {} + + network_mode: "bridge" + + ports: + - "8000:8000/tcp" + - "9000:9000/tcp" + + restart: "always" + + volumes: + - "/mnt/data/docker_vol/portainer:/data" + - "/var/run/docker.sock:/var/run/docker.sock" + + working_dir: "/" + + rincoin-node2: + + command: + - "-datadir=/data" + - "-conf=/data/rincoin.conf" + - "-printtoconsole" + + container_name: "rincoin-node2" + + entrypoint: + - "/usr/local/bin/rincoind" + + environment: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "DEBIAN_FRONTEND=noninteractive" + + hostname: "9a6d58857cd0" + + image: "rincoin-node:latest" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "c538f569d76e1edec24710e86694448f59d7f59ad1cd83a44d9aaa2ec32e89ca" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:d0934cced84238cb1b9e090a5b27561dc90355ec108571fc3a8ae687267fa087" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "rincoin" + com.docker.compose.project.config_files: "/data/compose/14/docker-compose.yml" + com.docker.compose.project.working_dir: "/data/compose/14" + com.docker.compose.replace: "6b21373b29365c8eab15f7f7450f47ff5e18984c9c5e11ff2ab468a2e6eda26b" + com.docker.compose.service: "rincoin-node" + com.docker.compose.version: "" + org.opencontainers.image.ref.name: "ubuntu" + org.opencontainers.image.version: "22.04" + + logging: + driver: "json-file" + options: {} + + networks: + - "rincoin_default" + + ports: + - "9555:9555/tcp" + - "9556:9556/tcp" + + restart: "unless-stopped" + + user: "rin" + + volumes: + - "/mnt/data/docker_vol/rincoin/rincoin-node/data:/data" + - "/mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro" + + working_dir: "/opt" + + windows: + + container_name: "windows" + + devices: + - "/dev/kvm:/dev/kvm" + - "/dev/net/tun:/dev/net/tun" + - "/dev/nvme0n1p8:/disk2" + + entrypoint: + - "/usr/bin/tini" + - "-s" + - "/run/entry.sh" + + environment: + - "RAM_SIZE=8G" + - "CPU_CORES=4" + - "VERSION=11" + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "DISK_SIZE=64G" + + hostname: "b54f26e81e8a" + + image: "dockurr/windows" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "946a6f405cd99fc70b051d30032fd67cc15601412a5edd38ae1960a013099d20" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:df07df026e7d52a3416b557e9e40a829982746ef3d2924e8e5b92787c2e5f269" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "windows" + com.docker.compose.project.config_files: "/data/compose/3/docker-compose.yml" + com.docker.compose.project.working_dir: "/data/compose/3" + com.docker.compose.service: "windows" + com.docker.compose.version: "" + org.opencontainers.image.created: "2025-05-06T04:50:51.502Z" + org.opencontainers.image.description: "Windows inside a Docker container." + org.opencontainers.image.licenses: "MIT" + org.opencontainers.image.revision: "868c8af289a1012cd7c8bf2c9a2bba298eeb8dee" + org.opencontainers.image.source: "https://github.com/dockur/windows" + org.opencontainers.image.title: "Windows" + org.opencontainers.image.url: "https://github.com/dockur/windows" + org.opencontainers.image.version: "4.35" + + logging: + driver: "json-file" + options: {} + + networks: + - "windows_default" + + ports: + - "1433:1433/tcp" + - "3389:3389/tcp" + - "3389:3389/udp" + - "8006:8006/tcp" + + privileged: true + + restart: "always" + + security_opt: + - "label=disable" + + volumes: + - "/mnt/data/docker_vol/windows:/storage" + - "/mnt/shared:/data" + + working_dir: "/" + +version: "3.6" + +volumes: + docker-model-runner-models: + external: true diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-rocm.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-rocm.yml new file mode 100644 index 0000000..8f40a6c --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-rocm.yml @@ -0,0 +1,93 @@ +networks: + amd-strix-halo-network: + external: true + name: "amd-strix-halo-network" + +services: + amd-strix-halo-llama-rocm: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-rocm" + + devices: + - "/dev/kfd:/dev/kfd" + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "NVIDIA_VISIBLE_DEVICES=all" + - "NVIDIA_DRIVER_CAPABILITIES=all" + - "PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "container=oci" + - "ROCM_PATH=/opt/rocm-7.0" + - "HIP_PLATFORM=amd" + - "HIP_PATH=/opt/rocm-7.0" + - "HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin" + - "HIP_INCLUDE_PATH=/opt/rocm-7.0/include" + - "HIP_LIB_PATH=/opt/rocm-7.0/lib" + - "HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode" + - "LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib" + - "LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64" + - "CPATH=/opt/rocm-7.0/include" + - "PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig" + + hostname: "2e51d282e4eb" + + image: "kyuz0/amd-strix-halo-toolboxes:rocm-7rc-rocwmma" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "b1864fdd57497c82872e0e6ab2dfe1e8debf08ace59f99770d77e1f6470ceec2" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:46c514ed4c8812d12463c0f02ade88a6efa5cc5589c68c5fc98d21966116bbba" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-rocm" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8080:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-amdvlk.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-amdvlk.yml new file mode 100644 index 0000000..049eef5 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-amdvlk.yml @@ -0,0 +1,79 @@ +networks: + amd-strix-halo-network: + external: true + name: "amd-strix-halo-network" + +services: + amd-strix-halo-llama-vulkan-amdvlk: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-vulkan-amdvlk" + + devices: + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "PATH=/usr/local/bin:/usr/bin" + - "container=oci" + + hostname: "c8be19c21b4e" + + image: "kyuz0/amd-strix-halo-toolboxes:vulkan-amdvlk" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "1430c92ed79d5a3fc253eda643fa9adf142075a04f23daa62a2dd75d1bc5b7fc" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:f22a85316fff63e48b37939a242ca9f9c1fe190c9b91edc58d78d2ce8f6b9307" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-vulkan-amdvlk" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8082:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-radv.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-radv.yml new file mode 100644 index 0000000..ffab7fb --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-amd-strix-halo-llama-vulkan-radv.yml @@ -0,0 +1,79 @@ +networks: + amd-strix-halo-network: + external: true + name: "amd-strix-halo-network" + +services: + amd-strix-halo-llama-vulkan-radv: + + command: + - "/bin/bash" + + container_name: "amd-strix-halo-llama-vulkan-radv" + + devices: + - "/dev/dri:/dev/dri" + + environment: + - "DISPLAY=:0" + - "PATH=/usr/local/bin:/usr/bin" + - "container=oci" + + hostname: "f16c8811fad8" + + image: "kyuz0/amd-strix-halo-toolboxes:vulkan-radv" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "b8d7ece75362f882f6b566c45be63ddc7ef9196bf9cb4cd751229013cfd7751e" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:523867cfaf7346460b4857ea164353a3048ef24f844e627535c1639c3f1b1b3f" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "portainer-compose-stacks" + com.docker.compose.project.config_files: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/amd-strix-halo-toolboxes.yml" + com.docker.compose.project.working_dir: "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks" + com.docker.compose.service: "amd-strix-halo-llama-vulkan-radv" + com.docker.compose.version: "2.39.4" + io.buildah.version: "1.41.3" + license: "MIT" + name: "fedora-minimal" + org.opencontainers.image.license: "MIT" + org.opencontainers.image.name: "fedora-minimal" + org.opencontainers.image.url: "https://fedoraproject.org/" + org.opencontainers.image.vendor: "Fedora Project" + org.opencontainers.image.version: "rawhide" + vendor: "Fedora Project" + version: "rawhide" + + logging: + driver: "json-file" + options: {} + + networks: + - "amd-strix-halo-network" + + ports: + - "8081:8080/tcp" + + privileged: true + + restart: "unless-stopped" + + security_opt: + - "label=disable" + + stdin_open: true + + tty: true + + volumes: + - "/home/db/Downloads:/mnt/dl" + - "/home/db:/home/db" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/data:/data" + - "/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/models:/models" + + working_dir: "/models" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-docker-model-runner.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-docker-model-runner.yml new file mode 100644 index 0000000..3819b8d --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-docker-model-runner.yml @@ -0,0 +1,37 @@ +services: + docker-model-runner: + container_name: "docker-model-runner" + entrypoint: + - "/app/model-runner" + environment: + - "MODEL_RUNNER_PORT=12434" + - "MODEL_RUNNER_ENVIRONMENT=moby" + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "MODEL_RUNNER_SOCK=/var/run/model-runner/model-runner.sock" + - "LLAMA_SERVER_PATH=/app/bin" + - "HOME=/home/modelrunner" + - "MODELS_PATH=/models" + - "LD_LIBRARY_PATH=/app/lib" + hostname: "b1ab3b3c51a3" + image: "docker/model-runner:latest" + ipc: "private" + labels: + com.docker.desktop.service: "model-runner" + com.docker.model-runner.role: "controller" + org.opencontainers.image.ref.name: "ubuntu" + org.opencontainers.image.version: "24.04" + logging: + driver: "json-file" + options: {} + network_mode: "bridge" + ports: + - "127.0.0.1:12434:12434/tcp" + restart: "always" + user: "modelrunner" + volumes: + - "docker-model-runner-models:/models" + working_dir: "/app" +version: "3.6" +volumes: + docker-model-runner-models: + external: true diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-portainer.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-portainer.yml new file mode 100644 index 0000000..6ec0f20 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-portainer.yml @@ -0,0 +1,77 @@ +services: + portainer: + + container_name: "portainer" + + entrypoint: + - "/portainer" + + environment: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + + hostname: "c64ad6b64b85" + + image: "portainer/portainer-ce" + + ipc: "private" + + labels: + com.docker.desktop.extension.api.version: ">= 0.2.2" + com.docker.desktop.extension.icon: "https://portainer-io-assets.sfo2.cdn.digitaloceanspaces.com/logos/portainer.png" + com.docker.extension.additional-urls: "[{\"title\":\"Website\",\"url\":\"https://www.portainer.io?utm_campaign=DockerCon&utm_source=DockerDesktop\"\ + },{\"title\":\"Documentation\",\"url\":\"https://docs.portainer.io\"},{\"title\":\"Support\",\"\ + url\":\"https://join.slack.com/t/portainer/shared_invite/zt-txh3ljab-52QHTyjCqbe5RibC2lcjKA\"\ + }]" + com.docker.extension.detailed-description: "

Portainer’s\ + \ Docker Desktop extension gives you access to all of Portainer’s rich management functionality\ + \ within your docker desktop experience.

With Portainer\ + \ you can:

  • See all your running containers
  • Easily view all of your container\ + \ logs
  • Console into containers
  • Easily deploy your code into containers using a\ + \ simple form
  • Turn your YAML into custom templates for easy reuse

About Portainer 

Portainer is the worlds’\ + \ most popular universal container management platform with more than 650,000 active monthly users.\ + \ Portainer can be used to manage Docker Standalone, Kubernetes and Docker Swarm environments\ + \ through a single common interface. It includes a simple GitOps automation engine and a Kube\ + \ API. 

Portainer Business Edition is our fully supported\ + \ commercial grade product for business-wide use. It includes all the functionality that businesses\ + \ need to manage containers at scale. Visit Portainer.io to learn more about\ + \ Portainer Business and get 3 free nodes.

" + com.docker.extension.publisher-url: "https://www.portainer.io" + com.docker.extension.screenshots: "[{\"alt\": \"screenshot one\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-1.png\"\ + },{\"alt\": \"screenshot two\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-2.png\"\ + },{\"alt\": \"screenshot three\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-3.png\"\ + },{\"alt\": \"screenshot four\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-4.png\"\ + },{\"alt\": \"screenshot five\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-5.png\"\ + },{\"alt\": \"screenshot six\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-6.png\"\ + },{\"alt\": \"screenshot seven\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-7.png\"\ + },{\"alt\": \"screenshot eight\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-8.png\"\ + },{\"alt\": \"screenshot nine\", \"url\": \"https://portainer-io-assets.sfo2.digitaloceanspaces.com/screenshots/docker-extension-9.png\"\ + }]" + io.portainer.server: "true" + org.opencontainers.image.description: "Docker container management made simple, with the world’s\ + \ most popular GUI-based container management platform." + org.opencontainers.image.title: "Portainer" + org.opencontainers.image.vendor: "Portainer.io" + + logging: + driver: "json-file" + options: {} + + network_mode: "bridge" + + ports: + - "8000:8000/tcp" + - "9000:9000/tcp" + + restart: "always" + + volumes: + - "/mnt/data/docker_vol/portainer:/data" + - "/var/run/docker.sock:/var/run/docker.sock" + + working_dir: "/" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-rincoin-node2.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-rincoin-node2.yml new file mode 100644 index 0000000..e0500b9 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-rincoin-node2.yml @@ -0,0 +1,65 @@ +networks: + rincoin_default: + external: true + name: "rincoin_default" + +services: + rincoin-node2: + + command: + - "-datadir=/data" + - "-conf=/data/rincoin.conf" + - "-printtoconsole" + + container_name: "rincoin-node2" + + entrypoint: + - "/usr/local/bin/rincoind" + + environment: + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "DEBIAN_FRONTEND=noninteractive" + + hostname: "9a6d58857cd0" + + image: "rincoin-node:latest" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "c538f569d76e1edec24710e86694448f59d7f59ad1cd83a44d9aaa2ec32e89ca" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:d0934cced84238cb1b9e090a5b27561dc90355ec108571fc3a8ae687267fa087" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "rincoin" + com.docker.compose.project.config_files: "/data/compose/14/docker-compose.yml" + com.docker.compose.project.working_dir: "/data/compose/14" + com.docker.compose.replace: "6b21373b29365c8eab15f7f7450f47ff5e18984c9c5e11ff2ab468a2e6eda26b" + com.docker.compose.service: "rincoin-node" + com.docker.compose.version: "" + org.opencontainers.image.ref.name: "ubuntu" + org.opencontainers.image.version: "22.04" + + logging: + driver: "json-file" + options: {} + + networks: + - "rincoin_default" + + ports: + - "9555:9555/tcp" + - "9556:9556/tcp" + + restart: "unless-stopped" + + user: "rin" + + volumes: + - "/mnt/data/docker_vol/rincoin/rincoin-node/data:/data" + - "/mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro" + + working_dir: "/opt" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/container-windows.yml b/portainer-compose-stacks/BACKUPS/20251118-133605/container-windows.yml new file mode 100644 index 0000000..6308ccf --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/20251118-133605/container-windows.yml @@ -0,0 +1,80 @@ +networks: + windows_default: + external: true + name: "windows_default" + +services: + windows: + + container_name: "windows" + + devices: + - "/dev/kvm:/dev/kvm" + - "/dev/net/tun:/dev/net/tun" + - "/dev/nvme0n1p8:/disk2" + + entrypoint: + - "/usr/bin/tini" + - "-s" + - "/run/entry.sh" + + environment: + - "RAM_SIZE=8G" + - "CPU_CORES=4" + - "VERSION=11" + - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - "DISK_SIZE=64G" + + hostname: "b54f26e81e8a" + + image: "dockurr/windows" + + ipc: "private" + + labels: + com.docker.compose.config-hash: "946a6f405cd99fc70b051d30032fd67cc15601412a5edd38ae1960a013099d20" + com.docker.compose.container-number: "1" + com.docker.compose.depends_on: "" + com.docker.compose.image: "sha256:df07df026e7d52a3416b557e9e40a829982746ef3d2924e8e5b92787c2e5f269" + com.docker.compose.oneoff: "False" + com.docker.compose.project: "windows" + com.docker.compose.project.config_files: "/data/compose/3/docker-compose.yml" + com.docker.compose.project.working_dir: "/data/compose/3" + com.docker.compose.service: "windows" + com.docker.compose.version: "" + org.opencontainers.image.created: "2025-05-06T04:50:51.502Z" + org.opencontainers.image.description: "Windows inside a Docker container." + org.opencontainers.image.licenses: "MIT" + org.opencontainers.image.revision: "868c8af289a1012cd7c8bf2c9a2bba298eeb8dee" + org.opencontainers.image.source: "https://github.com/dockur/windows" + org.opencontainers.image.title: "Windows" + org.opencontainers.image.url: "https://github.com/dockur/windows" + org.opencontainers.image.version: "4.35" + + logging: + driver: "json-file" + options: {} + + networks: + - "windows_default" + + ports: + - "1433:1433/tcp" + - "3389:3389/tcp" + - "3389:3389/udp" + - "8006:8006/tcp" + + privileged: true + + restart: "always" + + security_opt: + - "label=disable" + + volumes: + - "/mnt/data/docker_vol/windows:/storage" + - "/mnt/shared:/data" + + working_dir: "/" + +version: "3.6" diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/portainer-automatic-backup.db.bak b/portainer-compose-stacks/BACKUPS/20251118-133605/portainer-automatic-backup.db.bak new file mode 100644 index 0000000000000000000000000000000000000000..0f2d1f76c637eeac0cf96342dbc4f1bd227b7453 GIT binary patch literal 524288 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 z|LXsrOiB8WBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`e zihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhl zpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H; z0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2Or zBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs> zC<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%I zfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`e zihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhl zpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H; z0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2Or zBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs> zC<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%I zfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`e zihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhl zpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H; z0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2Or zBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs> zC<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%I zfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`e yihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<1px;Qs@>GF71f literal 0 HcmV?d00001 diff --git a/portainer-compose-stacks/BACKUPS/20251118-133605/portainer-database-backup.db b/portainer-compose-stacks/BACKUPS/20251118-133605/portainer-database-backup.db new file mode 100644 index 0000000000000000000000000000000000000000..9f75f5e81bc191c9b386d6faaabbd529d2575cf3 GIT binary patch literal 524288 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 U0YyL&Py`eKML-ew6(jKf0g?9f0{{R3 literal 0 HcmV?d00001 diff --git a/portainer-compose-stacks/BACKUPS/BACKUP-SUMMARY.md b/portainer-compose-stacks/BACKUPS/BACKUP-SUMMARY.md new file mode 100644 index 0000000..0245ee1 --- /dev/null +++ b/portainer-compose-stacks/BACKUPS/BACKUP-SUMMARY.md @@ -0,0 +1,88 @@ +# Portainer Reset & Backup Summary + +**Date:** November 18, 2025, 13:37 +**Issue:** Portainer environments showing as "unreachable" due to stale configurations from previous multi-instance setup + +## Actions Taken + +### 1. Complete Backup Created ✓ +Location: `/mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/BACKUPS/20251118-133605/` + +**Backup Contents:** +- ✓ Portainer database (portainer-database-backup.db) - 512KB +- ✓ Portainer automatic backup (portainer-automatic-backup.db.bak) - 512KB +- ✓ All containers combined compose file (all-containers-compose.yml) - 17KB +- ✓ Individual container compose files (7 files): + - container-portainer.yml + - container-windows.yml + - container-rincoin-node2.yml + - container-amd-strix-halo-llama-rocm.yml + - container-amd-strix-halo-llama-vulkan-radv.yml + - container-amd-strix-halo-llama-vulkan-amdvlk.yml + - container-docker-model-runner.yml + +### 2. Portainer Database Reset ✓ +- Old database: 512KB (contained stale environment 3) +- New database: 32KB (fresh installation) +- New instance ID: 1b059c79-d81d-4044-9050-4d90ea85a5ec +- Status: Running and responding correctly + +### 3. Tools Installed ✓ +- docker-autocompose from https://github.com/Red5d/docker-autocompose +- Dependencies: docker, pyaml Python packages + +## Next Steps for User + +### 1. Initial Portainer Setup +Visit http://localhost:9000 and complete the initial setup: +- Create new admin username and password +- This is required since the database was reset + +### 2. Add Docker Environment +After login, add your local Docker environment: +- Click "Get Started" or "Add Environment" +- Select "Docker" as environment type +- Choose "Socket" connection method +- Socket path: `/var/run/docker.sock` +- Name it "nuc" or "localhost" + +### 3. Verify All Containers Are Visible +All your existing containers should appear automatically: +- portainer +- windows +- rincoin-node2 +- amd-strix-halo-llama-rocm +- amd-strix-halo-llama-vulkan-radv +- amd-strix-halo-llama-vulkan-amdvlk +- docker-model-runner + +### 4. Optional: Export Portainer Configuration +From the Portainer UI: +- Settings → Backup +- Download backup for safekeeping + +## Restore Instructions (If Needed) + +### To restore old Portainer database: +```bash +docker stop portainer +docker run --rm -v /mnt/data/docker_vol/portainer:/data \ + -v /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/BACKUPS/20251118-133605:/backup \ + alpine cp /backup/portainer-database-backup.db /data/portainer.db +docker start portainer +``` + +### To restore containers from compose files: +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/BACKUPS/20251118-133605 + +# Restore specific container +docker-compose -f container-NAME.yml up -d + +# Or restore all containers +docker-compose -f all-containers-compose.yml up -d +``` + +## Problem Resolution +The issue was caused by stale environment configurations (specifically "environment 3") remaining in the Portainer database even after removal from the UI. These corrupted entries caused Portainer to crash when attempting to connect to non-existent environments. A fresh database resolves this completely. + diff --git a/portainer-compose-stacks/BACKUPS/portainer-backup_2025-11-18_11-44-16.tar.gz b/portainer-compose-stacks/BACKUPS/portainer-backup_2025-11-18_11-44-16.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e58b369259933170883a9c02a1e3ec9f6a45978e GIT binary patch literal 77152 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

>6!p?=PFT{uupq5ta7U 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 Date: Tue, 18 Nov 2025 17:22:58 +0200 Subject: [PATCH 4/8] new stacks rebuild --- .../rincoin/docker-compose.yml | 18 ++++++++++++ .../windows/docker-compose.yml | 28 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 portainer-compose-stacks/rincoin/docker-compose.yml create mode 100644 portainer-compose-stacks/windows/docker-compose.yml diff --git a/portainer-compose-stacks/rincoin/docker-compose.yml b/portainer-compose-stacks/rincoin/docker-compose.yml new file mode 100644 index 0000000..ce07a4d --- /dev/null +++ b/portainer-compose-stacks/rincoin/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.8" + +services: + rincoin-node: + container_name: rincoin-node2 + image: rincoin-node:latest + restart: unless-stopped + ports: + - "9555:9555" + - "9556:9556" + volumes: + - /mnt/data/docker_vol/rincoin/rincoin-node/data:/data + - /mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro + command: + - -datadir=/data + - -conf=/data/rincoin.conf + - -printtoconsole + diff --git a/portainer-compose-stacks/windows/docker-compose.yml b/portainer-compose-stacks/windows/docker-compose.yml new file mode 100644 index 0000000..af452d6 --- /dev/null +++ b/portainer-compose-stacks/windows/docker-compose.yml @@ -0,0 +1,28 @@ +services: + windows: + image: dockurr/windows # https://github.com/dockur/windows + container_name: windows + environment: + VERSION: "11" + RAM_SIZE: "8G" + CPU_CORES: "4" + devices: + - /dev/kvm + - /dev/net/tun + - /dev/nvme0n1p8:/disk2 + cap_add: + - NET_ADMIN + privileged: true + ports: + #- 445:445 + - 1433:1433 + - 8006:8006 + - 3389:3389/tcp + - 3389:3389/udp + volumes: + # - /dev/nvme0n1p7:/disk1 # blind mount - not working for now + - /mnt/data/docker_vol/windows:/storage # storage (img file)location + - /mnt/shared:/data + restart: always + stop_grace_period: 2m + From 23b4e1a8eed1b1db4f8f494e3f26e01608bf0006 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Thu, 20 Nov 2025 10:58:56 +0200 Subject: [PATCH 5/8] win amd GPU passtrough --- .../rincoin/docker-compose.yml | 6 + .../windows/GPU-PASSTHROUGH.md | 203 ++++++++++++++++++ .../windows/docker-compose.yml | 9 +- .../windows/fix-grub-iommu.sh | 43 ++++ .../windows/fix-grub-manual.sh | 48 +++++ .../windows/setup-gpu-passthrough.sh | 109 ++++++++++ .../windows/verify-gpu-passthrough.sh | 96 +++++++++ 7 files changed, 512 insertions(+), 2 deletions(-) create mode 100644 portainer-compose-stacks/windows/GPU-PASSTHROUGH.md create mode 100644 portainer-compose-stacks/windows/fix-grub-iommu.sh create mode 100644 portainer-compose-stacks/windows/fix-grub-manual.sh create mode 100644 portainer-compose-stacks/windows/setup-gpu-passthrough.sh create mode 100644 portainer-compose-stacks/windows/verify-gpu-passthrough.sh diff --git a/portainer-compose-stacks/rincoin/docker-compose.yml b/portainer-compose-stacks/rincoin/docker-compose.yml index ce07a4d..68309ae 100644 --- a/portainer-compose-stacks/rincoin/docker-compose.yml +++ b/portainer-compose-stacks/rincoin/docker-compose.yml @@ -16,3 +16,9 @@ services: - -conf=/data/rincoin.conf - -printtoconsole + + + + + + diff --git a/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md b/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md new file mode 100644 index 0000000..c16d83d --- /dev/null +++ b/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md @@ -0,0 +1,203 @@ +# AMD Strix Halo iGPU Passthrough to Windows Container + +This guide configures PCI passthrough for the AMD Strix Halo integrated GPU to the Windows Docker container, enabling GPU-accelerated applications. + +## Problem + +The Windows container was showing "Red Hat VirtIO GPU DOD Controller" instead of the AMD GPU because: +- IOMMU was disabled (`amd_iommu=off`) +- GPU was not passed through at PCI level +- Only `/dev/dri` devices were exposed (insufficient for Windows) + +## Solution Overview + +1. Enable AMD IOMMU in kernel boot parameters +2. Bind GPU and audio devices to `vfio-pci` driver +3. Configure QEMU to pass through PCI devices +4. Restart container and install AMD drivers in Windows + +## Hardware Details + +- **GPU**: AMD Strix Halo iGPU (PCI: c5:00.0, ID: 1002:1586) +- **Audio**: HDMI Audio Controller (PCI: c5:00.1, ID: 1002:1640) + +## Setup Instructions + +### Step 1: Run Setup Script + +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows +sudo ./setup-gpu-passthrough.sh +``` + +This script will: +- Enable IOMMU in GRUB (`amd_iommu=on iommu=pt`) +- Configure VFIO to claim the GPU devices +- Update initramfs with VFIO modules +- Create necessary configuration files + +### Step 2: Reboot + +```bash +sudo reboot +``` + +**IMPORTANT**: The system MUST be rebooted for IOMMU and VFIO changes to take effect. + +### Step 3: Verify Setup (After Reboot) + +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows +./verify-gpu-passthrough.sh +``` + +Expected output: +- ✓ IOMMU is enabled +- ✓ vfio_pci module loaded +- ✓ GPU bound to vfio-pci +- ✓ Audio bound to vfio-pci +- ✓ /dev/vfio/vfio exists + +### Step 4: Start Windows Container + +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows +docker-compose down # Stop if running +docker-compose up -d +``` + +### Step 5: Install AMD Drivers in Windows + +1. Connect to Windows via RDP: `localhost:3389` +2. Open Device Manager +3. You should see "AMD Display Adapter" (may show with warning) +4. Download AMD Radeon drivers for Windows 11 +5. Install the drivers +6. Reboot Windows +7. Verify GPU in Task Manager → Performance → GPU + +## Docker Compose Configuration + +The configuration includes: + +```yaml +environment: + GPU: "Y" + ARGUMENTS: "-device vfio-pci,host=c5:00.0,addr=0x02,multifunction=on -device vfio-pci,host=c5:00.1,addr=0x02.1" +devices: + - /dev/vfio/vfio +``` + +This passes through: +- **c5:00.0**: AMD GPU +- **c5:00.1**: HDMI Audio +- **addr=0x02**: Virtual PCI slot in guest +- **multifunction=on**: Allows multiple functions on same slot + +## Troubleshooting + +### GPU still shows VirtIO after reboot + +Check if GPU is bound to vfio-pci: +```bash +lspci -nnk -s c5:00.0 +``` + +Should show: `Kernel driver in use: vfio-pci` + +If not, manually bind: +```bash +echo "0000:c5:00.0" | sudo tee /sys/bus/pci/drivers/amdgpu/unbind +echo "1002 1586" | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id +``` + +### IOMMU not enabled after reboot + +Check kernel parameters: +```bash +cat /proc/cmdline | grep iommu +``` + +Should show: `amd_iommu=on iommu=pt` + +If not present: +```bash +sudo nano /etc/default/grub +# Add to GRUB_CMDLINE_LINUX_DEFAULT: amd_iommu=on iommu=pt +sudo update-grub +sudo reboot +``` + +### Container fails to start + +Check logs: +```bash +docker logs windows +``` + +Common issues: +- VFIO device not found: Run verification script +- Permission denied: Ensure container is `privileged: true` +- Device busy: Another driver may be using the GPU + +### GPU not detected in Windows + +1. Check Device Manager for unknown devices +2. Try installing AMD Chipset drivers first +3. Use AMD Auto-Detect tool for driver installation +4. Check Windows Event Viewer for driver errors + +## Performance Notes + +- **Full GPU acceleration**: Direct PCI passthrough provides near-native performance +- **VRAM**: Windows will see the full iGPU VRAM allocation +- **Display output**: Use RDP/VNC (no physical display from container) +- **3D acceleration**: Fully supported (DirectX, OpenGL, Vulkan) + +## Limitations + +- Host cannot use the iGPU while passed through to the container +- Physical display outputs from the GPU won't work (headless only) +- USB devices may need separate passthrough configuration +- Some GPU features may require CPU pinning for best performance + +## Files Modified + +- `/etc/default/grub` - IOMMU kernel parameters +- `/etc/modprobe.d/vfio.conf` - VFIO driver binding +- `/etc/initramfs-tools/modules` - VFIO modules in initramfs +- `docker-compose.yml` - PCI passthrough arguments + +## Reverting Changes + +To restore GPU to host: + +1. Remove VFIO configuration: +```bash +sudo rm /etc/modprobe.d/vfio.conf +``` + +2. Edit GRUB to remove `vfio-pci.ids=...`: +```bash +sudo nano /etc/default/grub +sudo update-grub +``` + +3. Update initramfs and reboot: +```bash +sudo update-initramfs -u +sudo reboot +``` + +## References + +- [dockurr/windows](https://github.com/dockur/windows) - Windows container image +- [AMD GPU Passthrough Guide](https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF) +- [VFIO Documentation](https://www.kernel.org/doc/html/latest/driver-api/vfio.html) + + + + + + + diff --git a/portainer-compose-stacks/windows/docker-compose.yml b/portainer-compose-stacks/windows/docker-compose.yml index af452d6..906e117 100644 --- a/portainer-compose-stacks/windows/docker-compose.yml +++ b/portainer-compose-stacks/windows/docker-compose.yml @@ -1,20 +1,25 @@ services: windows: image: dockurr/windows # https://github.com/dockur/windows - container_name: windows + container_name: windows2 environment: VERSION: "11" RAM_SIZE: "8G" CPU_CORES: "4" + GPU: "Y" + ARGUMENTS: "-device vfio-pci,host=c5:00.0,addr=0x05,multifunction=on -device vfio-pci,host=c5:00.1,addr=0x05.1" devices: - /dev/kvm - /dev/net/tun - /dev/nvme0n1p8:/disk2 + - /dev/vfio/vfio + - /dev/vfio/20 + - /dev/vfio/21 cap_add: - NET_ADMIN privileged: true ports: - #- 445:445 + - 445:445 - 1433:1433 - 8006:8006 - 3389:3389/tcp diff --git a/portainer-compose-stacks/windows/fix-grub-iommu.sh b/portainer-compose-stacks/windows/fix-grub-iommu.sh new file mode 100644 index 0000000..cbca57b --- /dev/null +++ b/portainer-compose-stacks/windows/fix-grub-iommu.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Fix GRUB IOMMU conflict - remove amd_iommu=off that's blocking the passthrough + +set -e + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root: sudo $0" + exit 1 +fi + +echo "=== Fixing GRUB IOMMU Configuration ===" +echo "" + +GRUB_FILE="/etc/default/grub" + +# Backup +cp "$GRUB_FILE" "$GRUB_FILE.backup.$(date +%Y%m%d-%H%M%S)" +echo "✓ Backup created" + +# Remove the conflicting amd_iommu=off +sed -i 's/ amd_iommu=off//' "$GRUB_FILE" + +echo "✓ Removed amd_iommu=off from GRUB config" +echo "" +echo "New GRUB_CMDLINE_LINUX_DEFAULT:" +grep "GRUB_CMDLINE_LINUX_DEFAULT" "$GRUB_FILE" +echo "" + +# Update GRUB +echo "Updating GRUB..." +update-grub + +echo "" +echo "=== Fix Complete ===" +echo "" +echo "⚠️ REBOOT NOW to apply changes: sudo reboot" +echo "" +echo "After reboot, verify with:" +echo " ./verify-gpu-passthrough.sh" + + + diff --git a/portainer-compose-stacks/windows/fix-grub-manual.sh b/portainer-compose-stacks/windows/fix-grub-manual.sh new file mode 100644 index 0000000..3930fd9 --- /dev/null +++ b/portainer-compose-stacks/windows/fix-grub-manual.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Manual GRUB fix - completely rewrite the GRUB_CMDLINE_LINUX_DEFAULT line + +set -e + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root: sudo $0" + exit 1 +fi + +echo "=== Fixing GRUB Configuration (Manual Method) ===" +echo "" + +GRUB_FILE="/etc/default/grub" + +# Backup +cp "$GRUB_FILE" "$GRUB_FILE.backup.manual.$(date +%Y%m%d-%H%M%S)" +echo "✓ Backup created" + +# Replace the entire line with a clean version +sed -i 's|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=on iommu=pt vfio-pci.ids=1002:1586,1002:1640 amdgpu.gttsize=131072 ttm.pages_limit=33554432 amdgpu.si_support=1 amdgpu.cik_support=1 radeon.si_support=0 radeon.cik_support=0"|' "$GRUB_FILE" + +echo "✓ GRUB configuration updated" +echo "" +echo "New configuration:" +grep "GRUB_CMDLINE_LINUX_DEFAULT" "$GRUB_FILE" +echo "" + +# Update GRUB +echo "Updating GRUB..." +update-grub + +echo "" +echo "=== Fix Complete ===" +echo "" +echo "Changes made:" +echo " - Removed: amd_iommu=off" +echo " - Added: amd_iommu=on iommu=pt" +echo " - Added: vfio-pci.ids=1002:1586,1002:1640" +echo "" +echo "⚠️ REBOOT REQUIRED: sudo reboot" +echo "" +echo "After reboot, check:" +echo " cat /proc/cmdline | grep amd_iommu" +echo " Should show ONLY: amd_iommu=on" + + diff --git a/portainer-compose-stacks/windows/setup-gpu-passthrough.sh b/portainer-compose-stacks/windows/setup-gpu-passthrough.sh new file mode 100644 index 0000000..024f0ab --- /dev/null +++ b/portainer-compose-stacks/windows/setup-gpu-passthrough.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +# GPU Passthrough Setup for AMD Strix Halo iGPU to Windows Container +# This script enables IOMMU and configures VFIO-PCI for GPU passthrough + +set -e + +echo "=== AMD Strix Halo GPU Passthrough Setup ===" +echo "" + +# Check if running as root +if [ "$EUID" -ne 0 ]; then + echo "Please run as root (sudo)" + exit 1 +fi + +# GPU PCI IDs +GPU_PCI="0000:c5:00.0" +GPU_AUDIO_PCI="0000:c5:00.1" +GPU_VENDOR_ID="1002" +GPU_DEVICE_ID="1586" + +# Check current IOMMU status +echo "Current IOMMU status:" +cat /proc/cmdline | grep -o "amd_iommu=[^ ]*" || echo "IOMMU not configured in kernel parameters" +echo "" + +# Step 1: Enable IOMMU in GRUB +echo "Step 1: Checking GRUB configuration..." +GRUB_FILE="/etc/default/grub" + +if ! grep -q "amd_iommu=on" "$GRUB_FILE"; then + echo "Adding IOMMU parameters to GRUB..." + cp "$GRUB_FILE" "$GRUB_FILE.backup.$(date +%Y%m%d-%H%M%S)" + + # Update GRUB_CMDLINE_LINUX_DEFAULT + sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"/GRUB_CMDLINE_LINUX_DEFAULT="\1 amd_iommu=on iommu=pt vfio-pci.ids=1002:1586,1002:1640"/' "$GRUB_FILE" + + # Clean up double spaces + sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=" /GRUB_CMDLINE_LINUX_DEFAULT="/' "$GRUB_FILE" + + echo "Updating GRUB..." + update-grub + + echo "" + echo "✓ GRUB updated. IOMMU will be enabled after reboot." +else + echo "✓ IOMMU already configured in GRUB" +fi + +# Step 2: Configure VFIO modules +echo "" +echo "Step 2: Configuring VFIO modules..." +VFIO_CONF="/etc/modprobe.d/vfio.conf" + +cat > "$VFIO_CONF" << EOF +# Bind AMD Strix Halo GPU to VFIO for passthrough +options vfio-pci ids=1002:1586,1002:1640 +softdep amdgpu pre: vfio-pci +softdep snd_hda_intel pre: vfio-pci +EOF + +echo "✓ VFIO configuration created" + +# Step 3: Update initramfs +echo "" +echo "Step 3: Adding VFIO modules to initramfs..." +MODULES_FILE="/etc/initramfs-tools/modules" + +if ! grep -q "vfio_pci" "$MODULES_FILE"; then + cat >> "$MODULES_FILE" << EOF + +# VFIO modules for GPU passthrough +vfio +vfio_iommu_type1 +vfio_pci +vfio_virqfd +EOF + echo "✓ VFIO modules added to initramfs" +else + echo "✓ VFIO modules already in initramfs" +fi + +echo "" +echo "Updating initramfs..." +update-initramfs -u + +# Step 4: Summary and next steps +echo "" +echo "=== Setup Complete ===" +echo "" +echo "Configuration applied:" +echo " - IOMMU enabled in GRUB (amd_iommu=on iommu=pt)" +echo " - GPU (1002:1586) bound to vfio-pci driver" +echo " - Audio (1002:1640) bound to vfio-pci driver" +echo " - Initramfs updated with VFIO modules" +echo "" +echo "⚠️ REBOOT REQUIRED to apply changes by running: 'sudo update-grub' and 'sudo reboot'" +echo "" +echo "After reboot:" +echo " 1. Verify IOMMU is enabled: dmesg | grep -i iommu" +echo " 2. Check GPU binding: lspci -nnk -d 1002:1586" +echo " 3. Start Windows container: docker-compose up -d" +echo " 4. Install AMD drivers in Windows" +echo "" +echo "To reboot now, run: reboot" + + + diff --git a/portainer-compose-stacks/windows/verify-gpu-passthrough.sh b/portainer-compose-stacks/windows/verify-gpu-passthrough.sh new file mode 100644 index 0000000..6b75507 --- /dev/null +++ b/portainer-compose-stacks/windows/verify-gpu-passthrough.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +# Verification script for GPU Passthrough Setup +# Run this after reboot to verify IOMMU and VFIO configuration + +echo "=== GPU Passthrough Verification ===" +echo "" + +# Check 1: IOMMU enabled +echo "1. Checking IOMMU status..." +if dmesg | grep -qi "AMD-Vi: AMD IOMMUv2 loaded"; then + echo " ✓ IOMMU is enabled" +else + echo " ✗ IOMMU not detected in dmesg" + echo " Boot parameters: $(cat /proc/cmdline | grep -o 'amd_iommu=[^ ]*\|iommu=[^ ]*')" +fi +echo "" + +# Check 2: VFIO module loaded +echo "2. Checking VFIO modules..." +if lsmod | grep -q vfio_pci; then + echo " ✓ vfio_pci module loaded" +else + echo " ✗ vfio_pci module not loaded" + echo " Try: modprobe vfio-pci" +fi +echo "" + +# Check 3: GPU bound to VFIO +echo "3. Checking GPU (c5:00.0) driver binding..." +GPU_DRIVER=$(lspci -nnk -s c5:00.0 | grep "Kernel driver in use" | awk '{print $5}') +if [ "$GPU_DRIVER" = "vfio-pci" ]; then + echo " ✓ GPU bound to vfio-pci" +else + echo " ✗ GPU bound to: ${GPU_DRIVER:-none}" + echo " Expected: vfio-pci" +fi + +lspci -nnk -s c5:00.0 | head -5 +echo "" + +# Check 4: Audio bound to VFIO +echo "4. Checking GPU Audio (c5:00.1) driver binding..." +AUDIO_DRIVER=$(lspci -nnk -s c5:00.1 | grep "Kernel driver in use" | awk '{print $5}') +if [ "$AUDIO_DRIVER" = "vfio-pci" ]; then + echo " ✓ Audio bound to vfio-pci" +else + echo " ✗ Audio bound to: ${AUDIO_DRIVER:-none}" + echo " Expected: vfio-pci" +fi + +lspci -nnk -s c5:00.1 | head -5 +echo "" + +# Check 5: IOMMU groups +echo "5. Checking IOMMU groups..." +if [ -e /sys/bus/pci/devices/0000:c5:00.0/iommu_group ]; then + GPU_GROUP=$(basename $(readlink /sys/bus/pci/devices/0000:c5:00.0/iommu_group)) + echo " ✓ GPU IOMMU group: $GPU_GROUP" + echo " Devices in group:" + ls -1 /sys/bus/pci/devices/0000:c5:00.0/iommu_group/devices/ | sed 's/^/ - /' +else + echo " ✗ IOMMU group not found for GPU" +fi +echo "" + +# Check 6: VFIO devices +echo "6. Checking /dev/vfio devices..." +if [ -e /dev/vfio/vfio ]; then + echo " ✓ /dev/vfio/vfio exists" + ls -la /dev/vfio/ | sed 's/^/ /' +else + echo " ✗ /dev/vfio/vfio not found" +fi +echo "" + +# Summary +echo "=== Summary ===" +if [ "$GPU_DRIVER" = "vfio-pci" ] && [ "$AUDIO_DRIVER" = "vfio-pci" ] && [ -e /dev/vfio/vfio ]; then + echo "✓ GPU passthrough is configured correctly!" + echo "" + echo "Next steps:" + echo " 1. Start the Windows container: cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows && docker-compose up -d" + echo " 2. Connect to Windows via RDP: localhost:3389" + echo " 3. Install AMD Radeon drivers in Windows" + echo " 4. GPU should appear as 'AMD Strix Halo' in Device Manager" +else + echo "✗ GPU passthrough configuration needs attention" + echo "" + echo "If GPU is not bound to vfio-pci:" + echo " - Check /etc/modprobe.d/vfio.conf" + echo " - Run: sudo update-initramfs -u" + echo " - Reboot again" +fi + + From 185d4f520b36f95cf87475cd43171051ff2657e2 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Sat, 22 Nov 2025 14:48:58 +0200 Subject: [PATCH 6/8] gpu passtrough moved to separate file --- .../windows/GPU-PASSTHROUGH.md | 51 +++-- .../windows/GPU-SHARING-EXPLAINED.md | 185 ++++++++++++++++++ .../windows/bind-gpu-to-vfio.sh | 79 ++++++++ .../docker-compose.gpu-passthrough.yml | 33 ++++ .../windows/docker-compose.yml | 9 +- .../windows/unbind-gpu-from-vfio.sh | 82 ++++++++ 6 files changed, 414 insertions(+), 25 deletions(-) create mode 100644 portainer-compose-stacks/windows/GPU-SHARING-EXPLAINED.md create mode 100644 portainer-compose-stacks/windows/bind-gpu-to-vfio.sh create mode 100644 portainer-compose-stacks/windows/docker-compose.gpu-passthrough.yml create mode 100644 portainer-compose-stacks/windows/unbind-gpu-from-vfio.sh diff --git a/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md b/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md index c16d83d..a71adc6 100644 --- a/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md +++ b/portainer-compose-stacks/windows/GPU-PASSTHROUGH.md @@ -2,12 +2,17 @@ This guide configures PCI passthrough for the AMD Strix Halo integrated GPU to the Windows Docker container, enabling GPU-accelerated applications. +## Important Note: Manual Binding Approach + +This setup uses **manual GPU binding** to avoid host display issues. The GPU remains available to the host by default, and you manually bind it to VFIO only when starting the Windows container. This prevents system freezing at boot on newer kernels. + ## Problem The Windows container was showing "Red Hat VirtIO GPU DOD Controller" instead of the AMD GPU because: - IOMMU was disabled (`amd_iommu=off`) - GPU was not passed through at PCI level - Only `/dev/dri` devices were exposed (insufficient for Windows) +- Early VFIO binding caused host display to freeze ## Solution Overview @@ -23,50 +28,56 @@ The Windows container was showing "Red Hat VirtIO GPU DOD Controller" instead of ## Setup Instructions -### Step 1: Run Setup Script +### Step 1: Fix GRUB Configuration (If You Had Freezing Issues) + +If your system was freezing at login on newer kernels: ```bash cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows -sudo ./setup-gpu-passthrough.sh +sudo ./fix-grub-remove-vfio-ids.sh ``` -This script will: -- Enable IOMMU in GRUB (`amd_iommu=on iommu=pt`) -- Configure VFIO to claim the GPU devices -- Update initramfs with VFIO modules -- Create necessary configuration files +This removes early VFIO binding that causes the host to lose GPU access. -### Step 2: Reboot +### Step 2: Update GRUB and Reboot ```bash +sudo update-grub sudo reboot ``` -**IMPORTANT**: The system MUST be rebooted for IOMMU and VFIO changes to take effect. +**IMPORTANT**: After reboot, IOMMU will be enabled but GPU remains available to host. -### Step 3: Verify Setup (After Reboot) +### Step 3: Before Starting Windows Container - Bind GPU + +Every time you want to use GPU passthrough, run: ```bash cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows -./verify-gpu-passthrough.sh +sudo ./bind-gpu-to-vfio.sh ``` -Expected output: -- ✓ IOMMU is enabled -- ✓ vfio_pci module loaded -- ✓ GPU bound to vfio-pci -- ✓ Audio bound to vfio-pci -- ✓ /dev/vfio/vfio exists +This temporarily binds the GPU to VFIO (host display will stop working). ### Step 4: Start Windows Container ```bash cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows -docker-compose down # Stop if running -docker-compose up -d +docker compose up -d ``` -### Step 5: Install AMD Drivers in Windows +### Step 5: When Done - Restore GPU to Host + +After stopping the Windows container, restore GPU to host: + +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows +sudo ./unbind-gpu-from-vfio.sh +``` + +This rebinds the GPU to amdgpu driver for host use. + +### Step 6: Install AMD Drivers in Windows 1. Connect to Windows via RDP: `localhost:3389` 2. Open Device Manager diff --git a/portainer-compose-stacks/windows/GPU-SHARING-EXPLAINED.md b/portainer-compose-stacks/windows/GPU-SHARING-EXPLAINED.md new file mode 100644 index 0000000..d4c4939 --- /dev/null +++ b/portainer-compose-stacks/windows/GPU-SHARING-EXPLAINED.md @@ -0,0 +1,185 @@ +# GPU Sharing: Windows vs Linux Explained + +## Can You Share GPU Between Host and Container? + +**Short Answer**: No, not with VFIO PCI passthrough on Linux. + +## Why Windows Can Do It (Hyper-V GPU-PV) + +### Windows Hyper-V GPU Paravirtualization +- **Technology**: Microsoft's proprietary GPU virtualization +- **How it works**: GPU stays with Windows host, VMs get "virtual GPU slices" +- **Requirements**: + - Windows host (Server or Pro with Hyper-V) + - Windows guests + - Specific GPU support (mostly newer Intel/AMD/NVIDIA) +- **Benefits**: + - ✓ Multiple VMs share one GPU + - ✓ Host keeps display working + - ✓ Decent performance for most workloads +- **Limitations**: + - Windows only (host + guest) + - Not full GPU performance + - Limited GPU features + +## Why Linux QEMU/VFIO Can't Share + +### VFIO PCI Passthrough +- **Technology**: Hardware-level device passthrough (Linux kernel feature) +- **How it works**: Entire GPU is "unplugged" from host and given to guest +- **Benefits**: + - ✓ Near-native performance + - ✓ Full GPU features + - ✓ Works cross-platform (any guest OS) +- **Limitations**: + - ✗ Exclusive access only (either host OR guest) + - ✗ Host loses display when GPU passed through + - ✗ Cannot share between multiple VMs + +## Your Options for AMD Strix Halo iGPU + +### Option 1: Shared Software Rendering (Recommended) +**Configuration**: No GPU passthrough + +**How it works**: +- Host uses GPU normally (amdgpu driver) +- Windows container gets VirtIO virtual GPU +- Both host and container work simultaneously +- Software rendering in container (accelerated by host GPU) + +**Pros**: +- ✓ Host display works +- ✓ Container auto-starts +- ✓ Both usable at same time +- ✓ Simple, no binding scripts + +**Cons**: +- ✗ No native GPU in Windows +- ✗ Limited GPU performance in Windows +- ✗ No GPU-Z, no AMD drivers in Windows + +**Best for**: +- General Windows usage +- When you need host display +- Development/testing +- Light workloads in Windows + +**Current docker-compose setup**: This is now configured (I just updated it) + +--- + +### Option 2: Exclusive GPU Passthrough +**Configuration**: VFIO PCI passthrough (manual binding) + +**How it works**: +1. Bind GPU to VFIO (host display freezes) +2. Start Windows container +3. Windows gets real AMD GPU +4. Stop container and unbind to restore host + +**Pros**: +- ✓ Full AMD GPU in Windows +- ✓ Native performance +- ✓ GPU-accelerated apps work +- ✓ AMD drivers install + +**Cons**: +- ✗ Host display frozen (no GUI) +- ✗ Exclusive - can't use both +- ✗ Manual binding required +- ✗ Access host via SSH only + +**Best for**: +- GPU-intensive Windows apps +- Machine learning in Windows +- Gaming (if that's possible) +- When maximum GPU performance needed + +**Workflow**: +```bash +# Start Windows with GPU +sudo ./bind-gpu-to-vfio.sh # Host display goes black! +docker compose -f docker-compose.gpu-passthrough.yml up -d + +# Stop and restore +docker compose -f docker-compose.gpu-passthrough.yml down +sudo ./unbind-gpu-from-vfio.sh +``` + +--- + +## Technologies That DON'T Work Here + +### SR-IOV (Single Root I/O Virtualization) +- Requires GPU hardware support +- Consumer GPUs (like Strix Halo) don't have it +- Mostly enterprise data center GPUs + +### AMD MxGPU / NVIDIA vGPU +- Enterprise GPU virtualization +- Requires special drivers + licensed enterprise GPUs +- Not available for consumer iGPUs + +### GVT-g (Intel GPU Virtualization) +- Intel only +- Not available for AMD GPUs + +### Looking Glass +- Allows viewing GPU output from guest +- Still exclusive passthrough (guest owns GPU) +- Just a viewer, not sharing + +## What About DRI/DRM Passthrough? + +You might think: "Can we pass `/dev/dri` to share?" + +**Tried this already** - it doesn't work for Windows because: +- Windows needs PCI-level GPU access +- `/dev/dri` is Linux-specific (won't work in Windows) +- Windows drivers expect real PCI GPU device + +## Comparison Table + +| Feature | Shared (VirtIO) | Exclusive (VFIO) | Windows Hyper-V GPU-PV | +|---------|----------------|------------------|------------------------| +| Host display works | ✓ | ✗ | ✓ | +| Container auto-start | ✓ | ✗ | ✓ | +| Both usable together | ✓ | ✗ | ✓ | +| Native GPU in Windows | ✗ | ✓ | ~ (virtual) | +| GPU performance | Low | High | Medium | +| Setup complexity | Easy | Complex | Medium | +| Requires manual binding | ✗ | ✓ | ✗ | + +## Recommendation + +**For your use case**, I recommend: + +### Start with Option 1 (Shared - No Passthrough) +- Container works +- Host works +- Both at same time +- Simple setup + +**If Windows GPU performance is too slow**, then consider: +- Adding a second GPU to host (dedicate one to passthrough) +- Running Windows on bare metal for GPU workloads +- Using cloud GPU instances for heavy GPU tasks + +## Current Configuration + +I've just updated your `docker-compose.yml` to **Option 1 (Shared)**: +- Removed GPU passthrough +- Removed VFIO devices +- Container can auto-start +- Host display continues working + +**Want to test it?** +```bash +cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows +docker compose up -d +``` + +Windows will start with VirtIO display. Both host and container will work simultaneously. + +**Need GPU passthrough later?** I can create a separate docker-compose file for that use case. + diff --git a/portainer-compose-stacks/windows/bind-gpu-to-vfio.sh b/portainer-compose-stacks/windows/bind-gpu-to-vfio.sh new file mode 100644 index 0000000..866cb96 --- /dev/null +++ b/portainer-compose-stacks/windows/bind-gpu-to-vfio.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# Manually bind the AMD GPU to VFIO for Windows container passthrough +# Run this BEFORE starting the Windows container + +set -e + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root: sudo $0" + exit 1 +fi + +echo "=== Binding AMD GPU to VFIO ===" +echo "" + +GPU_PCI="0000:c5:00.0" +AUDIO_PCI="0000:c5:00.1" + +# Check if vfio-pci module is loaded +if ! lsmod | grep -q vfio_pci; then + echo "Loading vfio-pci module..." + modprobe vfio-pci +fi + +# Unbind GPU from amdgpu +echo "Unbinding GPU from amdgpu..." +if [ -e /sys/bus/pci/devices/$GPU_PCI/driver ]; then + echo "$GPU_PCI" > /sys/bus/pci/devices/$GPU_PCI/driver/unbind + echo "✓ GPU unbound from amdgpu" +else + echo "GPU not bound to any driver" +fi + +# Unbind audio from snd_hda_intel +echo "Unbinding audio from snd_hda_intel..." +if [ -e /sys/bus/pci/devices/$AUDIO_PCI/driver ]; then + echo "$AUDIO_PCI" > /sys/bus/pci/devices/$AUDIO_PCI/driver/unbind + echo "✓ Audio unbound" +else + echo "Audio not bound to any driver" +fi + +# Bind to vfio-pci +echo "" +echo "Binding to vfio-pci..." +echo "1002 1586" > /sys/bus/pci/drivers/vfio-pci/new_id 2>/dev/null || echo "GPU ID already registered" +echo "1002 1640" > /sys/bus/pci/drivers/vfio-pci/new_id 2>/dev/null || echo "Audio ID already registered" + +sleep 1 + +# Verify +GPU_DRIVER=$(lspci -nnk -s c5:00.0 | grep "Kernel driver in use" | awk '{print $5}') +AUDIO_DRIVER=$(lspci -nnk -s c5:00.1 | grep "Kernel driver in use" | awk '{print $5}') + +echo "" +echo "=== Status ===" +if [ "$GPU_DRIVER" = "vfio-pci" ]; then + echo "✓ GPU bound to vfio-pci" +else + echo "✗ GPU bound to: ${GPU_DRIVER:-none}" +fi + +if [ "$AUDIO_DRIVER" = "vfio-pci" ]; then + echo "✓ Audio bound to vfio-pci" +else + echo "✗ Audio bound to: ${AUDIO_DRIVER:-none}" +fi + +echo "" +if [ "$GPU_DRIVER" = "vfio-pci" ] && [ "$AUDIO_DRIVER" = "vfio-pci" ]; then + echo "✓ Ready for GPU passthrough!" + echo "" + echo "Now start the Windows container:" + echo " cd /mnt/shared/DEV/repos/d-popov.com/scripts/portainer-compose-stacks/windows" + echo " docker compose up -d" +else + echo "✗ Binding failed. Check errors above." +fi + diff --git a/portainer-compose-stacks/windows/docker-compose.gpu-passthrough.yml b/portainer-compose-stacks/windows/docker-compose.gpu-passthrough.yml new file mode 100644 index 0000000..b042452 --- /dev/null +++ b/portainer-compose-stacks/windows/docker-compose.gpu-passthrough.yml @@ -0,0 +1,33 @@ +services: + windows: + image: dockurr/windows # https://github.com/dockur/windows + container_name: windows-gpu + environment: + VERSION: "11" + RAM_SIZE: "8G" + CPU_CORES: "4" + GPU: "Y" + ARGUMENTS: "-device vfio-pci,host=c5:00.0,addr=0x05,multifunction=on,rombar=0 -device vfio-pci,host=c5:00.1,addr=0x05.1" + devices: + - /dev/kvm + - /dev/net/tun + - /dev/nvme0n1p8:/disk2 + - /dev/vfio/vfio + - /dev/vfio/20 + - /dev/vfio/21 + cap_add: + - NET_ADMIN + privileged: true + ports: + - 445:445 + - 1433:1433 + - 8006:8006 + - 3389:3389/tcp + - 3389:3389/udp + volumes: + # - /dev/nvme0n1p7:/disk1 # blind mount - not working for now + - /mnt/data/docker_vol/windows:/storage # storage (img file)location + - /mnt/shared:/data + restart: "no" # Manual start only - requires GPU binding first + stop_grace_period: 2m + diff --git a/portainer-compose-stacks/windows/docker-compose.yml b/portainer-compose-stacks/windows/docker-compose.yml index 906e117..e405ebe 100644 --- a/portainer-compose-stacks/windows/docker-compose.yml +++ b/portainer-compose-stacks/windows/docker-compose.yml @@ -1,3 +1,7 @@ +# Windows Container - Shared Mode (No GPU Passthrough) +# Host and container can both run simultaneously +# Windows gets VirtIO display, host keeps AMD GPU +# For GPU passthrough, use: docker-compose.gpu-passthrough.yml services: windows: image: dockurr/windows # https://github.com/dockur/windows @@ -6,15 +10,10 @@ services: VERSION: "11" RAM_SIZE: "8G" CPU_CORES: "4" - GPU: "Y" - ARGUMENTS: "-device vfio-pci,host=c5:00.0,addr=0x05,multifunction=on -device vfio-pci,host=c5:00.1,addr=0x05.1" devices: - /dev/kvm - /dev/net/tun - /dev/nvme0n1p8:/disk2 - - /dev/vfio/vfio - - /dev/vfio/20 - - /dev/vfio/21 cap_add: - NET_ADMIN privileged: true diff --git a/portainer-compose-stacks/windows/unbind-gpu-from-vfio.sh b/portainer-compose-stacks/windows/unbind-gpu-from-vfio.sh new file mode 100644 index 0000000..53b1b6c --- /dev/null +++ b/portainer-compose-stacks/windows/unbind-gpu-from-vfio.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Unbind the AMD GPU from VFIO and restore it to the host (amdgpu driver) +# Run this AFTER stopping the Windows container to restore host GPU access + +set -e + +if [ "$EUID" -ne 0 ]; then + echo "Please run as root: sudo $0" + exit 1 +fi + +echo "=== Unbinding AMD GPU from VFIO ===" +echo "" + +GPU_PCI="0000:c5:00.0" +AUDIO_PCI="0000:c5:00.1" + +# Stop Windows container first +echo "Checking if Windows container is running..." +if docker ps | grep -q windows2; then + echo "Stopping Windows container..." + docker stop windows2 + echo "✓ Container stopped" +fi + +# Unbind from vfio-pci +echo "" +echo "Unbinding from vfio-pci..." +if [ -e /sys/bus/pci/devices/$GPU_PCI/driver ]; then + echo "$GPU_PCI" > /sys/bus/pci/devices/$GPU_PCI/driver/unbind + echo "✓ GPU unbound from vfio-pci" +fi + +if [ -e /sys/bus/pci/devices/$AUDIO_PCI/driver ]; then + echo "$AUDIO_PCI" > /sys/bus/pci/devices/$AUDIO_PCI/driver/unbind + echo "✓ Audio unbound from vfio-pci" +fi + +# Remove device IDs from vfio-pci +echo "1002 1586" > /sys/bus/pci/drivers/vfio-pci/remove_id 2>/dev/null || true +echo "1002 1640" > /sys/bus/pci/drivers/vfio-pci/remove_id 2>/dev/null || true + +sleep 1 + +# Rebind to host drivers +echo "" +echo "Binding back to host drivers..." +echo "$GPU_PCI" > /sys/bus/pci/drivers_probe +echo "$AUDIO_PCI" > /sys/bus/pci/drivers_probe + +sleep 2 + +# Verify +GPU_DRIVER=$(lspci -nnk -s c5:00.0 | grep "Kernel driver in use" | awk '{print $5}') +AUDIO_DRIVER=$(lspci -nnk -s c5:00.1 | grep "Kernel driver in use" | awk '{print $5}') + +echo "" +echo "=== Status ===" +if [ "$GPU_DRIVER" = "amdgpu" ]; then + echo "✓ GPU restored to amdgpu" +else + echo "⚠ GPU bound to: ${GPU_DRIVER:-none}" +fi + +if [ "$AUDIO_DRIVER" = "snd_hda_intel" ]; then + echo "✓ Audio restored to snd_hda_intel" +else + echo "⚠ Audio bound to: ${AUDIO_DRIVER:-none}" +fi + +echo "" +if [ "$GPU_DRIVER" = "amdgpu" ]; then + echo "✓ GPU restored to host!" + echo "" + echo "You may need to restart your display manager:" + echo " sudo systemctl restart gdm3 # for GNOME" + echo " sudo systemctl restart lightdm # for XFCE/other" +else + echo "⚠ GPU not fully restored. You may need to reboot." +fi + From 4958b71ad95769b6aeaacc80f1c5e20057a74d04 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Mon, 8 Dec 2025 14:42:16 +0200 Subject: [PATCH 7/8] nextcloud AIO scripts --- linux/nextcloud.md | 15 ++++++++- linux/setup git.sh | 14 ++++++++ portainer-compose-stacks/nextcloud-aio.yml | 38 ++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 portainer-compose-stacks/nextcloud-aio.yml diff --git a/linux/nextcloud.md b/linux/nextcloud.md index 6723fff..9c03ec8 100644 --- a/linux/nextcloud.md +++ b/linux/nextcloud.md @@ -29,4 +29,17 @@ docker exec -u 0 nextcloud php occ trashbin:cleanup --all-users -27.0.2.1 ->> 28.0.14 -> 29.0.10 -> 30.0.4 \ No newline at end of file +27.0.2.1 ->> 28.0.14 -> 29.0.10 -> 30.0.4 + + +# NEXTCLOUD AIO +get pass(in container sh): +/mnt/docker-aio-config/data# ls +backupsecret configuration.json session_date_file +a4a2bed68bc4:/mnt/docker-aio-config/data# cat configuration.json | grep pass +citadel showcase turbofan wick shiftless travel woof dicing +backup: + location:/mnt/storage/containers/nextcloud_aio/backup$ + pass: 0d760cd12d0c75991344ce9dcb599e2bfb85ef40db3ebe29 + + diff --git a/linux/setup git.sh b/linux/setup git.sh index ba0e4ef..3aa9c0a 100644 --- a/linux/setup git.sh +++ b/linux/setup git.sh @@ -20,3 +20,17 @@ git commit -m "Merged upstream/main" # remove upstream git remote remove upstream git remote -v + + + +# +http://192.168.1.36:9000 + +Name: localhost +Environment address: 192.168.1.36:9001 + + + + + + diff --git a/portainer-compose-stacks/nextcloud-aio.yml b/portainer-compose-stacks/nextcloud-aio.yml new file mode 100644 index 0000000..29524a6 --- /dev/null +++ b/portainer-compose-stacks/nextcloud-aio.yml @@ -0,0 +1,38 @@ +version: '3' + +services: + nextcloud-aio-mastercontainer: + container_name: nextcloud-aio-mastercontainer + image: nextcloud/all-in-one:latest + restart: always + #ports: + # - "82:80" + # - "8080:8080" + #- "8444:8444" + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config + - /var/run/docker.sock:/var/run/docker.sock:ro + - /mnt/storage/containers/nextcloud_aio:/mnt/host + environment: + - NEXTCLOUD_DATADIR=/mnt/storage/containers/nextcloud_data + - APACHE_PORT=8444 + - APACHE_IP_BINDING=0.0.0.0 + - APACHE_ADDITIONAL_NETWORK=proxy_proxy_default + - SKIP_DOMAIN_VALIDATION=true + networks: + - nextcloud_network + - proxy_proxy_default + +volumes: + nextcloud_aio_mastercontainer: + driver: local + driver_opts: + type: none + o: bind + device: /mnt/storage/containers/nextcloud_config + +networks: + nextcloud_network: + driver: bridge + proxy_proxy_default: + external: true \ No newline at end of file From 25ca5c1ba45555130ccd2e113543984dfd00a42a Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Sat, 31 Jan 2026 00:39:24 +0200 Subject: [PATCH 8/8] random comment --- portainer-compose-stacks/nextcloud-aio.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/portainer-compose-stacks/nextcloud-aio.yml b/portainer-compose-stacks/nextcloud-aio.yml index 29524a6..16b79c5 100644 --- a/portainer-compose-stacks/nextcloud-aio.yml +++ b/portainer-compose-stacks/nextcloud-aio.yml @@ -35,4 +35,7 @@ networks: nextcloud_network: driver: bridge proxy_proxy_default: - external: true \ No newline at end of file + external: true + + + # https://animalabs.ai/ \ No newline at end of file