[PR #17] [MERGED] Update docker workflow #40

Closed
opened 2026-10-15 13:01:51 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/wolfmanager/pull/17
Author: @salty2011
Created: 6/6/2025
Status: ✅ Merged
Merged: 6/6/2025
Merged by: @salty2011

Base: stable ← Head: update-docker-workflow


📝 Commits (10+)

  • 3f46a13 FIX: tagging for non stable branch
  • eb04e61 Fix GitHub Actions permissions for git tag creation and pushing
  • 5e7dbbd Fix Docker build failure by switching from npm to pnpm
  • 1d12d59 fix: Add build-time environment variables to resolve NextAuth build failure
  • f59cf03 Fix clients page 404 error by removing Next.js standalone mode
  • 715d948 Fix: Docker build by switching to use existing user from base image
  • 6269542 Fix config directory permissions and add socket permission handling
  • 0b18995 Fix Docker build error - remove invalid shell operators from COPY command
  • 773bfe6 Fix config directory permissions during Docker build process
  • d871cdd Fix config directory permissions for bind mount scenario

📊 Changes

67 files changed (+5574 additions, -4765 deletions)

View changed files

📝 .devcontainer/Dockerfile (+12 -11)
📝 .devcontainer/devcontainer.json (+4 -3)
📝 .github/workflows/docker-build.yml (+2 -2)
➖ .roomodes (+0 -12)
📝 LICENSE (+1 -1)
📝 README.md (+195 -263)
➕ build/.dockerignore (+87 -0)
📝 build/Dockerfile (+66 -11)
➕ build/README.md (+215 -0)
➕ build/docker-compose.production.yml (+42 -0)
📝 build/docker-compose.yml (+10 -1)
➕ build/docker-entrypoint.sh (+56 -0)
➕ build/scripts/setup-groups.sh (+104 -0)
➕ build/scripts/setup-permissions.sh (+52 -0)
➕ build/scripts/setup-user.sh (+59 -0)
➕ build/scripts/utils.sh (+43 -0)
➖ docs/features/authentication.md (+0 -128)
➖ docs/features/first-time-setup.md (+0 -310)
➕ docs/images/clients.png (+0 -0)
➕ docs/images/settings.png (+0 -0)

...and 47 more files

📄 Description

🚀 Lift-Off: First WolfManager Release

Overview

This update introduces major improvements across the WolfManager platform, including:

  • A unified Docker communication layer
  • UI refactors for maintainability
  • A date-based Docker image versioning system
  • Several important bug fixes

As this the first release there are still many bug to be found and resolved. Please log these as part of issues

🛠️ Key Changes

🐳 Docker Workflow & Container Enhancements

  • Unified Communication Layer: Replaced fragmented socket handling with a consistent pattern using server actions, improving maintainability and reliability.
  • Startup Script Fixes: Resolved issues with container startup and permission handling by refactoring entrypoint scripts and default runtime permissions.

🧑‍💻 UI Enhancements

  • Improved Client Handling: Introduced deduplication and stable ID extraction for more consistent paired client representation.
  • Code Cleanup: Removed unused client action logic from ClientPageContent and PairedClientsCard, simplifying the UI codebase.
  • Layout Improvements: Refined structure and removed unnecessary UI elements (e.g., disabled search button in the header) to improve clarity.

📦 GitHub Actions & Docker Image Versioning

The GitHub Actions workflow was updated to introduce date-based versioning for container builds. This enables consistent tagging and traceability of releases.

🧩 Versioning Strategy (for stable branch only)

  • Format: YYYYMM.###
    • YYYY = 4-digit year (e.g., 2025)
    • MM = 2-digit month (e.g., 06 for June)
    • ### = 3-digit sequential counter for that month (starting at 001)

🔄 How it Works:

  1. On push to the stable branch:
    • A base version is generated using the current year and month (e.g., 202506)
    • The workflow checks existing Git tags that match the pattern 202506.*
    • It increments the highest existing counter (or starts at .001 if none exist)
    • A new Git tag is created and pushed (e.g., 202506.002)
  2. The Docker image is then published to GHCR using:
    • ghcr.io/<repo>/wolfmanager:202506.002 (date-based version)
    • ghcr.io/<repo>/wolfmanager:latest (latest tag for stable)

🧪 For Non-stable Branches:

  • Manually triggered builds will publish with the sanitised branch name as the image tag (e.g., ghcr.io/<repo>/wolfmanager:update-docker-workflow)

🐛 Bug Fixes

  • Container Startup & Permissions:
    • Fixed broken startup routines due to missing execute flags or incorrect script paths
    • Ensured consistent permissions for mounted sockets and volumes to avoid runtime issues
  • Socket Reliability:
    • Unified the communication logic to reduce edge case errors in client-to-container commands
  • Improved Logging:
    • Enhanced visibility into container state and client session flow for easier troubleshooting

✅ Validation & Testing

  • Successfully built and deployed versioned Docker images using the new CI flow
  • Validated UI behaviour across paired clients, layout changes, and client state syncing
  • Manually tested startup and permission fixes across development and production environments

📌 Notes

These changes lay the foundation for a scalable development and release pipeline.
Future improvements will build on this by introducing plugin support and extended remote pairing capabilities.


🔗 Resolved Issues

This PR addresses and closes the following issues:

  • Resolves #16 – Clients page 404 / Error Loading Clients
  • Resolves #15 – Log File not written to config location

Please review and provide feedback or approval for merge into stable.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/wolfmanager/pull/17 **Author:** [@salty2011](https://github.com/salty2011) **Created:** 6/6/2025 **Status:** ✅ Merged **Merged:** 6/6/2025 **Merged by:** [@salty2011](https://github.com/salty2011) **Base:** `stable` ← **Head:** `update-docker-workflow` --- ### 📝 Commits (10+) - [`3f46a13`](https://github.com/games-on-whales/wolfmanager/commit/3f46a13b069115ab3a8d7a0f23962bc6d3a873d7) FIX: tagging for non stable branch - [`eb04e61`](https://github.com/games-on-whales/wolfmanager/commit/eb04e610f6c6151b7495d9deca29db4566f0b347) Fix GitHub Actions permissions for git tag creation and pushing - [`5e7dbbd`](https://github.com/games-on-whales/wolfmanager/commit/5e7dbbdd7f482dabfe1f22a9dbc2c2a1bd8dc44c) Fix Docker build failure by switching from npm to pnpm - [`1d12d59`](https://github.com/games-on-whales/wolfmanager/commit/1d12d59a40b0bf66617dd927f370b1bfeac1757a) fix: Add build-time environment variables to resolve NextAuth build failure - [`f59cf03`](https://github.com/games-on-whales/wolfmanager/commit/f59cf038eb29d5946f7387f5c1af660e9e2d8f6b) Fix clients page 404 error by removing Next.js standalone mode - [`715d948`](https://github.com/games-on-whales/wolfmanager/commit/715d9485f5e088700699cd2630de764f6e1545c2) Fix: Docker build by switching to use existing user from base image - [`6269542`](https://github.com/games-on-whales/wolfmanager/commit/626954214cb7e2f217cbec36bda168650160f62c) Fix config directory permissions and add socket permission handling - [`0b18995`](https://github.com/games-on-whales/wolfmanager/commit/0b18995364a05b6b3d8e38bc2dd544e3516c6c43) Fix Docker build error - remove invalid shell operators from COPY command - [`773bfe6`](https://github.com/games-on-whales/wolfmanager/commit/773bfe664df75d29ffef5467bf4e42f97085a4cd) Fix config directory permissions during Docker build process - [`d871cdd`](https://github.com/games-on-whales/wolfmanager/commit/d871cdd14d1739ea75bebb0c1393363eb7b3713b) Fix config directory permissions for bind mount scenario ### 📊 Changes **67 files changed** (+5574 additions, -4765 deletions) <details> <summary>View changed files</summary> 📝 `.devcontainer/Dockerfile` (+12 -11) 📝 `.devcontainer/devcontainer.json` (+4 -3) 📝 `.github/workflows/docker-build.yml` (+2 -2) ➖ `.roomodes` (+0 -12) 📝 `LICENSE` (+1 -1) 📝 `README.md` (+195 -263) ➕ `build/.dockerignore` (+87 -0) 📝 `build/Dockerfile` (+66 -11) ➕ `build/README.md` (+215 -0) ➕ `build/docker-compose.production.yml` (+42 -0) 📝 `build/docker-compose.yml` (+10 -1) ➕ `build/docker-entrypoint.sh` (+56 -0) ➕ `build/scripts/setup-groups.sh` (+104 -0) ➕ `build/scripts/setup-permissions.sh` (+52 -0) ➕ `build/scripts/setup-user.sh` (+59 -0) ➕ `build/scripts/utils.sh` (+43 -0) ➖ `docs/features/authentication.md` (+0 -128) ➖ `docs/features/first-time-setup.md` (+0 -310) ➕ `docs/images/clients.png` (+0 -0) ➕ `docs/images/settings.png` (+0 -0) _...and 47 more files_ </details> ### 📄 Description ## 🚀 Lift-Off: First WolfManager Release ### Overview This update introduces major improvements across the WolfManager platform, including: - A unified Docker communication layer - UI refactors for maintainability - A date-based Docker image versioning system - Several important bug fixes As this the first release there are still many bug to be found and resolved. Please log these as part of issues --- ### 🛠️ Key Changes #### 🐳 Docker Workflow & Container Enhancements - **Unified Communication Layer**: Replaced fragmented socket handling with a consistent pattern using server actions, improving maintainability and reliability. - **Startup Script Fixes**: Resolved issues with container startup and permission handling by refactoring entrypoint scripts and default runtime permissions. #### 🧑‍💻 UI Enhancements - **Improved Client Handling**: Introduced deduplication and stable ID extraction for more consistent paired client representation. - **Code Cleanup**: Removed unused client action logic from `ClientPageContent` and `PairedClientsCard`, simplifying the UI codebase. - **Layout Improvements**: Refined structure and removed unnecessary UI elements (e.g., disabled search button in the header) to improve clarity. --- ### 📦 GitHub Actions & Docker Image Versioning The GitHub Actions workflow was updated to introduce **date-based versioning** for container builds. This enables consistent tagging and traceability of releases. #### 🧩 Versioning Strategy (for `stable` branch only) - **Format**: `YYYYMM.###` - `YYYY` = 4-digit year (e.g., 2025) - `MM` = 2-digit month (e.g., 06 for June) - `###` = 3-digit sequential counter for that month (starting at `001`) #### 🔄 How it Works: 1. On push to the `stable` branch: - A base version is generated using the current year and month (e.g., `202506`) - The workflow checks existing Git tags that match the pattern `202506.*` - It increments the highest existing counter (or starts at `.001` if none exist) - A new Git tag is created and pushed (e.g., `202506.002`) 2. The Docker image is then published to GHCR using: - `ghcr.io/<repo>/wolfmanager:202506.002` (date-based version) - `ghcr.io/<repo>/wolfmanager:latest` (latest tag for `stable`) #### 🧪 For Non-`stable` Branches: - Manually triggered builds will publish with the **sanitised branch name** as the image tag (e.g., `ghcr.io/<repo>/wolfmanager:update-docker-workflow`) --- ### 🐛 Bug Fixes - **Container Startup & Permissions**: - Fixed broken startup routines due to missing execute flags or incorrect script paths - Ensured consistent permissions for mounted sockets and volumes to avoid runtime issues - **Socket Reliability**: - Unified the communication logic to reduce edge case errors in client-to-container commands - **Improved Logging**: - Enhanced visibility into container state and client session flow for easier troubleshooting --- ### ✅ Validation & Testing - Successfully built and deployed versioned Docker images using the new CI flow - Validated UI behaviour across paired clients, layout changes, and client state syncing - Manually tested startup and permission fixes across development and production environments --- ### 📌 Notes These changes lay the foundation for a scalable development and release pipeline. Future improvements will build on this by introducing plugin support and extended remote pairing capabilities. --- ### 🔗 Resolved Issues This PR addresses and closes the following issues: - Resolves #16 – Clients page 404 / Error Loading Clients - Resolves #15 – Log File not written to config location Please review and provide feedback or approval for merge into `stable`. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 13:01:51 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolfmanager#40
No description provided.