Skip to content

Latest commit

Β 

History

History
executable file
Β·
312 lines (237 loc) Β· 13.8 KB

File metadata and controls

executable file
Β·
312 lines (237 loc) Β· 13.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.8.0] - 2026-02-19

Added πŸ†•

  • 🍺 Homebrew package manager integration: New init service for Homebrew installation
    • Added INSTALL_HOMEBREW ENV to enable Homebrew installation (non-root, per-user)
    • Installs Homebrew to $HOME/.linuxbrew/ with automatic PATH setup in .bashrc
    • Requires dependencies: build-essential, procps, curl, file, git
    • Non-interactive installation using official Homebrew install script
  • πŸ€– OpenClaw AI Gateway integration: New dedicated init and svc components
    • Added INSTALL_OPENCLAW ENV to enable OpenClaw installation via npm
    • Added OPENCLAW_PORT, OPENCLAW_BIND, OPENCLAW_TOKEN, OPENCLAW_PASSWORD, OPENCLAW_VERBOSE configuration options
    • Added init-devcoder-openclaw service for installing openclaw@latest globally
    • Added svc-devcoder-openclaw service for running the OpenClaw gateway
    • OpenClaw automatically detects NVM Node.js installations across versions
    • Automatic cleanup of broken OpenClaw installations before reinstall
    • openclaw@latest is now filtered from INSTALL_NPM_PACKAGES to prevent conflicts

Fixed πŸ›

  • πŸ”§ NVM PATH detection: Fixed openclaw binary not found issue
    • Services now dynamically detect NVM Node.js version directories
    • Falls back to /config/.nvm when user home .nvm doesn't exist
    • Uses PUID/PGID to correctly identify target user instead of CUSTOM_USER

Changed πŸ”„

  • πŸ“ Documentation: Updated CLAUDE.md and README.md with OpenClaw configuration

[0.7.0] - 2026-02-07

Added πŸ†•

  • πŸ“š Documentation: Complete ENV variable reference in README.md
    • Added "Other ENV Defaults" section with all system and service variables
    • Documented PUID/PGID, ROOT_PASSWORD, ABC_PASSWORD, S6_MERMAID
    • Added service-specific sections for SSHD, NGROK, SYNCTHING, RustDesk
    • Clarified all timeout and configuration values

Fixed πŸ›

  • πŸ”§ RustDesk installation: Fixed dpkg skip-if-same-version issue
    • Added -E flag to dpkg -i command to skip reinstallation of same version
    • Reduces "dpkg installation failed" errors during container restarts
  • πŸ“¦ Node.js dependencies: Updated NodeSource repository setup for improved key management

Changed πŸ”„

  • ⬆️ Node.js default version: Bumped NODEJS_MOD_VERSION from 16 to 24
    • Fixes deprecated SHA1 signing key issues with Node.js 16.x
    • Uses new NodeSource GPG key format
    • Maintains compatibility with current npm packages
  • πŸ” SSHD initialization: Improved SSH key handling with ABC_PASSWORD support
  • πŸ“ Logging consistency: Standardized logging output across all init scripts
    • Added emoji indicators for better log readability (▢️, β—Ύ, πŸ“¦, ⚠️)
    • Improved start/skip messaging for all installer modules
  • πŸ—‘οΈ Removed .env.example: Deleted obsolete example file in favor of inline documentation

Security πŸ”’

  • πŸ”‘ NodeSource keys: Updated to new GPG key format after 2026-02-01 deprecation

[0.6.15] - 2026-01-22

Fixed πŸ›

  • πŸ”‘ SSHD key generation: Fixed incorrect logic in SSH host key generation
    • Removed unnecessary rm -f /etc/ssh/ssh_host_* that was deleting existing keys
    • Now properly preserves existing SSH keys between container restarts
    • ssh-keygen -A only generates missing keys, no interactive prompts
    • Fixes "Overwrite (y/n)?" prompt that blocked container startup
  • πŸ”’ Security scan workflow: Fixed Trivy/Grype scanning wrong image tag
    • Added VERSION_NO_V output to strip 'v' prefix from Git tags
    • Scanners now use correct Docker tags (e.g., 0.6.15 instead of v0.6.15)
    • Fixes "MANIFEST_UNKNOWN" error in security scans

[0.6.14] - 2026-01-22

Added πŸ†•

  • πŸ“š Documentation: Complete guide for Docker tagging and versioning best practices
    • Added comprehensive "Version Prefix (v) Best Practices" section
    • Documented Git tags (with v) vs Docker tags (without v) conventions
    • Updated workflow examples to match current implementation

Fixed πŸ›

Changed πŸ”„

  • πŸ”§ Workflows: Updated documentation to reflect actual workflow implementation
    • Added workflow_dispatch trigger documentation
    • Documented environment: prod usage
    • Clarified value parameter requirement for docker/metadata-action

Security πŸ”’


[0.6.13] - 2026-01-22

