Replace the per-bot and per-vhost recipes with a single data-driven setup. - resources/bot.rb (kosmos_hubot_bot): git checkout, npm install, generated external-scripts.json, extra files, and one hardened systemd unit for every hubot (Type=simple, Restart=always, RestartSec=2, TimeoutSec=10, PrivateTmp, ProtectSystem=full, NoNewPrivileges, PrivateDevices) - recipes/default.rb: shared setup + loop over node['kosmos-hubot']['bots']; recipes/nginx.rb: loop over node['kosmos-hubot']['vhosts']; recipes/hal8000_extras.rb: augments the hal8000 bot (searched IPFS/RSK hosts, kredits .env, wallet) and declares no resources itself - bot config and vhosts now live in attributes; secrets come from the encrypted credentials/hubot bag via secret_env - Node 22.23.4; kosmos_redis replaces redisio; REDIS_URL uses ?<prefix>; the adapter is passed as -a <module>; botka gains hubot-incoming-webhook - roles/hubot, nginx_proxy, openresty_proxy and the chef-nodes pointer updated
43 lines
888 B
Ruby
43 lines
888 B
Ruby
name "nginx_proxy"
|
|
|
|
override_attributes(
|
|
'nginx' => {
|
|
'server_names_hash_bucket_size' => 128
|
|
},
|
|
'tor' => {
|
|
'HiddenServices' => {
|
|
'web' => {
|
|
'HiddenServicePorts' => ['80 127.0.0.1:80', '443 127.0.0.1:443']
|
|
}
|
|
}
|
|
}
|
|
)
|
|
|
|
default_run_list = %w(
|
|
tor-full
|
|
kosmos_assets::nginx_site
|
|
kosmos_discourse::nginx
|
|
kosmos_drone::nginx
|
|
kosmos_garage::default
|
|
kosmos_garage::firewall_rpc
|
|
kosmos_garage::nginx_web
|
|
kosmos_gitea::nginx
|
|
kosmos_rsk::nginx_testnet
|
|
kosmos_rsk::nginx_mainnet
|
|
kosmos_website::default
|
|
kosmos-akkounts::nginx
|
|
kosmos-akkounts::nginx_api
|
|
kosmos-bitcoin::nginx_lndhub
|
|
kosmos-ejabberd::nginx
|
|
kosmos-hubot::nginx
|
|
kosmos-ipfs::nginx_public_gateway
|
|
kosmos-mastodon::nginx
|
|
remotestorage_discourse::nginx
|
|
)
|
|
|
|
env_run_lists(
|
|
'_default' => default_run_list,
|
|
'development' => [],
|
|
'production' => default_run_list
|
|
)
|