diff --git a/CHANGELOG.md b/CHANGELOG.md index 95d850d5..3d68ae90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## [0.2.20] - 2025-09-01 +- Ensured Itsi server can run within a read-only file-system + ## [0.2.19] - 2025-08-09 - Fixed shutdown hook incorrectly being skipped - Documentation fixes diff --git a/Cargo.lock b/Cargo.lock index 67962a76..92a62577 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "itsi-scheduler" -version = "0.2.19" +version = "0.2.20" dependencies = [ "bytes", "derive_more", @@ -1662,7 +1662,7 @@ dependencies = [ [[package]] name = "itsi-server" -version = "0.2.19" +version = "0.2.20" dependencies = [ "argon2", "async-channel", diff --git a/Gemfile.lock b/Gemfile.lock index 617a47f2..a02357ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,20 +1,20 @@ PATH remote: . specs: - itsi (0.2.19) - itsi-scheduler (~> 0.2.19) - itsi-server (~> 0.2.19) + itsi (0.2.20) + itsi-scheduler (~> 0.2.20) + itsi-server (~> 0.2.20) PATH remote: gems/scheduler specs: - itsi-scheduler (0.2.19) + itsi-scheduler (0.2.20) rb_sys (~> 0.9.91) PATH remote: gems/server specs: - itsi-server (0.2.19) + itsi-server (0.2.20) json (~> 2) prism (~> 1.4) rack (>= 1.6) diff --git a/crates/itsi_scheduler/Cargo.toml b/crates/itsi_scheduler/Cargo.toml index 8b6ff399..6d944f91 100644 --- a/crates/itsi_scheduler/Cargo.toml +++ b/crates/itsi_scheduler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "itsi-scheduler" -version = "0.2.19" +version = "0.2.20" edition = "2021" authors = ["Wouter Coppieters "] license = "MIT" diff --git a/crates/itsi_server/Cargo.toml b/crates/itsi_server/Cargo.toml index 1410ab2d..03326c3d 100644 --- a/crates/itsi_server/Cargo.toml +++ b/crates/itsi_server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "itsi-server" -version = "0.2.19" +version = "0.2.20" edition = "2021" authors = ["Wouter Coppieters "] license = "MIT" diff --git a/gems/scheduler/Cargo.lock b/gems/scheduler/Cargo.lock index b1341c9d..e819ac06 100644 --- a/gems/scheduler/Cargo.lock +++ b/gems/scheduler/Cargo.lock @@ -213,7 +213,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "itsi-scheduler" -version = "0.2.19" +version = "0.2.20" dependencies = [ "bytes", "derive_more", diff --git a/gems/scheduler/lib/itsi/scheduler/version.rb b/gems/scheduler/lib/itsi/scheduler/version.rb index d80410a2..5f87b508 100644 --- a/gems/scheduler/lib/itsi/scheduler/version.rb +++ b/gems/scheduler/lib/itsi/scheduler/version.rb @@ -2,6 +2,6 @@ module Itsi class Scheduler - VERSION = "0.2.19" + VERSION = "0.2.20" end end diff --git a/gems/server/Cargo.lock b/gems/server/Cargo.lock index 83d77fe4..c46764f5 100644 --- a/gems/server/Cargo.lock +++ b/gems/server/Cargo.lock @@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "itsi-server" -version = "0.2.19" +version = "0.2.20" dependencies = [ "argon2", "async-channel", diff --git a/gems/server/lib/itsi/server.rb b/gems/server/lib/itsi/server.rb index 11a9d379..7e70cfa3 100644 --- a/gems/server/lib/itsi/server.rb +++ b/gems/server/lib/itsi/server.rb @@ -94,6 +94,8 @@ def stop_background_threads def write_pid File.write(Itsi::Server::Config.pid_file_path, Process.pid) + rescue => e + Itsi.log_error e.message end def get_pid(warn = true) diff --git a/gems/server/lib/itsi/server/config.rb b/gems/server/lib/itsi/server/config.rb index 79ec76a2..b3a1f8c9 100644 --- a/gems/server/lib/itsi/server/config.rb +++ b/gems/server/lib/itsi/server/config.rb @@ -9,6 +9,7 @@ module Config require_relative "default_app/default_app" ITSI_DEFAULT_CONFIG_FILE = "Itsi.rb" + ITSI_SERVER_PID_DIR = ENV.fetch("ITSI_SERVER_PID_DIR", "tmp") def self.prep_reexec! @argv ||= ARGV[0...ARGV.index("--listeners")] @@ -248,8 +249,8 @@ def self.config_file_path(config_file_path = nil) end def self.pid_file_path - if Dir.exist?("tmp") - File.join("tmp", "itsi.pid") + if Dir.exist?(ITSI_SERVER_PID_DIR) + File.join(ITSI_SERVER_PID_DIR, "itsi.pid") else ".itsi.pid" end diff --git a/gems/server/lib/itsi/server/version.rb b/gems/server/lib/itsi/server/version.rb index a8d10a70..26a0291a 100644 --- a/gems/server/lib/itsi/server/version.rb +++ b/gems/server/lib/itsi/server/version.rb @@ -2,6 +2,6 @@ module Itsi class Server - VERSION = "0.2.19" + VERSION = "0.2.20" end end diff --git a/itsi.gemspec b/itsi.gemspec index 89864c9d..49c05cd2 100644 --- a/itsi.gemspec +++ b/itsi.gemspec @@ -33,6 +33,6 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] - spec.add_dependency 'itsi-scheduler', '~> 0.2.19' - spec.add_dependency 'itsi-server', '~> 0.2.19' + spec.add_dependency 'itsi-scheduler', '~> 0.2.20' + spec.add_dependency 'itsi-server', '~> 0.2.20' end diff --git a/lib/itsi/version.rb b/lib/itsi/version.rb index 41bcee96..376fc3da 100644 --- a/lib/itsi/version.rb +++ b/lib/itsi/version.rb @@ -1,3 +1,3 @@ module Itsi - VERSION = '0.2.19' + VERSION = "0.2.20" end