Projects
home:rottame:vhosts-ng
rubygem-nginx-controller
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 19
View file
rubygem-nginx-controller.changes
Changed
@@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Wed Jul 29 14:15:59 UTC 2026 - Angelo Grossini <rottame@intercom.it> + +- feat(crowdsec): Add CrowdSec integration and Cloudflare support in NginxController +- Update gem version to 2.3.0 +- Implement methods for CrowdSec log paths and bouncer control +- Enhance Nginx templates to conditionally include CrowdSec configurations +- Add support for Cloudflare detection in service logic + +------------------------------------------------------------------- Thu May 21 09:46:32 UTC 2026 - Angelo Grossini <rottame@intercom.it> - bugfixes
View file
rubygem-nginx-controller.spec
Changed
@@ -1,7 +1,7 @@ %define mod_name nginx-controller %define mod_full_name %{mod_name}-%{version} Name: rubygem-nginx-controller -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: vhng nginx controller License: Apache-2.0
View file
nginx-controller-2.2.0.gem/checksums.yaml.gz -> nginx-controller-2.3.0.gem/checksums.yaml.gz
Changed
@@ -1,7 +1,7 @@ --- SHA256: - metadata.gz: 1176779e0a3d4e3acb884326cf16b5209e323136778ad02c2d46e98a41ca9173 - data.tar.gz: 4ac18cfed6496b98950faacf6b9169c353b205f86f924a67c8126a5154525dcb + metadata.gz: 605693bfa46f4fb7ae573d50f4ef1ae4c7e650167a296ac674730bc758fb63e8 + data.tar.gz: 3135e86995c5e4badfe462a8817b2a73b7508c5f693d45ec750db8e470b6288f SHA512: - metadata.gz: c9208c916a8aaf6bd522fe13b1551a5b7d65a306501e6701b69045a101f73fa09e4bd9786da6264dc7b71a6f01b7871a08894bbe6a157e0516bec9e7d1793de3 - data.tar.gz: da4c9153169b43d50fa391a2079300411dd3b597dd7c25ed5d04a8ba672cb6179c76b40be94f8f5e8bd26870886d5efd39ae9296a825d8508e4435422dcf540c + metadata.gz: 6b6543e5a02c61eb763f8c488492670ad86b9b542853816fdd293cf897e19f865c7428296f9195e2506ca3ffd05ec491eaf2335577a1193ce3f68f5d3aeaa323 + data.tar.gz: ed0cad04f967f682a46119f2b097460afc1dab63015b8858783e8badb3713655a87ffc3bd003585b6a4f4e9e754852da669620371a4d5723c987e24cbcf16222
View file
nginx-controller-2.2.0.gem/data/lib/nginx_controller/base_service.rb -> nginx-controller-2.3.0.gem/data/lib/nginx_controller/base_service.rb
Changed
@@ -42,6 +42,26 @@ raise 'unimplemented' end + def behind_cloudflare? + raise 'unimplemented' + end + + def want_crowdsec? + ENV'CROWDSEC_LOG_PATH'.present? + end + + def crowdsec_error_log + want_crowdsec? ? File.join(ENV'CROWDSEC_LOG_PATH', 'crowdsec.error.log') : nil + end + + def crowdsec_access_log + want_crowdsec? ? File.join(ENV'CROWDSEC_LOG_PATH', 'crowdsec.access.log') : nil + end + + def disable_crowdsec_bouncer? + ENV'DISABLE_CROWDSEC_BOUNCER'.to_s == 'true' + end + def config_filename File.join('/etc/nginx/vhosts.d/', "#{name}.conf") end @@ -107,7 +127,8 @@ end File.open(config_filename, 'wb+') {|f| f.write(config)} begin - out = `nginx -t 2>&1` + conf_flag = ENV'NGINX_TEST_CONF'.present? ? "-c #{ENV'NGINX_TEST_CONF'}" : "" + out = `nginx -t #{conf_flag} 2>&1` raise StandardError.new(out) unless $?.success? rescue FileUtils.mv(config_filename, "#{config_filename}.err")
View file
nginx-controller-2.2.0.gem/data/lib/nginx_controller/docker/service.rb -> nginx-controller-2.3.0.gem/data/lib/nginx_controller/docker/service.rb
Changed
@@ -194,6 +194,14 @@ labels'vhosts-ng/service/access-log' || (raise StandardError.new("#{self.name}: access log not defined")) end + def behind_cloudflare? + labels'vhosts-ng/cloudflare'.to_s == 'true' + end + + def want_crowdsec? + super && labels'vhosts-ng/crowdsec'.to_s != 'false' + end + def access_rules @access_rules ||= begin rules = {}
View file
nginx-controller-2.2.0.gem/data/lib/nginx_controller/templates/default.erb -> nginx-controller-2.3.0.gem/data/lib/nginx_controller/templates/default.erb
Changed
@@ -7,6 +7,15 @@ access_log /storage/logs/default/access.log main; error_log /storage/logs/default/error.log; + <% if want_crowdsec? %> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end %> + root /srv/www/htdocs/; error_page 404 500 502 503 504 /index.html; @@ -33,6 +42,15 @@ ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305; + <% if want_crowdsec? %> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end %> + access_log /storage/logs/default/access.log main; error_log /storage/logs/default/error.log; @@ -51,6 +69,15 @@ server_name <%= validation_host %>; + <% if want_crowdsec? %> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end %> + access_log /storage/logs/validation/access.log main; error_log /storage/logs/validation/error.log;
View file
nginx-controller-2.2.0.gem/data/lib/nginx_controller/templates/nginx.erb -> nginx-controller-2.3.0.gem/data/lib/nginx_controller/templates/nginx.erb
Changed
@@ -4,6 +4,19 @@ server_name <%= servername, aliases.flatten.uniq.join(' ') %>; + <% if want_crowdsec? -%> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end -%> + + <% if behind_cloudflare? -%> + if ($is_behind_proxy = "0") { return 444; } + <% end -%> + access_log <%= access_log %> main; error_log <%= error_log %>; @@ -24,12 +37,27 @@ <% if ssl? && ssl_certs.any? -%> <% ssl_certs.each do | cert | -%> +<% names = cert.names & servername, aliases.flatten.uniq -%> +<% if names.any? -%> server { listen 443 ssl; http2 on; server_tokens off; - server_name <%= cert.names.join(' ') %>; + server_name <%= names.join(' ') %>; + + <% if want_crowdsec? -%> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end -%> + + <% if behind_cloudflare? -%> + if ($is_behind_proxy = "0") { return 444; } + <% end -%> access_log <%= access_log %> main; error_log <%= error_log %>; @@ -44,6 +72,7 @@ } <% end -%> <% end -%> +<% end -%> <% if auto_route -%> server { @@ -52,6 +81,19 @@ server_name <%= auto_route %>; + <% if want_crowdsec? -%> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end -%> + + <% if behind_cloudflare? -%> + if ($is_behind_proxy = "0") { return 444; } + <% end -%> + access_log <%= access_log %> main; error_log <%= error_log %>; @@ -82,6 +124,19 @@ server_name <%= auto_route %>; + <% if want_crowdsec? -%> + access_log <%= crowdsec_access_log %> crowdsec; + error_log <%= crowdsec_error_log %>; + + <% unless disable_crowdsec_bouncer? %> + include crowdsec_access.conf; + <% end %> + <% end -%> + + <% if behind_cloudflare? -%> + if ($is_behind_proxy = "0") { return 444; } + <% end -%> + access_log <%= access_log %> main; error_log <%= error_log %>;
View file
nginx-controller-2.2.0.gem/metadata.gz -> nginx-controller-2.3.0.gem/metadata.gz
Changed
@@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: nginx-controller version: !ruby/object:Gem::Version - version: 2.2.0 + version: 2.3.0 platform: ruby authors: - Angelo Grossini autorequire: bindir: bin cert_chain: -date: 2026-05-21 00:00:00.000000000 Z +date: 2026-07-29 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rspec
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.