Commit Graph

1230 Commits

Author SHA1 Message Date
b4073aebac Add comprehensive permission issues guide
- Created PERMISSION_ISSUES_GUIDE.md with detailed solutions for permission problems
- Based on thorough analysis of issues #558, #556, #555, #549, #496, #501, #492, #420
- Includes platform-specific solutions (NixOS, macOS, Windows, Synology)
- Documents critical Docker version requirements (20.x+ recommended)
- Highlights rootless image as recommended solution for permission issues
- Added link to guide in README.md troubleshooting section

Key findings documented:
- Most "Operation not permitted" errors resolved by updating Docker
- Rootless Docker requires using actual Docker UID (e.g., 100999) not 845
- Interrupted chown operations cause inconsistent file ownership
- Rootless images avoid most permission issues entirely

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 14:13:38 +09:00
e8adbf55c1 feat: Add rootless Docker support (#574)
* feat: Add rootless Docker support

Implements #547 - Add support for rootless Docker images to avoid permission issues.

Key changes:
- Add Dockerfile.rootless that runs as UID 1000 by default
- Create simplified entrypoint script without chown operations
- Add build-rootless.py to build rootless variants with -rootless suffix
- Document rootless usage in README-ROOTLESS.md
- Update main README with rootless section

The rootless images eliminate common permission problems by:
- Running as non-root from the start (USER 1000:1000)
- Avoiding recursive chown operations that can cause race conditions
- Using open permissions (777) on directories during build
- Not supporting PUID/PGID environment variables

This provides a cleaner solution for rootless Docker users and those
experiencing permission issues with volumes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Address linting issues in rootless Docker implementation

- Add --no-install-recommends to apt-get install in Dockerfile
- Consolidate consecutive RUN instructions in Dockerfile
- Fix shellcheck warnings: quote variables and use -n instead of \! -z
- These changes improve best practices without affecting functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: Add rootless image building to CI pipeline

- Update docker-build.yml workflow to build rootless variants
- Rootless images are built after regular images with -rootless suffix
- Both use the same multi-architecture build process
- Triggered automatically when buildinfo.json changes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: Unify build system for regular and rootless images

- Create build-unified.py that handles both regular and rootless builds
- Convert build.py and build-rootless.py to wrapper scripts for backwards compatibility
- Update CI workflow to use unified build command
- Add BUILD_MIGRATION.md documentation
- Eliminate code duplication between build scripts
- Support flexible build options: --rootless, --both, --only-stable-latest

This maintains all existing functionality while providing a cleaner, more maintainable build system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: Add Python cache to .gitignore and remove from repo

- Add __pycache__/ and Python compiled files to .gitignore
- Remove accidentally committed __pycache__ directory
- Prevent future Python cache files from being tracked

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: Replace build system with unified solution

- Remove old build.py and build-rootless.py wrapper scripts
- Rename build-unified.py to build.py as the main build script
- Delete BUILD_MIGRATION.md (no longer needed)
- Update CI workflow to use new build.py syntax
- Update documentation in CLAUDE.md and README-ROOTLESS.md

The new build system provides all functionality in a single script:
- Default: builds regular images
- --rootless: builds only rootless images
- --both: builds both regular and rootless images
- --multiarch and --push-tags: work as before

This creates a cleaner, more maintainable build system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: Consolidate rootless documentation and mark as experimental

- Remove separate README-ROOTLESS.md file
- Integrate rootless documentation into main README.md
- Mark rootless support as experimental
- Add clear documentation about limitations and use cases
- Include warning about experimental nature

This consolidates all documentation in one place and makes it clear
that rootless support is still experimental.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-12 13:46:33 +09:00
533789470f Fix buildinfo.json pollution by only keeping latest versions (#579)
Previously, update.sh would accumulate all historical versions in buildinfo.json,
leading to an ever-growing file. This change modifies the script to rebuild
buildinfo.json from scratch with only the current stable and experimental versions.

Changes:
- Replace incremental update logic with complete rebuild
- Create fresh buildinfo.json containing only latest versions
- Preserve all proper tags (stable, latest, version numbers, etc.)
- Fix bash compatibility issue with associative arrays

This ensures buildinfo.json remains clean and only contains the versions
currently being built and published.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-12 12:35:59 +09:00
5b6e0cde8b Add file package to Docker image for better debugging (#578)
The Docker builds have been failing since June 2025 with the error:
'/bin/bash: line 1: file: command not found'

This error occurs when the SHA256 checksum verification fails and the
Dockerfile attempts to run 'file' command to help debug what type of
file was downloaded. However, the 'file' package is not installed in
the debian:stable-slim base image.

This commit adds the 'file' package to the apt-get install list so that
when SHA256 verification fails, we can get better debugging information
about what was actually downloaded (e.g., whether it's an HTML error
page instead of the expected tar.xz file).

While this doesn't fix the root cause of the SHA256 failures, it will
provide better diagnostics to help identify the actual issue.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

Took 55 minutes
2025-07-12 12:21:42 +09:00
00038b5184 Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.60 latest 2025-07-10 12:54:47 +00:00
72c3590cd6 Fix duplicate mod error with Space Age DLC mods (#576) (#577)
Skip downloading built-in DLC mods (elevated-rails, quality, space-age) when UPDATE_MODS_ON_START is enabled. These mods are included with the Space Age DLC and attempting to download them separately causes "Duplicate mod" errors.

- Modified update-mods.sh to skip DLC built-in mods during updates
- Added documentation note explaining the automatic handling of DLC mods

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-09 21:50:59 +09:00
23942e3117 Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.59 2025-07-09 10:29:10 +00:00
15d38ea739 Fix mod version compatibility checking for major version differences (#575)
This fixes issue #517 where the auto mod updater was downloading the wrong
mod versions after updating to Space Age (Factorio 2.0). The problem was that
the version checking logic was incorrectly rejecting compatible mod versions.

Changes:
- Fixed check_game_version() to properly handle major version differences
- Game versions can now run mods designed for older major versions (backward compatibility)
- Game versions correctly reject mods requiring newer versions
- Fixed variable references in check_dependency_version()
- Added clarifying comments about the version checking behavior

This also addresses issue #468 by ensuring mods requiring newer Factorio
versions than currently installed are properly skipped.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-06 19:01:05 +09:00
9464758a7b Updated mods updater script to correctly process mod dependencies (#557)
Co-authored-by: Victor <victor@blockbank.ai>
2025-07-03 19:48:23 +09:00
50f04fb096 Fix README tag pollution from update script (#573)
* fix: Improve README tag generation to reduce clutter

- Modified update.sh to only show the latest and stable versions
- Removed duplicate major.minor version tags
- Changed from listing all versions to showing only the most relevant tags
- Fixed jq query to properly detect stable version using index() instead of contains()

This significantly reduces README pollution by showing only:
- The latest experimental version with its tags
- The current stable version with its tags
- One entry per major.minor version for older releases (removed from this commit)

Before: 60+ lines of tags with many duplicates
After: 2 lines showing only latest and stable versions

* fix: Address shellcheck warnings about subshell variable modifications

- Changed from pipeline to process substitution to avoid SC2030/SC2031 warnings
- Variables modified in the while loop are now properly preserved
- This ensures readme_tags modifications are not lost in subshells
2025-07-03 19:45:29 +09:00
15d31c9a2e docs: Add documentation for PRESET environment variable (#572)
- Add PRESET to the environment variables table
- Include detailed explanation of available preset values
- Add example showing how to use PRESET when generating a new map
- Document that PRESET is optional and only used with GENERATE_NEW_SAVE=true

Fixes #571

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-03 19:32:40 +09:00
8784845385 Add CLAUDE.md with project guidance for Claude Code
- Project overview and architecture description
- Common development commands for building and testing
- Environment variables and configuration details
- Version management and automated update process
- Volume structure and data organization

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-03 19:22:52 +09:00
9f6c781331 Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.58 2025-06-23 15:28:19 +00:00
8a718705b7 Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.57 2025-06-19 17:23:31 +00:00
60277e89f1 Update README_zh_CN.md (#569) 2025-06-18 18:26:44 +09:00
4562f675ea Auto Update Factorio to stable version: 2.0.55 experimental version: 2.0.55 2025-06-05 10:28:37 +00:00
22d02c42fa Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.55 2025-06-02 18:35:06 +00:00
6b3dd77a54 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.54 2025-05-30 16:31:26 +00:00
6d3be9aef1 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.52 2025-05-30 13:34:06 +00:00
bf97066b9c Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.53 2025-05-30 11:19:55 +00:00
c0c235a28d Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.52 2025-05-23 11:20:05 +00:00
d5db1b1281 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.51 2025-05-19 12:53:01 +00:00
0c0349b5d6 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.50 2025-05-16 11:20:16 +00:00
0c1b2f4164 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.49 2025-05-12 17:21:44 +00:00
b36cd87194 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.48 2025-05-12 11:20:54 +00:00
e82cead5f4 Auto Update Factorio to stable version: 2.0.47 experimental version: 2.0.47 2025-05-05 15:26:04 +00:00
d9ff25fa10 Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.47 2025-04-29 19:19:23 +00:00
b7fdff9b94 Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.46 2025-04-29 10:27:22 +00:00
04f20de96c Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.45 2025-04-14 17:21:17 +00:00
fcd2c2e40e Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.44 2025-04-07 17:20:58 +00:00
f02c02f38e Bump peter-evans/dockerhub-description from 4.0.1 to 4.0.2 (#567)
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v4.0.1...v4.0.2)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-version: 4.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-04 11:29:11 +09:00
b4be6993c6 Bump peter-evans/dockerhub-description from 4.0.0 to 4.0.1 (#566)
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 10:47:21 +09:00
a2c11ade50 Auto Update Factorio to stable version: 2.0.43 experimental version: 2.0.43 2025-03-31 13:32:20 +00:00
b334d27cf0 Fix watchtower also updating other containers (#565) 2025-03-31 10:37:23 +09:00
ede09dc402 Auto Update Factorio to stable version: 2.0.42 experimental version: 2.0.43 2025-03-26 14:23:35 +00:00
0929686ad3 Auto Update Factorio to stable version: 2.0.42 experimental version: 2.0.42 2025-03-21 18:31:36 +00:00
317d3731e8 Auto Update Factorio to stable version: 2.0.41 experimental version: 2.0.42 2025-03-19 20:25:30 +00:00
080a70f6be Auto Update Factorio to stable version: 2.0.41 experimental version: 2.0.41 2025-03-14 12:44:07 +00:00
83bffe4b13 Auto Update Factorio to stable version: 2.0.39 experimental version: 2.0.41 2025-03-12 21:21:19 +00:00
14df05cd6d Auto Update Factorio to stable version: 2.0.39 experimental version: 2.0.40 2025-03-12 11:18:51 +00:00
c0e1bae277 Auto Update Factorio to stable version: 2.0.39 experimental version: 2.0.39 2025-03-11 10:25:24 +00:00
370059f2f6 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.39 2025-03-05 18:32:32 +00:00
7e8c89c02a Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.38 2025-03-04 12:45:59 +00:00
1e52dc48c9 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.37 2025-02-26 19:17:45 +00:00
14aa945717 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.36 2025-02-26 15:25:49 +00:00
57bbf46196 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.35 2025-02-20 12:44:29 +00:00
090e771c0c Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.34 2025-02-06 19:17:57 +00:00
9e89a7930e Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.33 2025-01-28 13:25:05 +00:00
20e6176a85 Auto Update Factorio to stable version: 2.0.32 experimental version: 2.0.32 2025-01-23 14:20:03 +00:00
e5e1993c97 Auto Update Factorio to stable version: 2.0.30 experimental version: 2.0.32 2025-01-21 14:20:23 +00:00