Compare commits
25 Commits
chore/ejab
...
d8baa41c14
| Author | SHA1 | Date | |
|---|---|---|---|
|
d8baa41c14
|
|||
| 8405b8df52 | |||
|
775f2275bb
|
|||
|
b4019b224b
|
|||
|
52841d8c53
|
|||
|
b9b97d5056
|
|||
| e5448aa85c | |||
|
4d1125ac2b
|
|||
|
3853f94ae0
|
|||
|
d1097c7688
|
|||
|
7949fd067c
|
|||
|
0726e58f7c
|
|||
|
fe581c348a
|
|||
|
af62078960
|
|||
|
9b4deff91e
|
|||
| 0944bc5266 | |||
|
eb06926606
|
|||
| 15096ca17b | |||
|
3551b71154
|
|||
|
752bb74663
|
|||
|
c64526a944
|
|||
|
da242d4817
|
|||
|
0af4bc1d0d
|
|||
| c9f5a745a3 | |||
|
d935b99d7d
|
4
clients/garage-10.json
Normal file
4
clients/garage-10.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "garage-10",
|
||||
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw2+3Wo+KkXVJCOX1SxT9\nSdwKXgPbCDM3EI9uwoxhMxQfRyN53dxIsBDsQUVOIe1Z8yqm4FenMQlNmeDR+QLE\nvNFf1fisinW+D9VVRm+CjcJy96i/Dyt786Z6YRrDlB860HxCbfTL2Zv5BRtbyIKg\nhz5gO+9PMEpPVR2ij9iue4K6jbM1AAL2ia/P6zDWLJqeIzUocCeHV5N0Z3jXH6qr\nf444v78x35MMJ+3tg5h95SU1/PDCpdSTct4uHEuKIosiN7p4DlYMoM5iSyvVoujr\nflRQPEpGzS9qEt3rDo/F4ltzYMx6bf1tB/0QaBKD+zwPZWTTwf61tSBo5/NkGvJc\nFQIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
4
clients/garage-11.json
Normal file
4
clients/garage-11.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "garage-11",
|
||||
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzfZcNEQojtmaogd9vGP/\nMsVPhAOlQ4kxKgrUas+p+XT7lXRan6b3M8UZEleIaL1HWsjSVwtFWRnNl8kg8rF8\nNEkLeOX8kHf7IoXDFOQa2TXanY8tSqrfh9/heFunt4Q3DluVt7S3bBdwukbDXm/n\nXJS2EQP33eJT4reL6FpVR0oVlFCzI3Vmf7ieSHIBXrbXy7AIvGC2+NVXvQle6pqp\nx0rqU6Wc6ef/VtIv+vK3YFnt9ue3tC63mexyeNKgRYf1YjDx61wo2bOY2t8rqN8y\nHeZ3dmAN8/Vwjk5VGnZqK7kRQ92G4IcE+mEp7MuwXcLqQ9WB960o+evay+o1R5JS\nhwIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
4
clients/garage-9.json
Normal file
4
clients/garage-9.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "garage-9",
|
||||
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnMHzKE8JBrsQkmRDeMjX\n71mBzvRzNM90cwA8xtvIkXesdTyGqohX9k/PJbCY5ySGK9PpMaYDPVAnwnUP8LFQ\n3G98aSbLxUjqU/PBzRsnWpihehr05uz9zYcNFzr4LTNvGQZsq47nN9Tk+LG3zHP7\nAZViv2mJ4ZRnukXf6KHlyoVvhuTu+tiBM8QzjTF97iP/aguNPzYHmrecy9Uf5bSA\nZrbNZT+ayxtgswC2OclhRucx7XLSuHXtpwFqsQzSAhiX1aQ3wwCyH9WJtVwpfUsE\nlxTjcQiSM9aPZ8iSC0shpBaKD1j3iF/2K2Jk+88++zMhJJPLermvaJxzsdePgvyk\nKQIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||
}
|
||||
@@ -1,27 +1,38 @@
|
||||
{
|
||||
"id": "backup",
|
||||
"s3_access_key_id": {
|
||||
"encrypted_data": "emGNH4v7TTEh05Go/DsI3k7CFnaK4p/4JxodC4BYpyWw47/Z3dsuRMu4vXM3\n3YLH\n",
|
||||
"iv": "Dau+ekb3UTYdl8w3fQKVcA==\n",
|
||||
"version": 1,
|
||||
"cipher": "aes-256-cbc"
|
||||
"encrypted_data": "245TrPvuoBRRTimhbt6qqsFb+JnnD377sPt1pguJy7Q2BXOy/jrX0wyMt+cP\nuA==\n",
|
||||
"iv": "ylmRxSRO3AA4MSJN\n",
|
||||
"auth_tag": "45tBcYZowPLrbv4Zu2P0Fw==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"s3_secret_access_key": {
|
||||
"encrypted_data": "Mxyly86JxrWUbubbSiqPdRosChzfI1Q8eBEG4n+2B9JJG4yExltO5Wc5kgSs\nX01MPXAc+PGLm+J9MngUtypo/g==\n",
|
||||
"iv": "WRhBJGiuScYYsUsoT5j/UA==\n",
|
||||
"version": 1,
|
||||
"cipher": "aes-256-cbc"
|
||||
"encrypted_data": "jDIOjlBzTkBUzpj243T6KnBuH0qwyW7BUFMcqllljFSzxs7K8wYJOUreNbOP\ny8OpDWAuO0H4O4LuFMJXeM8=\n",
|
||||
"iv": "PzvZr37EkJqz6JtM\n",
|
||||
"auth_tag": "e3XW8oHVgmYibv/IBzj0yA==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"s3_endpoint": {
|
||||
"encrypted_data": "ErJIEChxrreW7WKEwRtuP2MyYlsZRtqLdGa/x5QY58qgO036FgR3Hs2Z3yce\n",
|
||||
"iv": "HOSAOgUjO7XGwk50\n",
|
||||
"auth_tag": "XE1bwMIXHHE72V9K2KOLnw==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"s3_region": {
|
||||
"encrypted_data": "2ZGxu0tVzKNfx3K1Wleg0SAwGaPkHCi/XfKpJ+J7q40=\n",
|
||||
"iv": "CNTZW2SEIgfw+IyzGI3TzQ==\n",
|
||||
"version": 1,
|
||||
"cipher": "aes-256-cbc"
|
||||
"encrypted_data": "8cNSaYu7HH95ftG66lFdUIPZD7soz907CPA=\n",
|
||||
"iv": "pU21ulF75y/SIs3x\n",
|
||||
"auth_tag": "7WQQCbSbB2GybjY+C+5IvQ==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
},
|
||||
"encryption_password": {
|
||||
"encrypted_data": "tsBWKBwhQFfEAM0EWMPtljSbqU1c5mOJXPjYJjNT5RUFhPlqa7gsE8aJbs+D\nSPKjAQ62j+iHeqCk9mE9CCkgBA==\n",
|
||||
"iv": "uq5YAXuq2ynRLv9EIWoCFA==\n",
|
||||
"version": 1,
|
||||
"cipher": "aes-256-cbc"
|
||||
"encrypted_data": "l23CiIO2s1fIRn0NdoWZ+wK+Zhx3hCYDHf4ypjqMRekZ7xqafvXHHuogD5aj\npxYUKloH\n",
|
||||
"iv": "Dzx83eP9L7Jqqidh\n",
|
||||
"auth_tag": "UVn5XA5Tgsikc1GdOt1MUQ==\n",
|
||||
"version": 3,
|
||||
"cipher": "aes-256-gcm"
|
||||
}
|
||||
}
|
||||
@@ -108,13 +108,15 @@
|
||||
"real_ip_header": "x-real-ip",
|
||||
"policy_path": "/opt/strfry/strfry-policy.ts",
|
||||
"whitelist_pubkeys": [
|
||||
"b3e1b7c1660b7db0ecb93ec55c09e67961171a5c4e9e2602f1b47477ea61c50a"
|
||||
"b3e1b7c1660b7db0ecb93ec55c09e67961171a5c4e9e2602f1b47477ea61c50a",
|
||||
"b3e1b7c0ef48294bd856203bfd460625de95d3afb894e5f09b14cd1f0e7097cf"
|
||||
],
|
||||
"info": {
|
||||
"name": "Kosmos Relay",
|
||||
"description": "Members-only nostr relay for kosmos.org users",
|
||||
"pubkey": "1f79058c77a224e5be226c8f024cacdad4d741855d75ed9f11473ba8eb86e1cb",
|
||||
"contact": "ops@kosmos.org"
|
||||
"pubkey": "b3e1b7c0ef48294bd856203bfd460625de95d3afb894e5f09b14cd1f0e7097cf",
|
||||
"contact": "ops@kosmos.org",
|
||||
"icon": "https://assets.kosmos.org/img/app-icon-256px.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"kvm_guest",
|
||||
"sentry_client",
|
||||
"bitcoind",
|
||||
"cln",
|
||||
"lnd",
|
||||
"lndhub",
|
||||
"postgresql_client",
|
||||
@@ -30,10 +29,8 @@
|
||||
"tor-full",
|
||||
"tor-full::default",
|
||||
"kosmos-bitcoin::bitcoind",
|
||||
"kosmos-bitcoin::c-lightning",
|
||||
"kosmos-bitcoin::lnd",
|
||||
"kosmos-bitcoin::lnd-scb-s3",
|
||||
"kosmos-bitcoin::boltz",
|
||||
"kosmos-bitcoin::rtl",
|
||||
"kosmos-bitcoin::peerswap-lnd",
|
||||
"kosmos_postgresql::hostsfile",
|
||||
@@ -103,7 +100,6 @@
|
||||
"role[sentry_client]",
|
||||
"recipe[tor-full]",
|
||||
"role[bitcoind]",
|
||||
"role[cln]",
|
||||
"role[lnd]",
|
||||
"role[lndhub]",
|
||||
"role[btcpay]"
|
||||
|
||||
64
nodes/garage-10.json
Normal file
64
nodes/garage-10.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "garage-10",
|
||||
"chef_environment": "production",
|
||||
"normal": {
|
||||
"knife_zero": {
|
||||
"host": "10.1.1.27"
|
||||
}
|
||||
},
|
||||
"automatic": {
|
||||
"fqdn": "garage-10",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1090-kvm",
|
||||
"hostname": "garage-10",
|
||||
"ipaddress": "192.168.122.70",
|
||||
"roles": [
|
||||
"base",
|
||||
"kvm_guest",
|
||||
"garage_node"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos_garage",
|
||||
"kosmos_garage::default",
|
||||
"kosmos_garage::firewall_rpc",
|
||||
"kosmos_garage::firewall_apis",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
"ntp::default",
|
||||
"ntp::apparmor",
|
||||
"kosmos-base::systemd_emails",
|
||||
"apt::unattended-upgrades",
|
||||
"kosmos-base::firewall",
|
||||
"kosmos-postfix::default",
|
||||
"postfix::default",
|
||||
"postfix::_common",
|
||||
"postfix::_attributes",
|
||||
"postfix::sasl_auth",
|
||||
"hostname::default",
|
||||
"firewall::default"
|
||||
],
|
||||
"platform": "ubuntu",
|
||||
"platform_version": "20.04",
|
||||
"cloud": null,
|
||||
"chef_packages": {
|
||||
"chef": {
|
||||
"version": "18.5.0",
|
||||
"chef_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/chef-18.5.0/lib",
|
||||
"chef_effortless": null
|
||||
},
|
||||
"ohai": {
|
||||
"version": "18.1.11",
|
||||
"ohai_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/ohai-18.1.11/lib/ohai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"run_list": [
|
||||
"role[base]",
|
||||
"role[kvm_guest]",
|
||||
"role[garage_node]"
|
||||
]
|
||||
}
|
||||
64
nodes/garage-11.json
Normal file
64
nodes/garage-11.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "garage-11",
|
||||
"chef_environment": "production",
|
||||
"normal": {
|
||||
"knife_zero": {
|
||||
"host": "10.1.1.165"
|
||||
}
|
||||
},
|
||||
"automatic": {
|
||||
"fqdn": "garage-11",
|
||||
"os": "linux",
|
||||
"os_version": "5.15.0-1059-kvm",
|
||||
"hostname": "garage-11",
|
||||
"ipaddress": "192.168.122.9",
|
||||
"roles": [
|
||||
"base",
|
||||
"kvm_guest",
|
||||
"garage_node"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos_garage",
|
||||
"kosmos_garage::default",
|
||||
"kosmos_garage::firewall_rpc",
|
||||
"kosmos_garage::firewall_apis",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
"ntp::default",
|
||||
"ntp::apparmor",
|
||||
"kosmos-base::systemd_emails",
|
||||
"apt::unattended-upgrades",
|
||||
"kosmos-base::firewall",
|
||||
"kosmos-postfix::default",
|
||||
"postfix::default",
|
||||
"postfix::_common",
|
||||
"postfix::_attributes",
|
||||
"postfix::sasl_auth",
|
||||
"hostname::default",
|
||||
"firewall::default"
|
||||
],
|
||||
"platform": "ubuntu",
|
||||
"platform_version": "22.04",
|
||||
"cloud": null,
|
||||
"chef_packages": {
|
||||
"chef": {
|
||||
"version": "18.5.0",
|
||||
"chef_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/chef-18.5.0/lib",
|
||||
"chef_effortless": null
|
||||
},
|
||||
"ohai": {
|
||||
"version": "18.1.11",
|
||||
"ohai_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/ohai-18.1.11/lib/ohai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"run_list": [
|
||||
"role[base]",
|
||||
"role[kvm_guest]",
|
||||
"role[garage_node]"
|
||||
]
|
||||
}
|
||||
1190
nodes/garage-6.json
1190
nodes/garage-6.json
File diff suppressed because it is too large
Load Diff
64
nodes/garage-9.json
Normal file
64
nodes/garage-9.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "garage-9",
|
||||
"chef_environment": "production",
|
||||
"normal": {
|
||||
"knife_zero": {
|
||||
"host": "10.1.1.223"
|
||||
}
|
||||
},
|
||||
"automatic": {
|
||||
"fqdn": "garage-9",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-1090-kvm",
|
||||
"hostname": "garage-9",
|
||||
"ipaddress": "192.168.122.21",
|
||||
"roles": [
|
||||
"base",
|
||||
"kvm_guest",
|
||||
"garage_node"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos_garage",
|
||||
"kosmos_garage::default",
|
||||
"kosmos_garage::firewall_rpc",
|
||||
"kosmos_garage::firewall_apis",
|
||||
"apt::default",
|
||||
"timezone_iii::default",
|
||||
"timezone_iii::debian",
|
||||
"ntp::default",
|
||||
"ntp::apparmor",
|
||||
"kosmos-base::systemd_emails",
|
||||
"apt::unattended-upgrades",
|
||||
"kosmos-base::firewall",
|
||||
"kosmos-postfix::default",
|
||||
"postfix::default",
|
||||
"postfix::_common",
|
||||
"postfix::_attributes",
|
||||
"postfix::sasl_auth",
|
||||
"hostname::default",
|
||||
"firewall::default"
|
||||
],
|
||||
"platform": "ubuntu",
|
||||
"platform_version": "20.04",
|
||||
"cloud": null,
|
||||
"chef_packages": {
|
||||
"chef": {
|
||||
"version": "18.5.0",
|
||||
"chef_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/chef-18.5.0/lib",
|
||||
"chef_effortless": null
|
||||
},
|
||||
"ohai": {
|
||||
"version": "18.1.11",
|
||||
"ohai_root": "/opt/chef/embedded/lib/ruby/gems/3.1.0/gems/ohai-18.1.11/lib/ohai"
|
||||
}
|
||||
}
|
||||
},
|
||||
"run_list": [
|
||||
"role[base]",
|
||||
"role[kvm_guest]",
|
||||
"role[garage_node]"
|
||||
]
|
||||
}
|
||||
1280
nodes/gitea-2.json
1280
nodes/gitea-2.json
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@
|
||||
"fqdn": "mail.kosmos.org",
|
||||
"os": "linux",
|
||||
"os_version": "5.15.0-1048-kvm",
|
||||
"hostname": "mail",
|
||||
"hostname": "mail.kosmos.org",
|
||||
"ipaddress": "192.168.122.131",
|
||||
"roles": [
|
||||
"base",
|
||||
|
||||
@@ -8,16 +8,19 @@
|
||||
"automatic": {
|
||||
"fqdn": "wiki-1",
|
||||
"os": "linux",
|
||||
"os_version": "5.4.0-91-generic",
|
||||
"os_version": "5.4.0-167-generic",
|
||||
"hostname": "wiki-1",
|
||||
"ipaddress": "192.168.122.26",
|
||||
"roles": [
|
||||
"kvm_guest"
|
||||
"base",
|
||||
"kvm_guest",
|
||||
"ldap_client"
|
||||
],
|
||||
"recipes": [
|
||||
"kosmos-base",
|
||||
"kosmos-base::default",
|
||||
"kosmos_kvm::guest",
|
||||
"kosmos-dirsrv::hostsfile",
|
||||
"kosmos-mediawiki",
|
||||
"kosmos-mediawiki::default",
|
||||
"apt::default",
|
||||
@@ -41,7 +44,6 @@
|
||||
"php::package",
|
||||
"php::ini",
|
||||
"composer::global_configs",
|
||||
"kosmos-dirsrv::hostsfile",
|
||||
"mediawiki::default",
|
||||
"mediawiki::database",
|
||||
"kosmos-nginx::default",
|
||||
@@ -79,4 +81,4 @@
|
||||
"role[ldap_client]",
|
||||
"recipe[kosmos-mediawiki]"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -3,4 +3,5 @@ name "gitea"
|
||||
run_list %w(
|
||||
role[postgresql_client]
|
||||
kosmos_gitea::default
|
||||
kosmos_gitea::backup
|
||||
)
|
||||
|
||||
@@ -3,7 +3,6 @@ name "lnd"
|
||||
run_list %w(
|
||||
kosmos-bitcoin::lnd
|
||||
kosmos-bitcoin::lnd-scb-s3
|
||||
kosmos-bitcoin::boltz
|
||||
kosmos-bitcoin::rtl
|
||||
kosmos-bitcoin::peerswap-lnd
|
||||
)
|
||||
|
||||
@@ -42,5 +42,5 @@ default['backup']['orbit']['keep'] = 10
|
||||
default['backup']['cron']['hour'] = "05"
|
||||
default['backup']['cron']['minute'] = "7"
|
||||
|
||||
default['backup']['s3']['keep'] = 15
|
||||
default['backup']['s3']['bucket'] = "kosmos-dev-backups"
|
||||
default['backup']['s3']['keep'] = 10
|
||||
default['backup']['s3']['bucket'] = "kosmos-backups"
|
||||
|
||||
@@ -28,6 +28,7 @@ template "#{backup_dir}/config.rb" do
|
||||
sensitive true
|
||||
variables s3_access_key_id: backup_data["s3_access_key_id"],
|
||||
s3_secret_access_key: backup_data["s3_secret_access_key"],
|
||||
s3_endpoint: backup_data["s3_endpoint"],
|
||||
s3_region: backup_data["s3_region"],
|
||||
encryption_password: backup_data["encryption_password"],
|
||||
mail_from: "backups@kosmos.org",
|
||||
|
||||
@@ -23,6 +23,10 @@ Storage::S3.defaults do |s3|
|
||||
s3.secret_access_key = "<%= @s3_secret_access_key %>"
|
||||
s3.region = "<%= @s3_region %>"
|
||||
s3.bucket = "<%= node['backup']['s3']['bucket'] %>"
|
||||
s3.fog_options = {
|
||||
endpoint: "<%= @s3_endpoint %>",
|
||||
aws_signature_version: 2
|
||||
}
|
||||
end
|
||||
|
||||
Encryptor::OpenSSL.defaults do |encryption|
|
||||
@@ -88,7 +92,6 @@ end
|
||||
|
||||
preconfigure 'KosmosBackup' do
|
||||
split_into_chunks_of 250 # megabytes
|
||||
store_with S3
|
||||
compress_with Bzip2
|
||||
encrypt_with OpenSSL
|
||||
notify_by Mail do |mail|
|
||||
|
||||
@@ -14,6 +14,10 @@ server {
|
||||
listen [::]:443 ssl http2;
|
||||
server_name <%= @domain %>;
|
||||
|
||||
if ($host != $server_name) {
|
||||
return 301 $scheme://$server_name$request_uri;
|
||||
}
|
||||
|
||||
ssl_certificate <%= @ssl_cert %>;
|
||||
ssl_certificate_key <%= @ssl_key %>;
|
||||
|
||||
@@ -39,6 +43,9 @@ server {
|
||||
|
||||
location @proxy {
|
||||
proxy_set_header Host $http_host;
|
||||
set $x_forwarded_host $http_x_forwarded_host;
|
||||
if ($x_forwarded_host = "") { set $x_forwarded_host $host; }
|
||||
proxy_set_header X-Forwarded-Host $x_forwarded_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
node.default['bitcoin']['version'] = '26.0'
|
||||
node.default['bitcoin']['checksum'] = 'ab1d99276e28db62d1d9f3901e85ac358d7f1ebcb942d348a9c4e46f0fcdc0a1'
|
||||
node.default['bitcoin']['version'] = '28.0'
|
||||
node.default['bitcoin']['checksum'] = '700ae2d1e204602eb07f2779a6e6669893bc96c0dca290593f80ff8e102ff37f'
|
||||
node.default['bitcoin']['username'] = 'satoshi'
|
||||
node.default['bitcoin']['usergroup'] = 'bitcoin'
|
||||
node.default['bitcoin']['network'] = 'mainnet'
|
||||
@@ -24,7 +24,8 @@ node.default['bitcoin']['conf'] = {
|
||||
rpcbind: "127.0.0.1:8332",
|
||||
gen: 0,
|
||||
zmqpubrawblock: 'tcp://127.0.0.1:8337',
|
||||
zmqpubrawtx: 'tcp://127.0.0.1:8338'
|
||||
zmqpubrawtx: 'tcp://127.0.0.1:8338',
|
||||
deprecatedrpc: 'warnings' # TODO remove when upgrading to LND 0.18.4
|
||||
}
|
||||
|
||||
# Also enables Tor for LND
|
||||
@@ -40,7 +41,7 @@ node.default['c-lightning']['log_level'] = 'info'
|
||||
node.default['c-lightning']['public_ip'] = '148.251.237.73'
|
||||
|
||||
node.default['lnd']['repo'] = 'https://github.com/lightningnetwork/lnd'
|
||||
node.default['lnd']['revision'] = 'v0.17.3-beta'
|
||||
node.default['lnd']['revision'] = 'v0.18.3-beta'
|
||||
node.default['lnd']['source_dir'] = '/opt/lnd'
|
||||
node.default['lnd']['lnd_dir'] = "/home/#{node['bitcoin']['username']}/.lnd"
|
||||
node.default['lnd']['alias'] = 'ln2.kosmos.org'
|
||||
@@ -58,24 +59,13 @@ node.default['lnd']['tor'] = {
|
||||
'skip-proxy-for-clearnet-targets' => 'true'
|
||||
}
|
||||
|
||||
node.default['boltz']['repo'] = 'https://github.com/BoltzExchange/boltz-lnd.git'
|
||||
node.default['boltz']['revision'] = 'v1.2.7'
|
||||
node.default['boltz']['source_dir'] = '/opt/boltz'
|
||||
node.default['boltz']['boltz_dir'] = "/home/#{node['bitcoin']['username']}/.boltz-lnd"
|
||||
node.default['boltz']['grpc_host'] = '127.0.0.1'
|
||||
node.default['boltz']['grpc_port'] = '9002'
|
||||
node.default['boltz']['rest_disabled'] = 'false'
|
||||
node.default['boltz']['rest_host'] = '127.0.0.1'
|
||||
node.default['boltz']['rest_port'] = '9003'
|
||||
node.default['boltz']['no_macaroons'] = 'false'
|
||||
|
||||
node.default['rtl']['repo'] = 'https://github.com/Ride-The-Lightning/RTL.git'
|
||||
node.default['rtl']['revision'] = 'v0.15.0'
|
||||
node.default['rtl']['revision'] = 'v0.15.2'
|
||||
node.default['rtl']['host'] = '10.1.1.163'
|
||||
node.default['rtl']['port'] = '3000'
|
||||
|
||||
node.default['lndhub-go']['repo'] = 'https://github.com/getAlby/lndhub.go.git'
|
||||
node.default['lndhub-go']['revision'] = '0.14.0'
|
||||
node.default['lndhub-go']['revision'] = '1.0.2'
|
||||
node.default['lndhub-go']['source_dir'] = '/opt/lndhub-go'
|
||||
node.default['lndhub-go']['port'] = 3026
|
||||
node.default['lndhub-go']['domain'] = 'lndhub.kosmos.org'
|
||||
@@ -83,8 +73,10 @@ node.default['lndhub-go']['postgres']['database'] = 'lndhub'
|
||||
node.default['lndhub-go']['postgres']['user'] = 'lndhub'
|
||||
node.default['lndhub-go']['postgres']['port'] = 5432
|
||||
node.default['lndhub-go']['default_rate_limit'] = 20
|
||||
node.default['lndhub-go']['strict_rate_limit'] = 1
|
||||
node.default['lndhub-go']['burst_rate_limit'] = 10
|
||||
node.default['lndhub-go']['strict_rate_limit'] = 1
|
||||
node.default['lndhub-go']['burst_rate_limit'] = 10
|
||||
node.default['lndhub-go']['service_fee'] = 1
|
||||
node.default['lndhub-go']['no_service_fee_up_to_amount'] = 1000
|
||||
node.default['lndhub-go']['branding'] = {
|
||||
'title' => 'LndHub - Kosmos Lightning',
|
||||
'desc' => 'Kosmos accounts for the Lightning Network',
|
||||
|
||||
@@ -11,6 +11,7 @@ credentials = Chef::EncryptedDataBagItem.load('credentials', 'backup')
|
||||
|
||||
file "/root/.aws/config" do
|
||||
mode "600"
|
||||
sensitive true
|
||||
content lazy { <<-EOF
|
||||
[default]
|
||||
region = #{credentials["s3_region"]}
|
||||
|
||||
@@ -12,8 +12,15 @@ if node["bitcoin"]["blocksdir_mount_type"]
|
||||
include_recipe "kosmos-bitcoin::blocksdir-mount"
|
||||
end
|
||||
|
||||
%w{ libtool autotools-dev make automake cmake curl g++-multilib libtool
|
||||
binutils-gold bsdmainutils pkg-config python3 patch }.each do |pkg|
|
||||
apt_repository "ubuntu-toolchain-r" do
|
||||
# provides g++-13, needed for better c++-20 support
|
||||
uri "ppa:ubuntu-toolchain-r/test"
|
||||
end
|
||||
|
||||
%w{
|
||||
gcc-13 g++-13 libtool autotools-dev make automake cmake curl bison
|
||||
binutils-gold pkg-config python3 patch
|
||||
}.each do |pkg|
|
||||
apt_package pkg
|
||||
end
|
||||
|
||||
@@ -26,20 +33,21 @@ end
|
||||
|
||||
execute "compile_bitcoin-core_dependencies" do
|
||||
cwd "/usr/local/bitcoind/depends"
|
||||
command "make NO_QT=1"
|
||||
environment ({'CC' => 'gcc-13', 'CXX' => 'g++-13', 'NO_QT' => '1'})
|
||||
command "make -j 2"
|
||||
action :nothing
|
||||
notifies :run, 'bash[compile_bitcoin-core]', :immediately
|
||||
end
|
||||
|
||||
bash "compile_bitcoin-core" do
|
||||
cwd "/usr/local/bitcoind"
|
||||
environment ({'CC' => 'gcc-13', 'CXX' => 'g++-13', 'NO_QT' => '1'})
|
||||
code <<-EOH
|
||||
./autogen.sh
|
||||
./configure --prefix=$PWD/depends/x86_64-pc-linux-gnu
|
||||
make
|
||||
EOH
|
||||
action :nothing
|
||||
notifies :restart, "systemd_unit[bitcoind.service]", :delayed
|
||||
end
|
||||
|
||||
link "/usr/local/bin/bitcoind" do
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
#
|
||||
# Cookbook:: kosmos-bitcoin
|
||||
# Recipe:: boltz
|
||||
#
|
||||
|
||||
include_recipe "git"
|
||||
include_recipe "kosmos-bitcoin::golang"
|
||||
|
||||
git node['boltz']['source_dir'] do
|
||||
repository node['boltz']['repo']
|
||||
revision node['boltz']['revision']
|
||||
action :sync
|
||||
notifies :run, 'bash[compile_and_install_boltz]', :immediately
|
||||
end
|
||||
|
||||
bash "compile_and_install_boltz" do
|
||||
cwd node['boltz']['source_dir']
|
||||
code <<-EOH
|
||||
go mod vendor && \
|
||||
make build && \
|
||||
make install
|
||||
EOH
|
||||
action :nothing
|
||||
notifies :restart, "systemd_unit[boltzd.service]", :delayed
|
||||
end
|
||||
|
||||
bitcoin_user = node['bitcoin']['username']
|
||||
bitcoin_group = node['bitcoin']['usergroup']
|
||||
boltz_dir = node['boltz']['boltz_dir']
|
||||
lnd_dir = node['lnd']['lnd_dir']
|
||||
|
||||
directory boltz_dir do
|
||||
owner bitcoin_user
|
||||
group bitcoin_group
|
||||
mode '0750'
|
||||
action :create
|
||||
end
|
||||
|
||||
template "#{boltz_dir}/boltz.toml" do
|
||||
source "boltz.toml.erb"
|
||||
owner bitcoin_user
|
||||
group bitcoin_group
|
||||
mode '0640'
|
||||
variables lnd_grpc_host: '127.0.0.1',
|
||||
lnd_grpc_port: '10009',
|
||||
lnd_macaroon_path: "#{lnd_dir}/data/chain/bitcoin/mainnet/admin.macaroon",
|
||||
lnd_tlscert_path: "#{lnd_dir}/tls.cert",
|
||||
boltz_config: node['boltz']
|
||||
notifies :restart, "systemd_unit[boltzd.service]", :delayed
|
||||
end
|
||||
|
||||
systemd_unit 'boltzd.service' do
|
||||
content({
|
||||
Unit: {
|
||||
Description: 'Boltz Daemon',
|
||||
Documentation: ['https://lnd.docs.boltz.exchange'],
|
||||
Requires: 'lnd.service',
|
||||
After: 'lnd.service'
|
||||
},
|
||||
Service: {
|
||||
User: bitcoin_user,
|
||||
Group: bitcoin_group,
|
||||
Type: 'simple',
|
||||
ExecStart: "/opt/boltz/boltzd",
|
||||
Restart: 'always',
|
||||
RestartSec: '30',
|
||||
TimeoutSec: '240',
|
||||
LimitNOFILE: '128000',
|
||||
PrivateTmp: true,
|
||||
ProtectSystem: 'full',
|
||||
NoNewPrivileges: true,
|
||||
PrivateDevices: true,
|
||||
MemoryDenyWriteExecute: true
|
||||
},
|
||||
Install: {
|
||||
WantedBy: 'multi-user.target'
|
||||
}
|
||||
})
|
||||
verify false
|
||||
triggers_reload true
|
||||
action [:create, :enable, :start]
|
||||
end
|
||||
|
||||
unless node.chef_environment == 'development'
|
||||
node.override['backup']['archives']['boltz'] = [node['boltz']['boltz_dir']]
|
||||
include_recipe 'backup'
|
||||
end
|
||||
@@ -5,7 +5,7 @@
|
||||
# Internal recipe for managing the Go installation in one place
|
||||
#
|
||||
|
||||
node.override['golang']['version'] = "1.20.3"
|
||||
node.override['golang']['version'] = "1.23.1"
|
||||
include_recipe "golang"
|
||||
|
||||
link '/usr/local/bin/go' do
|
||||
|
||||
@@ -10,12 +10,14 @@ include_recipe "kosmos-bitcoin::aws-client"
|
||||
package "inotify-tools"
|
||||
|
||||
backup_script_path = "/opt/lnd-channel-backup-s3.sh"
|
||||
backup_credentials = Chef::EncryptedDataBagItem.load('credentials', 'backup')
|
||||
|
||||
template backup_script_path do
|
||||
source "lnd-channel-backup-s3.sh.erb"
|
||||
mode '0740'
|
||||
variables lnd_dir: node['lnd']['lnd_dir'],
|
||||
bitcoin_network: node['bitcoin']['network'],
|
||||
s3_endpoint: backup_credentials['s3_endpoint'],
|
||||
s3_bucket: node['backup']['s3']['bucket'],
|
||||
s3_scb_dir: "#{node['name']}/lnd/#{node['bitcoin']['network']}"
|
||||
notifies :restart, "systemd_unit[lnd-channel-backup.service]", :delayed
|
||||
|
||||
@@ -66,6 +66,8 @@ template "#{source_dir}/.env" do
|
||||
default_rate_limit: node['lndhub-go']['default_rate_limit'],
|
||||
strict_rate_limit: node['lndhub-go']['strict_rate_limit'],
|
||||
burst_rate_limit: node['lndhub-go']['burst_rate_limit'],
|
||||
service_fee: 1,
|
||||
no_service_fee_up_to_amount: 1000,
|
||||
branding: node['lndhub-go']['branding'],
|
||||
webhook_url: node['lndhub-go']['webhook_url'],
|
||||
sentry_dsn: credentials['sentry_dsn']
|
||||
|
||||
@@ -46,24 +46,22 @@ rtl_config = {
|
||||
multiPassHashed: credentials["multiPassHashed"]
|
||||
}
|
||||
|
||||
if node['boltz']
|
||||
# TODO adapt for multi-node usage
|
||||
rtl_config[:nodes][0][:Authentication][:boltzMacaroonPath] = "#{node['boltz']['boltz_dir']}/macaroons"
|
||||
rtl_config[:nodes][0][:Settings][:boltzServerUrl] = "https://#{node['boltz']['rest_host']}:#{node['boltz']['rest_port']}"
|
||||
end
|
||||
|
||||
git rtl_dir do
|
||||
user bitcoin_user
|
||||
group bitcoin_group
|
||||
repository node['rtl']['repo']
|
||||
revision node['rtl']['revision']
|
||||
notifies :run, "execute[npm_install]", :immediately
|
||||
notifies :restart, "systemd_unit[#{app_name}.service]", :delayed
|
||||
end
|
||||
|
||||
execute "npm install" do
|
||||
execute "npm_install" do
|
||||
cwd rtl_dir
|
||||
environment "HOME" => rtl_dir
|
||||
user bitcoin_user
|
||||
# TODO remove --force when upstream dependency issues have been resolved
|
||||
command "npm install --force"
|
||||
action :nothing
|
||||
end
|
||||
|
||||
file "#{rtl_dir}/RTL-Config.json" do
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
[LND]
|
||||
# Host of the gRPC interface of LND
|
||||
host = "<%= @lnd_grpc_host %>"
|
||||
|
||||
# Port of the gRPC interface of LND
|
||||
port = <%= @lnd_grpc_port %>
|
||||
|
||||
# Path to a macaroon file of LND
|
||||
# The daemon needs to have permission to read various endpoints, generate addresses and pay invoices
|
||||
macaroon = "<%= @lnd_macaroon_path %>"
|
||||
|
||||
# Path to the TLS certificate of LND
|
||||
certificate = "<%= @lnd_tlscert_path %>"
|
||||
|
||||
[RPC]
|
||||
# Host of the gRPC interface
|
||||
host = "<%= @boltz_config['grpc_host'] %>"
|
||||
|
||||
# Port of the gRPC interface
|
||||
port = <%= @boltz_config['grpc_port'] %>
|
||||
|
||||
# Whether the REST proxy for the gRPC interface should be disabled
|
||||
restDisabled = <%= @boltz_config['rest_disabled'] %>
|
||||
|
||||
# Host of the REST proxy
|
||||
restHost = "<%= @boltz_config['rest_host'] %>"
|
||||
|
||||
# Port of the REST proxy
|
||||
restPort = <%= @boltz_config['rest_port'] %>
|
||||
|
||||
# Whether the macaroon authentication for the gRPC and REST interface should be disabled
|
||||
noMacaroons = <%= @boltz_config['no_macaroons'] %>
|
||||
@@ -3,5 +3,5 @@ set -xe -o pipefail
|
||||
|
||||
while true; do
|
||||
inotifywait <%= @lnd_dir %>/data/chain/bitcoin/<%= @bitcoin_network %>/channel.backup
|
||||
aws s3 cp <%= @lnd_dir %>/data/chain/bitcoin/<%= @bitcoin_network %>/channel.backup "s3://<%= @s3_bucket %>/<%= @s3_scb_dir %>/channel.backup"
|
||||
aws --endpoint <%= @s3_endpoint %> s3 cp <%= @lnd_dir %>/data/chain/bitcoin/<%= @bitcoin_network %>/channel.backup "s3://<%= @s3_bucket %>/<%= @s3_scb_dir %>/channel.backup"
|
||||
done
|
||||
|
||||
@@ -12,7 +12,6 @@ minchansize=<%= @lnd_minchansize %>
|
||||
autopilot.active=0
|
||||
|
||||
[Bitcoin]
|
||||
bitcoin.active=1
|
||||
bitcoin.mainnet=1
|
||||
bitcoin.node=bitcoind
|
||||
bitcoin.basefee=<%= @lnd_basefee %>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -52,7 +52,7 @@ end
|
||||
# Generate a Let's Encrypt cert (only if no cert has been generated before).
|
||||
# The systemd timer will take care of renewing
|
||||
execute "letsencrypt cert for 5apps xmpp" do
|
||||
command "certbot certonly --manual --preferred-challenges dns --manual-public-ip-logging-ok --agree-tos --manual-auth-hook \"/root/gandi_dns_certbot_hook.sh auth letsencrypt.kosmos.chat\" --manual-cleanup-hook \"/root/gandi_dns_certbot_hook.sh cleanup letsencrypt.kosmos.chat\" --deploy-hook \"/etc/letsencrypt/renewal-hooks/post/ejabberd\" --email ops@5apps.com -d 5apps.com -d muc.5apps.com -d xmpp.5apps.com -d uploads.xmpp.5apps.com -n"
|
||||
command "certbot certonly --manual --preferred-challenges dns --manual-public-ip-logging-ok --agree-tos --manual-auth-hook \"/root/gandi_dns_certbot_hook.sh auth letsencrypt.kosmos.org\" --manual-cleanup-hook \"/root/gandi_dns_certbot_hook.sh cleanup letsencrypt.kosmos.org\" --deploy-hook \"/etc/letsencrypt/renewal-hooks/post/ejabberd\" --email ops@5apps.com -d 5apps.com -d muc.5apps.com -d xmpp.5apps.com -d uploads.xmpp.5apps.com -n"
|
||||
not_if do
|
||||
File.exist?("/etc/letsencrypt/live/5apps.com/fullchain.pem")
|
||||
end
|
||||
|
||||
@@ -216,7 +216,7 @@ modules:
|
||||
access_createnode: pubsub_createnode
|
||||
ignore_pep_from_offline: false
|
||||
last_item_cache: false
|
||||
max_items_node: 1000
|
||||
max_items_node: 10000
|
||||
plugins:
|
||||
- "flat"
|
||||
- "pep" # pep requires mod_caps
|
||||
@@ -258,6 +258,8 @@ modules:
|
||||
type: turns
|
||||
transport: tcp
|
||||
restricted: true
|
||||
mod_vcard:
|
||||
search: false
|
||||
mod_vcard_xupdate: {}
|
||||
mod_avatar: {}
|
||||
mod_version: {}
|
||||
|
||||
@@ -10,7 +10,7 @@ node.default["kosmos-mastodon"]["redis_url"] = "redis://localhost:6379/0
|
||||
node.default["kosmos-mastodon"]["sidekiq_threads"] = 25
|
||||
node.default["kosmos-mastodon"]["allowed_private_addresses"] = "127.0.0.1"
|
||||
|
||||
node.default["kosmos-mastodon"]["onion_address"] = nil
|
||||
node.default["kosmos-mastodon"]["onion_address"] = nil
|
||||
|
||||
# Allocate this amount of RAM to the Java heap for Elasticsearch
|
||||
node.default["kosmos-mastodon"]["elasticsearch"]["allocated_memory"] = "1536m"
|
||||
@@ -20,6 +20,10 @@ node.default["kosmos-mastodon"]["s3_region"] = nil
|
||||
node.default["kosmos-mastodon"]["s3_bucket"] = nil
|
||||
node.default["kosmos-mastodon"]["s3_alias_host"] = nil
|
||||
|
||||
node.default["kosmos-mastodon"]["sso_account_sign_up_url"] = "https://kosmos.org"
|
||||
node.default["kosmos-mastodon"]["sso_account_reset_password_url"] = "https://accounts.kosmos.org/users/password/new"
|
||||
node.default["kosmos-mastodon"]["sso_account_resend_confirmation_url"] = "https://accounts.kosmos.org/users/confirmation/new"
|
||||
|
||||
node.default["kosmos-mastodon"]["default_locale"] = "en"
|
||||
node.default["kosmos-mastodon"]["libre_translate_endpoint"] = nil
|
||||
|
||||
|
||||
@@ -6,13 +6,12 @@
|
||||
postgresql_data_bag_item = data_bag_item('credentials', 'postgresql')
|
||||
|
||||
unless node.chef_environment == "development"
|
||||
unless node["backup"]["postgresql"]["databases"].keys.include? 'mastodon'
|
||||
node.override["backup"]["postgresql"]["host"] = "pg.kosmos.local"
|
||||
node.override["backup"]["postgresql"]["databases"]["mastodon"] = {
|
||||
username: "mastodon",
|
||||
password: postgresql_data_bag_item['mastodon_user_password']
|
||||
}
|
||||
end
|
||||
node.override['backup']['s3']['keep'] = 1
|
||||
node.override["backup"]["postgresql"]["host"] = "pg.kosmos.local"
|
||||
node.override["backup"]["postgresql"]["databases"]["mastodon"] = {
|
||||
username: "mastodon",
|
||||
password: postgresql_data_bag_item['mastodon_user_password']
|
||||
}
|
||||
|
||||
include_recipe "backup"
|
||||
end
|
||||
|
||||
@@ -190,6 +190,7 @@ template "#{mastodon_path}/.env.#{rails_env}" do
|
||||
mode "0640"
|
||||
owner mastodon_user
|
||||
group mastodon_user
|
||||
sensitive true
|
||||
variables redis_url: node["kosmos-mastodon"]["redis_url"],
|
||||
domain: node["kosmos-mastodon"]["domain"],
|
||||
alternate_domains: node["kosmos-mastodon"]["alternate_domains"],
|
||||
@@ -210,6 +211,9 @@ template "#{mastodon_path}/.env.#{rails_env}" do
|
||||
vapid_public_key: credentials['vapid_public_key'],
|
||||
db_pass: postgresql_credentials['mastodon_user_password'],
|
||||
db_host: "pg.kosmos.local",
|
||||
sso_account_sign_up_url: node["kosmos-mastodon"]["sso_account_sign_up_url"],
|
||||
sso_account_reset_password_url: node["kosmos-mastodon"]["sso_account_reset_password_url"],
|
||||
sso_account_resend_confirmation_url: node["kosmos-mastodon"]["sso_account_resend_confirmation_url"],
|
||||
default_locale: node["kosmos-mastodon"]["default_locale"],
|
||||
allowed_private_addresses: node["kosmos-mastodon"]["allowed_private_addresses"],
|
||||
libre_translate_endpoint: node["kosmos-mastodon"]["libre_translate_endpoint"]
|
||||
|
||||
@@ -44,6 +44,9 @@ LDAP_SEARCH_FILTER='<%= @ldap[:search_filter] %>'
|
||||
LDAP_UID_CONVERSION_ENABLED=<%= @ldap[:uid_conversion_enabled] %>
|
||||
LDAP_UID_CONVERSION_SEARCH=<%= @ldap[:uid_conversion_search] %>
|
||||
LDAP_UID_CONVERSION_REPLACE=<%= @ldap[:uid_conversion_replace] %>
|
||||
SSO_ACCOUNT_SIGN_UP=<%= @sso_account_sign_up_url %>
|
||||
SSO_ACCOUNT_RESET_PASSWORD=<%= @sso_account_reset_password_url %>
|
||||
SSO_ACCOUNT_RESEND_CONFIRMATION=<%= @sso_account_resend_confirmation_url %>
|
||||
<% end %>
|
||||
|
||||
# Optional asset host for multi-server setups
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
node.default["gitea"]["version"] = "1.22.1"
|
||||
node.default["gitea"]["checksum"] = "b8043324545eec269fc8f18c22b49fc365ed367e0dd41e081b79832de2570f9c"
|
||||
node.default["gitea"]["version"] = "1.22.3"
|
||||
node.default["gitea"]["checksum"] = "a720ff937912a6eb6c0cacf6ebcdd774deed5197cd945ecc34f5744cb5c517e8"
|
||||
node.default["gitea"]["working_directory"] = "/var/lib/gitea"
|
||||
node.default["gitea"]["port"] = 3000
|
||||
node.default["gitea"]["postgresql_host"] = "localhost:5432"
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
unless node.chef_environment == "development"
|
||||
# backup the data dir and the config files
|
||||
node.override["backup"]["archives"]["gitea"] = [node["gitea"]["working_directory"]]
|
||||
node.override['backup']['s3']['keep'] = 2
|
||||
include_recipe "backup"
|
||||
end
|
||||
|
||||
@@ -10,16 +10,6 @@ upstream _<%= @app_name %> {
|
||||
# TODO use cookbook attribute when enabling
|
||||
# variables_hash_max_size 2048;
|
||||
|
||||
server {
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>80;
|
||||
listen [::]:80;
|
||||
server_name <%= @server_name %>;
|
||||
# Redirect to https
|
||||
location / {
|
||||
return 301 https://<%= @server_name %>$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
|
||||
@@ -5,8 +5,9 @@ upstream _strfry {
|
||||
}
|
||||
|
||||
server {
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>443 ssl http2;
|
||||
server_name <%= @domain %>;
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
|
||||
access_log "/var/log/nginx/<%= @domain %>.access.log";
|
||||
error_log "/var/log/nginx/<%= @domain %>.error.log";
|
||||
|
||||
@@ -14,7 +14,5 @@ server {
|
||||
ssl_certificate <%= @ssl_cert %>;
|
||||
ssl_certificate_key <%= @ssl_key %>;
|
||||
|
||||
location / {
|
||||
return <%= @http_status || 301 %> <%= @target %>;
|
||||
}
|
||||
return <%= @http_status || 307 %> <%= @target %>;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
server {
|
||||
server_name _;
|
||||
listen 80 default_server;
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>80 default_server;
|
||||
|
||||
location / {
|
||||
return 301 https://<%= @domain %>;
|
||||
@@ -14,6 +14,10 @@ server {
|
||||
listen <%= "#{node['openresty']['listen_ip']}:" if node['openresty']['listen_ip'] %>443 ssl http2 default_server;
|
||||
listen [::]:443 ssl http2 default_server;
|
||||
|
||||
if ($host != $server_name) {
|
||||
return 307 $scheme://$server_name;
|
||||
}
|
||||
|
||||
root /var/www/<%= @domain %>/public;
|
||||
|
||||
access_log <%= node[:openresty][:log_dir] %>/<%= @domain %>.access.log;
|
||||
@@ -22,14 +26,13 @@ server {
|
||||
gzip_static on;
|
||||
gzip_comp_level 5;
|
||||
|
||||
add_header 'Access-Control-Allow-Origin' '*';
|
||||
|
||||
ssl_certificate <%= @ssl_cert %>;
|
||||
ssl_certificate_key <%= @ssl_key %>;
|
||||
|
||||
<% if @accounts_url %>
|
||||
location ~ ^/.well-known/(webfinger|nostr|lnurlp|keysend) {
|
||||
location ~ ^/.well-known/(keysend|lnurlp|nostr|openpgpkey|webfinger) {
|
||||
proxy_ssl_server_name on;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_pass https://accounts.kosmos.org;
|
||||
}
|
||||
<% end %>
|
||||
|
||||
Submodule site-cookbooks/strfry updated: a4756377b4...8df7c00a14
Reference in New Issue
Block a user