Added πŸ†•

  • πŸ” SSHD PermitRootLogin: New SSHD_PERMITROOTLOGIN env var to allow root SSH login
    • Default: false (root login disabled)
    • Set to true to enable PermitRootLogin yes in sshd_config
    • Works together with SSHD_PORT and ROOT_PASSWORD configuration
  • πŸ”‘ ROOT_PASSWORD support: New ROOT_PASSWORD env var to set root user password
    • Only sets password when variable is defined and not empty
    • Useful in combination with SSHD_PERMITROOTLOGIN=true

Fixed πŸ›

Changed πŸ”„

Security πŸ”’


[0.6.12] - 2026-01-22

Added πŸ†•

  • πŸ–₯️ RustDesk support: New s6-overlay service for RustDesk remote desktop application
    • Configurable via RUSTDESK_INSTALL env var (default: false)
    • Two installation methods:
      • proot: PRoot-based installation (isolated environment)
      • system or true: System package installation via .deb file
    • Supports x86_64, aarch64 (ARM64), and armv7 architectures
    • Automatic dependency installation via gstreamer1.0-pipewire
    • Downloads latest version from GitHub releases

Changed πŸ”„

  • πŸ“ docker-compose.yaml: Improved volume mount comments with clearer SUGGEST/EXAMPLE prefixes
  • πŸ“‚ Projects directory: Added /mnt/data:/projects volume mapping as example for project workspace

Documentation πŸ“š

  • πŸ“‹ workflow-analysis.txt: Added GitHub Actions workflow analysis document with trigger and job information

[0.6.11] - 2026-01-22

Added πŸ†•

  • πŸ”„ workflow_run trigger: Added workflow_run trigger to build-and-push.yml to properly chain workflows
  • 🏷️ Dynamic tag detection: Added get_tag step that determines tag from both workflow_run and push: tags events
  • πŸ“š Complete guide: Updated /tmp/complete-guide-en.md with comprehensive documentation of the new workflow architecture

Fixed πŸ›

  • πŸ”§ GitHub Actions automation: Fixed critical issue where build-and-push.yml wasn't triggering when tags were created by detect-release.yml
    • Root cause: GitHub Actions doesn't trigger on: push: tags: when tags are created by other workflows (security feature to prevent infinite loops)
    • Solution: Implemented workflow_run trigger that reacts to completion of detect-release.yml workflow
    • Fallback: Kept push: tags trigger for manual tag creation workflows

Changed πŸ”„

  • πŸ”„ build-and-push.yml: Updated all references from ${{ github.ref_name }} to ${{ steps.get_tag.outputs.REF_NAME }}
  • πŸ“– Documentation: Enhanced troubleshooting section with workflow_run-specific issues and solutions

Technical Details πŸ› οΈ

  • Dual trigger system: Workflow now supports both automated (via detect-release) and manual tag creation
  • Tag fetching logic: When triggered by workflow_run, workflow fetches the most recent tag using git ls-remote
  • Backward compatible: Manual tag pushes still work via fallback push: tags trigger

[0.6.10] - 2026-01-22

Added πŸ†•

  • πŸ”— code-server symlink: Added /usr/bin/code-server symlink pointing to /usr/bin/codium for compatibility
  • πŸ“ Chrome directory: Created /opt/google/chrome directory structure for compatibility
  • πŸ”— Chrome symlink: Added symlink from /usr/bin/chromium to /opt/google/chrome/chrome for tools expecting Google Chrome

Changed πŸ”„

  • 🐟 Core dumps: Added core.* pattern to .gitignore to exclude core dump files
  • πŸ”§ VSCodium wrapper: Simplified codium launcher - removed duplicate root/user logic, added automatic $HOME directory change when launched without arguments
  • πŸ–₯️ Openbox menu: Removed --password-store="gnome-libsecret" flag from VSCodium menu entry (moved to wrapper)
  • πŸ” SSHD service: Changed from oneshot to longrunning service - now properly keeps SSHD running in foreground
  • βš™οΈ Syncthing default: Changed SYNCTHING_ENABLED default from true to false (users must explicitly enable)
  • πŸ”§ Dockerfile: Added symlinks for code-server and Chrome during build

Removed πŸ—‘οΈ

  • πŸ“„ code-server wrapper: Removed duplicate /usr/bin/code-server script (now symlinked to codium wrapper)

Fixed πŸ›

  • πŸ› SSHD startup: Fixed SSHD service to properly run as longrunning process instead of oneshot initialization

[0.6.9] - 2026-01-21

Added πŸ†•

  • πŸ“Š S6_MERMAID: New environment variable to enable Mermaid dependency diagram generation (default: false)

Changed πŸ”„

  • πŸ“ .env.example: Added missing environment variables (SYNCTHING_ENABLED, S6_MERMAID)

Fixed πŸ›

  • πŸ› svc-s6-tree: Service now respects S6_MERMAID environment variable (previously always ran)

[0.6.8] - 2026-01-21

Added πŸ†•

  • πŸ”§ init-chown-config: New s6-overlay service for proper ownership management of /config directory based on PUID/PGID environment variables
  • πŸ“‹ Syncthing dependency tracking: Added up file to ensure proper initialization order for Syncthing service

