38 Commits

Author SHA1 Message Date
rE-Bo0t.bx1
15bf141f84 🏗️ build(deps): upgrade Docker actions to latest versions in release and validate workflows 2026-03-09 18:48:52 +08:00
rE-Bo0t.bx1
1f88765494 🏗️ build(deps): upgrade actions/checkout and actions/upload-artifact versions 2026-03-09 18:34:28 +08:00
dependabot[bot]
f7db6fa716 👷 ci(deps): bump aquasecurity/trivy-action from 0.34.1 to 0.35.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.34.1 to 0.35.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.34.1...0.35.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 16:28:22 +08:00
rE-Bo0t.bx1
06cfd0127d 👷 ci(deps): bump Trivy from v0.69.2 to v0.69.3 2026-03-04 10:34:35 +08:00
rE-Bo0t.bx1
ee33d507f7 🐛 fix(ci): pin Trivy to v0.69.2 - v0.69.1 install script broken 2026-03-02 16:36:26 +08:00
rE-Bo0t.bx1
be4f2bc125 feat(v1.1.7): Happy Family support (Tor 0.4.9+ FamilyId)
🔧 New tool: gen-family - generate/view Happy Family keys
  - Supports --force flag to overwrite existing keys without backup prompt

🐳 Dockerfiles: gen-family in both Dockerfile and Dockerfile.edge

🔧 Entrypoint:
- Phase 2: detect *.secret_family_key, log found keys (informational only)
- Guard/exit config gen: append FamilyId + MyFamily from ENV vars
- Bridge intentionally excluded

📊 Status tool: show family key count + Happy Family config state

📚 Docs:
- README: Happy Family section (generate / import), persistence table, flowchart
- ARCHITECTURE: all mermaid diagrams updated (Phase 2, config gen, tools, dirs)
- TOOLS: full gen-family reference with examples and exit codes
- DEPLOYMENT, MIGRATION, MIGRATION-V1.1.X, TROUBLESHOOTING: 5 -> 6 tools
- FAQ, example configs: version bump + FamilyId/MyFamily placeholders
- Directory authority voting: how 9 dirauths vote on relay flags (5/9 consensus)
- CIISS v2 ContactInfo: field reference, generator link, proof:uri-rsa verification
- All TOR_CONTACT_INFO examples updated to CIISS v2 format across templates and docs

📋 Templates:
- Guard/exit/multi-relay compose: TOR_FAMILY_ID + TOR_MY_FAMILY env vars
- All cosmos-compose + docker-compose versions -> 1.1.7

👷 CI: validate.yml gen-family in 8 spots (threshold 6), security tests, quick-test

🛡️ SECURITY.md: 1.1.7 active, 1.1.6 maintenance, gen-family in tools list

🔖 Version bump 1.1.6 -> 1.1.7 across 30+ files, tool count 5 -> 6, CHANGELOG entry

No breaking changes. TOR_FAMILY_ID and TOR_MY_FAMILY are optional.
2026-03-02 16:23:10 +08:00
dependabot[bot]
e861ecb623 👷 ci(deps): bump aquasecurity/trivy-action from 0.34.0 to 0.34.1
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.34.0 to 0.34.1.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.34.0...0.34.1)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.34.1
  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>
2026-02-23 11:39:37 +08:00
dependabot[bot]
040a9e1156 👷 ci(deps): bump aquasecurity/trivy-action from 0.33.1 to 0.34.0
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.33.1 to 0.34.0.
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.33.1...0.34.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 11:55:14 +05:30
rE-Bo0t.bx1
90b65ee469 🔖 release(v1.1.6): bind mount fix, full repo audit, workflow fixes
🔧 Entrypoint:
- Detect wrong ownership on /var/lib/tor and /var/lib/tor/keys at startup
  with actionable chown commands before Tor fails cryptically in Phase 4
- Accept DEBUG=TRUE, DEBUG=1, DEBUG=yes (case-insensitive)
- Fix signal trap bug: inner cleanup_verify_tmp no longer overwrites
  the global TERM/INT handler (could skip graceful shutdown)

🛡️ Security:
- Deprecate all versions < v1.1.5 (CVE-2025-15467, OpenSSL CVSS 9.8)
- Add deprecation notice to README and SECURITY.md
- Update lifecycle tables in CHANGELOG and SECURITY

🐛 Bug Fixes:
- Fix bootstrap detection in migrate-from-official.sh
  (parsed non-existent "bootstrap_percent" field — now "bootstrap")
