Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2beff22afc
|
||
|
|
5e8ac6de93
|
||
|
|
e051a6b505
|
||
|
|
cafc4b6f62
|
||
|
|
e2cb6032a5
|
||
|
|
1d4c415dd8
|
+1
-1
Submodule nodes updated: 528c84f98f...13c12de574
@@ -87,7 +87,7 @@ node.default['lndhub-go']['branding'] = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.default['nbxplorer']['repo'] = 'https://github.com/dgarage/NBXplorer'
|
node.default['nbxplorer']['repo'] = 'https://github.com/dgarage/NBXplorer'
|
||||||
node.default['nbxplorer']['revision'] = 'v2.6.10'
|
node.default['nbxplorer']['revision'] = 'v2.5.26'
|
||||||
node.default['nbxplorer']['source_dir'] = '/opt/nbxplorer'
|
node.default['nbxplorer']['source_dir'] = '/opt/nbxplorer'
|
||||||
node.default['nbxplorer']['config_path'] = "/home/#{node['bitcoin']['username']}/.nbxplorer/Main/settings.config"
|
node.default['nbxplorer']['config_path'] = "/home/#{node['bitcoin']['username']}/.nbxplorer/Main/settings.config"
|
||||||
node.default['nbxplorer']['port'] = '24445'
|
node.default['nbxplorer']['port'] = '24445'
|
||||||
@@ -95,7 +95,7 @@ node.default['nbxplorer']['postgres']['database'] = 'nbxplorer'
|
|||||||
node.default['nbxplorer']['postgres']['user'] = 'nbxplorer'
|
node.default['nbxplorer']['postgres']['user'] = 'nbxplorer'
|
||||||
|
|
||||||
node.default['btcpay']['repo'] = 'https://github.com/btcpayserver/btcpayserver'
|
node.default['btcpay']['repo'] = 'https://github.com/btcpayserver/btcpayserver'
|
||||||
node.default['btcpay']['revision'] = 'v2.4.2'
|
node.default['btcpay']['revision'] = 'v2.3.7'
|
||||||
node.default['btcpay']['source_dir'] = '/opt/btcpay'
|
node.default['btcpay']['source_dir'] = '/opt/btcpay'
|
||||||
node.default['btcpay']['config_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/Main/settings.config"
|
node.default['btcpay']['config_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/Main/settings.config"
|
||||||
node.default['btcpay']['log_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/debug.log"
|
node.default['btcpay']['log_path'] = "/home/#{node['bitcoin']['username']}/.btcpayserver/debug.log"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ bash 'build_btcpay' do
|
|||||||
systemctl stop btcpayserver.service
|
systemctl stop btcpayserver.service
|
||||||
./build.sh
|
./build.sh
|
||||||
EOH
|
EOH
|
||||||
environment "DOTNET_CLI_TELEMETRY_OPTOUT" => "1"
|
environment "DOTNET_CLI_TELEMETRY_OPTOUT" => 1
|
||||||
action :nothing
|
action :nothing
|
||||||
notifies :restart, "service[btcpayserver]", :delayed
|
notifies :restart, "service[btcpayserver]", :delayed
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Recipe:: rtl
|
# Recipe:: rtl
|
||||||
#
|
#
|
||||||
|
|
||||||
node.override["kosmos_nodejs"]["version"] = "22.23.1"
|
node.override["kosmos_nodejs"]["version"] = "18.20.8"
|
||||||
include_recipe 'kosmos-nodejs'
|
include_recipe 'kosmos-nodejs'
|
||||||
|
|
||||||
app_name = "rtl"
|
app_name = "rtl"
|
||||||
|
|||||||
@@ -2,20 +2,6 @@
|
|||||||
|
|
||||||
This file is used to list changes made in each version of the kosmos_gitea cookbook.
|
This file is used to list changes made in each version of the kosmos_gitea cookbook.
|
||||||
|
|
||||||
# 0.2.2
|
|
||||||
|
|
||||||
- Add `config.yaml` for the gitea actions runner, enabling the built-in cache
|
|
||||||
server (listening on the Docker bridge gateway `172.17.0.1`) and bumping
|
|
||||||
`runner.capacity` to 2 for concurrent job execution. Each runner gets a unique
|
|
||||||
cache port derived from `cache_base_port` (8088) + its index in the runners
|
|
||||||
data bag.
|
|
||||||
- Set `container.network` to a user-defined Docker bridge network
|
|
||||||
(`gitea-actions`, subnet `172.20.0.0/16`) so job containers get DNS resolution
|
|
||||||
for service containers (e.g. `redis`) while keeping the cache server reachable
|
|
||||||
at the network gateway `172.20.0.1`.
|
|
||||||
- Open the cache port in the firewall for Docker bridge traffic
|
|
||||||
(`172.20.0.0/16`), fixing `Request timeout` errors from `actions/cache`.
|
|
||||||
|
|
||||||
# 0.1.0
|
# 0.1.0
|
||||||
|
|
||||||
Initial release.
|
Initial release.
|
||||||
|
|||||||
@@ -25,17 +25,3 @@ node.default["gitea"]["config"] = {
|
|||||||
|
|
||||||
node.default["gitea"]["runner"]["version"] = "2.0.0"
|
node.default["gitea"]["runner"]["version"] = "2.0.0"
|
||||||
node.default["gitea"]["runner"]["checksum"] = "447156b33407ee045409f5552bd4a188a315cdd4085b4b498d8d4a9ad26c9f73"
|
node.default["gitea"]["runner"]["checksum"] = "447156b33407ee045409f5552bd4a188a315cdd4085b4b498d8d4a9ad26c9f73"
|
||||||
node.default["gitea"]["runner"]["cache_base_port"] = 8088
|
|
||||||
node.default["gitea"]["runner"]["config"] = {
|
|
||||||
"runner" => {
|
|
||||||
"capacity" => 2
|
|
||||||
},
|
|
||||||
"container" => {
|
|
||||||
"network" => "gitea-actions" # User-defined bridge network: provides DNS for service containers
|
|
||||||
},
|
|
||||||
"cache" => {
|
|
||||||
"enabled" => true,
|
|
||||||
"host" => "172.20.0.1" # Gateway of the gitea-actions network, reachable from job containers
|
|
||||||
# Port is set per-runner (cache_base_port + index) in the runner recipe
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
# Increase if you have very long User-Agent strings
|
|
||||||
map_hash_bucket_size 256;
|
|
||||||
|
|
||||||
# Bot user agents
|
|
||||||
map $http_user_agent $bot_name {
|
|
||||||
default "";
|
|
||||||
~*ClaudeBot "claude";
|
|
||||||
~*Sogou "sogou";
|
|
||||||
~*meta-externalagent "meta-externalagent";
|
|
||||||
# add more as needed
|
|
||||||
}
|
|
||||||
|
|
||||||
# Decide the rate-limit key (per-IP for each bot in this example)
|
|
||||||
map $bot_name $bot_limit_key {
|
|
||||||
default "";
|
|
||||||
"claude" $binary_remote_addr;
|
|
||||||
"sogou" $binary_remote_addr;
|
|
||||||
"meta-externalagent" $binary_remote_addr;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Shared memory zone – only non-empty keys are counted
|
|
||||||
limit_req_zone $bot_limit_key zone=bots:20m rate=240r/m; # 4r/s per IP+bot
|
|
||||||
|
|
||||||
# Status code returned when the limit is exceeded
|
|
||||||
limit_req_status 429;
|
|
||||||
@@ -4,7 +4,7 @@ maintainer_email 'ops@kosmos.org'
|
|||||||
license 'MIT'
|
license 'MIT'
|
||||||
description 'Installs/configures Gitea'
|
description 'Installs/configures Gitea'
|
||||||
long_description 'Installs/configures Gitea'
|
long_description 'Installs/configures Gitea'
|
||||||
version '0.2.2'
|
version '0.2.1'
|
||||||
chef_version '>= 14.0'
|
chef_version '>= 14.0'
|
||||||
|
|
||||||
depends "firewall"
|
depends "firewall"
|
||||||
|
|||||||
@@ -17,14 +17,6 @@ tls_cert_for domain do
|
|||||||
action :create
|
action :create
|
||||||
end
|
end
|
||||||
|
|
||||||
# Slow down requests from bots
|
|
||||||
cookbook_file "#{node["openresty"]["dir"]}/conf.d/rate_limits.conf" do
|
|
||||||
source "rate_limits.conf"
|
|
||||||
owner "root"
|
|
||||||
group "root"
|
|
||||||
mode "0644"
|
|
||||||
end
|
|
||||||
|
|
||||||
openresty_site domain do
|
openresty_site domain do
|
||||||
template "nginx_conf_web.erb"
|
template "nginx_conf_web.erb"
|
||||||
variables server_name: domain,
|
variables server_name: domain,
|
||||||
|
|||||||
@@ -35,39 +35,14 @@ directory "#{working_directory}/runners" do
|
|||||||
mode "0700"
|
mode "0700"
|
||||||
end
|
end
|
||||||
|
|
||||||
execute "create_gitea_actions_network" do
|
runners.each do |runner|
|
||||||
command "docker network create --subnet 172.20.0.0/16 gitea-actions"
|
|
||||||
not_if "docker network inspect gitea-actions"
|
|
||||||
end
|
|
||||||
|
|
||||||
runners.each_with_index do |runner, index|
|
|
||||||
runner_name = "gitea-runner-#{runner["org"]}"
|
runner_name = "gitea-runner-#{runner["org"]}"
|
||||||
runner_dir = "#{working_directory}/runners/#{runner["org"]}"
|
runner_dir = "#{working_directory}/runners/#{runner["org"]}"
|
||||||
cache_port = node["gitea"]["runner"]["cache_base_port"] + index
|
|
||||||
|
|
||||||
directory runner_dir do
|
directory runner_dir do
|
||||||
mode "0700"
|
mode "0700"
|
||||||
end
|
end
|
||||||
|
|
||||||
runner_config = node["gitea"]["runner"]["config"].to_hash
|
|
||||||
runner_config["cache"] = runner_config["cache"].merge("port" => cache_port)
|
|
||||||
|
|
||||||
firewall_rule "runner_cache_#{runner["org"]}" do
|
|
||||||
command :allow
|
|
||||||
port cache_port
|
|
||||||
protocol :tcp
|
|
||||||
source "172.20.0.0/16"
|
|
||||||
end
|
|
||||||
|
|
||||||
template "#{runner_dir}/config.yaml" do
|
|
||||||
source "runner.config.yaml.erb"
|
|
||||||
mode "0640"
|
|
||||||
owner "root"
|
|
||||||
group "root"
|
|
||||||
variables(config: runner_config)
|
|
||||||
notifies :restart, "service[#{runner_name}]", :delayed
|
|
||||||
end
|
|
||||||
|
|
||||||
bash "register_#{runner["org"]}_runner" do
|
bash "register_#{runner["org"]}_runner" do
|
||||||
cwd runner_dir
|
cwd runner_dir
|
||||||
code <<-EOF
|
code <<-EOF
|
||||||
@@ -92,7 +67,7 @@ gitea_runner register \
|
|||||||
Type: "simple",
|
Type: "simple",
|
||||||
WorkingDirectory: runner_dir,
|
WorkingDirectory: runner_dir,
|
||||||
Environment: "HOME=/root",
|
Environment: "HOME=/root",
|
||||||
ExecStart: "/usr/local/bin/gitea_runner daemon --config #{runner_dir}/config.yaml",
|
ExecStart: "/usr/local/bin/gitea_runner daemon",
|
||||||
ExecStartPre: "/bin/sleep 3", # Wait for Gitea's API to be up when restarting at the same time
|
ExecStartPre: "/bin/sleep 3", # Wait for Gitea's API to be up when restarting at the same time
|
||||||
Restart: "always",
|
Restart: "always",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ server {
|
|||||||
|
|
||||||
proxy_intercept_errors on;
|
proxy_intercept_errors on;
|
||||||
|
|
||||||
# Rate limit for bots. Defined in /etc/openresty/conf.d/rate_limits.conf
|
|
||||||
limit_req zone=bots burst=10; # allow a larger spike for asset bursts
|
|
||||||
|
|
||||||
location ~ ^/(avatars|repo-avatars)/.*$ {
|
location ~ ^/(avatars|repo-avatars)/.*$ {
|
||||||
proxy_buffers 1024 8k;
|
proxy_buffers 1024 8k;
|
||||||
proxy_pass http://_gitea_web;
|
proxy_pass http://_gitea_web;
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
<%= @config.to_yaml.sub(/^---\n/, '') %>
|
|
||||||
@@ -89,11 +89,6 @@ jobs = node["kosmos_prometheus"]["jobs"].merge(
|
|||||||
"query" => "role:garage_node",
|
"query" => "role:garage_node",
|
||||||
"port" => 3903
|
"port" => 3903
|
||||||
},
|
},
|
||||||
# strfry relay metrics
|
|
||||||
"strfry" => {
|
|
||||||
"query" => "role:strfry",
|
|
||||||
"port" => 7777
|
|
||||||
},
|
|
||||||
}.transform_values do |config|
|
}.transform_values do |config|
|
||||||
{
|
{
|
||||||
"targets" => search(:node, config["query"]).map do |n|
|
"targets" => search(:node, config["query"]).map do |n|
|
||||||
|
|||||||
@@ -31,10 +31,6 @@ server {
|
|||||||
proxy_pass http://_substr;
|
proxy_pass http://_substr;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /metrics {
|
|
||||||
return 404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
|||||||
+1
-1
Submodule site-cookbooks/strfry updated: 9c04b393ec...2c6e64d231
Reference in New Issue
Block a user