Fixed πŸ›

  • πŸ› VSCodium desktop entry: Fixed incorrect Exec path in /usr/share/applications/codium.desktop from /usr/share/codium/codium to /usr/bin/codium for proper application launching

Changed πŸ”„

  • βš™οΈ Syncthing default: Changed SYNCTHING_ENABLED default from true to false - users must explicitly enable Syncthing

Security πŸ”’


[0.6.7] - 2026-01-21

Added πŸ†•

  • πŸ”„ Syncthing: Full file synchronization service with s6-overlay integration
    • Configurable via SYNCTHING_ENABLED env var (default: true)
    • GUI password protection via SYNCTHING_PASSWORD
    • Configurable home/data directories via SYNCTHING_HOME/SYNCTHING_DATA
    • GUI accessible on port 8384
    • Automatic setup with official Syncthing repository
  • πŸ“ SciTE: Lightweight text editor added to base image
  • πŸ“¦ xz-utils: Compression utilities added to base image

Fixed πŸ›

  • πŸ› Trivy/Grype scanners: Corrected scanner configuration with proper scan-type: 'image' for Trivy and string format for severity-cutoff in Grype
  • πŸ› VSCodium data directory: Changed user data directory from /config to $HOME/.codium for better compatibility

Changed πŸ”„

  • βœ… GitHub Actions: Added prod environment to all deployment workflows for proper environment variables/secrets access and deployment tracking
  • πŸ“ Added .claude to .gitignore

Security πŸ”’


[0.6.6] - 2026-01-21

Added πŸ†•

  • πŸ”’ Security scanning: Trivy + Grype vulnerability scanners before image publishing
  • πŸ“Š SARIF reports: Security findings automatically uploaded to GitHub Security tab
  • πŸ—οΈ Multi-platform support: Now builds for both linux/amd64 AND linux/arm64 (Apple Silicon, AWS Graviton, Azure ARM)
  • πŸ“œ SBOM generation: Software Bill of Materials included in every image
  • πŸ” Provenance attestation: Image provenance metadata for supply chain security
  • ⏱️ Timeout protection: All jobs now have proper timeouts (2h for build, 15m for scans)

Changed πŸ”„

  • πŸ”¨ Improved Docker Buildx setup (removed silent error handling)
  • βœ… Enhanced job summaries with platform info and security scan results
  • πŸ“¦ Added security-events: write permission for vulnerability reporting

Fixed πŸ›

  • πŸ› Removed continue-on-error: true from Buildx setup (errors now properly fail the build)

[0.6.5] - 2026-01-21

Added πŸ†•

  • ✨ Initial DevCoder container setup with full VSCodium IDE
  • 🐳 LinuxServer.io base image with s6-overlay for reliable service management
  • 🐍 Python 3 environment with pandas for data science
  • πŸ› οΈ Essential development tools pre-installed: git, gdb, htop, mc, nano, terminator, tint2, rofi
  • πŸ”§ VSCode extensions bundled out-of-the-box:
    • vscode-icons-team.vscode-icons (File icons 🎨)
    • ms-azuretools.vscode-docker (Docker support 🐳)
    • ms-python.python + ms-python.vscode-pylance (Python IntelliSense 🐍)
    • ms-python.flake8 + ms-python.pylint (Python linting πŸ“)
    • ms-pyright.pyright (Type checking πŸ”)
    • redhat.vscode-yaml (YAML support πŸ“„)
    • ms-azuretools.vscode-containers (Container support πŸ“¦)
    • kilocode.kilo-code (AI coding assistant πŸ€–)
    • anthropic.claude-code (Claude Code integration 🧠)
    • mermaidchart.vscode-mermaid-chart (Diagram support πŸ“Š)
  • πŸ‹ Docker-in-Docker support via LinuxServer mods (for containerized development)
  • πŸ”‘ SSH server support (optional, configurable via SSHD_PORT)
  • πŸ’Ύ Persistent volumes for /config and /root directories
  • πŸ”’ Keyring support with IPC_LOCK capability
  • 🌐 Web-based IDE accessible via HTTPS on port 3001
  • πŸ“¦ NPM global package support with @anthropic-ai/claude-code
  • πŸ₯ Health check endpoint for container monitoring

Changed πŸ”„

  • πŸ”¨ Refactored Docker image structure with proper s6-overlay services
  • βš™οΈ Improved build process with conditional chmod operations
  • πŸ“ Added comprehensive environment variable configuration via .env
  • πŸŽ›οΈ Enhanced docker-compose with extensive documentation of available mods

Fixed πŸ›

  • βœ… Fixed 'run' files being ignored in src/ directory (now properly tracked)
  • βœ… Added conditional checks before chmod operations in Dockerfile to prevent build failures
  • βœ… Corrected permissions for s6-overlay service scripts

[0.0.1] - 2025-01-01

Added πŸ†•

  • πŸŽ‰ Initial project commit
  • πŸ“‹ Basic docker-compose configuration skeleton