- Fix health JSON docs across 4 files: uptime_seconds → uptime,
  add missing pid/errors fields, correct reachable type to string
- Fix validate.yml: bash -n → sh -n (POSIX script, not bash)

📚 Documentation:
- Add "Bind Mount Ownership" troubleshooting section to README
- Fix chown 1000:1000 typo → 100:101 in TROUBLESHOOTING-BRIDGE-MIGRATION.md
- Add [1.1.6] changelog entry
- Update version references across 20+ files to v1.1.6
- Update 47x alpine:3.22.2 → 3.23.3 across migration docs/scripts
- Fix tool count 4 → 5 in DEPLOYMENT, ARCHITECTURE, TROUBLESHOOTING
- Remove 5 broken links (CLAUDE.md, CONTRIBUTORS.md, SECURITY-AUDIT-REPORT.md)
- Fix stale image tags (:1.1.1/:1.1.2 → :latest) in 4 files
- Rewrite PR template as clean reusable form

⚙️ Workflow (release.yml):
- Fix duplicate title in release body (name + body both had ## 🧅 header)
- Fix trailing --- not being stripped from changelog extract
- Fix Full Changelog link comparing current tag to itself
- Extract Alpine version from Dockerfile instead of hardcoding
- Add fetch-depth: 0 for git history in release-notes job
- Fix fallback commit range when no conventional commits found

🐳 Dockerfiles:
- Fix stale base.name label (alpine:3.23.0 → alpine:3.23.3)
- Fix trailing whitespace after backslash in Dockerfile.edge

📋 Templates:
- Update cosmos-compose and docker-compose versions to 1.1.6
2026-02-08 16:04:22 +05:30
rE-Bo0t.bx1
5120d0d0e9 feat(v1.1.4): modernize templates, security, and build variants
This update refines the Tor relay configuration and build process:
- Security: Disables DirPort and adopts ciissversion:2 for ContactInfo.
- Performance: Adds IPv6 support and hardware acceleration options.
- Builds: Establishes Stable vs. Edge variants for better testing cycles.
- Tooling: Integrates nyx.config and cleans up legacy tags.
- Sync: Aligns cosmos-compose and docker-compose templates.
- Update retention policy: Keep last 7 versions

No breaking changes introduced.
2025-12-21 03:14:39 +08:00
rE-Bo0t.bx1
b6001c3f7a 🐛 fix(entrypoint): use POSIX-compliant signal names
- Updates the trap command to use 'TERM/INT' instead of 'SIGTERM/SIGINT'. The 'SIG' prefix is undefined in POSIX sh (ShellCheck SC3048), which could prevent graceful shutdown in environments using dash/ash.
2025-12-05 22:56:48 +08:00
rE-Bo0t.bx1
19ec6713d6 👷 feat(ci): add gen-auth tool to validation 2025-12-05 18:22:52 +08:00
rE-Bo0t.bx1
0cb81450f7 🛠️ chore(docker,ci): update image metadata and simplify workflows
- 🐋 docker: update image title and description for stable and edge
- 👷 workflows: simplify names for release and validate files
2025-12-05 18:12:19 +08:00
rE-Bo0t.bx1
7f36fcc805 feat: streamline Dockerfile validation and update Hadolint configuration for Go packages 2025-11-20 21:55:04 +08:00
rE-Bo0t.bx1
4fd8370052 📝 docs(v1.1.1): Clean up GitHub config and workflow comments
- 🧹 Removed verbose and redundant comments from Dependabot config, pull request template, and workflow YAML files
- 📦 Improved readability and maintainability without altering functionality
- 🔧 No behavioral changes introduced, documentation and comment cleanup only
2025-11-15 02:05:25 +08:00
rE-Bo0t.bx1
7ed96a6d07 🔒 ci: Pin Trivy Action to 0.33.1 (revert)
- 🛠️ Updated all workflow steps to use aquasecurity/trivy-action0.33.1
- 📦 Replaced @master to improve stability and reproducibility
2025-11-14 18:21:40 +08:00
rE-Bo0t.bx1
1f82da5252 🔒 ci: Pin Trivy Action to 0.67.2
- 🛠️ Updated all workflow steps to use aquasecurity/trivy-action@0.67.2
- 📦 Replaced @master to improve stability and reproducibility
2025-11-14 18:16:46 +08:00
rE-Bo0t.bx1
da9aea3c2a 🔒 ci: Pin Trivy Action to latest
- 🛠️ Updated all workflow steps to use aquasecurity/trivy-action@latest
- 📦 Replaced @master to improve stability and reproducibility
2025-11-14 18:12:15 +08:00
rE-Bo0t.bx1
05050e935c 🔒 ci: Pin Trivy Action to 0.33.1
🛠️ Updated all workflow steps to use aquasecurity/trivy-action@0.33.1
📦 Replaced @master to improve stability and reproducibility
2025-11-14 18:05:02 +08:00
rE-Bo0t.bx1
4212aa233a 📝 docs(v1.1.1): Documentation, templates, and CI/CD enhancements
- 📘 Added comprehensive docs including FAQ, architecture, and migration guides
- 🧩 Introduced new and updated example configs and templates
- 🧾 Added a pull request template for contributor workflow
- 🧪 Enhanced CI/CD with SBOM generation and improved release notes
- 🛡️ Expanded Trivy security scanning coverage in pipelines
- 🔗 Updated README to reference new docs and the quick start script
2025-11-14 16:42:52 +08:00
rE-Bo0t.bx1
9ed70bdb89 v1.1.1 Security Hardening & Config Enhancement 🛡️
🚀 Major architectural release with a near full rewrite of the entrypoint, validation system, diagnostics, and templates. The image is now ~20MB, fully busybox based, more secure, and more flexible for relay and bridge operators.

🔧 Critical Fixes
- Busybox compatible rewrite of OBFS4V_* parsing for values with spaces.
- Rewritten TOR_CONTACT_INFO validation to prevent crash loops.
- Restored bootstrap logs with Log notice stdout.
- Fixed ENV healthchecks and validation order.
- Resolved busybox regex and quoting issues across the script.

 Features and Enhancements
- Added PT_PORT with complete obfs4 bridge compatibility.
- Support for OR_PORT, PT_PORT, EMAIL, and NICKNAME.
- Rewritten bandwidth logic with correct Rate and Burst translation.
- Unified guard, exit, and bridge via TOR_RELAY_MODE.
- Integrated obfs4 with rewritten diagnostics for status, health, fingerprint, and bridge-line.
- Reliable ENV only mode without torrc files.

📦 Build Improvements
- Image reduced ~45MB to ~20MB with busybox only tools.
- Rewritten healthcheck for ENV and mounted configs.
- Four diagnostic tools rewritten to pure busybox sh.
- Weekly rebuilds with latest Alpine and Tor.

📚 Templates and Documentation
- All templates rewritten and updated with bandwidth options and naming alternatives.
- Updated Cosmos and Docker Compose templates for bridge, guard, exit.
- New templates README with full deployment, migration, and config comparisons.
- Revised Claude file with clearer differences and bandwidth notes.

🔒 Security Hardening
- 32 vulnerabilities fixed across critical, high, medium, low categories.
- Non root runtime with UID 100.
- Strict OBFS4V_* whitelist and rewritten validation.
- No exposed diagnostics ports, docker exec only.
- Smaller attack surface with removed binaries.

🚀 Migration Notes
- From v1.1.0: direct upgrade, no config changes, fingerprint preserved.
- From official obfs4 bridge: one time UID fix required, full ENV compatibility afterward.
- Templates include both TOR_ and official naming for smooth migration.

🧩 Compatibility
- Alpine 3.22.2 base, latest Tor from edge.
- AMD64 and ARM64 supported.
- Works with Docker, Compose, Cosmos Cloud, Portainer.
2025-11-14 02:08:27 +08:00
rE-Bo0t.bx1
5b1a2ee069 🧱 chore(release): bump version to 1.0.8
- Added dynamic Unreleased compare link for changelog auto-updates
- Improved versioning automation and tagging safety
- Fixed newline warning in dependabot.yml
- Unified workflow timezone (Asia/Tokyo) and metadata consistency
- Updated CHANGELOG and docs for v1.0.8
2025-11-06 23:53:29 +08:00
rE-Bo0t.bx1
47db82782f 🧱 chore(release): bump version to 1.0.8
- Added dynamic Unreleased compare link for changelog auto-updates
- Improved versioning automation and tagging safety
- Fixed newline warning in dependabot.yml
- Unified workflow timezone (Asia/Tokyo) and metadata consistency
- Updated CHANGELOG and docs for v1.0.8
2025-11-06 23:42:39 +08:00
rE-Bo0t.bx1
9c941b2ed3 🧠 chore: prepare v1.0.7 – smarter automation, Renovate integration, and CI/CD polish
- 🧹 Removed obsolete .github/release.yml in favor of unified Build workflow
- ⚙️ Updated workflow schedules (Asia/Tokyo timezone) for consistency
- 🧪 Removed redundant validation job and improved release resilience
- 📜 Enhanced changelog extraction and release note clarity
- 🐳 Refined Docker tagging logic to ensure latest always points to newest stable
- 🤖 Added Renovate configuration for Alpine apk pinning (<3.23.0 safety)
- 🔧 Introduced centralized changelog config for structured release notes
- 📖 Updated README and CHANGELOG to reflect v1.0.7 improvements
2025-11-06 23:03:26 +08:00
dependabot[bot]
d952dd197c ci(deps): bump hadolint/hadolint-action from 3.1.0 to 3.3.0 (#6)
Bumps [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) from 3.1.0 to 3.3.0.
- [Release notes](https://github.com/hadolint/hadolint-action/releases)
- [Changelog](https://github.com/hadolint/hadolint-action/blob/master/.releaserc)
- [Commits](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.3.0)

---
updated-dependencies:
- dependency-name: hadolint/hadolint-action
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-06 04:13:07 +08:00
dependabot[bot]
6ed866a250 ci(deps): bump github/codeql-action from 3 to 4 (#5)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-06 04:12:55 +08:00
dependabot[bot]
f43e6c2540 ci(deps): bump actions/download-artifact from 4 to 6 (#4)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-06 04:12:39 +08:00
dependabot[bot]
235c76456f ci(deps): bump actions/upload-artifact from 4 to 5 (#3)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-06 04:12:19 +08:00
rE-Bo0t.bx1
b283f9680e Fix workflow linting issues
- Skip workflow file validation in validate.yml (complex format)
- Fix all line length issues in both workflows
- Remove trailing spaces
- Add newline at end of files
- Shorten long labels to fit 80 character limit
2025-11-06 04:07:52 +08:00
rE-Bo0t.bx1
300a26bdd6 Release v1.0.3
- Fix workflow timeout issues
- Add workflow_run trigger for automatic releases
- Improve line length compliance
- Add support for validated builds
- Update Docker image tagging strategy
2025-11-06 03:45:38 +08:00
rE-Bo0t.bx1
13b0f1d8c4 fix: ensure workflows continue on error and validate all steps 2025-11-06 03:23:40 +08:00
rE-Bo0t.bx1
be9312faaa feat: smart diagnostics + Docker Hub publishing 2025-11-06 02:52:29 +08:00
rE-Bo0t.bx1
05a08e1366 feat: smart diagnostics + Docker Hub publishing 2025-11-06 02:06:46 +08:00
rE-Bo0t.bx1
b8a495523d fix: clean up cron comment and improve formatting in release workflows 2025-11-06 01:45:09 +08:00
rE-Bo0t.bx1
66bc720ff2 chore(release): v1.0.3 – unified workflows, dual registry publishing, and lint compliance 2025-11-06 01:36:54 +08:00
rE-Bo0t.bx1
25fd7a09d7 feat(security): enforce localhost-only binding for internal services (v1.0.2)
BREAKING CHANGE: Internal services now bind to 127.0.0.1 by default

This release enforces strict port security with a two-tier model:
- Public: 9001 (ORPort), 9030 (DirPort)
- Internal: 9035+ (metrics, health, dashboard) - localhost-only

Changes:
- CHANGELOG.md: Updated version entries, aligned to v1.0.2
- README.md: Updated version references and deployment examples
- SECURITY.md: Enhanced with network architecture and port policy
- relay-status.sh: Added port security validation (v1.0.2)
- integration-check.sh: Added port/version validation phases (v1.0.2)

Security Improvements:
- Prevents unauthorized external access to internal endpoints
- Adds reverse proxy, SSH tunnel, and VPN access guidance
- Includes comprehensive migration guide for existing deployments
- Adds automated security validation in diagnostic tools

Migration Required:
If accessing metrics/health externally, use reverse proxy with auth,
SSH tunneling, or VPN. See SECURITY.md for details.

Version: 1.0.2
2025-11-05 21:28:55 +08:00
rE-Bo0t.bx1
883f6e5ef4 fix: quote YAML values with colons in validate.yml 2025-11-05 21:28:54 +08:00
rE-Bo0t.bx1
95165aae95 feat: v1.1 repository restructuring
Reorganize into professional directory structure:
- Add 6 comprehensive documentation files
- Update Dependabot configuration
- Update README for better navigation
- Create docs/, templates/, tools/, .github/ structure

See RESTRUCTURING-SUMMARY.md for complete details.

BREAKING CHANGES: None - fully backward compatible
2025-11-05 21:28:10 +08:00