1297 Commits

Author SHA1 Message Date
9f79077bcf Set vcard with avatar for kosmos.org itself 2024-08-21 16:53:41 +02:00
d048bbb297 Merge pull request 'Upgrade Gitea to 1.22.1' (#568) from chore/upgrade_gitea into master
Reviewed-on: #568
2024-08-10 11:45:39 +00:00
61bd121709 Upgrade Gitea to 1.22.1 2024-08-10 13:44:39 +02:00
ec9b912e45 Merge pull request 'Configure nginx default vhost, add specific redirects for some domains' (#565) from chore/nginx_redirects into master
Reviewed-on: #565
2024-08-09 12:44:29 +00:00
d53ba42a1d Make kosmos.org the default nginx vhost 2024-08-04 16:51:57 +02:00
a99f7f7574 Add config for accounts .well-known proxyying 2024-08-04 16:51:18 +02:00
1c8ee14bb3 Add HTTP redirects for kosmos.chat and kosmos.cash 2024-08-04 16:49:20 +02:00
cdedf49be3 Merge pull request 'Fix download URLs for Mastodon exports/archives' (#564) from bugfix/mastodon_archive_download_urls into master
Reviewed-on: #564
2024-08-04 14:46:26 +00:00
5e727ec279 Fix download URLs for Mastodon exports/archives
See https://github.com/mastodon/mastodon/issues/24380
2024-08-04 14:55:22 +02:00
9d928298d2 Fix Gitea user/repo avatar URLs in certain situations
I encountered a CORS proxy which somehow ended up with http://_gitea_web
URLs.
2024-07-10 11:36:07 +02:00
1174661b46 Use proxy domain for RS Discourse ACME challenge 2024-07-08 20:31:46 +02:00
2dff7cf850 Merge pull request 'Add new service: nostr.kosmos.org (members-only nostr relay)' (#559) from feature/strfry into master
Reviewed-on: #559
Reviewed-by: Greg <greg@noreply.kosmos.org>
2024-07-05 07:33:40 +00:00
232360efba Remove commented code 2024-07-03 09:23:13 +02:00
8b8e8f3438 Move strfry extras into their own directory 2024-07-03 09:22:50 +02:00
522c213b09 Add Deno lockfile 2024-06-20 18:16:27 +02:00
80eddfbf56 Configure strfry whitelist
Allow akkounts pubkey to publish to our own relay
2024-06-20 15:38:27 +02:00
7e664723a1 Configure akkounts nostr relay URL in production 2024-06-20 15:04:17 +02:00
f5961af7fe Create/deploy strfry VM 2024-06-11 23:17:33 +02:00
d1301dad3e Add, configure, deploy strfry policies 2024-06-11 23:12:22 +02:00
42c46a5645 Deploy strfry reverse proxy 2024-06-11 23:10:24 +02:00
5be9081613 Header name has to be all lowercase in strfry config 2024-06-11 23:09:49 +02:00
1649d03665 Update strfry cookbook 2024-06-11 23:09:48 +02:00
b9a3910364 Update strfry cookbook 2024-06-11 23:09:48 +02:00
9835b85181 Fall back to default port for strfry proxy
When we don't override it elsewhere
2024-06-11 23:09:48 +02:00
dbccd9d2bf Add kosmos_strfry cookbook, configs 2024-06-11 23:09:48 +02:00
1a5f312699 Add strfry cookbook 2024-06-11 23:09:48 +02:00
f843a31e03 Merge pull request 'Improve mail server TLS certificate management' (#556) from chore/mail_server_cert into master
Reviewed-on: #556
Reviewed-by: Greg <greg@noreply.kosmos.org>
2024-06-05 14:49:01 +00:00
ff313525c8 Reload postfix and dovecot on cert renewal
closes #552

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2024-06-05 16:44:18 +02:00
cfb379741e Add imap and smtp subdomains to mail server cert
closes #543

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2024-06-05 15:55:29 +02:00
0c29fad404 Remove superfluous license header
Co-authored-by: Greg Karékinian <greg@karekinian.com>
2024-06-05 15:50:09 +02:00
416935d8b5 Merge pull request 'Upgrade Gitea to 1.22' (#555) from chore/upgrade_gitea into master
Reviewed-on: #555
2024-06-02 21:18:07 +00:00
2b6f81c5d6 Upgrade Gitea to 1.22 2024-06-02 23:17:16 +02:00
18496bb0da Merge pull request 'Configure akkounts for nostr zaps' (#554) from chore/akkounts_config into master
Reviewed-on: #554
2024-06-02 21:05:15 +00:00
d878b4208e Configure akkounts for nostr zaps 2024-06-02 23:03:06 +02:00
d31440d235 Add CORS headers to kosmos.social LNURL paths 2024-06-02 23:02:22 +02:00
6f287f14ef Deploy live branch 2024-06-02 23:01:49 +02:00
b77df3d0db Update email aliases 2024-05-16 14:34:09 +02:00
f7f5a0069d Merge pull request 'Add support for proxy domain validation to tls_cert resource' (#553) from feature/letsencrypt_proxy_validation into master
Reviewed-on: #553
Reviewed-by: Greg <greg@noreply.kosmos.org>
2024-05-08 12:30:29 +00:00
989185f951 Support proxy domain validation for Garage web domains
Also rename the data bag item
2024-04-30 12:23:36 +02:00
4cbda69a6b Add support for proxy domain validation to tls_cert resource 2024-04-26 12:24:17 +02:00
6931fe05d0 Hide Gitea version and load times in footer 2024-04-07 13:16:19 +03:00
b248ef70db Upgrade Gitea to 1.21.10 2024-04-07 13:10:10 +03:00
45159ad4e7 Resolve Mastodon addresses as Lightning Address 2024-03-31 08:27:20 +04:00
612cd0c55e Merge pull request 'Configure LDAP login for Mastodon (merge .social and .org accounts)' (#551) from feature/mastodon_ldap_integration into master
Reviewed-on: #551
Reviewed-by: Greg <greg@noreply.kosmos.org>
2024-03-29 09:51:42 +00:00
83380047bb Configure LDAP integration for Mastodon 2024-03-29 09:28:13 +04:00
8aebb386a4 Configure Mastodon user address domain for akkounts 2024-03-27 20:19:24 +04:00
a8c4f0bd0e Merge pull request 'Only allow ejabberd logins when XMPP service is enabled for user' (#550) from feature/xmpp_service_enabled into master
Reviewed-on: #550
2024-03-27 16:17:04 +00:00
12b4fb37fa Only allow ejabberd logins when XMPP service is enabled 2024-03-27 20:12:33 +04:00
263eb88b72 Add new env var for akkounts 2024-03-14 23:05:05 +01:00
25ee38fe27 Update kredits-ipfs-pinner 2024-03-14 23:04:27 +01:00
e701938442 Merge pull request 'Support letsencrypt proxy validation via CNAMEs' (#548) from feature/letsencrypt_proxy_validation into master
Reviewed-on: #548
Reviewed-by: greg <greg@noreply.kosmos.org>
2024-03-12 14:11:14 +00:00
309bc45791 Merge pull request 'Fix backup script removing image after unsuccessful pivot' (#549) from bugfix/vm_backups into master
Reviewed-on: #549
2024-03-11 15:35:50 +00:00
82a4af05ef Fix backup script removing image after unsuccessful pivot
If pivoting the VM backing storage back to the original image fails
(e.g. VM being down at that time), the script currently still deletes
the hotswap image, which means that all changes since the creation of
the hotswap image are lost.
2024-03-11 16:26:14 +01:00
4a8ab3abe3 Support letsencrypt proxy validation via CNAMEs
Allows to point other domains' `_acme-challenge.example.com` entries at
`example.com.letsencrypt.kosmos.chat` so we can validate from our side
without access to the other domain's DNS records.

Used for 5apps.com XMPP for now. Can be used for others later.

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2024-03-11 16:21:28 +01:00
21de964e1b Upgrade nbxplorer, btcpay 2024-03-11 16:14:03 +01:00
b4ddfd19e3 Upgrade Ruby for latest Mastodon release 2024-03-11 16:13:48 +01:00
08c604962c Upgrade Ruby for latest akkounts release 2024-03-11 16:13:30 +01:00
089574d0de Merge pull request 'Update Gitea and act_runner, improve recipes' (#547) from chore/upgrade_gitea into master
Reviewed-on: #547
2024-03-11 15:12:00 +00:00
d19a8eebfb Update Gitea and act_runner, improve recipes 2024-03-11 16:11:12 +01:00
c0487d0e13 Deploy 5apps Gitea act runner 2024-03-11 16:08:22 +01:00
023a4261cd Update node info 2024-03-11 16:07:32 +01:00
fea65404cf Deploy new garage node 2024-03-11 16:03:22 +01:00
5139f242a4 Merge pull request 'Switch postgresql primary, deploy new replica' (#546) from switch_postgres_primary into master
Reviewed-on: #546
2024-03-11 14:59:57 +00:00
9c2aa9faaa Add info about required, unautomated step to script 2024-03-11 15:57:46 +01:00
164b974eb8 Switch postgresql primary, deploy new replica 2024-03-11 15:55:05 +01:00
6e4cc48068 Upgrade Gitea to 1.21.5 2024-02-05 14:39:12 +02:00
c2bd03dc23 Update node info 2024-02-05 10:14:27 +02:00
210a83a686 Increase max user offline messages for ejabberd 2024-02-04 15:47:55 +02:00
49db14869d Merge pull request 'Add Liquor Cabinet cookbooks and configs, deploy to production' (#541) from feature/535-liquor_cabinet into master
Reviewed-on: #541
2024-02-04 13:47:05 +00:00
000a13cec4 Merge pull request 'Set up coturn, switch from ejabberd in production' (#532) from feature/coturn into master
Reviewed-on: #532
2024-02-04 13:46:50 +00:00
5f7701c288 Fix missing listen IP for storage proxy 2024-01-29 18:16:07 +02:00
bcaee3bb21 Fix ActiveStorage not liking the local S3 endpoint 2024-01-29 18:15:36 +02:00
f352901582 Consolidate akkounts well-known proxying, add Webfinger and Nostr
refs #158
2024-01-29 14:17:15 +02:00
5c1c63f94e Add S3/Garage config for akkounts 2024-01-26 10:40:36 +03:00
98543f3e7d Configure RS integration for akkounts 2024-01-26 09:01:55 +03:00
7ab83d3d82 Section header comments for ENV vars
Improve readability of recipe
2024-01-26 09:00:25 +03:00
b5020efdd5 Merge branch 'master' into feature/535-liquor_cabinet 2024-01-26 08:19:50 +03:00
2763244fdc Merge pull request 'Config updates and improvements for new akkounts release' (#542) from chore/akkounts_updates into master
Reviewed-on: #542
2024-01-26 05:19:16 +00:00
e10e54c12a Deploy liquor-cabinet proxy to production 2024-01-26 08:16:26 +03:00
6114f0f799 Add liquor-cabinet proxy recipe 2024-01-26 08:15:53 +03:00
a2ec41b68a Add/use kosmos_liquor-cabinet cookbook 2024-01-25 17:42:56 +03:00
715fdbc2ba Node-attribute ALL THE THINGS 2024-01-25 17:40:42 +03:00
211a613e5c Add liquor-cabinet configs, deploy to production 2024-01-25 16:27:31 +03:00
d3c22ea787 Add liquor_cabinet cookbook 2024-01-25 16:26:41 +03:00
6047ea3f84 Merge pull request 'Add support for Redis replication, set up in production' (#540) from feature/redis_replication into master
Reviewed-on: #540
2024-01-25 10:19:12 +00:00
7d478f0183 Set up Redis replication in production 2024-01-24 18:12:22 +03:00
88e96747e3 Add Redis replica recipe and role 2024-01-24 18:11:58 +03:00
4b04aa7cd9 Let akkounts API proxy forward all API requests
... instead of just a specific subdirectory/path
2024-01-24 16:19:04 +03:00
2597e211ed Add new akkounts configs 2024-01-24 16:18:50 +03:00
f96faf9fa2 Install libvips for image manipulation in akkounts 2024-01-24 16:18:19 +03:00
c32e8bc9e5 Add new garage nodes 2024-01-11 18:38:22 +03:00
Râu Cao
24b22b8f91 Merge pull request 'Add email service' (#526) from feature/email into master
Reviewed-on: #526
2024-01-10 12:09:21 +00:00
456ec7a5fa Deploy new email VM 2024-01-09 15:57:04 +03:00
daadd9374f Use attribute for root dir 2024-01-08 11:35:04 +03:00
98acd429de Add configs for virtual email aliases 2024-01-08 11:29:56 +03:00
cfa7da2051 Create vmail dir on fresh systems 2024-01-08 10:47:19 +03:00
0d3082e1c8 Upgrade Gitea to 1.21.3 2024-01-01 16:13:15 +03:00
e1007f7886 ejabberd disco config additions 2023-12-18 13:23:21 +01:00
292366a77f Domain vs realm vs IP 2023-12-18 13:23:05 +01:00
ed998fc1d3 Use TCP for TLS connections 2023-12-18 13:22:34 +01:00
8a97ebf4f8 Use domain instead of IP, add TLS endpoints 2023-12-17 17:57:49 +01:00
ca3f06f831 Increase size of port range for TURN 2023-12-17 17:05:06 +01:00
1576a8e731 Set up coturn, switch from ejabberd in production
https://github.com/coturn/coturn
2023-12-17 15:20:11 +01:00
6e3fb80565 Upgrade CLN 2023-12-16 19:23:09 +01:00
Râu Cao
295d95c048 Upgrade Gitea to 1.21.1 2023-12-16 11:49:35 +01:00
789532fae9 Merge pull request 'Upgrade bitcoind, LND, CLN, RTL, NBXplorer, BTCPay' (#531) from chore/upgrade_bitcoin_software into master
Reviewed-on: #531
2023-12-14 17:15:40 +00:00
Râu Cao
404f492e6e Update node info 2023-12-14 18:14:37 +01:00
Râu Cao
574f78f128 Upgrade bitcoind, LND, CLN, RTL, NBXplorer, BTCPay
Also required upgrading node.js and the .NET SDK.
2023-12-14 18:12:29 +01:00
f4d1009473 Merge pull request 'Switch to virtual domains/aliases/mailboxes' (#530) from feature/email_virtual_domains into feature/email
Reviewed-on: #530
2023-12-13 12:06:44 +00:00
Râu Cao
69af908f6b Virtual domain configs 2023-12-13 13:05:31 +01:00
Râu Cao
e8880ded90 Remove vagrant (dev) node config files
No need for sharing them, since the actual roles etc. are defined in the
Vagrantfile.
2023-12-07 10:37:09 +01:00
Râu Cao
10dd3bf16e Add new RSK testnet node, don't serve from current one 2023-12-07 09:55:29 +01:00
Râu Cao
ca580bcfe2 Set email report contact in production 2023-12-07 09:37:37 +01:00
5b0cb438ba Merge pull request 'Set up SpamAssassin' (#529) from feature/spamassassin into feature/email
Reviewed-on: #529
2023-12-06 11:28:14 +00:00
Râu Cao
5a4cdf9c30 Prevent local users from impersonating other local users 2023-12-06 12:27:38 +01:00
Râu Cao
b3f2ca415e Set up SpamAssassin
Scan incoming and outgoing email for spam. Use a local Unbound for DNS,
so we don't run into blocks for RBL queries.
2023-12-06 12:22:24 +01:00
Râu Cao
05ccbcc58f Merge branch 'master' into feature/email 2023-12-05 18:37:43 +01:00
Râu Cao
e3c4bf8969 Update node config 2023-12-05 18:21:26 +01:00
Râu Cao
cc6cebb8a2 Increase TURN throughput allowance 2023-12-05 18:20:27 +01:00
Râu Cao
4dbc960eed Switch ejabberd node handling TURN
Should use the same outgoing IP as for incoming
2023-12-05 18:19:48 +01:00
ce47072b0d Merge pull request 'Improve VM backups, configure backups on "her"' (#528) from feature/backup_improvements into master
Reviewed-on: #528
2023-12-05 17:18:40 +00:00
Râu Cao
7805182457 Change borg backup default interval to 3 hrs 2023-12-05 18:16:15 +01:00
Râu Cao
769ac4a081 Support node-specific borg repo config 2023-12-05 18:09:44 +01:00
Râu Cao
b1763cd032 Pattern-match node names for VM backup exclusion 2023-12-05 18:04:57 +01:00
Râu Cao
c746b38ebf Update node info 2023-12-05 14:19:52 +01:00
0a58cac0cf Merge pull request 'Set up DKIM signing and verification' (#527) from feature/email_dkim into feature/email
Reviewed-on: #527
2023-12-04 12:42:37 +00:00
Râu Cao
42c04538d8 Set up DKIM signing and verification 2023-12-04 13:40:37 +01:00
Râu Cao
c9ad3c2d18 Create/configure common default mailboxes 2023-12-04 13:33:23 +01:00
Râu Cao
fbad0bf896 More explicit postfix configs 2023-12-03 18:33:12 +01:00
Râu Cao
8a7eeb1dd9 Change INBOX location 2023-12-03 18:32:55 +01:00
Râu Cao
568197737a Fix SMTP connection delay when peer hostname cannot be resolved 2023-12-03 18:31:47 +01:00
Râu Cao
738e96f7e4 Fix auth for SMTP submission on port 465 2023-12-03 18:31:12 +01:00
Râu Cao
87411274ae Configure email domain for production 2023-12-03 18:29:35 +01:00
Râu Cao
ce00852bba Remove obsolete config file 2023-12-01 12:19:21 +01:00
Râu Cao
366c0c0d3c Add WIP email domain and hostname 2023-12-01 10:02:25 +01:00
Râu Cao
89d00afd1c Set up email proxy 2023-12-01 10:02:11 +01:00
Râu Cao
e4abfb1b75 Use more reasonable priority for attributes in recipe 2023-12-01 10:01:34 +01:00
Râu Cao
335a082171 Put an LDAP server in the production env 2023-12-01 10:00:35 +01:00
Râu Cao
9d0ff358ef Only use certbot deploy hook when applicable 2023-12-01 10:00:07 +01:00
Râu Cao
495a4231fb Add mail server node 2023-12-01 09:59:41 +01:00
Râu Cao
51068e5259 Add email credentials 2023-12-01 09:58:25 +01:00
Râu Cao
fbcf1ed5e7 WIP Add initial cookbook and roles for email service 2023-12-01 09:56:54 +01:00
Râu Cao
158a9c2fbe Update postfix cookbook 2023-11-29 22:26:59 +01:00
Râu Cao
1e9878d17e Remove obsolete clients 2023-11-28 22:43:21 +01:00
Râu Cao
3df7a386e6 Remove rsk-testnet-3 2023-11-28 22:43:21 +01:00
cbeddefa34 Merge pull request 'Set max size for external S3 upload requests' (#525) from bugfix/s3_nginx_max_upload_size into master
Reviewed-on: #525
2023-11-15 13:04:34 +00:00
Râu Cao
aefd01d38d Remove old RSK mainnet node 2023-11-15 13:22:15 +01:00
Râu Cao
5765c08d6e Fail over to next node when and RSK backend is down 2023-11-15 13:21:46 +01:00
Râu Cao
aaae90bc0d Don't exit VM backup scripts immediately on failures 2023-11-15 13:20:42 +01:00
Râu Cao
087616b6b6 Set max size for external S3 upload requests
Fix uploads failing when exceeding the default nginx limit
2023-11-08 21:44:49 +01:00
Râu Cao
390753faa3 Increase update delay for Gandi DNS records 2023-11-05 01:01:16 +01:00
Râu Cao
1a3516904d Update node info 2023-11-05 01:01:04 +01:00
adafb132ee Merge pull request 'Upgrade Mastodon to 4.2.1' (#524) from chore/upgrade_mastodon into master
Reviewed-on: #524
2023-11-05 00:00:51 +00:00
Râu Cao
8071f44f41 Upgrade Mastodon to 4.2.1 2023-11-05 00:57:43 +01:00
Râu Cao
05d04fe76c Update node info 2023-11-04 15:25:01 +01:00
231811f9d0 Merge pull request 'Upgrade Gitea to 1.20.5' (#523) from chore/upgrade_gitea into master
Reviewed-on: #523
2023-11-04 14:15:47 +00:00
Râu Cao
9fa7d8b28f Upgrade Gitea to 1.20.5 2023-11-04 15:14:58 +01:00
5fbc48df9a Merge pull request 'Upgrade RSKj to 5.3.0, deploy new nodes' (#522) from chore/upgrade_rskj_jammy into master
Reviewed-on: #522
2023-11-04 14:09:30 +00:00
Râu Cao
925a5da239 Upgrade RSKj to 5.3.0, deploy new nodes
Adapted the cookbook for new nodes running on Jammy.
2023-11-04 15:06:31 +01:00
Râu Cao
3d3156a031 Add new host 2023-11-01 12:39:17 +01:00
2c33ee79f2 Merge pull request 'Upgrade ejabberd to 23.10, enable anonymous occupant IDs' (#520) from chore/upgrade_ejabberd into master
Reviewed-on: #520
2023-11-01 11:32:18 +00:00
Râu Cao
abc168ebf1 Upgrade ejabberd to 23.10, enable anonymous occupant IDs 2023-11-01 12:29:23 +01:00
873c235539 Merge pull request 'Migrate ejabberd uploads to mod_s3_upload and Garage' (#518) from feature/469-ejabberd_s3 into master
Reviewed-on: #518
2023-10-17 19:07:23 +00:00
Râu Cao
65d71d6a73 Migrate ejabberd uploads to mod_s3_upload and Garage
In addition to installing and configuring the new module, this also
enables public access to the S3 API via `bucket-name.s3.kosmos.org` as
well as Web access on `bucket-name.web.s3.kosmos.org` (when enabled).

Also includes some drive-by improvements to Chef attribute naming and
usage.

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2023-10-10 17:55:55 +02:00
Râu Cao
832075dfb2 Shorten root domains for external Garage S3 and Web access
And move the configuration-specific preceding dot to the config
template.
2023-10-10 16:34:23 +02:00
1c9e28448f Merge pull request 'Improve PostgreSQL streaming replication in production' (#516) from feature/keep_wal_segments into master
Reviewed-on: #516
2023-10-07 08:18:24 +00:00
Râu Cao
3505212e92 Add missing header to RS discourse proxy config 2023-10-04 12:36:07 +02:00
Râu Cao
2d3872a692 Update chef client on postgres-4
refs #500
2023-10-02 15:48:50 +02:00
Râu Cao
eb1303a8da Fix postgres primary not holding onto any WAL segments for later sync
closes #515
2023-10-02 15:46:26 +02:00
9af38219af Merge pull request 'Upgrade bitcoind, LND, .NET, NBXplorer, and BTCPay' (#514) from chore/upgrade_btc_things into master
Reviewed-on: #514
2023-09-28 14:44:00 +00:00
Râu Cao
08d9819fd2 Upgrade bitcoind, LND, dotnet, NBXplorer, and BTCPay 2023-09-28 16:41:44 +02:00
Râu Cao
f0968aae5b Add Drone CI config for akkounts 2023-09-01 12:51:40 +02:00
b4ce426ce9 Merge pull request 'Upgrade Gitea to 1.20.3, Chef client to 18.x' (#512) from chore/upgrade_gitea into master
Reviewed-on: #512
2023-08-25 15:14:46 +00:00
Râu Cao
e65c58ff6c Upgrade Gitea to 1.20.3, Chef client to 18.x 2023-08-25 17:12:33 +02:00
cc8264432c Merge pull request 'Migrate nginx sites to openresty' (#511) from chore/migrate_nginx_sites_to_openresty into master
Reviewed-on: #511
2023-08-01 13:02:32 +00:00
Râu Cao
1650e429a8 Migrate fornax nginx to openresty 2023-07-31 15:57:13 +02:00
Râu Cao
123b304dd0 Use correct node attributes 2023-07-31 15:57:07 +02:00
Râu Cao
bbd25ebb9c Add nginx logs for gitea 2023-07-31 15:56:40 +02:00
Râu Cao
ec43f4ee0f Update openresty cookbook 2023-07-31 15:56:20 +02:00
Râu Cao
eab94090e8 Use openresty node attributes in openresty templates 2023-07-31 15:07:35 +02:00
Râu Cao
7f2805831c Remove obsolete cookbook 2023-07-31 15:07:18 +02:00
Râu Cao
0f12a54eab Refactor tor usage entirely
Use a custom resource and separate recipe for service configs with
pre-set keys and hostnames
2023-07-30 12:39:41 +02:00
Râu Cao
68b56789c5 Migrate ejabberd UDP streams to openresty
And remove the other streams in the process, in favor of running haproxy
on all LBs.
2023-07-30 12:39:36 +02:00
Râu Cao
438ee4ace0 Migrate Gitea SSH stream to openresty 2023-07-30 12:35:21 +02:00
Râu Cao
27bdc1f60d Update openresty cookbook 2023-07-30 12:34:21 +02:00
Râu Cao
cb0fc27134 Refactor tor usage, set up new tor proxy on draco 2023-07-29 16:26:20 +02:00
Râu Cao
b149264919 Use paths from node attributes 2023-07-29 14:30:46 +02:00
Râu Cao
53c35fda51 Migrate garage proxies to openresty 2023-07-26 16:42:48 +02:00
Râu Cao
bb2f41fdb3 Migrate hubot proxies to openresty 2023-07-26 16:21:03 +02:00
Râu Cao
027d0ed570 Migrate IPFS proxies to openresty 2023-07-26 16:12:33 +02:00
Râu Cao
1362da0add Migrate RS Discourse proxy to openresty 2023-07-26 15:57:08 +02:00
Râu Cao
15b2ea284a Migrate mastodon proxy to openresty 2023-07-26 15:44:04 +02:00
Râu Cao
ad59913555 Migrate lndhub proxy to openresty 2023-07-26 15:00:55 +02:00
Râu Cao
1bad2939de Migrate accounts API proxy to openresty 2023-07-26 15:00:43 +02:00
Râu Cao
7b5d46c813 Update openresty cookbook 2023-07-26 14:52:16 +02:00
Râu Cao
98d423aa70 Update roles 2023-07-26 14:16:33 +02:00
Râu Cao
4b14297f83 WIP Migrate Gitea proxy to openresty
TODO: Make nginx_ssh stream resource work with openresty cookbook
2023-07-26 14:15:46 +02:00
Râu Cao
1681942fb1 Migrate static website to openresty 2023-07-26 14:15:22 +02:00
Râu Cao
4d528d67ef Migrate RSK proxies to openresty 2023-07-26 14:08:44 +02:00
Râu Cao
53abc2ec9a Migrate Drone CI proxy to openresty 2023-07-26 14:07:48 +02:00
Râu Cao
543b482adb Migrate discourse proxy to openresty 2023-07-26 13:40:19 +02:00
Râu Cao
87657db8a7 Update openresty cookbook 2023-07-26 13:39:07 +02:00
Râu Cao
4b0b4b8d80 Migrate akkounts proxy to openresty 2023-07-26 13:31:28 +02:00
Râu Cao
77c97607d5 Update openresty cookbook 2023-07-26 13:31:27 +02:00
Râu Cao
4b08e4fc8c Add JSON log format to openresty 2023-07-26 13:31:23 +02:00
507a812f33 Merge pull request 'Exclude specified VMs from image backups' (#509) from feature/kvm_backup_exceptions into master
Reviewed-on: #509
2023-07-26 08:58:45 +00:00
Râu Cao
fb708743cc Remove obsolete node 2023-07-26 09:31:38 +02:00
Râu Cao
9568b7072d Exclude specified nodes/VMs from image backups 2023-07-25 16:58:16 +02:00
Râu Cao
a85bbc4a3e Add kvm host role 2023-07-25 16:38:52 +02:00
266b17eb98 Merge pull request 'Set up openresty' (#502) from feature/501-openresty into master
Reviewed-on: #502
2023-07-25 11:24:39 +00:00
7d9faf40d8 Merge pull request 'Upgrade Gitea to 1.20.1' (#508) from chore/upgrade_gitea_to_1.20.1 into master
Reviewed-on: #508
2023-07-23 10:59:11 +00:00
Râu Cao
149760702b Upgrade Gitea to 1.20.1 2023-07-23 12:58:02 +02:00
Râu Cao
ec77e19ab0 Update SMTP credentials 2023-07-23 12:56:46 +02:00
Râu Cao
baab02515c Remove attributes from node config 2023-07-23 12:56:27 +02:00
Râu Cao
c48dd4c997 Replace postgresql primary, add new replica 2023-07-21 14:56:14 +02:00
Râu Cao
e5805169f5 Improve script for switching postgres primary 2023-07-21 14:55:43 +02:00
Greg Karékinian
be072fb985 Update vagrant-openresty node file 2023-07-19 10:01:51 +02:00
Greg Karékinian
0fc388f43c Don't redirect http for the hello_world openresty app 2023-07-19 10:01:10 +02:00
Greg Karékinian
27b466f30d Add new architecture to Gemfile.lock 2023-07-17 18:09:55 +02:00
Greg Karékinian
1a19fa012d Deploy openresty proxy on draco
Also update Chef to 18.2.7
2023-07-17 18:09:13 +02:00
Greg Karékinian
7b0313fbd4 Add access and error logs for the assets vhost 2023-07-17 18:08:32 +02:00
Greg Karékinian
1183f6a621 Add missing dependency on git to deploy the assets 2023-07-17 18:08:21 +02:00
Greg Karékinian
05daff9029 Install certbot when using the tls_cert_for resource 2023-07-17 18:07:50 +02:00
Greg Karékinian
307ccbd561 Set a production run list for the openresty_proxy role
It only contains the assets for now
2023-07-17 18:06:58 +02:00
Greg Karékinian
cc91aab155 Use the new way of setting attribute whitelists 2023-07-17 18:06:23 +02:00
Greg Karékinian
bf72367cf2 Add a firewall rule to the kosmos_openresty cookbook
It is part of the run list in production
2023-07-17 18:05:34 +02:00
Greg Karékinian
4e0bd191c3 Move the Hello World lua app to its own recipe
Use it in the development environment
2023-07-17 18:04:35 +02:00
Greg Karékinian
96f45b1f63 Set the required Chef version to 18 2023-07-17 18:03:02 +02:00
Greg Karékinian
030dbc3584 Update the openresty cookbook submodule 2023-07-17 18:00:38 +02:00
Greg Karékinian
84ffb46ed5 Add Chef node file for openresty VM 2023-07-17 14:46:38 +02:00
Greg Karékinian
491cd31fac Add openresty Vagrant box 2023-07-15 17:20:06 +02:00
Greg Karékinian
2acf4c2b59 Update Chef in Vagrant setup 2023-07-15 17:19:50 +02:00
Greg Karékinian
df1143525d Add openresty roles 2023-07-12 20:37:03 +02:00
Greg Karékinian
d79dcd8e65 Deploy kosmos assets with Openresty 2023-07-12 20:36:12 +02:00
Greg Karékinian
c1e2145ba1 Create a resource to get a Let's Encrypt cert with DNS validation 2023-07-12 20:35:15 +02:00
Greg Karékinian
d077dfdcf2 Deploy a hello world openresty app 2023-07-12 20:34:00 +02:00
Greg Karékinian
8a3c519a6c Update our fork of the openresty cookbook 2023-07-12 20:32:53 +02:00
Greg Karékinian
abb652cc2b Fix the openresty submodule 2023-07-08 15:37:12 +02:00
Greg Karékinian
b7c36d427e Add jemalloc and yum cookbooks 2023-07-08 15:12:30 +02:00
Greg Karékinian
1bdcda0e97 Initial kosmos_openresty wrapper cookbook 2023-07-06 10:17:11 +02:00
Greg Karékinian
0a15199364 Add cookbook dependencies for openresty 2023-07-06 10:14:23 +02:00
Greg Karékinian
aebf0a12e8 Don't use AIO in development
This was needed in my Vagrant setup (VirtualBox)
2023-07-06 10:13:52 +02:00
Greg Karékinian
2950ab5bfc Add openresty cookbook fork as a submodule 2023-07-05 15:50:46 +02:00
8072fafa46 Merge pull request 'Set up Redis VM, upgrade all cookbooks for Chef 18, major cleanup' (#496) from feature/488-redis_server into master
Reviewed-on: #496
2023-07-01 12:22:38 +00:00
Greg Karékinian
2637d755af Remove old server 2023-06-29 17:17:06 +02:00
Greg Karékinian
b550c1b79e Remove deleted servers 2023-06-29 16:58:28 +02:00
Greg Karékinian
1f29d8a01a Get rid of compat_resource and mariadb 2023-06-29 16:49:06 +02:00
Greg Karékinian
462bdabf01 Get rid of the chef-sugar dependency
It's now deprecated
2023-06-29 16:41:08 +02:00
Greg Karékinian
7683de09a2 Update the elasticsearch cookbook 2023-06-29 16:39:09 +02:00
Greg Karékinian
68ce3c4834 Update the firewall cookbook to the latest version
This gives us comments from the named resources
2023-06-29 15:08:44 +02:00
Greg Karékinian
916ae8094c Get rid of the build-essential cookbook
The build_essential resource has been part of Chef since 14.0
2023-06-29 14:48:49 +02:00
Greg Karékinian
05834b6013 Get rid of the application and poise cookbooks 2023-06-28 18:59:31 +02:00
Greg Karékinian
d7bc5e6f08 Update Chef on these servers 2023-06-28 18:55:13 +02:00
Greg Karékinian
b7d17c1ad7 Replace application cookbook with git resource 2023-06-28 18:55:05 +02:00
Greg Karékinian
54098a450c Replace application cookbook with git resource 2023-06-28 18:54:38 +02:00
Greg Karékinian
3a5a038f7e Replace application cookbook with git resource 2023-06-28 18:53:59 +02:00
Greg Karékinian
3cf9c3868b Deploy mastodon without the application cookbooks 2023-06-28 17:23:05 +02:00
Greg Karékinian
57fdf0723f Deploy RTL without the deprecated application cookbook 2023-06-28 16:35:57 +02:00
Greg Karékinian
9378df23db Remove unused lndhub recipe 2023-06-28 16:35:56 +02:00
Greg Karékinian
88caae26e4 Install the latest backup gem
It added a few dev dependencies, install them
2023-06-28 16:35:56 +02:00
Greg Karékinian
0564165e81 Override the attributes in attributes, not the default recipe 2023-06-28 16:35:56 +02:00
Greg Karékinian
ddeebc739d Update chef-sugar to fix a conflict in Chef 16+ 2023-06-28 16:35:56 +02:00
Greg Karékinian
b9cf396d42 Deploy akkounts without the application_git cookbook
Use the built-in git resource from Chef instead. poise/application does
not work on modern Chef.
2023-06-28 16:35:56 +02:00
0506b75115 Merge pull request 'Configure all new and remaining options for akkounts' (#498) from chore/akkounts_config into feature/488-redis_server
Reviewed-on: #498
2023-06-28 12:29:41 +00:00
Râu Cao
01977e088a Configure remaining options for akkounts
And refactor attributes/variables to use the various service cookbook's
own attributes.
2023-06-28 14:27:25 +02:00
Greg Karékinian
d1a4e4cbc5 Merge branch 'master' into feature/488-redis_server 2023-06-28 14:15:30 +02:00
Râu Cao
bcbee255f1 Add primary domain config for akkounts 2023-06-21 15:08:14 +02:00
0a25ef6d7a Merge pull request 'Upgrade Kredits IPFS Pinner' (#497) from chore/deploy_kredits-ipfs-pinner into master
Reviewed-on: #497
2023-06-20 16:54:48 +00:00
Râu Cao
d6989ab161 Replace hardcoded value with variable 2023-06-20 18:52:44 +02:00
Râu Cao
b94484d0dd Upgrade Kredits IPFS Pinner 2023-06-20 18:52:16 +02:00
Greg Karékinian
b19fca6e7c Add firewall rule to allow access to Redis on Zerotier network 2023-06-20 15:19:34 +02:00
Greg Karékinian
76a952dbac Add missing Berksfile changes 2023-06-19 16:13:08 +02:00
Greg Karékinian
3fb89517ab Add redis_server role to redis-1 2023-06-19 16:08:59 +02:00
Greg Karékinian
44e23ffa1f Merge branch 'master' into feature/488-redis_server 2023-06-19 16:08:44 +02:00
Greg Karékinian
6116729907 Set up Redis using the latest version of redisio
This replaces the deprecated redis cookbook. Compiles the latest version
of Redis, currently 7.0.11

Refs #488
2023-06-19 16:02:58 +02:00
e924d714af Merge pull request 'Refactor RSK nginx sites for proxy/lb usage' (#495) from chore/rsk_nginx_sites into master
Reviewed-on: #495
2023-06-19 14:01:25 +00:00
Râu Cao
90f66c74d2 Refactor RSK nginx sites for proxy/lb usage 2023-06-18 16:55:38 +02:00
635ca3870a Merge pull request 'Upgrade RSKj to 4.4.0' (#494) from chore/upgrade_rskj into master
Reviewed-on: #494
2023-06-15 14:40:52 +00:00
Râu Cao
80a7751267 Test for correct network in RSKj config 2023-06-07 15:28:23 +03:00
Râu Cao
ba573798ee Upgrade RSKj to latest stable release 2023-06-07 15:27:58 +03:00
3b8326283f Merge pull request 'Configure/deploy akkounts for Discourse SSO' (#493) from chore/akkounts_upgrade into master
Reviewed-on: #493
2023-06-04 12:29:50 +00:00
Râu Cao
d113edb004 Set X-Forwarded-Proto for Discourse requests 2023-06-04 15:25:00 +03:00
Râu Cao
9648e071ca Configure akkounts for Discourse Connect 2023-06-04 15:24:06 +03:00
b164d7a444 Merge pull request 'Provision VMs for Redis cluster, RS API' (#490) from chore/new_vms into master
Reviewed-on: #490
2023-05-23 13:08:15 +00:00
7f97d95bad Merge pull request 'Upgrade ZeroTier Controller UI to latest version' (#491) from chore/upgrade_ztncui into master
Reviewed-on: #491
2023-05-23 13:02:04 +00:00
26b1682bdb Merge pull request 'Upgrade Gitea to 1.19.3' (#492) from chore/upgrade_gitea into master
Reviewed-on: #492
2023-05-13 13:43:22 +00:00
Râu Cao
91ede90184 Upgrade Gitea to 1.19.3 2023-05-13 15:41:59 +02:00
Râu Cao
6c329b7200 Upgrade ztncui to 0.8.13 2023-05-12 17:16:22 +02:00
Râu Cao
d0a1785847 Install new versions of ztncui, restart service 2023-05-12 17:15:52 +02:00
Râu Cao
29052ce509 Deploy new VMs for Redis, Liquor Cabinet 2023-05-12 17:02:10 +02:00
Râu Cao
fc041965f4 Update Ubuntu base image 2023-05-12 17:01:50 +02:00
b9e2f3b8e8 Merge pull request 'Upgrade Go to 1.20.3, LND to 0.16.1' (#486) from chore/upgrade_golang_lnd into master
Reviewed-on: #486
2023-04-26 13:06:53 +00:00
Râu Cao
807ca52f1c Upgrade LND to 0.16.1 2023-04-26 15:05:17 +02:00
Râu Cao
78eb3c033a Upgrade golang to 1.20.3 2023-04-26 15:05:06 +02:00
bffa24884c Merge pull request 'Upgrade ejabberd to 23.04, activate real-time MUC blocklists against spam' (#485) from chore/upgrade_ejabberd into master
Reviewed-on: #485
2023-04-19 15:38:07 +00:00
Râu Cao
efb07ad3c1 Allow akkounts to set private XML storage data
Enables kosmos/akkounts#116
2023-04-19 17:32:30 +02:00
Râu Cao
14e04d77a9 Activate real-time MUC blocklist module 2023-04-19 17:32:15 +02:00
Râu Cao
f8f3fc7c3a Upgrade ejabberd to 23.04
Also add a package version attribute, since the value changed in the
past.
2023-04-19 17:30:55 +02:00
Râu Cao
5ad15ba1f3 Upgrade Gitea to 1.19.1 2023-04-13 18:31:42 +02:00
4778253ad3 Merge pull request 'Fix Gitea Actions runner not working with private host' (#484) from bugfix/act_runner_needs_public_host into master
Reviewed-on: #484
2023-04-11 10:16:20 +00:00
Râu Cao
1afc860b21 Fix Gitea Actions runner not working with private host 2023-04-11 12:14:17 +02:00
Râu Cao
03a02a19c4 Use proxy protocol for ejabberd nginx streams 2023-04-04 15:14:41 +02:00
Râu Cao
7a1be33b7a Make all nginx vhosts listen on IPv6 2023-04-04 15:10:23 +02:00
Râu Cao
f36268e906 Update ejabberd admin list 2023-04-04 10:14:50 +02:00
Râu Cao
2dd4d572a6 Configure akkounts domain 2023-04-04 09:32:40 +02:00
a44fa31951 Merge pull request 'Improve ejabberd HTTP API configs and access' (#483) from bugfix/ejabberd_api_access into master
Reviewed-on: #483
2023-04-03 16:03:03 +00:00
Râu Cao
797dd241e0 Improve ejabberd HTTP API configs and access
Move the listener to a separate endpoint on port 80, which is only
accessible from the private network. Change accounts.kosmos.org to use
the new endpoint via a `.local` domain instead of faking external
access.
2023-04-03 15:38:40 +02:00
ac00aa9def Merge pull request 'Upgrade Gitea to 1.19, configure Gitea Actions, set up Actions runners' (#482) from chore/upgrade_gitea into master
Reviewed-on: #482
2023-04-02 13:57:45 +00:00
Râu Cao
059812524e Set up Gitea Actions runners 2023-04-01 12:56:21 +02:00
d7cbdbd6a5 Merge pull request 'Set up Sentry' (#478) from feature/sentry into master
Reviewed-on: #478
2023-03-28 20:13:28 +00:00
Râu Cao
702449acc1 Upgrade Gitea to 1.19.0, enable Actions 2023-03-28 19:36:30 +02:00
Râu Cao
b78de9a3c9 Deploy Sentry from release tag 2023-03-28 15:23:57 +02:00
Râu Cao
99d985c0d5 Configure Sentry for akkounts 2023-03-27 19:10:48 +02:00
Râu Cao
9f886cc286 Configure Sentry DSN for lndhub-go 2023-03-27 19:04:03 +02:00
Râu Cao
05d0a19b5f Add Sentry client recipe and role
Configures a local domain for Sentry in the hostsfile.
2023-03-27 19:04:03 +02:00
Râu Cao
798ee3d1d8 Basic Sentry setup
Not running the install script automatically at this point yet.
2023-03-27 19:03:58 +02:00
0fbba8baa8 Merge pull request 'Add new SMTP config for akkounts' (#480) from feature/479-akkounts_smtp_config into master
Reviewed-on: #480
2023-03-27 09:56:15 +00:00
Greg Karékinian
0c4466b040 Namespace the smtp attributes 2023-03-27 10:49:12 +02:00
Greg Karékinian
34970fe3cf Set a better name for the from address 2023-03-27 10:48:56 +02:00
Greg Karékinian
3873ebaac2 Don't override the SMTP config with the same values 2023-03-27 10:45:02 +02:00
Greg Karékinian
4f1fb347a8 Add new SMTP config for akkounts
This is not running on akkounts-1

closes #479
refs kosmos/akkounts#107
2023-03-24 16:55:11 +01:00
819109849a Merge pull request 'Improve ejabberd config' (#477) from feature/ejabberd_enhanced_configs into master
Reviewed-on: #477
2023-03-24 09:38:18 +00:00
Râu Cao
6e31c7a79b Use proxy protocol 2023-03-24 16:35:23 +07:00
Râu Cao
a2fc3ba25c Remove obsolete folder permissions 2023-03-24 16:35:07 +07:00
Râu Cao
13fc2e6e24 Improve MUC config 2023-03-24 16:34:40 +07:00
d308c2536d Merge pull request 'Switch Discourse uploads and backups to Garage/S3' (#476) from feature/discourse_garage into master
Reviewed-on: #476
2023-03-21 09:04:58 +00:00
4baff4cc03 Merge branch 'master' into feature/discourse_garage 2023-03-21 09:02:20 +00:00
Râu Cao
f34647b2bd Fix akkounts asset requests when nginx is on proxy 2023-03-17 19:29:24 +07:00
Râu Cao
8ae7cdfafd Switch Discourse uploads and backups to Garage/S3 2023-03-17 19:13:04 +07:00
Râu Cao
d8d1609572 Serve static assets from Rails in prod 2023-03-04 11:14:11 +08:00
Râu Cao
cf082833a7 Add lndhub pubkey in prod, update node config 2023-03-03 21:48:38 +08:00
6779f5a5dc Merge pull request 'Add keysend support for Lightning Address' (#471) from feature/lightning_address_keysend into master
Reviewed-on: #471
2023-03-02 10:53:07 +00:00
55bfc0c80f Merge branch 'master' into feature/lightning_address_keysend 2023-03-02 10:52:25 +00:00
796b7e4436 Merge pull request 'Move akkounts nginx to nginx proxy' (#474) from chore/move_akkounts_nginx into master
Reviewed-on: #474
2023-03-02 10:52:12 +00:00
Râu Cao
8225e1b67b Move akkounts nginx to nginx proxy 2023-03-02 18:05:37 +08:00
e2e857ec76 Merge pull request 'Move akkounts to redisio cookbook, switch in production' (#473) from chore/akkounts_redis into master
Reviewed-on: #473
2023-03-02 08:12:12 +00:00
8f70bf5033 Move akkounts to redisio cookbook 2023-03-02 16:09:51 +08:00
0320cae893 Merge pull request 'Upgrade BTCPay Server to 1.8.0' (#472) from bugfix/btcpay_builds into master
Reviewed-on: #472
2023-03-02 07:36:46 +00:00
Râu Cao
9d1dd499bb Upgrade BTCPay Server to 1.8.0
* Fixed build and run scripts
  https://github.com/btcpayserver/btcpayserver/pull/4655
* Fixed bug when using LndHub account as Lightning back-end
  https://github.com/btcpayserver/btcpayserver/issues/4658
2023-03-02 15:31:47 +08:00
Râu Cao
53f8a06e6f Add keysend support for Lightning Address 2023-03-02 13:32:07 +08:00
e9832551ac Merge pull request 'Write akkounts .env config, add config for lndhub admin UI' (#470) from feature/462_akkounts_config into master
Reviewed-on: #470
2023-02-14 13:11:49 +00:00
7549164a2e Merge branch 'master' into feature/462_akkounts_config 2023-02-14 13:04:00 +00:00
48f678148c Merge pull request 'Switch/migrate NBXplorer to PostgreSQL' (#468) from chore/nbxplorer_postgres into master
Reviewed-on: #468
2023-02-14 13:03:49 +00:00
544984abce Merge branch 'master' into chore/nbxplorer_postgres 2023-02-14 13:02:06 +00:00
643af4a4a2 Merge pull request 'Upgrade RSKj, fix and document test suite' (#465) from core/upgrade_rskj into master
Reviewed-on: #465
2023-02-14 13:01:55 +00:00
6209dcfc25 Merge branch 'master' into core/upgrade_rskj 2023-02-14 13:00:44 +00:00
Râu Cao
a1ec9b4d6a Write akkounts .env config, add config for lndhub admin UI
closes #462
2023-02-13 22:39:11 +08:00
Râu Cao
b762d70b43 Use service resource 2023-02-11 17:22:22 +08:00
Râu Cao
99e029a5ca Switch NBXplorer to Postgres 2023-02-08 15:30:44 +08:00
86d7514739 Merge pull request 'Upgrade bitcoind, NBXplorer, BTCPayServer' (#467) from chore/upgrade_btcpay into master
Reviewed-on: #467
2023-02-03 09:05:46 +00:00
Râu Cao
4c7a5f4db8 Upgrade bitcoind, NBXplorer, BTCPayServer 2023-02-03 17:04:16 +08:00
Râu Cao
5e709a3a4f Update node configs 2023-02-01 21:53:50 +08:00
Râu Cao
d04e2f4fd5 Bump cookbook version 2023-02-01 20:45:01 +08:00
Râu Cao
f9e7d98bf9 Document testing commands 2023-02-01 20:44:45 +08:00
Râu Cao
9c33fbda21 Bump rskj version 2023-02-01 20:44:07 +08:00
Râu Cao
a7b990c64f Update preseed syntax 2023-02-01 20:43:41 +08:00
Râu Cao
55e48cca86 Include nginx cookbook in local deps (for testing) 2023-02-01 20:43:07 +08:00
Râu Cao
063858f06c Install imagemagick for mediawiki thumbnail generation 2023-02-01 18:17:39 +08:00
Râu Cao
cd4d21efc8 Remove superfluous license header 2023-02-01 18:17:29 +08:00
Râu Cao
ad10e8cceb Fix up lndhub hook config, converge all relevant nodes 2023-01-25 13:02:09 +08:00
Râu Cao
3e79955261 Deploy akkounts from master again 2023-01-25 12:31:17 +08:00
Râu Cao
d3d046b0d0 Merge branch 'feature/libretranslate' 2023-01-25 12:28:33 +08:00
7447ba2842 Merge pull request 'Configuration for LndHub webhooks' (#461) from feature/lndhub_webhooks into master
Reviewed-on: #461
2023-01-17 13:45:00 +00:00
1a7fd5ac65 Merge branch 'master' into feature/lndhub_webhooks 2023-01-17 13:44:14 +00:00
cdb1213e1d Merge pull request 'Migrate Mastodon S3 from AWS to Garage' (#458) from feature/22-mastodon_s3 into master
Reviewed-on: #458
2023-01-17 13:42:28 +00:00
Râu Cao
03fa49ed0c Remove unused import 2023-01-17 17:15:16 +08:00
Râu Cao
ed0e030106 Set up libretranslate for kosmos.social 2023-01-17 17:12:22 +08:00
Râu Cao
3933e4c310 Fix endpoint URL 2023-01-17 15:36:42 +08:00
Râu Cao
f777af22b8 Finish up Garage S3 config for kosmos.social 2023-01-14 15:59:47 +08:00
Râu Cao
345ba14f0e Add garage S3 config for Mastodon 2023-01-14 15:03:38 +08:00
Râu Cao
89865bcd2a Allow send_message endpoint from akkounts 2023-01-12 15:37:08 +08:00
Râu Cao
62d1a86555 Configure Webhook URL for lndhub.go 2023-01-12 15:37:04 +08:00
Râu Cao
2eb0544ea9 Update README 2023-01-05 17:14:46 +08:00
2d50c7dfd6 Merge pull request 'Upgrade Gitea to 1.18.0' (#460) from chore/upgrade_gitea into master
Reviewed-on: #460
2022-12-30 16:08:18 +00:00
Râu Cao
e54112418e Upgrade Gitea 1.18.0
Requires some config changes for the mailer.
2022-12-30 23:05:40 +07:00
0c37504ac6 Merge pull request 'Set up lndhub.go' (#457) from feature/454-lndhub.go into master
Reviewed-on: #457
2022-12-27 06:29:09 +00:00
d8e0124c46 Merge pull request 'Set up PeerSwap for LND' (#459) from feature/peerswap into feature/454-lndhub.go
Reviewed-on: #459
2022-12-27 06:23:09 +00:00
Râu Cao
176dd64438 Remove peerswap policy file from recipe
This will be auto-created anyway, and we don't want to overwrite changes
added by the CLI.
2022-12-26 11:29:17 +07:00
Râu Cao
4f1b1aff30 Set up PeerSwap
Allows to swap sats in and out of Lightning channels without a 3rd party
(and their fees). Instead, swaps can be initiated directly with the
channel peer.

https://www.peerswap.dev/
2022-12-26 11:16:22 +07:00
Râu Cao
b3465e186f Fix comment 2022-12-26 11:16:01 +07:00
Râu Cao
ea635a52e9 Formatting 2022-12-26 11:14:40 +07:00
Râu Cao
90e17b0abc Rename bitcoind recipe
Was still using a name from when the cookbook didn't set up anything
else
2022-12-25 16:28:14 +07:00
Râu Cao
8c8e978ae9 Update node configs 2022-12-24 00:58:31 +07:00
Râu Cao
3d7b4df376 Add rate limit config for lndhub-go 2022-12-24 00:58:11 +07:00
Râu Cao
b738dc1e80 Add nginx proxy hosts for Garage Web access
The respective bucket needs to be configured with a domain alias. When a
new alias is added to the `s3_web_domains` config, a new nginx site can
then be deployed to the `nginx_proxy` hosts.
2022-12-23 18:07:39 +07:00
Râu Cao
3641ea7a60 Deploy lndhub.go branch of akkounts 2022-12-23 18:02:42 +07:00
Râu Cao
a7e04f4e63 Exclude lndhub backups in dev 2022-12-23 14:17:43 +07:00
Râu Cao
e0c400c007 Use correct asset URL for lndhub logo 2022-12-22 20:03:58 +07:00
Râu Cao
7802ea25e6 Ignore chef environment when looking up primary
We use mixed environments still, not everything is in "production" yet.
2022-12-22 19:45:45 +07:00
Râu Cao
fb1206d03f Refactor bitcoin-related roles and node config 2022-12-22 19:35:41 +07:00
Râu Cao
379a503dd0 Move lndhub nginx site to proxy
And configure for lndhub-go. Also configure branding for public lndhub
dashboard
2022-12-22 19:35:30 +07:00
Râu Cao
7d11450c4e Set up lndhub.go
closes #454
2022-12-11 14:30:27 +01:00
430f8b36b6 Merge pull request 'Set up LDAP/dirsrv replication' (#453) from feature/ldap_replication into master
Reviewed-on: #453
2022-12-08 13:12:22 +00:00
26a34a69d3 Merge branch 'master' into feature/ldap_replication 2022-12-08 13:08:00 +00:00
98785a1a86 Merge pull request 'Move Mastodon nginx to proxy/LB' (#452) from feature/mastodon_nginx into master
Reviewed-on: #452
2022-12-08 13:07:35 +00:00
66c91b5a7f Merge branch 'master' into feature/mastodon_nginx 2022-12-08 13:07:09 +00:00
Râu Cao
a460302728 Add missing sidekiq queue 2022-12-01 17:08:17 +01:00
f8fd10c4c2 Merge pull request 'Upgrade Mastodon to 4.0' (#456) from chore/upgrade_mastodon into feature/mastodon_nginx
Reviewed-on: #456
2022-12-01 14:33:20 +00:00
Râu Cao
2ecb4e2385 Upgrade Ruby to 3.0.4 2022-12-01 15:29:38 +01:00
Râu Cao
cdd3f026c4 Always use config for skipping post-deployment migrations 2022-12-01 15:05:24 +01:00
Râu Cao
5d05d5c187 Move Mastodon nginx to proxy/LB 2022-11-30 12:07:54 +01:00
Râu Cao
f3ca307e64 Fix Tor access
Configure alternate_domains for Rails app to re-enable Tor access (was
throwing 403s without this config)
2022-11-30 12:06:25 +01:00
Râu Cao
66f5217a41 Refactor Mastodon nginx recipe for proxy usage
Works both as local deployment and proxy (via roles and environments)

* Use upstreams for proxy_pass
* Access static assets from proxy, configure caching for them
* Move Tor config to environment, install via role
* ...
2022-11-30 12:02:17 +01:00
Râu Cao
83e55c84a2 Use domain name for log file paths 2022-11-30 12:00:01 +01:00
Râu Cao
83513dbd9d Remove request limits for ipfs proxy
In favor of fail2ban
2022-11-30 11:58:22 +01:00
Râu Cao
c4d43b7f4e Make Mastodon services listen on private IP in prod
And allow access to them from the private network
2022-11-30 11:57:51 +01:00
83fea1026c Merge pull request 'Install/configure Garage (S3-compatible object storage cluster)' (#450) from feature/garage into master
Reviewed-on: #450
2022-11-28 17:38:41 +00:00
3df9611a9d Merge pull request 'Store Gitea data (avatars, attachments, etc.) in Garage/S3' (#451) from feature/gitea_s3 into feature/garage
Reviewed-on: #451
2022-11-26 16:19:19 +00:00
Râu Cao
c3e98688fd Deploy second dirsrv supplier
Manually configured (once) to replicate data from and to the first
supplier on `ldap-3`.
2022-11-26 16:47:55 +01:00
Râu Cao
2958ba4b81 Use *.kosmos.local hostnames for LDAP nodes 2022-11-26 16:47:28 +01:00
Râu Cao
991458208d Use a role for configuring LDAP hostname on clients
This way it's also easy to converge all LDAP clients at once.
2022-11-26 16:45:45 +01:00
Râu Cao
8d4db7290e Rename dirsrv_primary role
The term used in 389 docs is "supplier" instead (ex "master")
2022-11-26 16:44:05 +01:00
Râu Cao
e0fb84e56c Store Gitea data (avatars, attachments, etc.) in Garage/S3
Also adds a new garage gateway role, which only allows RPC (inter-node)
traffic to Garage.
2022-11-26 13:05:07 +01:00
Râu Cao
9a89af0fe3 Add basic Garage doc 2022-11-25 10:56:22 +00:00
Râu Cao
20e6bdb7f9 Add production environment, replication for garage
Also deploy a third node in a different data center
2022-11-25 10:56:22 +00:00
Râu Cao
b5ff60214c Install/configure Garage
Add a garage cookbook that installs the garage binary distribution and
creates the necessary configuration and system service.

Also deploy two new VMs to act as storage nodes.

refs #428
2022-11-25 10:56:22 +00:00
34bd187e3e Merge pull request 'Set up fail2ban for nginx, move IPFS gateway to proxy role' (#449) from feature/fail2ban_nginx into master
Reviewed-on: #449
2022-11-24 15:09:05 +00:00
Râu Cao
d06f5d7723 Set up fail2ban for nginx, move IPFS gateway to proxy role 2022-11-24 14:02:43 +01:00
Râu Cao
7f545404b1 Update node info 2022-11-22 21:23:39 +01:00
9dc2b387d1 Merge pull request 'Upgrade kosmos.social to Mastodon 3.5.3' (#448) from chore/upgrade_mastodon into master
Reviewed-on: #448
2022-11-22 20:19:52 +00:00
Greg Karékinian
5a5f8425af Add missing postgresql-client package for backup gem 2022-11-07 16:30:45 +01:00
Greg Karékinian
97fe328312 Add missing pg_db recipe on postgresql_primary role 2022-11-07 16:30:02 +01:00
Greg Karékinian
ed04753318 Update mastodon-3 node after chef run 2022-11-07 16:28:09 +01:00
Greg Karékinian
4bfb7d5f5d Extract mastodon db backup to its own recipe 2022-11-07 16:22:15 +01:00
Râu Cao
4188b2976b Use Ruby 3.0.3, skip post-deployment migrations 2022-11-07 14:53:52 +01:00
Râu Cao
3620a43190 Upgrade Elasticsearch from 6.x to latest 7.x 2022-11-06 13:56:15 +01:00
5a94050555 Merge pull request 'Prune VM backups after every run' (#447) from feature/439-prune_backups into master
Reviewed-on: #447
2022-11-05 20:42:31 +00:00
Râu Cao
28454c0849 Change VM backup schedule for draco 2022-11-05 17:43:53 +01:00
Râu Cao
6df168f32f Prune VM backups after every run 2022-11-05 17:43:48 +01:00
9c0764a2eb Merge pull request 'Migrate hal8000 to new kredits and nodejs VM' (#445) from feature/migrate_hal8000 into master
Reviewed-on: #445
2022-11-04 18:14:17 +00:00
Râu Cao
65933bef4b Move hubot nginx sites to proxy role, deploy to fornax 2022-11-04 14:41:21 +01:00
Râu Cao
6cce1d9df8 Upgrade hal8000 setup for new hubot-kredits 2022-11-04 14:41:12 +01:00
Râu Cao
534f23eebc Remove obsolete recipes 2022-11-04 14:38:51 +01:00
Râu Cao
37710be28b Bundle main IPFS node recipes in a role
So we can find the VM/IP
2022-11-04 14:37:23 +01:00
1c17906a41 Merge pull request 'Deploy new kredits ipfs-pinner' (#444) from feature/deploy_new_kredits_pinner into master
Reviewed-on: #444
2022-11-03 13:17:47 +00:00
Râu Cao
76fd629e40 Deploy new kredits ipfs-pinner
refs kredits/meta#10
2022-11-03 14:16:37 +01:00
88fa0f12dd Merge pull request 'Upgrade LND to 0.15.4' (#443) from chore/upgrade_lnd into master
Reviewed-on: #443
2022-11-03 10:04:05 +00:00
Râu Cao
0297298ce0 Upgrade LND to 0.15.4
Fixes a critical issue that prevents block sync in production
2022-11-03 11:02:52 +01:00
08bcdcc395 Merge pull request 'Fix IPFS node connectivity from the outside as well as the private network' (#442) from bugfix/ipfs_connectivity into master
Reviewed-on: #442
2022-11-02 18:32:44 +00:00
Râu Cao
90b62e3fc1 Remove ufw logging for ipfs 2022-11-02 19:27:09 +01:00
c9a0310511 Merge branch 'master' into bugfix/ipfs_connectivity 2022-11-02 17:13:55 +00:00
b8d6ba4c89 Merge pull request 'Move block data to CIFS share, other data to VM's own storage' (#438) from feature/bitcoin_data_directories into master
Reviewed-on: #438
2022-11-02 17:13:37 +00:00
Râu Cao
b1922d26f6 Allow IPFS connections on private network
(HAProxy is now also using the private network.)

This fixes IPFS connections to Kosmos nodes from outside the network, as
well as in between nodes on the private network.
2022-11-02 14:06:07 +01:00
Râu Cao
f7ff1248fe Enable Web UI on private network 2022-11-02 14:05:43 +01:00
Râu Cao
bc11301782 Move bitcoind datadir from host to VM storage 2022-10-27 11:52:05 +02:00
Râu Cao
756382ec9f Move block data files to CIFS share
This is the vast majority of disk space used on the host currently.
2022-10-26 15:49:03 +02:00
Râu Cao
458558fb26 Deploy different content on kosmos.org for now 2022-10-24 15:13:18 +02:00
446148b28a Merge pull request 'Downgrade go-ipfs to 0.15' (#437) from chore/downgrade_ipfs into master
Reviewed-on: #437
2022-10-24 12:19:25 +00:00
Râu Cao
67f6e1b34a Downgrade go-ipfs to 0.15
Fixes #435
2022-10-24 14:18:19 +02:00
945283738a Merge pull request 'Set up live backups for all VMs' (#433) from feature/qemu_snapshots into master
Reviewed-on: #433
2022-10-22 11:52:26 +00:00
33ae6befaa Merge pull request 'Block outgoing traffic to local networks by default' (#434) from feature/block_outoing_local_traffic into feature/qemu_snapshots
Reviewed-on: #434
2022-10-22 11:50:28 +00:00
Râu Cao
58e6e7de03 Remove ufw logs
Just added them to check the blocking for a while
2022-10-22 13:03:16 +02:00
Râu Cao
1afc3a5de5 Block outgoing traffic to local networks by default
Some software, e.g. go-ipfs, is rather aggressive in scanning local
networks for peers, which can trigger abuse reports and IP locks in the
data center.
2022-10-21 13:37:38 +02:00
Râu Cao
61710aa4a4 Set up systemd service and timer for backups 2022-10-21 10:50:04 +02:00
Râu Cao
95941c830f Remove verbose stats outout from backup script 2022-10-21 10:49:30 +02:00
Râu Cao
a5b2eb5f97 Move borg credentials to a separate file
To be used from a service
2022-10-21 10:49:02 +02:00
Râu Cao
374654f8fd Update chef/ohai on hosts 2022-10-21 10:47:46 +02:00
Râu Cao
7051cc9da8 Update draco's main IP address 2022-10-21 10:47:17 +02:00
Râu Cao
51163ca3a3 Whitelist Chef attributes for newer client versions 2022-10-21 10:46:16 +02:00
Râu Cao
927bb63535 Add kvm_guest role to nodes 2022-10-19 16:28:07 +02:00
Râu Cao
34a57fa298 Merge branch 'lnd_tor_changes' into feature/qemu_snapshots 2022-10-19 15:23:39 +02:00
Râu Cao
6d765f959d Fix backup VM name for ldap-3
(and potentially other guests where the name differs from the libvirt
domain name)
2022-10-19 12:51:46 +02:00
Râu Cao
82f50b0caa Only back up domain-specific XML per archive 2022-10-19 12:24:10 +02:00
Râu Cao
6c8f9055c1 Create directories for KVM host backup files 2022-10-19 12:23:54 +02:00
Râu Cao
2e2ebbcc02 Fix filenames for guest agent sockets 2022-10-19 12:23:17 +02:00
Râu Cao
a3844b7ef6 WIP Add KVM host backup recipe
Add a recipe that configures scripts for live backups of VM images via
libvirt and borg.
2022-10-19 12:08:05 +02:00
Râu Cao
6d50a32aca Add FIXME note 2022-10-19 12:08:05 +02:00
Râu Cao
7848b4d365 Add jitsi-meet-1 VM 2022-10-19 12:08:04 +02:00
Râu Cao
063e9e070c Add borg credentials 2022-10-19 12:08:04 +02:00
Râu Cao
b78e6685ed Add kvm_guest role to VMs on fornax 2022-10-19 12:07:56 +02:00
Râu Cao
895d293899 Update RSKj version 2022-10-18 18:46:53 +02:00
11062f5180 Merge pull request 'Add guest agent device when creating VMs' (#431) from bugfix/qemu_guest_agent into master
Reviewed-on: #431
2022-10-12 14:34:06 +00:00
Râu Cao
315cd247e5 Enable qemu-guest-agent after install
This is actually automatically done for the service from the apt
package, but I like specifying it explicitly as well.
2022-10-12 15:55:08 +02:00
Râu Cao
e73b8fb01f Add guest agent device when creating VMs
This is necessary for qemu-guest-agent to actually work
2022-10-12 15:53:00 +02:00
d26ab2249c Merge pull request 'Deploy a Discourse instance for remoteStorage' (#430) from feature/discourse_wrappers into master
Reviewed-on: #430
2022-10-11 16:08:52 +00:00
Greg Karékinian
fe8e66fda3 Add the new rs-discourse-1 server 2022-10-11 18:00:48 +02:00
Greg Karékinian
410c238450 Update the discourse-2 and fornax nodes after Chef run 2022-10-11 18:00:31 +02:00
Greg Karékinian
378fee85ec Create a discourse cookbook that can be wrapped
It makes it possible to serve multiple Discord instances to different
hosts from a single nginx load balancer

Right now we run one for Kosmos and one for remoteStorage
2022-10-11 17:58:22 +02:00
Râu Cao
e90b265f7e Remove superfluous license headers 2022-10-10 15:29:17 +02:00
a5ac53caef Merge pull request 'Upgrade LND, bitcoind' (#429) from chore/upgrade_lnd into master
Reviewed-on: #429
2022-10-10 11:47:19 +00:00
Râu Cao
bec54e6ffb Upgrade LND, bitcoind
LND needs an emergency hotfix, released in 0.15.2, due to a subtle
Taproot transaction parsing limitation in a library it depends on.
2022-10-10 13:46:12 +02:00
Greg Karékinian
1270488ef9 Remove ldap-2 VM 2022-10-03 14:45:00 +02:00
7026e0e85b Merge pull request 'Upgrade Gitea to 1.17.2' (#427) from chore/upgrade_gitea into master
Reviewed-on: Kosmos/chef#427
2022-09-21 09:33:01 +00:00
Râu Cao
ff907384d9 Upgrade Gitea to 1.17.2 2022-09-21 11:32:20 +02:00
2360ad2ac0 Merge pull request 'Move LDAP server to new VM' (#426) from chore/new_ldap_vm into master
Reviewed-on: #426
2022-08-23 13:01:30 +00:00
Greg Karékinian
e4d4aa45f7 Use FQDN for hostname, add LDAP server 2022-08-22 16:16:01 +02:00
Greg Karékinian
85abfd4e5e Create the required groups and ACIs 2022-08-22 16:15:02 +02:00
Râu Cao
80c3e4e270 Create ldap-3 VM 2022-08-22 13:40:26 +01:00
Râu Cao
f17a420a64 Update VM base image 2022-08-22 13:40:07 +01:00
607466b1d2 Merge pull request 'Add KVM Guest role' (#409) from feature/kvm_guest_role into master
Reviewed-on: #409
2022-08-22 11:46:43 +00:00
d7aeb0e483 Merge pull request 'Upgrade Gitea to 1.17.0' (#424) from chore/upgrade_gitea into master
Reviewed-on: #424
2022-08-18 08:33:48 +00:00
Râu Cao
65adc84e5b Upgrade Gitea to 1.17.0
Also adds a new Nginx directive to allow larger uploads to the Docker
registry endpoints.

closes #422
2022-08-09 11:58:56 +02:00
fdb326b91a Merge pull request 'Move Zerotier controller' (#421) from chore/move_zerotier_controller into master
Reviewed-on: #421
2022-08-08 10:58:22 +00:00
Râu Cao
37b948cbe5 Remove custom cron job
refs #395
2022-08-08 12:57:30 +02:00
4adccb7411 Merge pull request 'Enable cron job to delete repo archives' (#423) from chore/395-gitea_cron into master
Reviewed-on: #423
2022-08-08 10:54:26 +00:00
Râu Cao
08b7c7a5ac Enable cron job to delete repo archives
closes #395
2022-08-08 12:51:26 +02:00
Râu Cao
206bb69100 Update node info 2022-07-31 13:05:59 +02:00
Râu Cao
41d4f87710 Move Zerotier controller
It's running on fornax now, and the VMs have been deleted. This way,
there's no internal routing needed for it to be publicly accessible by
any network member nodes.
2022-07-28 15:38:42 +02:00
8f43b34a86 Merge pull request 'Upgrade Gitea to 1.16.9' (#420) from chore/upgrade_gitea into master
Reviewed-on: #420
2022-07-16 14:43:02 +00:00
8d332e76f3 Upgrade Gitea to 1.16.9 2022-07-16 16:42:19 +02:00
3fb3fd0f11 Merge pull request 'Update root path for kosmos website' (#419) from chore/new_website into master
Reviewed-on: #419
2022-07-14 11:41:14 +00:00
562da400e3 Update root path for kosmos website 2022-07-11 13:31:31 +02:00
7de33b4e94 Merge pull request 'Fix VM base images being overwritten' (#417) from bugfix/vm_base_images into master
Reviewed-on: #417
2022-06-11 09:20:42 +00:00
a1db277f2f Merge branch 'master' into bugfix/vm_base_images 2022-06-11 09:20:09 +00:00
52d7fe52e5 Fix VM base images being overwritten
The base image is used as backing image for the VM images, so
overwriting it results in corrupt data after VM reboots.
2022-06-11 11:17:42 +02:00
7482283696 Merge pull request 'Fix MUC service/domains not being announced' (#416) from bugfix/muc_discovery into master
Reviewed-on: #416
2022-06-11 09:16:23 +00:00
a85415ef48 Fix MUC service/domains not being announced
Only subdomains of `hosts` are automatically announced, but other
domains have to be added manually via the `extra_domains` disco module
config.

fixes #413
2022-06-03 18:07:50 +02:00
9d61e28911 Merge pull request 'Upgrade ejabberd to 22.05' (#414) from chore/upgrade_ejabberd into master
Reviewed-on: #414
2022-05-31 15:08:36 +00:00
48cdd62973 Upgrade ejabberd to 22.05
Tested/running on all cluster nodes. Due to changes in the upstream
package we were able to remove some complexity from the recipe. Deleting
code FTW!

closes #334
2022-05-31 16:27:07 +02:00
e55805bc1b Update ejabberd node info 2022-05-31 11:33:52 +02:00
a1e2c21bcb Fix abuse address info in XMPP service discovery
It wasn't replacing the @HOST@ placeholder with the actual vhost domain.
2022-05-31 11:32:55 +02:00
24bc5bc4df Merge pull request 'Support multiple different VMs in Vagrant' (#411) from vagrant/dirsrv into master
Reviewed-on: #411
2022-05-27 13:41:28 +00:00
cae4547b12 Merge branch 'master' into vagrant/dirsrv 2022-05-27 13:41:06 +00:00
3261be556d Merge pull request 'Set up nginx proxy for akkounts/kredits API' (#412) from feature/kredits_api into master
Reviewed-on: #412
2022-05-27 13:30:40 +00:00
a93c5e5af6 Allow external HTTP requests to BTCPay
Limited to private network via firewall rule.
2022-05-24 15:10:24 +02:00
92d1bcd8c7 Add nginx proxy for akkounts/kredits API
closes #410
2022-05-24 15:03:51 +02:00
7a52f2bd89 Allow BTCPay API access over private network 2022-05-24 13:08:41 +02:00
d8781f7581 Finish multi-VM config 2022-05-24 12:46:37 +02:00
630ea5113e Support multiple VMs in Vagrant config 2022-05-24 12:43:16 +02:00
77e7eed795 Configure Vagrant for dirsrv 2022-05-23 12:47:17 +02:00
a0b64a709d Add KVM Guest role
Only installs qemu-guest-agent for now, for improving live VM backups.
2022-05-23 12:41:55 +02:00
6a85c2d5c6 Merge pull request 'Move dirsrv (LDAP) primary node to new VM' (#401) from new_ldap_server into master
Reviewed-on: #401
2022-05-11 14:55:05 +00:00
2d6cbd22e4 Add ejabberd-8 node config 2022-05-11 16:27:21 +02:00
48c3fef1a1 Remove TLS config for ejabberd LDAP 2022-05-11 16:27:21 +02:00
decd937d43 Remove superfluous license header 2022-05-11 16:27:21 +02:00
e89e0b3122 Fix letsencrypt bootstrap for ejabberd 2022-05-11 16:27:21 +02:00
b3f1a74cc2 Remove obsolete ejabberd backups 2022-05-11 16:27:21 +02:00
Greg Karékinian
32f620e95c Update the wiki-1 node after Chef run 2022-05-11 16:23:18 +02:00
Greg Karékinian
e766a96d3b Update the discourse-2 node after Chef run 2022-05-11 16:23:18 +02:00
Greg Karékinian
a14cd9a74f New config for LDAP in Discourse 2022-05-11 16:23:18 +02:00
Greg Karékinian
0d133de1b8 New config and credentials for LDAP connection in mediawiki 2022-05-11 16:23:17 +02:00
5c31531357 Merge pull request 'Configure STUN/TURN for ejabberd and nginx proxy' (#407) from feature/ejabberd_stun_n_turn into new_ldap_server
Reviewed-on: #407
2022-05-11 14:21:14 +00:00
Greg Karékinian
5c00e2d28a Add an attribute containing the LDAP server's address 2022-05-11 15:37:36 +02:00
c158f845f0 Configure STUN/TURN for ejabberd and nginx proxy 2022-05-11 15:27:49 +02:00
36e52a3cf1 Merge pull request 'Use the new LDAP server in the ejabberd configuration' (#406) from chore/ejabberd_new_ldap_server into new_ldap_server
Reviewed-on: #406
2022-05-11 12:57:24 +00:00
Greg Karékinian
c56870008e Use the new LDAP services application accounts 2022-05-11 14:49:28 +02:00
Greg Karékinian
e53e55cb2d Disable TLS for LDAP since we're using Zerotier networking 2022-05-11 14:49:00 +02:00
Greg Karékinian
ff7cb1ce4a Generate a hosts entry for the LDAP server 2022-05-11 14:48:30 +02:00
Greg Karékinian
1502d1956d Set new passwords for the LDAP service accounts 2022-05-11 14:47:32 +02:00
45218ed024 Merge pull request 'Update Gitea to 1.16.6' (#404) from chore/gitea_1.16.6_update into new_ldap_server
Reviewed-on: #404
2022-05-10 09:53:26 +00:00
Greg Karékinian
907706d1d2 Set up the hosts entry for the new LDAP server 2022-05-10 11:50:49 +02:00
Greg Karékinian
b869002c1a Update Gitea to 1.16.6 2022-05-10 11:50:35 +02:00
Greg Karékinian
7ffd3bbf73 Add LDAP's Zerotier IP to the akkount server's hosts 2022-04-28 12:12:10 +02:00
1da5ef4979 Merge branch 'master' into new_ldap_server 2022-04-28 09:23:18 +02:00
3cc11e58d3 Add ldap-2 node config 2022-04-26 20:11:17 +02:00
590366639e Fix fresh dirsrv installs on Ubuntu 20.04 2022-04-26 20:10:51 +02:00
8fe3670ce9 Remove ldap-1 node configs 2022-04-26 20:10:00 +02:00
71f9b06d28 Tor improvements for bitcoin cookbook 2022-04-19 14:08:02 +02:00
a633834a1b Change rate limit for LndHub API 2022-04-18 10:42:47 +02:00
ae342106c9 Merge pull request 'Upgrade Gitea to 1.16.5' (#400) from chore/upgrade_gitea into master
Reviewed-on: #400
2022-04-11 10:52:34 +00:00
994e5873d6 Upgrade Gitea to 1.16.5
Also add our hack-fix cron job to the recipe, so it doesn't get lost
when creating new VMs or otherwise.
2022-04-11 12:50:44 +02:00
8f4d11b317 Add cron job for deleting repo archives 2022-04-11 12:31:00 +02:00
5617591e1c Merge pull request 'Rebuild broken VMs, fix small issues in various cookbooks' (#399) from sheesh into master
Reviewed-on: #399
2022-04-03 13:47:08 +00:00
f758c74b5f Rebuild broken VMs on fornax 2022-03-22 16:25:50 -06:00
bb8467b6ab Switch Discourse deploy branch from master to main 2022-03-22 16:24:40 -06:00
ac1414e24e Open alternative SSH port on KVM hosts 2022-03-22 16:24:14 -06:00
eabb6ab404 Switch more cookbooks from kosmos-redis to redisio
refs #349
2022-03-22 16:23:26 -06:00
71dda86d94 Remove obsolete license header 2022-03-22 16:21:29 -06:00
b6bd8ee6cd Upgrade Sockethub to latest alpha 2022-03-18 11:47:51 -06:00
d5268167b5 Upgrade node.js from 12 to 14 everywhere 2022-03-18 11:47:23 -06:00
8e28d39acd Remove superfluous license header 2022-03-18 11:47:04 -06:00
e3d0f8f83f Merge pull request 'Move static sites from centaurus to fornax' (#398) from chore/move_static_sites into master
Reviewed-on: #398
2022-03-17 21:13:24 +00:00
f17dd53f69 Include Stream configs in Nginx config if missing 2022-03-17 14:28:13 -06:00
4cd0149f76 Move static sites from centaurus to fornax/LB 2022-03-17 14:27:50 -06:00
5e38edb57e Merge pull request 'Move Gitea and Drone CI to new VMs' (#396) from chore/move_gitea_and_drone into master
Reviewed-on: #396
2022-03-17 19:38:04 +00:00
9c34e82484 Remove obsolete hosts entries for Gitea and Drone
They should use normal DNS
2022-03-17 13:02:56 -06:00
e1560ba12a Fix copypasta 2022-03-12 15:40:22 -06:00
0a953070fe Create nginx_proxy role
Used to configure hosts entries in the Gitea and Drone VMs, as well as
the allowed webhooks config for Gitea.
2022-03-12 15:39:07 -06:00
b270a2c1fd Add database secret for Drone CI
closes #388
2022-03-12 15:05:16 -06:00
9187985acc Move Gitea and Drone to new VMs 2022-03-12 14:47:06 -06:00
f35fb638d1 Adapt Drone recipes for VM setup, use PostgreSQL 2022-03-12 14:46:48 -06:00
a1b07dfb9e Adapt Gitea recipes for new VM setup 2022-03-12 14:46:45 -06:00
23e49134e7 Remove superfluous license headers 2022-03-12 14:42:03 -06:00
f8a59b9720 WIP Use clearnet connections for clearnet LND nodes 2022-03-10 11:53:40 -06:00
c25e3632af Upgrade RTL 2022-03-03 21:42:35 -06:00
b0ff8ec2a4 Merge pull request 'Upgrade RSKj to 3.2.0' (#394) from chore/upgrade_rsk into master
Reviewed-on: #394
2022-03-03 15:29:57 +00:00
13c7774433 Upgrade RSKj to 3.2.0 2022-03-03 09:06:30 -06:00
8d7dacffd5 Merge pull request 'Fix Sockethub being offline due to missing HAProxy and UFW configs' (#392) from bugfix/sockethub_firewall into master
Reviewed-on: #392
2022-03-02 15:57:05 +00:00
5f94c9752d Merge pull request 'Deploy Kosmos LndHub fork with lnurl-pay additions' (#393) from chore/fork_lndhub into master
Reviewed-on: #393
2022-03-02 15:56:44 +00:00
a091e07c72 Deploy Kosmos LndHub fork with lnurl-pay additions 2022-03-02 09:54:01 -06:00
f50e7874ba Remove old sockethub firewall recipe 2022-02-27 16:08:40 -06:00
2e8004b37a Add sockethub::firewall to draco, update node info 2022-02-27 13:10:00 -06:00
b9775a26e4 Rename sockethub firewall recipe
Not just used internally anymore.
2022-02-27 13:09:42 -06:00
1586fd536a Remove superfluous license header 2022-02-27 13:09:17 -06:00
227e4a4665 Update node info 2022-02-26 09:47:31 -06:00
d7c5e40602 Merge pull request 'Deploy new akkounts' (#390) from chore/deploy_akkounts into master
Reviewed-on: #390
2022-02-19 17:53:36 +00:00
e9c5286b24 Deploy new akkounts
Requires a newer version of Ruby.
2022-02-19 11:52:48 -06:00
74083256f4 Update zerotier-2 host 2022-02-18 13:19:42 -06:00
dc5813a8bb Remove old zerotier VM config 2022-02-18 13:18:43 -06:00
203f89fe6b Merge pull request 'Migrate Discourse to new VM on fornax' (#389) from chore/migrate_discourse into master
Reviewed-on: #389
2022-02-18 19:02:49 +00:00
Greg Karékinian
ee6bde5b23 Update discourse-1 node after running Chef 2022-02-18 20:00:18 +01:00
Greg Karékinian
58f2544a9e Remove the discourse role from centaurus 2022-02-18 19:59:17 +01:00
Greg Karékinian
98547088f1 Add the zerotier IP for fornax 2022-02-18 19:58:59 +01:00
Greg Karékinian
7582cafb77 Explicitly install snapd package
It was not installed on fornax for example
2022-02-18 19:42:43 +01:00
Greg Karékinian
31631ddc4a Add missing recipe 2022-02-18 19:39:04 +01:00
5b2ae82ce6 Remove obsolete IP from nginx config 2022-02-18 12:23:37 -06:00
910817a7d4 Create certbot site before normal site 2022-02-18 12:23:14 -06:00
163b12efbc Add firewall rule for Discourse 2022-02-18 12:22:15 -06:00
Greg Karékinian
79f623de4e Prepare fornax and discourse-1 for the discourse migration 2022-02-18 18:15:33 +01:00
Greg Karékinian
e8f46db49c Extract the nginx config for discourse to a recipe
Get the upstream servers automatically from Chef nodes
2022-02-18 18:14:33 +01:00
7a8fb1bc78 Add new Discourse VM 2022-02-17 13:02:10 -06:00
e46c8b3e81 Put Vagrant IP in new VirtualBox default allowed range 2022-02-12 10:58:15 -06:00
3c7cc1a133 Update node status 2022-02-12 10:57:26 -06:00
28659665a0 Merge pull request 'Migrate nodejs-2 from centaurus to nodejs-3 on fornax' (#386) from chore/move_nodejs_vm into master
Reviewed-on: #386
2022-02-12 16:56:25 +00:00
6454c56b70 Merge pull request 'Fix Webhooks for Drone not working in Gitea 1.16' (#387) from bugfix/allow_drone_webhooks into master
Reviewed-on: #387
2022-02-12 16:56:01 +00:00
03c7940f1c Fix Webhooks for Drone not working in Gitea 1.16
By default, only external requests are allowed:

https://github.com/go-gitea/gitea/pull/17482
2022-02-12 10:53:45 -06:00
a710182c39 Add missing user recipe import to botka recipe 2022-02-10 17:00:19 -06:00
18161832ef Deploy new nodejs VM (nodejs-3) 2022-02-10 17:00:10 -06:00
a2f1b7ccc6 Merge pull request 'Deploy new Zerotier Controller VMs' (#385) from chore/move_zerotier into master
Reviewed-on: #385
2022-02-10 21:38:47 +00:00
935eff3b84 Deploy zerotier-3 on DO
Changes the firewall config to allow the control UI to be reached from
all connected networks.
2022-02-10 15:34:28 -06:00
a1f723d52e Deploy zerotier-2 VM on fornax 2022-02-10 15:34:12 -06:00
c337ad9e40 Remove obsolete node configs 2022-02-10 15:33:23 -06:00
04a036c2b8 Merge pull request 'Move Mastodon to new VM on fornax' (#383) from chore/mastodon_move into master
Reviewed-on: #383
2022-02-10 21:32:56 +00:00
a4b50d1643 Merge pull request 'Upgrade Gitea to 1.16.1' (#384) from chore/upgrade_gitea into master
Reviewed-on: #384
2022-02-10 21:32:51 +00:00
22f5b8a66c Upgrade Gitea to 1.16.1 2022-02-10 15:32:25 -06:00
b823ad5e59 Switch Mastodon cookbook to new Redis cookbook
Also add new node config.

refs #349

Co-authored-by Greg Karékinian <greg@karekinian.com>
2022-02-10 15:29:02 -06:00
341806ec8a Update jemalloc binary path
Co-authored-by Greg Karékinian <greg@karekinian.com>
2022-02-10 15:26:37 -06:00
abe0218998 Merge pull request 'Upgrade knife-zero for Ruby 3.0' (#381) from chore/upgrade_knife into master
Reviewed-on: #381
2022-02-02 23:32:26 +00:00
dace2ddf79 Upgrade knife-zero for Ruby 3.0
Was failing with latest Chef DK.
2022-02-02 17:31:13 -06:00
da1afcbf46 Merge pull request 'Upgrade Gitea to 1.15.11' (#380) from chore/upgrade_gitea into master
Reviewed-on: #380
2022-02-01 18:49:33 +00:00
4462975e51 Upgrade Gitea to 1.15.11 2022-02-01 12:47:37 -06:00
3c76a1e0ad Merge pull request 'Configure/install boltzd for Lightning/on-chain swaps' (#378) from feature/boltz-lnd into master
Reviewed-on: #378
2022-01-28 23:38:49 +00:00
471c23eb5b Update node config/state 2022-01-28 17:33:34 -06:00
90bd2dadb2 Configure boltzd access for RTL 2022-01-28 17:33:22 -06:00
87334de83a Configure/install boltzd 2022-01-28 17:33:10 -06:00
d9bb257f99 Move golang installation to own recipe
Needed by more than one in the bitcoin cookbook now.
2022-01-28 17:32:19 -06:00
13ae913668 Upgrade nbxplorer
Needed a newer version of the .NET SDK as well.
2022-01-28 17:31:14 -06:00
727210aa74 Merge pull request 'Add new ejabberd node, remove old ones' (#377) from chore/ejabberd_cluster_nodes into master
Reviewed-on: #377
2022-01-23 18:18:23 +00:00
8509e0af58 Add new ejabberd node 2022-01-23 12:15:14 -06:00
05dbf5211f Remove old ejabberd node 2022-01-23 12:15:04 -06:00
bf6a77e41a Merge pull request 'Use private IP for ejabberd TURN' (#376) from chore/ejabberd_stun into master
Reviewed-on: #376
2022-01-23 18:09:46 +00:00
622fabe151 Use private IP for ejabberd TURN 2022-01-19 14:38:53 -06:00
3c3ca3f24a Merge pull request 'Replace ejabberd cluster' (#375) from chore/ejabberd_cluster into master
Reviewed-on: #375
2022-01-19 19:35:04 +00:00
6c8a98c524 Run Chef with ejabberd role against new cluster nodes 2022-01-18 12:50:14 -06:00
58736f05ee Remove node configs for old ejabberd cluster 2022-01-18 12:50:14 -06:00
62c95175cc Only allow ZeroTier connections for ejabberd cluster 2022-01-18 12:50:13 -06:00
74dd59ad07 Write hostname-related configs for new ejabberd cluster 2022-01-18 12:50:10 -06:00
5b351036ba Remove superfluous license header 2022-01-18 11:19:20 -06:00
024b4bf164 Fix typo 2022-01-18 11:19:19 -06:00
14d83b4376 Add ejabberd-4 VM 2022-01-18 10:15:39 -06:00
a2c5295afd Create ejabberd-3 VM 2022-01-18 10:15:37 -06:00
eb7c245ea1 Merge pull request 'Upgrade nbxplorer, c-lightning, BTCPay' (#373) from chore/upgrade_bitcoin_software into master
Reviewed-on: #373
2022-01-08 23:19:23 +00:00
d53e1b538b Update nbxplorer to 2.2.18 2022-01-08 17:17:04 -06:00
0e9a657090 Upgrade BTCPay to 1.3.7 2022-01-08 16:48:58 -06:00
3d54f7052f Upgrade c-lightning to 0.10.2 2022-01-08 16:48:58 -06:00
ca79b6031a Merge pull request 'Fix LndHub balances for on-chain topups' (#372) from bugfix/lndhub_onchain_topups into master
Reviewed-on: #372
2022-01-08 22:48:09 +00:00
14cc2c0eb0 Fix lndhub balances with on-chain topups
Removes the bitcoind RPC config entirely, so lndhub only uses LND's
transaction monitoring. The bitcoind integration is broken as is.
2022-01-08 16:38:01 -06:00
ec10a0c120 Merge pull request 'Connect to IRC bouncer instead of directly' (#371) from chore/fix_botka_connection into master
Reviewed-on: #371
2022-01-06 14:15:36 +00:00
f6fe3bab0f Connect to IRC bouncer instead of directly
Changes botka on libera to connect to a bouncer, which also uses SASL,
in order to fix the connection issues and keep a stable connection with
minimal maintenance.
2022-01-06 08:12:42 -06:00
62ff4e51b7 Merge pull request 'Back up LND files and channels to S3' (#370) from feature/359-lnd_channel_backups into master
Reviewed-on: #370
2022-01-03 17:38:46 +00:00
31f4a547a9 Backup LND SCB to S3 on change
closes #359
2021-12-23 13:06:32 +01:00
56f58f3a1b Install/configure AWS client 2021-12-23 13:06:12 +01:00
57b5a244fa Remove superfluous license header 2021-12-23 13:05:44 +01:00
0b80d490a8 Back up LND dir to S3 2021-12-23 13:05:14 +01:00
7adee84adf Merge pull request 'Upgrade Mastodon to 3.4.4' (#368) from chore/upgrade_mastodon into master
Reviewed-on: #368
2021-12-09 13:32:21 +00:00
a0de016e1c Add single sidekiq process for new scheduler queue 2021-12-05 16:27:05 -06:00
38756fd296 Upgrade Mastodon to latest version
Using a new branch with freshly added Kosmos changes on top of the
upstream release code.
2021-12-05 16:11:09 -06:00
3d06300167 Merge pull request 'Upgrade LND to 0.14.1' (#367) from chore/upgrade_lnd into master
Reviewed-on: #367
2021-12-05 01:59:56 +00:00
bbef38b6d6 Update golang cookbook 2021-12-04 19:57:19 -06:00
a8948053d6 Update LND to 0.14.1
closes #351
2021-12-04 19:56:49 -06:00
da3a70ef4c WIP dirsrv changes 2021-12-02 13:56:23 -06:00
Greg Karékinian
685deea920 Simplify dirsrv setup
Connecting directly using zerotier, no more nginx
2021-12-02 19:08:27 +01:00
Greg Karékinian
d1d48cb749 Add role for ldap (dirsrv) 2021-12-02 19:08:16 +01:00
Greg Karékinian
067f5ba0d9 Add node config for ldap-1 2021-12-02 19:07:55 +01:00
a75237e0fb Merge pull request 'Set up public HTTPS endpoint for RSKj' (#337) from feature/rskj_public_endpoint into master
Reviewed-on: #337
2021-12-02 17:26:00 +00:00
5ac53633cd Merge branch 'master' into feature/rskj_public_endpoint 2021-12-02 17:07:47 +00:00
62d7998da8 Merge pull request 'Deploy/configure LndHub' (#350) from feature/lndhub into master
Reviewed-on: #350
2021-12-02 17:07:17 +00:00
6f29ede8d3 Merge branch 'master' into feature/lndhub 2021-12-02 16:59:46 +00:00
91905e0490 Merge pull request 'Fix backup email notifications' (#366) from bugfix/358-backups into master
Reviewed-on: #366
2021-12-01 22:52:58 +00:00
f7afc21f9e Use pbkdf2 for backup key derivation
Fixes a warning thrown by OpenSSL during backup runs, and makes it more
secure.
2021-11-30 13:38:34 -06:00
c30733e5aa Send backup notifiations when run ends with warning 2021-11-30 13:38:18 -06:00
e63cda3317 Use SMTP/Mailgun for backup notifications 2021-11-30 13:37:51 -06:00
3d1937823a Merge pull request 'Add documentation for backups/restores' (#365) from docs/backup into master
Reviewed-on: #365
2021-11-30 18:46:37 +00:00
172553ddb3 Add documentation for backups/restores 2021-11-30 12:45:52 -06:00
1a7f7fee45 Merge pull request 'Configure/deploy kosmos.org (with Lightning Address support)' (#360) from feature/kosmos_org_nginx into master
Reviewed-on: #360
2021-11-30 18:29:11 +00:00
9e94440975 Merge pull request 'Update kosmos postgres cookbook name in other cookbooks' (#364) from chore/postgres_cookbook_deps into master
Reviewed-on: #364
2021-11-30 15:19:43 +00:00
a184f27c96 Update kosmos postgres cookbook name in other cookbooks 2021-11-30 08:47:15 -06:00
584da20d3e Deploy nginx reverse proxy for RSK mainnet 2021-11-29 13:55:04 -06:00
0e1b362644 Fix nginx config, deploy LE cert 2021-11-29 13:33:43 -06:00
e414dfc23f Merge branch 'master' into feature/rskj_public_endpoint 2021-11-29 13:18:42 -06:00
70fe5f81a5 Merge pull request 'Rename postgres cookbook, deploy new replica' (#363) from chore/update_postgres_cookbook into master
Reviewed-on: #363
2021-11-29 19:15:52 +00:00
91ffe75bc1 Add missing files 2021-11-29 13:12:17 -06:00
ecdc41a54f Rename postgres cookbook, deploy new replica
fixes #361
closes #330
2021-11-29 13:09:13 -06:00
1d8af6e86f Merge pull request 'Fix custom resource not found in newer Chef versions' (#362) from chore/update_postgres_cookbook into master
Reviewed-on: #362
2021-11-29 19:06:54 +00:00
fa8cbac163 Fix custom resource not found in newer Chef versions
fixes #361
refs #337
2021-11-29 13:03:40 -06:00
cbf42b9414 Add node config for fornax 2021-11-29 11:23:17 -06:00
f68eceec4c Remove obsolete role 2021-11-28 10:08:39 -06:00
0628d091dc Update rsk-testnet-2 with new rskj-testnet role 2021-11-28 10:05:48 -06:00
c9d32e02aa Remove old RSK testnet node config 2021-11-28 10:02:28 -06:00
35115b7391 Merge branch 'master' into feature/rskj_public_endpoint 2021-11-28 10:02:06 -06:00
7e49dfd520 Merge pull request 'Deploy RSK mainnet node, and new testnet node' (#346) from feature/343-rsk_mainnet into master
Reviewed-on: #346
2021-11-28 16:01:04 +00:00
d14d109a00 Configure/deploy kosmos.org
Includes a new directive for Lightning Address resolution.
2021-11-26 14:10:39 -06:00
6b2e501c90 Add LndHub backups 2021-11-26 11:22:24 -06:00
3962666a39 Re-enable Tor recipe 2021-11-25 19:44:42 -06:00
1e6c40b136 Update README 2021-11-25 19:37:48 -06:00
5d8e98e4a9 Merge pull request 'Upgrade Drone CI from 1.0 to 2.5' (#357) from chore/upgrade_drone into master
Reviewed-on: #357
2021-11-25 23:29:23 +00:00
5717d11f7e Upgrade Drone CI to latest version
closes #356
2021-11-25 17:28:13 -06:00
9656399e9d Remove superfluous license header 2021-11-25 17:27:48 -06:00
11e9b569ae Merge pull request 'Upgrade Gitea to 1.15.6' (#354) from chore/upgrade_gitea into master
Reviewed-on: #354
2021-11-25 22:49:58 +00:00
24f94bdb02 Upgrade Gitea to 1.15.6
Configures the JWT signing algorithm to be the old, less secure
algorithm, until we update the token for Drone CI (and any other OAuth
apps).

closes #338
2021-11-25 16:44:48 -06:00
f93909da70 Update akkounts-1 node info 2021-11-22 23:46:36 -06:00
931a3a196f Add public HTTP reverse proxy for LndHub 2021-11-21 13:22:40 -06:00
e48cf04e6c Deploy LndHub to bitcoin-2
Update the node config
2021-11-17 11:11:45 -06:00
0481e42aa4 Install/configure LndHub 2021-11-16 16:03:46 -06:00
4b9183d78d Use older Redis cookbook, install on bitcoin-2 2021-11-16 14:11:42 -06:00
18f65c4fc5 Add new Redis cookbook 2021-11-16 13:25:30 -06:00
80ec84782b Berkshelf vendor changes 2021-11-16 13:25:08 -06:00
b911ec92c9 Update node info 2021-11-16 13:23:25 -06:00
65532836ff Merge pull request 'Improve botka IRC config' (#347) from chore/botka_config into master
Reviewed-on: #347
2021-10-23 09:29:36 +00:00
ca33dbe624 Improve botka IRC config
Use TLS, specify port.
2021-10-23 11:28:29 +02:00
e6ad9865bc Add roles for RSK testnet/mainnet 2021-10-22 14:02:56 +02:00
83202747cf Move RSKj firewall config to own recipe 2021-10-22 14:02:41 +02:00
ce7a7d5f83 Update RSKj version 2021-10-22 14:01:39 +02:00
5dd44fc283 Add new RSK VM node configs 2021-10-22 14:00:09 +02:00
ca13acb99f Remove obsolete Parity role 2021-10-22 13:59:42 +02:00
fc70895d9c Merge pull request 'Configure/deploy botka for libera.chat on nodejs-2 VM' (#341) from feature/upgrade_and_move_botka_irc into master
Reviewed-on: #341
2021-09-21 15:52:23 +00:00
ee0a587dad Upgrade botka, deploy for Libera.Chat to nodejs-2
Note: Temporarily disables wormhole, because it's still on Freenode,
where its credentials have been deleted by the new "management".
2021-09-13 18:21:46 +02:00
abec4be8ff Update Gemfile.lock 2021-09-03 10:29:32 +02:00
efda3f6fdb Merge pull request 'Update Sockethub to 4.1.0' (#339) from chore/update_sockethub into master
Reviewed-on: #339
2021-09-03 08:29:10 +00:00
2a5d68cda9 Update Sockethub to 4.1.0
Tested/running on `nodejs-2`.
2021-09-03 10:28:07 +02:00
483481b141 Merge pull request 'Deploy Sockethub from the npm package' (#146) from feature/145-sockethub_from_npm into master
Reviewed-on: #146
2021-08-31 09:00:07 +00:00
3817284566 Bump version 2021-08-09 19:12:45 +02:00
89e27a040f Set up public HTTPS endpoint for RSKj
refs #325
2021-08-09 19:02:14 +02:00
0ffddb9d0f Merge pull request 'Upgrade Gitea to 1.14.6' (#336) from chore/upgrade_gitea into master
Reviewed-on: #336
2021-08-09 14:11:33 +00:00
8bbb4deed7 Upgrade Gitea to 1.14.6 2021-08-09 16:10:40 +02:00
fe66092c26 Merge pull request 'Upgrade LND to 0.13.1' (#335) from chore/upgrade_lnd into master
Reviewed-on: #335
2021-08-09 14:01:19 +00:00
bf009d6822 Upgrade LND to 0.13.1 2021-08-09 16:00:19 +02:00
Greg Karékinian
e00d6c3a86 Use the sockethub role in the run list 2021-07-14 10:14:38 +02:00
Greg Karékinian
383a46676e Create a role for sockethub 2021-07-14 10:14:28 +02:00
Greg Karékinian
eed27713ff Add the sockethub firewall rule to centaurus 2021-07-14 10:14:07 +02:00
Greg Karékinian
b5e7e4ab85 Use DNS validation to generate/renew the TLS cert 2021-07-14 10:13:35 +02:00
Greg Karékinian
7c2aae6650 Add sockethub to nodejs-2's run list 2021-07-09 11:52:58 +02:00
Greg Karékinian
d135b3873c Switch to a systemd unit Chef resource 2021-07-09 11:32:33 +02:00
Greg Karékinian
e9c86081f7 Update sockethub to the latest npm release 2021-07-09 11:32:11 +02:00
Greg Karékinian
b8ac5e1c07 Merge branch 'master' into feature/145-sockethub_from_npm 2021-07-09 10:51:02 +02:00
7fc0a65a22 Merge pull request 'Upgrade all bitcoin software to latest versions' (#328) from chore/upgrade_bitcoin_software into master
Reviewed-on: #328
2021-07-07 09:42:33 +00:00
bb6394ab42 Merge pull request 'Add Tor support for LND' (#332) from feature/lnd_tor into chore/upgrade_bitcoin_software
Reviewed-on: #332
2021-07-07 09:40:37 +00:00
b17c81a1aa Merge branch 'chore/upgrade_bitcoin_software' into feature/lnd_tor 2021-07-07 09:36:11 +00:00
b7af04e8be Support Tor connections for LND
Adds basics for general Tor support in bitcoin recipes, and specific
support for Tor to the lnd recipe.
2021-07-01 15:34:06 +02:00
9f0b5f0e64 (tor) Add support for ControlPort and CookieAuthentication
Allow to configure Tor to be controlled by other applications, so they
can manage hidden services and such.
2021-07-01 15:32:28 +02:00
c60e65020b Merge pull request 'Auto-unlock LND wallet/node' (#331) from feature/auto_unlock_lnd into chore/upgrade_bitcoin_software
Reviewed-on: #331
2021-07-01 13:21:41 +00:00
37873fb881 Add data bag for LND credentials 2021-07-01 13:17:51 +02:00
4bda4d7857 Install LND with all subsystems enabled
This allows to run loopd and other tools.
2021-06-30 17:10:57 +02:00
2ca576468e Auto-unlock LND wallet/node
The latest release added a new config option for auto-unlocking the
wallet/node using a password file. This changeset adds support for just
that to the lnd recipe, so that nobody has to manually unlock it after
reboots or service restarts.
2021-06-30 17:09:31 +02:00
a65065c793 Upgrade all bitcoin software to latest versions 2021-06-29 15:55:20 +02:00
f095094cf7 Fix compilation issue with dotnet services
Compilation fails while the executable is running.
Fixed by stopping the services before upgrades.
2021-06-29 15:53:52 +02:00
3dcb9e76ce Update node info 2021-06-29 15:53:22 +02:00
aa98b07f33 Merge pull request 'Configure/deploy RSKj' (#326) from feature/deploy_rsk_testnet into master
Reviewed-on: #326
2021-06-21 16:38:55 +00:00
54274cef77 Merge branch 'master' into feature/deploy_rsk_testnet 2021-06-21 16:37:26 +00:00
65140f92ed Merge pull request 'Upgrade Gitea to 1.14.3' (#327) from chore/322-update_gitea into master
Reviewed-on: #327
2021-06-21 16:36:55 +00:00
b6d0bafce0 Remove license header, improve formatting 2021-06-21 17:50:23 +02:00
bbaeeb5099 Upgrade Gitea to 1.14.3
Adds a new config for the repository root directory.

closes #322
2021-06-21 17:47:30 +02:00
40a943354a Update generated docs 2021-06-16 11:35:40 +02:00
5bc4266857 Merge pull request 'Use Chef Workstation's ruby with rbenv' (#324) from chore/remove_bundler_version_lock into master
Reviewed-on: #324
2021-06-15 20:26:23 +00:00
Greg Karékinian
9a3565c11f Only keep the knife-zero gem in the Gemfile
The rest is already shipped with Chef Workstation
2021-06-15 22:21:04 +02:00
cbdbb9c2eb Switch to dokken for testing in kitchen 2021-06-13 17:50:32 +02:00
37787ce3e6 Specify package version for rskj 2021-06-13 17:50:25 +02:00
2063f5c953 WIP RSK cookbook 2021-06-13 16:58:53 +02:00
d7af1a57d1 Create RSK testnet VM 2021-06-12 14:52:36 +02:00
bda100313e Update README
Add some info about Chef Workstation and rbenv.
2021-05-28 14:51:42 +02:00
ec75f1446c Use chef-workstation Ruby with rbenv
See https://github.com/docwhat/rbenv-chef-workstation for painlessly
using Chef Workstation's Ruby with rbenv.
2021-05-28 14:40:02 +02:00
6bd76ebec6 Don't require old bundler version 2021-05-28 14:36:07 +02:00
dbdb803b7a Merge pull request 'Upgrade Gitea from 1.13.1 to 1.13.7' (#321) from chore/update_gitea into master
Reviewed-on: #321
2021-04-10 09:01:26 +00:00
7624bcec11 Upgrade Gitea from 1.13.1 to 1.13.7 2021-04-10 11:00:00 +02:00
18a5e0d5d0 Merge pull request 'Deploy hubots from Gitea repos' (#320) from chore/hubot_repos into master
Reviewed-on: #320
2021-04-09 20:03:21 +00:00
f9c992e48e Merge branch 'master' into chore/hubot_repos 2021-04-09 11:48:38 +00:00
Greg Karékinian
87d50d067c Add updated upstream nodejs cookbook
... and its new dependency, chocolatey
2021-04-09 13:18:35 +02:00
c99f82fcd4 Update cookbook version 2021-04-09 11:45:39 +02:00
29e1d64ae0 Remove superfluous license headers from recipe files 2021-04-09 11:44:36 +02:00
9939e4d993 Deploy hubots from Gitea repos
The repos have been moved over from GitHub.
2021-04-09 11:35:49 +02:00
18e45cdaab Merge pull request 'Upgrade nodejs to the latest version from the repo' (#319) from feature/upgrade_nodejs into master
Reviewed-on: #319
2021-03-30 12:02:31 +00:00
769843e6ab Merge branch 'master' into feature/upgrade_nodejs 2021-03-30 12:01:26 +00:00
Greg Karékinian
edf2e071e4 Upgrade nodejs to the latest version from the repo
This is possible in newer versions of the nodejs cookbook, by setting
the `node["nodejs"]["package_action"]["nodejs"]` attribute to `:upgrade`
2021-03-30 13:58:55 +02:00
aea5e07d2e Merge pull request 'Set the environment variables in the hubot-kredits dir' (#318) from feature/315-kredits_for_reviews_fix into master
Reviewed-on: #318
2021-03-30 11:58:26 +00:00
Greg Karékinian
f937e5dc68 Set the environment variables in the hubot-kredits dir
This is meant to be executed as a script manually, not as part of Hubot.

Example usage:

    cd /opt/hal8000_xmpp/node_modules/hubot-kredits
    ./scripts/review-kredits.js --start 2021-02-01 --end 2021-02-28T23:59:59Z --dry

Closes #315
2021-03-30 13:54:21 +02:00
9fc49deafe Merge pull request 'Fix an undefined variable' (#317) from bugfix/dirsrv_undefined_variable into master
Reviewed-on: #317
2021-03-30 10:33:47 +00:00
9b2ba2c714 Merge branch 'master' into bugfix/dirsrv_undefined_variable 2021-03-30 10:33:35 +00:00
0504001e31 Merge pull request 'Deploy hubot with new hubot-kredits' (#316) from feature/315-kredits_for_reviews into master
Reviewed-on: #316
2021-03-30 10:19:30 +00:00
Greg Karékinian
346b6540d1 Fix an undefined variable 2021-03-30 12:14:40 +02:00
Greg Karékinian
45817ba997 Update the barnard node file after running Chef 2021-03-30 12:12:27 +02:00
Greg Karékinian
9415b71965 Deploy hubot with new hubot-kredits
It includes a script for creating Kredits for reviews

Refs #135
2021-03-30 12:11:03 +02:00
3502fb0eec Merge pull request 'Tell browsers to cache Gitea avatars for 30 days' (#313) from bugfix/312-gitea_avatar_caching into master
Reviewed-on: #313
2021-02-26 21:25:41 +00:00
891b5f3fee Tell browsers to cache Gitea avatars for 30 days
fixes #312
2021-02-26 20:41:53 +01:00
ab515e2101 Merge pull request 'Use shared Kosmos webfont for Gitea' (#311) from feature/gitea_fonts into master
Reviewed-on: #311
2021-02-25 16:38:37 +00:00
5559ca41a7 Support IPv6 and CORS for font hosting 2021-02-25 17:38:11 +01:00
a96d29c716 Merge branch 'master' into feature/gitea_fonts 2021-02-25 15:38:06 +00:00
13ea0e3148 Merge pull request 'Set up assets.kosmos.org for shared static file/webfont hosting' (#309) from feature/static_assets into master
Reviewed-on: #309
2021-02-25 15:22:52 +00:00
474208ea8e Use shared Kosmos webfont for Gitea
Currently using a custom rule for system fonts. This change also adds a
missing new class to the custom rule to cover Markdown-generated content
like e.g. comments.
2021-02-25 14:29:41 +01:00
6109707f3c Host assets.kosmos.org on centaurus 2021-02-25 12:13:20 +01:00
1c47f9ab27 Add cookbook for static asset hosting
Configures assets.kosmos.org, only for webfont hosting for now.
2021-02-25 12:12:41 +01:00
09f0faadda Add missing header to recipe 2021-02-24 19:11:53 +01:00
26e8698e4f Merge pull request 'Replace expired Zoom authentication token for hal8000' (#308) from chore/update_zoom_jwt into master
Reviewed-on: #308
2021-02-18 18:53:45 +00:00
adc2ed895f Merge pull request 'Update node.js (apt repo)' (#307) from chore/update_nodejs_apt_repo into master
Reviewed-on: #307
2021-02-18 18:53:18 +00:00
fd901f6e64 Update Zoom JWT 2021-02-18 18:51:36 +01:00
f7d3736712 Update node details
Removes unused recipes from generated runlist
2021-02-18 18:51:11 +01:00
f3def7b71d Update node.js (apt repo) 2021-02-10 23:47:23 +01:00
bac66d4dba Merge pull request 'Configure/run Sidekiq for Akkounts' (#304) from feature/303-akkounts_sidekiq into master
Reviewed-on: #304
2021-02-08 21:17:54 +00:00
f88ccae8a6 Merge branch 'master' into feature/303-akkounts_sidekiq 2021-02-08 21:17:43 +00:00
25e3dae4d4 Merge pull request 'Set up Zerotier Controller UI' (#305) from feature/zncui into master
Reviewed-on: #305
2021-02-08 21:16:53 +00:00
9a54a7554f Use package resource instead of custom command 2021-02-08 20:01:22 +01:00
e1bcd5efa0 Set up Zerotier Control UI
Install/configure ztncui[1], with HTTP access allowed from within the
private network.

[1]: https://key-networks.com/ztncui/
2021-02-07 17:44:08 +01:00
1adf3281bf Configure/run Sidekiq for Akkounts 2021-02-03 19:53:13 +01:00
241f0807b3 Merge pull request 'Fix/refactor bitcoind recipe, upgrade bitcoind to 0.21' (#298) from chore/update_bitcoin-core into master
Reviewed-on: #298
2021-01-28 15:26:31 +00:00
fe0a955314 Merge pull request 'Update lnd to 0.12.0' (#299) from chore/update_lnd into chore/update_bitcoin-core
Reviewed-on: #299
2021-01-27 17:06:34 +00:00
65185b1a1b Update lnd to 0.12.0 2021-01-27 18:05:30 +01:00
0d2a04f8ba Refactor bitcoind recipe
Fixes various issues, like compilation not starting on subsequent
version updates, service not restarting after compilation, and a TODO
note on the compilation script itself.
2021-01-26 12:45:28 +01:00
152edbc958 Update bitcoind to 0.21 2021-01-26 12:45:17 +01:00
40fe403879 Stop c-lightning before compilation
See https://github.com/ElementsProject/lightning/issues/4346 for
potential issues with not doing that.
2021-01-26 12:33:09 +01:00
9023c14849 Merge pull request 'Update c-lightning to v0.9.3' (#297) from chore/update_c-lightning into master
Reviewed-on: #297
2021-01-26 11:07:21 +00:00
c3256a07cc Fix c-lightning configure not finding python
Broke in the latest release.
2021-01-26 12:05:29 +01:00
461af035ac Update c-lightning to 0.9.3 2021-01-26 12:05:19 +01:00
e3507879a1 Merge pull request 'BTCPay recipe fixes (compilation + PostgreSQL config)' (#296) from chore/btcpay_update_and_recipe_fix into master
Reviewed-on: #296
2021-01-26 10:52:03 +00:00
5a5db43de3 Use new postgres client role and config
Fixes btcpay having still used the old postgres master, and integrating
it into the global client config setup from here on out.
2021-01-26 11:49:20 +01:00
f7d3abc307 Stop BTCPay server before compilation
fixes #291
2021-01-26 11:48:41 +01:00
f1ff34d769 Merge pull request 'Add Onion-Location header for kosmos.social' (#295) from feature/mastodon_onion_header into master
Reviewed-on: #295
2021-01-25 11:14:38 +00:00
49c75bbb05 Add Onion-Location header for kosmos.social
Tells Tor Browser where to find the native onion site.

refs #201
2021-01-25 12:09:28 +01:00
0920803535 Merge pull request 'Add script for notifying Kosmos channels from Ruby' (#279) from feature/notify_xmpp_from_ruby into master
Reviewed-on: #279
2021-01-25 10:59:05 +00:00
ad271e55d4 Merge pull request 'Move PostgreSQL to VMs and access via Zerotier' (#282) from feature/postgres_vms into master
Reviewed-on: #282
2021-01-25 10:56:42 +00:00
a3136e820b Merge pull request 'Update Gitea to 1.13.1' (#293) from chore/253-gitea_1.13.1 into master
Reviewed-on: #293
2021-01-24 12:49:49 +00:00
c2f36c6f01 Merge pull request 'Update ejabberd to 20.12' (#294) from chore/ejabberd_20.12 into master
Reviewed-on: #294
2021-01-24 12:47:37 +00:00
Greg Karékinian
90ce664f2e Update ejabberd to 20.12
It fixes a bug that prevented the config to be reloaded for LDAP options
(https://github.com/processone/ejabberd/issues/3181) and more:
https://www.process-one.net/blog/ejabberd-20-12/
2021-01-24 10:14:29 +01:00
Greg Karékinian
0e5519a4b7 Update Gitea to 1.13.1
Running on centaurus

Closes #253
2021-01-24 10:12:37 +01:00
Greg Karékinian
1ad7a6936c Generate the hosts entry for the PostgreSQL replica 2021-01-24 10:11:17 +01:00
Greg Karékinian
b1fea4b09f Update the postgres-3 node after Chef run 2021-01-23 19:25:49 +01:00
Greg Karékinian
7ce8b7d461 Enable PostgreSQL service 2021-01-23 19:14:55 +01:00
Greg Karékinian
112eb903ec Add a script to switch the primary PostgreSQL server
Usage: scripts/postgresql/switch_primary.sh <old_primary_hostname> <new_primary_hostname>
2021-01-23 19:13:54 +01:00
Greg Karékinian
7e61e9cb45 Promote a new PostgreSQL primary: postgres-2 2021-01-23 19:09:41 +01:00
Greg Karékinian
a7116b8fe5 Switch the TLS mode to disabled for Gitea
We connect through a Zerotier private IP
2021-01-23 19:08:06 +01:00
Greg Karékinian
a4a35da0ff Replace the hardcoded primary pg IP with a hostname 2021-01-23 17:34:58 +01:00
Greg Karékinian
5cb390f340 Remove the postgresql_replica from centaurus, run Chef
I have also deleted the data directory (in /mnt/data)
2021-01-23 17:11:45 +01:00
Greg Karékinian
4e1bd458f3 Update the mastodon-1 node after Chef run 2021-01-23 17:11:45 +01:00
Greg Karékinian
40fde8a861 Update the ejabberd nodes after Chef run 2021-01-23 17:11:45 +01:00
Greg Karékinian
39d0304ab4 Update the akkounts-1 node after Chef run 2021-01-23 17:11:45 +01:00
Greg Karékinian
ee7b3626be Generate a host entry for the current PostgreSQL primary 2021-01-23 17:11:45 +01:00
Greg Karékinian
286cd2f2a3 Move the postgresql_client role to the top
We want the host file to be written before database connections happen
2021-01-23 17:11:45 +01:00
Greg Karékinian
1e3a2b40d4 Add the postgresql_client role to the akkounts role 2021-01-23 17:11:45 +01:00
Greg Karékinian
bb0e73d1b9 Switch ejabberd, mastodon and gitea to a hostname for Postgres 2021-01-23 17:11:45 +01:00
Greg Karékinian
fdd70d1872 Remove postgres-1 server
It was created with an encfs volume inside a VM, we want full disk encryption
instead. I have deleted the VM from centaurus as well as its disk and
have also unauthorized its id from the zerotier controller
2021-01-23 17:11:45 +01:00
bd48dab1d8 Set up postgres-3 VM 2021-01-23 17:06:15 +01:00
Greg Karékinian
41ca5938a2 Merge branch 'master' into feature/postgres_vms 2021-01-23 14:43:58 +01:00
e31f9ced96 Merge pull request 'Re-enable and improve Tor access for kosmos.social' (#292) from feature/mastodon_tor into master
Reviewed-on: #292
2021-01-23 13:32:57 +00:00
05cd38a5b9 Re-enable and improve Tor access for kosmos.social 2021-01-23 14:22:34 +01:00
d1929fcc9c Merge pull request 'Fix LN nodes not being accessible from the outside' (#289) from bugfix/lnd_externalip into master
Reviewed-on: #289
2021-01-23 11:07:38 +00:00
Greg Karékinian
6ec747d416 Add missing credentials for zerotier 2021-01-22 18:43:05 +01:00
Greg Karékinian
cbcb50bc86 Create a zerotier_controller role 2021-01-22 18:41:46 +01:00
Greg Karékinian
eba7d63b43 Delete the test-2 client and node file 2021-01-22 18:41:46 +01:00
Greg Karékinian
5fa23fe872 Remove the andromeda client and node files 2021-01-22 18:41:46 +01:00
Greg Karékinian
0e1a73b18f Set the private Zerotier IP for draco in the node file 2021-01-22 18:41:46 +01:00
Greg Karékinian
9b4756441a Add a recipe to join the private Zerotier network 2021-01-22 18:41:45 +01:00
Greg Karékinian
dd78b8cf7e Use the PG primary private Zerotier IP if it exists 2021-01-22 18:41:45 +01:00
Greg Karékinian
88e52607e3 Add a recipe to set up a hosts entry for the PG primary 2021-01-22 18:41:45 +01:00
Greg Karékinian
511400a7b8 Update hostsfile and add zerotier cookbook 2021-01-22 18:41:45 +01:00
Greg Karékinian
9a4420fc11 Add the ability to pass a disk size to the create_vm script
Defaults to 10GB
2021-01-22 18:41:45 +01:00
fd4844a012 Fix ejabberd API permission for akkounts VMs
It should have been using a /32, not a /8 subnet, in order to only allow
the akkounts VM(s) to use the API endpoints without further
authorization.
2021-01-22 18:41:45 +01:00
d018b6570d Use default Redis database now 2021-01-22 18:41:45 +01:00
69c1994840 Update node data 2021-01-22 18:41:45 +01:00
d121971cca Set up mastodon-1 VM 2021-01-22 18:41:45 +01:00
1403d91631 Remove extra license header 2021-01-22 18:41:45 +01:00
6da190b110 Don't configure HTTPS site when certs missing 2021-01-22 18:41:45 +01:00
8a870f6fd6 Don't fail on first run, when Tor hostname missing 2021-01-22 18:41:45 +01:00
ad64bfc0be Update system package dependencies for 20.04 2021-01-22 18:41:45 +01:00
971a3a25a1 Remove extra license headers
And update year in LICENSE file
2021-01-22 18:41:45 +01:00
Greg Karékinian
ab422155e4 Add the ability to pass a disk size to the create_vm script
Defaults to 10GB
2021-01-22 13:49:23 +01:00
775ec691ef Add firewall rules for LND and c-lightning 2021-01-14 21:25:35 +01:00
6c6026958b Fix typo in port number of externalip config 2021-01-14 21:23:03 +01:00
d1ab4c24ea Merge pull request 'Set up new Mastodon VM, fix/improve Chef recipes' (#284) from chore/move_mastodon_to_vm into master
Reviewed-on: #284
2021-01-14 15:17:19 +00:00
e7fbd57189 Merge branch 'master' into chore/move_mastodon_to_vm 2021-01-14 15:16:17 +00:00
12a3fa5b4e Use default Redis database now 2021-01-13 17:06:36 +01:00
9224aa9d97 Update node data 2021-01-13 17:06:25 +01:00
a27b6a1601 Merge pull request 'Fix ejabberd API permission for akkounts VMs' (#283) from bugfix/ejabberd_api_permission into master
Reviewed-on: #283
2021-01-13 10:40:29 +00:00
ab3ca92228 Merge branch 'master' into bugfix/ejabberd_api_permission 2021-01-13 10:40:06 +00:00
62320106cb Set up mastodon-1 VM 2021-01-13 09:50:37 +01:00
c622f81572 Remove extra license header 2021-01-13 09:50:10 +01:00
047526e0fc Don't configure HTTPS site when certs missing 2021-01-13 09:49:49 +01:00
9d13acd41a Don't fail on first run, when Tor hostname missing 2021-01-13 09:49:36 +01:00
4d0259493f Update system package dependencies for 20.04 2021-01-13 09:48:23 +01:00
c4fa9e6ec1 Remove extra license headers
And update year in LICENSE file
2021-01-12 18:42:14 +01:00
74cf26846e Fix ejabberd API permission for akkounts VMs
It should have been using a /32, not a /8 subnet, in order to only allow
the akkounts VM(s) to use the API endpoints without further
authorization.
2021-01-12 18:06:16 +01:00
4872677066 Configure postgres recipes for VMs and zerotier access
* Remove encfs (using encrypted volumes instead)
* Allow access without TLS from zerotier network
2021-01-07 13:53:30 +01:00
9d9907f0ed Remove extra license copy from recipe, update year 2021-01-07 12:53:44 +01:00
4309efd228 Add postgres-2 VM 2021-01-07 12:53:20 +01:00
4ca875a77b Merge pull request 'Create postgres-1 VM' (#281) from feature/280-postgres_vm into master
Reviewed-on: #281
2021-01-07 11:29:37 +00:00
Greg Karékinian
af54777250 Create postgresql-1 VM
Refs #280
2021-01-07 12:04:52 +01:00
Greg Karékinian
f6086e2f6a Add the firewall rules to the postgresql role 2021-01-07 12:02:35 +01:00
6db296a7f1 Merge pull request 'Move wormhole from barnard to nodejs-2' (#278) from chore/move_wormhole into master
Reviewed-on: #278
2021-01-07 10:42:41 +00:00
1eb73711a2 Remove application_javascript usage from wormhole recipe 2021-01-06 19:12:36 +01:00
eb4764026b Add script for notifying Kosmos channels from Ruby
An example for notifying Kosmos XMPP channels from plain Ruby, with no
dependencies.
2021-01-06 11:27:50 +01:00
fe63f01f7b Move wormhole from barnard to nodejs-2
Fixed two small bugs in the recipe:

* hubot user wasn't created when necessary
* systemd template always included redis service dependency
2021-01-05 18:03:15 +01:00
333a76f086 Merge pull request 'Configure and run LND and RTL' (#274) from feauture/lnd into master
Reviewed-on: #274
2021-01-05 10:33:37 +00:00
9ab097dd9a Merge pull request 'Configure local LND as Lightning node in BTCPay Server' (#275) from feature/btcpay_lnd_settings into feauture/lnd
Reviewed-on: #275
2021-01-05 10:33:01 +00:00
876d857dde Merge pull request 'Create new nodejs VM, move kredits-github to it' (#277) from chore/nodejs-2 into master
Reviewed-on: #277
2021-01-05 10:32:44 +00:00
ddded6fbae Create new nodejs VM, move kredits-github to it 2021-01-05 11:30:31 +01:00
adfd76aa64 Configure local LND as Lightning node in BTCPay Server 2021-01-02 09:59:50 +01:00
2b765e744a Configure and run RTL
Ride The Lightning is a Web UI for Lightning Network nodes. It is
accessible via the bitcoin VM's private zerotier IP on port 3000.
2021-01-01 17:42:57 +01:00
19e3dfa7b9 Remove obsolete non-standard RPC and REST ports
We'll just run those on default ports without custom config.
2021-01-01 14:14:59 +01:00
37f1fa79e7 Use standard Lightning Network port for LND
Only use the non-standard one internally, so we can run both c-lightning
and lnd on the same machine.
2021-01-01 14:13:58 +01:00
f5f234c0fd Use name of existing node
Migrated from andromeda to bitcoin-2.
2021-01-01 14:13:17 +01:00
5a8d780d37 Merge pull request 'Fix a syntax error in certbot dirsrv hook' (#273) from bugfix/272-certbot_dirsrv into master
Reviewed-on: #273
2020-12-31 11:54:17 +00:00
bf3bb3ed97 Merge branch 'master' into bugfix/272-certbot_dirsrv 2020-12-31 10:41:06 +00:00
Greg Karékinian
456639bdf8 Fix a syntax error in certbot dirsrv hook
The newline was not escaped and rendered as an actual newline

Fixes #272
2020-12-31 11:38:49 +01:00
1360836377 Merge pull request 'Set up NBXplorer, BTCPay Server, and C-Lightning with Chef' (#270) from feature/btcpay_server into master
Reviewed-on: #270
2020-12-31 10:25:08 +00:00
8a6b81485a Merge branch 'master' into feature/btcpay_server 2020-12-31 10:20:28 +00:00
3fcdc8b056 Configure and run LND 2020-12-31 10:10:22 +01:00
61accc05c2 Add nginx proxy for BTCPay 2020-12-29 15:56:53 +01:00
c71d243c40 Merge pull request 'Add a firewall rule to allow PostgreSQL clients to connect' (#269) from bugfix/postgresql_client_firewall into master
Reviewed-on: #269
2020-12-22 22:15:06 +00:00
7d0490f3da Merge branch 'master' into bugfix/postgresql_client_firewall 2020-12-22 17:16:49 +00:00
5892e3c0ab Configure and run c-lightning daemon 2020-12-22 12:28:29 +01:00
f88354c67c Compile and install c-lightning 2020-12-21 16:53:22 +01:00
bbd5500982 Configure and run BTCPay Server 2020-12-21 13:50:28 +01:00
ca373a1503 Don't require auth cookie for nbxplorer API 2020-12-21 12:25:13 +01:00
570a692bb2 Configure and run nbxplorer 2020-12-21 12:19:30 +01:00
5277bce20b Formatting 2020-12-21 11:14:19 +01:00
aa2aa59e28 Download and build NBXplorer and BTCPay 2020-12-21 11:12:14 +01:00
a2b76c7d76 New recipe: Install .NET Core SDK 2020-12-21 11:01:20 +01:00
bb4b919548 Merge pull request 'Always set the promote trigger file config' (#267) from bugfix/pg_promote_trigger_file into master
Reviewed-on: #267
2020-12-18 21:23:11 +00:00
Greg Karékinian
87388ac69d Add the postgresql_client role to the mastodon role
This will add the firewall rule and pg_hba access rule on the PostgreSQL
servers
2020-12-18 17:54:31 +01:00
Greg Karékinian
c700f98976 Add a firewall rule to allow clients to connect
Previously it was not an issue because services that connected to the
PostgreSQL primary were also on the same server as a standby server.
2020-12-18 17:53:28 +01:00
Greg Karékinian
f75aeaf9b5 Always set the promote trigger file config
Only setting it for standby servers isn't useful, as we need to be able
to touch this file to trigger the promotion of a new primary server
after running Chef on it.
2020-12-18 17:02:13 +01:00
4be542670b Merge pull request 'Add new Zoom meeting ID to hubot-kredits whitelist' (#266) from chore/zoom_meeting_id into master
Reviewed-on: #266
2020-12-17 16:40:24 +00:00
db51f1f332 Add new Zoom meeting ID to whitelist 2020-12-17 14:09:41 +01:00
95c8b9fea9 Merge pull request 'Migrate to self-hosted zerotier network' (#265) from chore/zerotier_migration into master
Reviewed-on: #265
2020-12-13 12:39:14 +00:00
84fdcc4760 Merge pull request 'Fix zerotier network creation' (#262) from bugfix/zerotier_default_rules into master
Reviewed-on: #262
2020-12-13 12:38:59 +00:00
Greg Karékinian
1551fe6d1b Update the ipfs-1 node file after running chef 2020-12-11 19:29:56 +01:00
Greg Karékinian
83736d2a85 Update the bitcoin-2 node file after running chef 2020-12-11 19:28:34 +01:00
4b9dfd9c60 Update node configs 2020-12-11 19:24:12 +01:00
fb996e9abf Join new zerotier network on VM creation 2020-12-11 19:07:11 +01:00
396fe6e714 Whitelist ejabberd custom node attributes
fixes #256
2020-12-11 19:07:06 +01:00
Greg Karékinian
ebfd36bab8 Add nodejs-1 client and node file
Refs #259
2020-12-11 19:02:04 +01:00
c4dbed8d65 Fix zerotier network creation
Using outdated/invalid rules syntax. Remove the property entirely, so
the API will create the default rule (which is the same) on creation.

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2020-12-11 17:42:25 +01:00
2de9d5fe17 Fix typo 2020-12-11 17:40:40 +01:00
8896beab67 Merge pull request 'Configure a zerotier-one network controller' (#260) from feature/zerotier_controller into master
Reviewed-on: #260
2020-12-11 10:42:40 +00:00
8b624b666a Merge branch 'master' into feature/zerotier_controller 2020-12-11 10:39:20 +00:00
ba4e3fdd6f Merge pull request 'Document commands for running Chef against VMs' (#261) from docs/update_readme into master
Reviewed-on: #261
2020-12-11 10:39:08 +00:00
1cb366a160 Add commands for running Chef against VMs 2020-12-10 23:39:59 +01:00
cb8fc25fc8 Configure a zerotier-one network controller 2020-12-10 22:51:35 +01:00
f66f6e2969 Merge pull request 'Add hosts entries for ejabberd private IPs' (#257) from feature/akkounts_xmpp_host into master
Reviewed-on: #257
2020-12-10 13:28:46 +00:00
a06223d764 Merge branch 'master' into feature/akkounts_xmpp_host 2020-12-10 13:27:37 +00:00
0c537d04ef Merge pull request 'Add ejabberd HTTP API permissions for akkounts' (#255) from feature/api_permissions into master
Reviewed-on: #255
2020-12-10 13:27:19 +00:00
f1c8faff85 Merge branch 'master' into feature/api_permissions 2020-12-10 13:26:48 +00:00
623bb1e153 Merge pull request 'Script creating new VMs' (#252) from feature/244-new_vm_script into master
Reviewed-on: #252
2020-12-09 15:33:08 +00:00
Greg Karékinian
a92205bd65 Fix the VM creation script
Also join the zerotier network
2020-12-09 16:29:15 +01:00
Greg Karékinian
77ab77afe8 Update the centaurus and draco nodes after Chef run 2020-12-09 15:42:49 +01:00
Greg Karékinian
6273271d40 Remove kosmos-bitcoin::source from draco
Bitcoind runs inside a VM, not directly on the host
2020-12-09 15:42:19 +01:00
742dc6ff7f Merge branch 'master' into feature/244-new_vm_script 2020-12-09 13:59:52 +00:00
f540661de4 Merge pull request 'Update ejabberd doc' (#254) from docs/ejabberd into master
Reviewed-on: #254
2020-12-09 12:12:51 +00:00
Greg Karékinian
7ceb9af3ed Rename the kosmos_kvm default recipe to host
It makes it clear it is meant for KVM hosts
2020-12-09 11:19:13 +01:00
12125bf0b2 Add hosts entries for ejabberd private IPs 2020-12-08 20:31:01 +01:00
239b6aed51 Add API permissions for akkounts VMs
Using the zerotier IP, which is the same as the knife-zero host.
2020-12-08 20:00:31 +01:00
8e0a66184c Use role for akkounts
Lets us search by role
2020-12-08 19:59:51 +01:00
Greg Karékinian
6c907419aa Set the VM name from the script argument 2020-12-08 17:10:40 +01:00
Greg Karékinian
8f304d00ce Remove unused kitchen.yml files 2020-12-08 16:34:24 +01:00
Greg Karékinian
94a34e4758 Add arguments for RAM and number of CPUs 2020-12-08 16:33:27 +01:00
Greg Karékinian
b3c1f81ec6 Set the description of the kosmos_zerotier cookbook 2020-12-08 16:26:14 +01:00
Greg Karékinian
6f7b493173 Create the base Ubuntu 20.04 cloud image with code 2020-12-08 16:25:32 +01:00
Greg Karékinian
176083497c Install the libvirt-daemon-system package
It creates the libvirt-qemu user
2020-12-08 16:25:04 +01:00
Greg Karékinian
89c8f42a46 Set the description for the kosmos_kvm cookbook 2020-12-08 16:03:18 +01:00
56d9144ad6 Disable ACME
Throws a warning when reloading the config, because it is enabled by
default, but not configured entirely. Disabling it explicitly removes
the warning.
2020-12-08 14:30:29 +01:00
02239dd9a8 Update ejabberd doc 2020-12-08 13:13:05 +01:00
Greg Karékinian
1837285b79 Add the kosmos_kvm recipe and the firewall rules
... to the KVM hosts, centaurus and draco

Refs #244
2020-12-04 16:33:18 +01:00
Greg Karékinian
ee7a117d63 Add initial kosmos_zerotier cookbook
For now it only includes the firewall rule

Refs #244
2020-12-04 16:29:22 +01:00
Greg Karékinian
e6b7794e20 Extract firewall definitions to their own recipe
This allows us to use them for KVM hosts as well. Until now we had set
up ufw rules manually on the two KVM hosts (draco and centaurus)

Refs #244
2020-12-04 16:27:42 +01:00
Greg Karékinian
9dbe5bcfcb Deploy a script to create new VMs
It uses `virt-install` with the official Ubuntu 20.04 cloud image as a
starting point, with cloud-init to add our SSH keys to the ubuntu user
and set up Zerotier.

USAGE: create_vm VMNAME

Closes #244
2020-12-04 16:21:52 +01:00
bc80540c14 Merge pull request 'Deploy new wormhole release on barnard' (#251) from chore/wormhole_barnard into master
Reviewed-on: #251
2020-11-27 12:25:01 +00:00
dace63b667 Remove akkounts recipe from barnard runlist
Must have been committed accidentally.
2020-11-27 13:22:29 +01:00
58c5fad2a7 Add new nickname config for wormhole 2020-11-27 13:22:09 +01:00
39ca70d64e Merge pull request 'Set up ejabberd-2 VM/node; add cluster configs to Chef' (#248) from chore/ejabberd-2_vm into master
Reviewed-on: #248
2020-11-26 14:47:33 +00:00
58854da648 Add erland_node fqdn to ejabberd node configs 2020-11-25 21:04:33 +01:00
137d90ed8a Configure ejabberd on ejabberd-2 2020-11-25 21:03:16 +01:00
8c60279fe1 Add cluster configs to ejabberd recipe 2020-11-25 21:02:46 +01:00
7a1a5c03e3 Set up ejabberd-2 VM 2020-11-25 17:40:40 +01:00
8e067e8901 Merge pull request 'Enable ejabberd clustering' (#246) from feature/243-ejabberd_cluster into master
Reviewed-on: #246
2020-11-25 16:10:14 +00:00
Greg Karékinian
bbf01711f8 Add ejabberd-1 client and node file 2020-11-25 16:42:23 +01:00
Greg Karékinian
fbd71204c2 Use the production run list when no Chef environment was set 2020-11-25 16:41:43 +01:00
Greg Karékinian
613b316588 Add comment about needing to run Chef a second time...
... after the TLS certs are generated
2020-11-25 16:36:07 +01:00
Greg Karékinian
3a8af26b5f Remove firewall rule for an unused port 2020-11-25 16:36:07 +01:00
Greg Karékinian
23ca3552d2 Remove the absolute path of certbot to use the new package 2020-11-25 16:36:07 +01:00
Greg Karékinian
ddb706b61c Add a missing dependency on kosmos-dirsrv 2020-11-25 16:36:07 +01:00
Greg Karékinian
085bd8abd5 Move TURN port to a different range
It landed on a port used by PostgreSQL. Also switch STUN/TURN to TCP
because HAProxy does not support UDP.

Closes #240
2020-11-25 16:36:07 +01:00
Greg Karékinian
7636f6ed19 Move the Gandi DNS certbot hook to kosmos-ejabberd 2020-11-25 16:36:07 +01:00
Greg Karékinian
8b1f90c568 Use the same Erlang cookie to enable clustering
Refs #243
2020-11-25 16:35:37 +01:00
3da883864b Merge pull request 'Configure/deploy HTTP upload service for Kosmos Chat/XMPP' (#245) from feature/http_upload_service into master
Reviewed-on: #245
2020-11-25 09:46:47 +00:00
134493d2d6 Merge branch 'master' into feature/http_upload_service 2020-11-25 09:46:31 +00:00
f39f953b8a Configure ejabberd nodes for HTTP upload service 2020-11-24 15:44:59 +01:00
0e29c930ed Configure subdirectory level for upload.pm
This allows to post to per-domain subdirectories from XMPP clients.
2020-11-24 15:33:34 +01:00
0aef830aa3 Fix upload folder permissions
Uploads are failing with the current mode.
2020-11-23 20:50:01 +01:00
0bebdf7635 Do not require nginx from certbot recipe
In order to be able to use different nginx install recipes, we must not
require a specific one from this recipe.
2020-11-23 17:40:14 +01:00
6a89bb9d2e Add node info for uploads-1
Runs uploads.kosmos.chat
2020-11-23 17:39:47 +01:00
9efb9cd78c Configure/deploy HTTP upload service on uploads.kosmos.chat
https://xmpp.org/extensions/xep-0363.html

(Does not contain the config for ejabberd itself yet.)
2020-11-23 17:37:14 +01:00
89f5a81952 Merge pull request 'Configure/deploy new akkounts Rails app' (#242) from feature/akkounts into master
Reviewed-on: #242
2020-11-23 09:52:16 +00:00
c26fcd5b26 Remove obsolete manual daemon reload 2020-11-22 20:26:56 +01:00
0dc314b1e7 Add node data for akkounts-1 2020-11-21 15:12:39 +01:00
d384f69139 Configure/deploy new akkounts app 2020-11-21 15:12:31 +01:00
21be68feb5 Merge pull request 'Add CLI script for hashing LDAP passwords' (#239) from chore/ldap_hash_password_script into master
Reviewed-on: #239
2020-11-20 13:39:40 +00:00
b63c86b37f Add CLI script for hashing LDAP passwords
Only takes a cleartext password and outputs a salted, hashed password
string for LDAP documents.
2020-11-20 14:36:25 +01:00
9470e62e3b Merge pull request 'Set up Drone CI with Gitea integration' (#236) from feature/235-drone_ci into master
Reviewed-on: #236
2020-11-19 13:47:43 +00:00
Greg Karékinian
df4c92b64e Update the centaurus node after adding drone to it 2020-11-19 12:59:24 +01:00
Greg Karékinian
d7e54bf7ce Add drone role 2020-11-19 12:59:24 +01:00
Greg Karékinian
ebf5f405f5 Initial kosmos_drone cookbook
Closes #235
2020-11-19 12:59:15 +01:00
9ba364ad7a Merge pull request 'Fix 389 Directory Server CLIs not working' (#234) from bugfix/install_lib389 into master
Reviewed-on: #234
2020-11-08 16:26:16 +00:00
ac49430521 Install lib389
Fixes 389 CLIs not working (e.g. `dsctl`).
2020-11-08 17:23:24 +01:00
f12cf704ac Merge pull request 'Update barnard.kosmos.org node data' (#232) from chore/update_node_info into master
Reviewed-on: #232
2020-10-30 09:01:13 +00:00
4c17d9ad53 Update barnard.kosmos.org node data 2020-10-30 10:00:23 +01:00
eaa3d78684 Merge pull request 'Remove hubot-rss-reader from hubots' (#231) from chore/remove_hubot-rss-reader into master
Reviewed-on: #231
2020-10-29 15:20:16 +00:00
f874d7f979 Remove hubot-rss-reader from hubots
Not available in latest hal8000 source anymore
2020-10-29 16:19:24 +01:00
96d0f7dd04 Merge pull request 'Update IPFS cookbook/software' (#230) from chore/update_go-ipfs into master
Reviewed-on: #230
2020-10-29 08:35:56 +00:00
af132c072d Merge branch 'master' into chore/update_go-ipfs 2020-10-29 08:35:36 +00:00
c06d530f62 Update ipfs-1 kernel version 2020-10-25 12:09:22 +01:00
2c368f0f10 Update IPFS cookbook 2020-10-25 12:09:01 +01:00
efd985f6ba Merge pull request 'Initial kosmos_discourse cookbook' (#223) from feature/222-discourse into master
Reviewed-on: #223
2020-10-23 10:12:12 +00:00
42a70962e8 Merge branch 'master' into feature/222-discourse 2020-10-23 10:11:05 +00:00
Greg Karékinian
255e43c680 Fix the Systemd unit for discourse
Switch the systemd unit to a oneshot type
2020-10-23 09:28:31 +02:00
0f5f84dba2 Merge pull request 'Send wiki notifications to new info chatroom (instead of main Kosmos room)' (#224) from chore/hubot_mediawiki_notifications into master
Reviewed-on: #224
2020-10-21 11:43:26 +00:00
71c8f6d91a Merge branch 'master' into chore/hubot_mediawiki_notifications 2020-10-21 11:43:08 +00:00
da7ff96937 Merge pull request 'Fix the undefined variable in the instance resource' (#225) from bugfix/dirsrv_certbot_undefined_var into master
Reviewed-on: #225
2020-10-21 08:12:48 +00:00
Greg Karékinian
5062392c71 Fix the undefined variable in the instance resource 2020-10-20 19:53:11 +02:00
4f5b005087 Send wiki notifications to new info XMPP room 2020-10-20 15:46:58 +02:00
69383a666b Let hal8000 join new info@kosmos.chat room 2020-10-20 15:42:42 +02:00
Greg Karékinian
dc2fe38e10 Add the discourse role to centaurus 2020-10-20 12:22:07 +02:00
Greg Karékinian
07e6da4d33 Add a role for discourse 2020-10-20 12:22:07 +02:00
Greg Karékinian
429b609ac2 Initial kosmos_discourse cookbook
The systemd unit does not work

Refs #222
2020-10-20 12:21:53 +02:00
d1c9cf853f Merge pull request 'Set the autocreate permission for Mediawiki users' (#220) from bugfix/219-ldap_autocreate_wiki into master
Reviewed-on: #220
2020-10-06 13:56:05 +00:00
Greg Karékinian
7eaf177bb2 Set the autocreate permission for Mediawiki users
This allows LDAP sign ins to create an account automatically

Fixes #219
2020-10-06 15:51:01 +02:00
7d2374449a Merge pull request 'Do not install PostgreSQL with ejabberd by default' (#218) from bugfix/ejabberd_include_postgresql into master
Reviewed-on: #218
2020-09-25 18:12:07 +00:00
Greg Karékinian
2119c11243 Do not include kosmos-postgresql in kosmos-ejabberd default recipe
It will install PostgreSQL, and we do not want that on the ejabberd
server
2020-09-25 16:29:01 +02:00
fcd9e8ff74 Merge pull request 'Fix kosmos-ipfs not requiring nodejs/npm' (#215) from bugfix/kosmos-ipfs_recipe into master
Reviewed-on: #215
2020-09-24 15:47:52 +00:00
70363c1a93 Merge pull request 'Migrate IPFS gateway to new VM on draco.kosmos.org' (#216) from ops/ipfs_gateway_migration into master
Reviewed-on: #216
2020-09-24 15:47:25 +00:00
7c4af862b7 Add node config for new IPFS (gateway) VM 2020-09-24 17:41:24 +02:00
3d8d31c32f Fix kosmos-ipfs not requiring nodejs/npm
If node isn't installed on a machine by something else before running
the kosmos-ipfs recipe, then it fails.
2020-09-24 17:39:28 +02:00
d2550d80c8 Merge pull request 'Switch Certbot to Snap package on Ubuntu 20.04+' (#211) from feature/certbot_snap into master
Reviewed-on: #211
2020-09-24 14:16:55 +00:00
Greg Karékinian
a8b303af4a Fix the search command for Kosmos LDAP users 2020-09-16 11:36:29 +02:00
104090d34e Merge pull request 'Add shell script for creating LDAP user accounts' (#214) from feature/add_user_script into master
Reviewed-on: #214
2020-09-16 09:34:34 +00:00
41319fc5bc Add shell script for creating LDAP user accounts 2020-09-15 13:04:54 +02:00
be4d1ca7f4 Merge pull request 'Set up a testing VM on draco' (#212) from test_vm into master
Reviewed-on: #212
2020-09-06 12:02:26 +00:00
ee7a853b5c Set up a testing VM on draco
Currently only has base recipe and nginx with certbot running.

https://test-2.kosmos.org/
2020-09-06 14:00:35 +02:00
a1a0d7e4c1 Switch Certbot to snap package on Ubuntu 20.04+
Needs only minor changes. Tested and running on wiki.kosmos.org already.
2020-09-06 13:46:06 +02:00
ded21fb009 Merge pull request 'Move wiki to new VM, update cookbooks and software' (#210) from feature/wiki_vm into master
Reviewed-on: #210
2020-09-06 11:45:30 +00:00
2d559ebd91 Update wiki node config
Just committing the changes after a successful run with letsencrypt also
working.
2020-09-06 13:43:07 +02:00
8dd146e95c Remove obsolete mysql client install
This fails nowadays,and the client is already installed via the mysql
package in the first place.
2020-09-06 13:42:34 +02:00
b7e2a72369 Add missing changes for mediawiki upgrades 2020-09-05 23:43:28 +02:00
7af26d6ad3 Remove wiki role from andromeda 2020-09-05 20:59:07 +02:00
c646c3d5b4 Update mediawiki cookbook (Kosmos fork) 2020-08-30 18:03:44 +02:00
38c6a1ae15 Update mediawiki, install extensions from git repos 2020-08-30 17:59:45 +02:00
c9440800df Update vendored cookbooks for mediawiki 2020-08-30 17:48:52 +02:00
d6ad68c50a Add node config for new wiki VM 2020-08-30 17:34:02 +02:00
48f4a7e31d Merge pull request 'Create basic LND cookbook' (#206) from feature/lnd into master
Reviewed-on: #206
2020-08-30 15:32:43 +00:00
4b9e110ffd Merge branch 'master' into feature/lnd 2020-08-30 15:32:31 +00:00
43cfb95a57 Merge pull request 'Move bitcoin-core to VM' (#205) from feature/bitcoin_vm into master
Reviewed-on: #205
2020-08-30 15:29:35 +00:00
d5448e8240 Basic LND installation 2020-08-23 12:37:53 +02:00
0005f9ab7d Add golang cookbook
Needs updating of ark and git cookbooks
2020-08-23 11:01:05 +02:00
217ab471ce Moving bitcoin-core to VM 2020-08-22 23:16:11 +02:00
414a595719 Merge pull request 'Bitcoin (Core) cookbook' (#121) from feature/bitcoin_cookbook into master
Reviewed-on: #121
2020-08-20 17:17:30 +00:00
5c105f00d1 Use MIT license for bitcoin cookbook 2020-08-19 15:29:18 +02:00
1a8c3e4350 Suggest bitcoin source recipe for dev 2020-08-19 15:28:00 +02:00
c98be94404 Add rpcpassword support to bitcoin snap recipe 2020-08-18 14:44:23 +02:00
97ae73c987 Improve variable name 2020-08-18 14:38:16 +02:00
23588760fa Add walletdir flag to bitcoind service start 2020-08-17 21:43:56 +02:00
b0daa3d463 Only store wallet in encrypted dir
Storing all chain data in encfs caused unsolvable issues with leveldb.
So now we're only storing wallet data in the encrypted dir.
2020-08-17 16:46:59 +02:00
d65363f964 Remove obsolete ulimit dep 2020-08-17 10:51:54 +02:00
9795e77fde Bitcoin source recipe 2020-08-17 10:45:15 +02:00
4606773440 Update license note 2020-08-16 16:25:14 +02:00
bbbd0f7408 Change default username 2020-08-16 16:25:06 +02:00
476316e13b Always use latest/stable channel for bitcoind snap 2020-08-16 16:20:43 +02:00
4889f40c6a WIP 2020-08-16 16:18:01 +02:00
c8122a44f1 Add systemd service
Plus some refactoring
2020-08-16 16:14:18 +02:00
4a6a02c137 Use 0.19 stable channel
Instead of relying on the default channel
2020-08-16 16:14:18 +02:00
Greg Karékinian
e31f480f27 Fix the attribute name 2020-08-16 16:14:18 +02:00
Greg Karékinian
aedf7bcb62 Create the snap mount directory in the user's home 2020-08-16 16:14:18 +02:00
Greg Karékinian
069246cf41 Create the bitcoind user and its home directory 2020-08-16 16:14:18 +02:00
Greg Karékinian
1b9a4aad17 Work around a bug in Chef's snap_package resource
https://github.com/chef/chef/issues/8827

`snap install` returns 0 when a package is already installed, so no need
for a guard clause
2020-08-16 16:14:17 +02:00
09527e693b WIP bitcoind config 2020-08-16 16:14:15 +02:00
47105b2a1c Initial version of bitcoin cookbook 2020-08-16 16:13:39 +02:00
2c40ad4591 Merge pull request 'Increase size limit for Gitea uploads/attachments' (#199) from bugfix/188-attachment_size_limit into master
Reviewed-on: #199
2020-08-07 16:14:43 +00:00
9a28a03265 Increase size limit for Gitea uploads/attachments
The default limit in nginx is only 1MB. This increases it to 20MB.

fixes #188
2020-08-05 15:53:13 +02:00
f235aee17a Merge pull request 'Fix comet icon on maintenance page' (#198) from bugfix/61-maintenance_page_logo into master
Reviewed-on: #198
2020-08-02 19:05:18 +00:00
af0717a65b Fix comet icon on maintenance page
The data URI declares an SVG source, but this was actually a PNG. Hence
the failure in Chrome. This change turns it into an actual inline SVG
and uses UTF8 encoding instead of base64, because SVG is just text anyway.

fixes #61
2020-08-02 21:00:10 +02:00
436bb8fcc1 Merge pull request 'Update Gitea to 1.12.3' (#197) from feature/189-gitea_1.12.3 into master
Reviewed-on: #197
2020-07-30 10:39:17 +00:00
Greg Karékinian
41fd1576ad Override the header template to remove the Roboto font
Using the system font instead
2020-07-30 12:33:09 +02:00
Greg Karékinian
924f67d8a8 Update Gitea to 1.12.3
Closes #189
2020-07-30 12:16:31 +02:00
Greg Karékinian
5e5bbe07dc Restart gitea after upgrading it 2020-07-30 12:16:04 +02:00
c68bf472d4 Merge pull request 'Upgrading centaurus to Ubuntu 20.04' (#196) from feature/195-centaurus_20.04 into master 2020-07-30 10:03:01 +00:00
Greg Karékinian
3f7894bd46 Run Chef again after upgrading centaurus to Ubuntu 20.04
Closes #195
2020-07-30 11:59:30 +02:00
Greg Karékinian
44b49ddd57 Upgrade nginx to the latest mainline version 2020-07-30 11:58:52 +02:00
3563b05932 Merge pull request 'Use the right variable for the TLS cert's domain in kosmos-dirsrv's instance resource' (#194) from bugfix/193-dirsrv_undefined_var into master 2020-07-22 14:16:53 +00:00
Greg Karékinian
d2126f6153 Use the right variable for the TLS cert's domain
`domain` was undefined. `new_resource.hostname` is ldap.kosmos.org and
is what we need

Fixes #193
2020-07-22 15:59:27 +02:00
9ec1fe1db4 Merge pull request 'Add PostgreSQL primary server support to the mastodon cookbook' (#187) from feature/186-postgresql_primary_mastodon into master 2020-07-07 15:45:54 +00:00
Greg Karékinian
4583421597 Connect to the PostgreSQL primary server instead of localhost
Move the db and user creation to its own recipe

Refs #186
2020-06-26 15:22:14 +02:00
Greg Karékinian
004a6913b4 Remove dependency to an old PostgreSQL in the Systemd unit
Refs #186
2020-06-26 15:22:05 +02:00
6adb910e1b Merge pull request 'Chef base role improvements' (#184) from feature/unattended_upgrades_and_vim into master 2020-06-22 13:07:20 +00:00
f55fc71765 Merge pull request 'Bootstrap draco.kosmos.org' (#185) from feature/175-draco_bootstrap into master 2020-06-22 13:06:41 +00:00
Greg Karékinian
fb8687b63c Add the postgresql_replica role to draco 2020-06-19 17:33:06 +02:00
Greg Karékinian
f7dfffd967 Add the kosmos_encfs recipe to draco 2020-06-19 17:33:06 +02:00
Greg Karékinian
8386dae46f Add the new Hetzner server, draco.kosmos.org 2020-06-19 17:33:06 +02:00
Greg Karékinian
84cf008bac Install vim 2020-06-19 17:30:02 +02:00
Greg Karékinian
b4357df471 Enable unattended-upgrades (security and updates repositories)
... with email notifications on failure and logging with syslog
2020-06-19 17:30:02 +02:00
Greg Karékinian
e7edb5a464 Update apt to 7.3.0
It now includes unattended-upgrades support
2020-06-19 17:30:02 +02:00
1b84009958 Merge pull request 'Add PostgreSQL primary support to the kosmos-ejabberd cookbook' (#181) from feature/180-ejabberd_pg_primary into master 2020-06-19 14:46:52 +00:00
01f8af6e38 Merge pull request 'Set the Gitea root URL to HTTPS' (#183) from bugfix/182-gitea_root_url into master 2020-06-15 12:39:29 +00:00
Greg Karékinian
5e483240c3 Set the Gitea root URL to HTTPS
It fixes U2F security keys support, that was broken because the protocol
did not match

Fixes #182
2020-06-12 17:22:34 +02:00
Greg Karékinian
ee9c241a4d Add a postgresql_client role
The role is empty but is used to explicitly define servers that have
access rights to all PostgreSQL databases and users
2020-06-12 16:54:58 +02:00
Greg Karékinian
6f696d7634 Define access rules in the PostgreSQL primary recipe
Access is done for the IP of a server for all users and all databases
for ejabberd and gitea
2020-06-11 18:20:04 +02:00
Greg Karékinian
26097a7584 Use the correct database name for the access rights 2020-06-11 09:00:50 +02:00
Greg Karékinian
1a6ce44758 Create a minimalist ejabberd role for development
No Let's Encrypt, no backups
2020-06-10 18:43:34 +02:00
Greg Karékinian
2c21d6255b Add PostgreSQL primary support to the kosmos-ejabberd cookbook
* Move the PostgreSQL user and database creation to a pg_db recipe
* Generate access rights for the ejabberd servers in the pg_db recipe
* Connect to the PostgreSQL primary instead of localhost

Refs #180
2020-06-10 18:38:40 +02:00
Greg Karékinian
091a46e972 Do not pass the pgsql_password variable to ejabberd.yml
The password is only used in the config files for the vhosts
2020-06-10 18:37:36 +02:00
81403b7cb9 Merge pull request 'Fix PostgreSQL replica config with encrypted data directory' (#179) from bugfix/postgres_issues into master 2020-06-10 14:04:58 +00:00
Greg Karékinian
a0db6adaf2 Pass the data_directory to the postgresql_server_conf resource
Previously we were passing it as an additional config, but it is set by
default. The last value was used, the custom one, so the server still
used the correct file
2020-06-10 14:41:07 +02:00
Greg Karékinian
e3e726097f Do not enable the postgresql@12-main service
We want it to run only once the encrypted data directory has been
mounted
2020-06-10 14:41:07 +02:00
Greg Karékinian
dba6629869 Use the attribute from the encfs recipe for the data directory 2020-06-10 14:41:03 +02:00
Greg Karékinian
229e9cfbd2 Add the kosmos_encfs recipe to centaurus 2020-06-10 14:40:01 +02:00
d88d3b07a5 Merge pull request 'Encrypt PostgreSQL data directory' (#166) from feature/pg_encfs into master 2020-06-08 15:02:58 +00:00
b662c04183 Finish initial encfs cookbook and postgres adaptations 2020-06-08 17:01:24 +02:00
379161eb1e Fix postgres installation
Also, do not start at boot anymore, in favor of path-based activation.
2020-06-07 12:47:06 +02:00
353f2c13f1 Improve encfs cookbook
Fix some things, and prepare for path-based activation. Also, comment
the buggy initial dir creation and explain manual provisioning in README
for now.
2020-06-07 12:45:33 +02:00
8918452fc5 Use latest postgresql fork 2020-06-07 12:40:39 +02:00
501626de1f Add encfs to Vagrantfile 2020-06-07 12:30:00 +02:00
4fe0e913f8 Use our own fork of the postgresql cookbook 2020-06-07 12:29:34 +02:00
bd99b76287 Use human-readable flag for encfs mount script
In case someone wants to see what it does without reading a manual in
the future.
2020-06-06 12:24:08 +02:00
Greg Karékinian
1e60722ec4 Create an initial encfs cookbook
Usage: Add the kosmos_encfs::default recipe to the run list of a node.
Creating the encrypted directory will keep it mounted. After a reboot,
start the encfs service and enter the password:

```
$ systemctl start encfs
encfs password:
```

For now postgresql@12-main is a hardcoded dependency of the encfs
Systemd unit that is automatically started once the user inputs the
correct password. This list of dependency will need to be different for
every server, based on the services it is running
2020-06-04 19:50:20 +02:00
Greg Karékinian
eded62a3ec Merge branch 'master' into feature/pg_encfs 2020-06-04 15:13:53 +02:00
db4792e836 Merge pull request 'Gitea fixes' (#174) from bugfix/147-gitea_fixes into master 2020-06-02 14:24:11 +00:00
Greg Karékinian
ccd49aefa4 Add Gitea to the run lists for Andromeda and Centaurus 2020-06-02 16:19:21 +02:00
Greg Karékinian
759fa52e03 Enable the certbot resource 2020-06-02 16:19:05 +02:00
Greg Karékinian
0f10723c81 Enable secure cookies 2020-06-02 16:18:48 +02:00
Greg Karékinian
55865c526c Add the Let's Encrypt hook dir to the config
Only enabled when there is no TLS cert. This is already part of the
certbot nginx vhost
2020-06-02 16:17:34 +02:00
Greg Karékinian
0c502580c2 Fix the condition for the Let's Encrypt cert in the template
The line contained an extra !
2020-06-02 16:16:30 +02:00
Greg Karékinian
27845525da Use the same JWT_SECRET as on our previous Gitea
A different one breaks 2FA
2020-06-02 12:12:59 +02:00
Greg Karékinian
c8e50fd226 Install git, it is a required dependency for Gitea
I didn't catch it because git is installed by default in the Vagrant box
I used to write the cookbook
2020-06-02 11:41:19 +02:00
Greg Karékinian
2d6c514257 Add the gitea role 2020-06-02 11:22:10 +02:00
8342298c89 Merge branch 'feature/147-gitea_cookbook' of kosmos/chef into master 2020-06-02 09:16:37 +00:00
Greg Karékinian
94330f2052 Comment out the COOKIE_SECURE config for now
We will enable it again after we have a valid TLS cert generated with
Let's Encrypt. It prevents logins using http, and we will need that as
an admin account
2020-05-28 18:43:31 +02:00
Greg Karékinian
baaae695af Merge branch 'master' into feature/147-gitea_cookbook 2020-05-28 15:44:44 +02:00
5b2d4f269d Merge branch 'bugfix/171-letsencrypt_resource' of kosmos/chef into master 2020-05-26 15:25:27 +00:00
Greg Karékinian
baa0739936 Add the backup recipe
Also move the Gitea data dir to an attribute
2020-05-26 15:21:26 +02:00
Greg Karékinian
3332a1b2e8 Write initial README 2020-05-26 15:21:07 +02:00
Greg Karékinian
210c76c479 Fix the name of the Let's Encrypt cert execute resource
The resource in the notification was invalid, missing the type of
resource (execute)

Fixes #171
2020-05-26 14:10:47 +02:00
6469d2286e Merge branch 'feature/zoom_options' of kosmos/chef into master 2020-05-25 15:52:41 +00:00
9dec1cfce8 Merge branch 'chore/mastodon_system_deps' of kosmos/chef into master 2020-05-25 15:50:58 +00:00
5fcb047505 Update Mastodon system dependencies
Needs new Ruby, and why not upgrade Yarn in the process. Running in
production.
2020-05-25 17:49:22 +02:00
f92b43e0f4 Configure Zoom meeting whitelist
So we only log contributions for actual Kosmos calls
2020-05-25 16:57:09 +02:00
Greg Karékinian
1f0e2ccbdd Move the binary URL to an attribute 2020-05-21 11:51:06 +02:00
Greg Karékinian
51d4d88568 Initial kosmos_gitea cookbook
The default recipe deploys the gitea binary, generates a config file and
our custom Kosmos label set. The service runs as a Systemd unit.

The pg_db recipe needs to run on the primary PostgreSQL (currently
andromeda).

The backup recipe is empty for now

Refs #147
2020-05-18 19:39:43 +02:00
Greg Karékinian
20cbc678bc Add a method that returns the PostgreSQL service 2020-05-18 19:38:37 +02:00
82f1e9863b Merge branch 'bugfix/160-cookbook_fixes' of kosmos/chef into master 2020-05-16 08:53:24 +00:00
Greg Karékinian
d0daa9cee7 Add the encryption password for encfs to the data bag 2020-05-15 18:46:24 +02:00
Greg Karékinian
d79cdf087b Move the PGPASS environment variable to the execute resource
That way it does not appear in the list of running processes while the
command is running
2020-05-15 18:45:12 +02:00
Greg Karékinian
31dc14e88c Fix the firewall rules for PostgreSQL
I got the source and destination mixed up.
2020-05-15 18:44:42 +02:00
Greg Karékinian
55b1cbc1d7 Encrypt the Postgresql data dir on the replica (centaurus)
encfs always runs a configuration assistant when creating a new
volume, so this needs to be done manually:

   systemctl stop postgresql@12-main
   mv /var/lib/postgresql /var/lib/postgresql.old
   encfs /var/lib/postgresql_encrypted /var/lib/postgresql --public
Pick p (paranoia mode) and enter the password from the data bag twice

   mv /var/lib/postgresql/* /var/lib/postgresql/
   systemctl start postgresql@12-main

This is running on centaurus and is mounted automatically on boot by a
system unit

Refs #129
2020-05-15 18:41:31 +02:00
4475af9204 Merge branch 'bugfix/enable_dirsrv' of kosmos/chef into master 2020-05-15 15:24:42 +00:00
Greg Karékinian
57f46c6c61 Merge branch 'master' into bugfix/enable_dirsrv 2020-05-15 17:24:04 +02:00
d900ca352c Merge branch 'bugfix/dirsrv_acis_really_fix' of kosmos/chef into master 2020-05-15 15:22:04 +00:00
Greg Karékinian
b4209fa294 Fix the invalid ACIs on initial creation (for real)
Follow-up to #156

I found another issue with the initial ACI creation, while creating a
fresh VM. I thought I had fixed it in #156 but I was wrong. This time
the ACIs are really set and the code runs successfully.

The ACIs are set on the suffix, so modifying it is needed

This won't be executed on a server that is already running, this is only
done on the initial setup
2020-05-15 14:05:35 +02:00
Greg Karékinian
10f0460fd5 Fix startup of the dirsrv@master Systemd unit on boot
The symlink created by Chef's service resource was wrong. Creating the
correct symlink fixes the automatic startup on boot
2020-05-15 13:54:34 +02:00
Greg Karékinian
bf60f9fca8 Add the Chef client public keys for andromeda and barnard 2020-05-14 15:34:10 +02:00
773aa3ddee Update node configs 2020-05-14 15:29:25 +02:00
3c905dd51e Merge branch 'feature/160-postgres_replication' of kosmos/chef into master 2020-05-14 13:10:34 +00:00
Greg Karékinian
da278822f6 Use the new postgresql_primary role on andromeda 2020-05-14 15:09:33 +02:00
Greg Karékinian
18973fe4f6 Remove the deleted tls property from the resources 2020-05-14 15:09:15 +02:00
Greg Karékinian
fbf610a643 Merge branch 'master' into feature/160-postgres_replication 2020-05-14 15:06:00 +02:00
Greg Karékinian
069090bf44 Remove TODOs
Access rules will not be part of this cookbook, they need to be added to
the cookbooks that use a PostgreSQL database
2020-05-14 13:15:47 +02:00
Greg Karékinian
dd92d6cdb7 Remove deploying the root cert to clients from the README
We do not want to verify the root cert so this is not needed
2020-05-14 13:14:42 +02:00
Greg Karékinian
124ee5e6f3 Update the README 2020-05-14 12:36:20 +02:00
Greg Karékinian
0063776297 Remove unused dependencies 2020-05-13 19:11:00 +02:00
Greg Karékinian
8d2ab785fc Use a self-signed TLS certificate for PostgreSQL 2020-05-13 19:10:14 +02:00
Greg Karékinian
84cb3de4a0 Remove outdated comment
This was the case when the code lived inside of the custom resource
2020-05-13 19:04:12 +02:00
Greg Karékinian
f3f8e47cce Add replication_password to the postgresql credentials 2020-05-13 15:35:34 +02:00
Greg Karékinian
51b23c2f47 Add postgresql roles 2020-05-13 15:35:15 +02:00
Greg Karékinian
eb98aa1bac Clarify the firewall and client authentication rules 2020-05-12 16:04:58 +02:00
Greg Karékinian
0180da1aa6 Fix a typo in the README 2020-05-12 15:59:55 +02:00
Greg Karékinian
254f9020ae Enable firewall rules to allow primary/replica to connect 2020-05-12 12:10:10 +02:00
Greg Karékinian
80c7263a72 Upgrade PostgreSQL from 10 to 12
Refs #160
2020-05-11 18:26:57 +02:00
Greg Karékinian
b22a7e3c0f Update the postgresql upstream cookbook 2020-05-11 18:26:35 +02:00
Greg Karékinian
21119fff08 Add a custom resource to set up PostgreSQL 12
Supports both primary and replica. The access rules and firewall have to
be set up outside of the custom resource, so they are part of the
recipes instead

Refs #160
2020-05-11 18:23:11 +02:00
0aae86b545 Merge branch 'feature/turn_ip_config' of kosmos/chef into master 2020-05-02 12:43:38 +00:00
4448ec2173 Configure TURN properly
Was missing a couple of necessary properties, and is now using an
explicit port range for TURN, and opening those ports in UFW.
2020-05-02 14:07:14 +02:00
0bcb2597e8 Update node info 2020-05-02 12:41:30 +02:00
136fc84c4f Merge branch 'feature/159-ejabberd_stun_turn' of kosmos/chef into master 2020-05-02 10:01:15 +00:00
ef2fa2da72 Configure STUN/TURN
Configures built-in STUN/TURN support, and adds the new service discovery
module for it.
2020-05-01 16:25:38 +02:00
35a56aa221 Update version to 20.04 2020-05-01 14:55:13 +02:00
53d53f2375 Merge branch 'bugfix/152-remove_encryption_keys_tls' of kosmos/chef into master 2020-04-30 15:50:26 +00:00
ee13c3cbe9 Merge branch 'bugfix/153-update_ejabberd_20.03' of kosmos/chef into master 2020-04-21 13:38:53 +00:00
4c1879b84e Merge branch 'bugfix/ldap_invalid_aci' of kosmos/chef into master 2020-04-21 11:22:50 +00:00
Greg Karékinian
1c920a8cb2 Remove the encryption keys after TLS cert renewal
This is done with awk, this was the best way I found to perform the
multi-line deletion. It deletes both the AES AND 3DES sections

The keys will be recreated on service restart

https://access.redhat.com/documentation/en-us/red_hat_directory_server/9.0/html/administration_guide/ssl-and-attr-encryption

Closes #152
2020-04-20 19:11:34 +02:00
Greg Karékinian
5e3c8066f9 Add the missing certbot command to generate the LDAP TLS cert
This had been done manually on barnard. This will not be executed on
barnard again since the cert exists
2020-04-20 19:10:15 +02:00
Greg Karékinian
d01c9a4d0a Fix the name of the deploy certbot hook 2020-04-20 19:09:43 +02:00
Greg Karékinian
3ca8ab45da Fix the invalid ACIs on initial creation
This is only executed on initial creation of the instance, the
production one is using these fixed ACIs, this was only an issue with
the setup

The issue was the ACI was set at the wrong level
2020-04-20 19:00:28 +02:00
Greg Karékinian
db8bb44c8b Update ejabberd to 20.03
The download URL has changed, they removed a prefix

Closes #153
2020-04-20 14:53:08 +02:00
Greg Karékinian
f5dd2c7de9 Fix the command importing the schema on db creation
It had an extra }, but this only fails when creating the databases
2020-04-20 14:52:11 +02:00
f5bdc3e892 Merge branch 'doc/ldap' of kosmos/chef into master 2020-04-20 09:29:34 +00:00
73e87f8f45 Improve LDAP example command
We should not log passwords in bash history files. This change will
prompt the user for the password instead.
2020-04-19 13:01:39 +02:00
4f1bf768ee Merge branch 'feature/hal8000_zoom' of kosmos/chef into master 2020-04-16 20:19:30 +00:00
cc4c8fb903 Add hubot-kredits Zoom config 2020-04-16 17:52:28 +02:00
Greg Karékinian
43736cd8e9 Move the debug logs env variable to an attribute
Set it to 'sockethub*' for now as Nick advised, see
#91
2020-03-25 17:51:28 +01:00
Greg Karékinian
29a5947d18 Deploy Sockethub from the npm package
This is currently 3.1.4 and is set as an attribute. The recipe is very
simple now, it installs the npm package, and the systemd service runs
/usr/bin/sockethub and sets the environment variables

Closes #145
2020-03-25 12:43:39 +01:00
a3b95463fa Merge branch 'bugfix/mediawiki_extensions_deleted_releases' of kosmos/chef into master 2020-03-04 15:07:22 +00:00
Greg Karékinian
d7363d662b Switch the Mediawiki extensions to GitHub zips
This fixes the annoying issue of Mediawiki only keeping one revision of
each branch
2020-03-04 16:03:12 +01:00
7fa11089b1 Merge branch 'bugfix/ejabberd_restart_config_vhost_change' of kosmos/chef into master 2020-03-04 13:45:10 +00:00
970a1b6a3a Merge branch 'feature/136-ejabberd_20.02' of kosmos/chef into master 2020-03-04 13:33:52 +00:00
Greg Karékinian
a68ae78689 Update ejabberd to 20.02
It includes a fix to the reload_config command that prevented us from
running a version newer than 19.05

Closes #136
2020-03-04 13:28:13 +01:00
Greg Karékinian
6cd0fa039e Restart ejabberd service when changing a vhost config
I have ran into an issue, changes to the LDAP config for a host are
currently only loaded on startup, not on reload

https://github.com/processone/ejabberd/issues/3181

This should be fixed once
b39a1e2d74
is part of the next release
2020-03-04 13:23:54 +01:00
gregkare
081222b75c Merge branch 'feature/140-ldap_application_accounts' of kosmos/chef into master 2020-02-27 10:45:46 +00:00
Greg Karékinian
d7ad95fb3f Switch the mediawiki LDAP setup to a new application account
Needs the new directory structure:

```
dn: cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalRole
cn: users

dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalUnit
ou: kosmos.org

dn: ou=5apps.com,cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalUnit
description: 5apps
ou: 5apps.com

dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: wiki
userPassword: [snip]

dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: xmpp
userPassword: [snip]

dn: uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: xmpp
userPassword: [snip]
```

And the new ACIs:

```
dn: ou=5apps.com,cn=users,dc=kosmos,dc=org
changetype: modify
replace: aci
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole") (version 3.0; acl "xmpp-5apps-read-search"; allow (read,search) userdn="ldap:///cn=xmpp,ou=5apps.com,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-5apps-change-password"; allow (write) userdn="ldap:///cn=xmpp,ou=5apps.com,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole || objectClass") (version 3.0; acl "xmpp-5apps-read-search"; allow (read,search) userdn="ldap:///uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-5apps-change-password"; allow (write) userdn="ldap:///uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org";)

dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org
changetype: modify
replace: aci
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-kosmos-change-password"; allow (write) userdn="ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole || objectClass") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || objectClass") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-kosmos-change-password"; allow (write) userdn="ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
```

Refs #140
2020-02-21 18:04:48 +01:00
Greg Karékinian
6fa89b3c25 Switch the ejabberd LDAP setup to a new application account
Needs the new directory structure:

```
dn: cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalRole
cn: users

dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalUnit
ou: kosmos.org

dn: ou=5apps.com,cn=applications,dc=kosmos,dc=org
objectClass: top
objectClass: organizationalUnit
description: 5apps
ou: 5apps.com

dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: wiki
userPassword: [snip]

dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: xmpp
userPassword: [snip]

dn: uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org
objectClass: simpleSecurityObject
objectClass: account
uid: xmpp
userPassword: [snip]

```

And the new ACIs:

```
dn: ou=5apps.com,cn=users,dc=kosmos,dc=org
changetype: modify
replace: aci
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole") (version 3.0; acl "xmpp-5apps-read-search"; allow (read,search) userdn="ldap:///cn=xmpp,ou=5apps.com,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-5apps-change-password"; allow (write) userdn="ldap:///cn=xmpp,ou=5apps.com,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole || objectClass") (version 3.0; acl "xmpp-5apps-read-search"; allow (read,search) userdn="ldap:///uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=5apps.com,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-5apps-change-password"; allow (write) userdn="ldap:///uid=xmpp,ou=5apps.com,cn=applications,dc=kosmos,dc=org";)

dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org
changetype: modify
replace: aci
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-kosmos-change-password"; allow (write) userdn="ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || nsRole || objectClass") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="cn || sn || uid || mail || userPassword || objectClass") (version 3.0; acl "xmpp-kosmos-read-search"; allow (read,search) userdn="ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
aci: (target="ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org")(targetattr="userPassword") (version 3.0; acl "xmpp-kosmos-change-password"; allow (write) userdn="ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org";)
```

Refs #140
2020-02-21 18:03:58 +01:00
gregkare
f34513220e Merge branch 'feature/130-remove_antispam' of kosmos/chef into master 2020-02-20 13:34:15 +00:00
Greg Karékinian
c4fdf1779f Remove the CleanTalk Antispam extension
It is not needed anymore now that registration is closed and only LDAP
accounts can edit or create pages

Closes #130
2020-02-20 14:31:39 +01:00
Greg Karékinian
6f7474b4d1 Update the Mediawiki extensions 2020-02-20 14:30:25 +01:00
gregkare
c01f5c1038 Merge branch 'feature/127-new_ldap_dir_structure' of kosmos/chef into master 2020-02-20 13:29:05 +00:00
Greg Karékinian
90a0e6be9f Enable LDAP on the kosmos.org vhost 2020-02-19 12:30:55 +01:00
Greg Karékinian
276daf0ed7 Switch the Mediawiki config to the new LDAP dir structure
* Use a new read-only account instead of the admin LDAP account
* Disable the LDAPAuthorization plugin. The LDAPAuthentication2 plugin
is still used to authenticate users, but every kosmos.org user has
access to the wiki. See
https://www.mediawiki.org/wiki/Extension:PluggableAuth for the
distinction between authentication and authorization

Refs #127
2020-02-19 12:29:14 +01:00
afaff86551 Merge branch 'feature/134-ejabberd_19.05' of kosmos/chef into master 2020-02-17 16:37:13 +00:00
Greg Karékinian
56adfa37fb Fix a warning in the config
Migrate the web admin to a request handler
2020-02-17 17:26:55 +01:00
Greg Karékinian
0f9b2777a3 Update ejabberd to 19.05
Versions from 19.08 to 20.01 contains a blocking bug in the
reload_config command
(https://github.com/processone/ejabberd/issues/3170)

Closes #134
2020-02-17 17:26:45 +01:00
e694996ebd Merge branch 'feature/123-ejabberd_5apps' of kosmos/chef into master 2020-02-17 14:41:03 +00:00
Greg Karékinian
c2b2b6f08b Fix the vhost template
hosts must be defined in the main config file
2020-02-17 15:04:08 +01:00
Greg Karékinian
72cc6342f1 Remove the unused LDAP variables from the main config file 2020-02-17 13:27:14 +01:00
Greg Karékinian
38f39af2a4 Move each vhost to its own config file 2020-02-17 13:20:54 +01:00
Greg Karékinian
463664448c Merge branch 'master' into feature/123-ejabberd_5apps 2020-02-17 12:21:16 +01:00
5b86aca5e8 Update andromeda node info 2020-02-15 13:52:00 -05:00
gregkare
585041e36c Merge branch 'bugfix/128-set_acis_on_users' of kosmos/chef into master 2020-02-14 15:47:16 +00:00
Greg Karékinian
55eb95ae73 Verify the TLS server's certificate
Do not proceed if a certificate is invalid
2020-02-14 13:56:52 +01:00
Greg Karékinian
dc1226073c Move the admin users to the ejabberd encrypted data bag 2020-02-14 13:56:17 +01:00
Greg Karékinian
49d01991fd Enable LDAP on the XMPP 5apps.com vhost
Refactor the ejabberd config file to remove hardcoded values about the
vhosts

Refs #123
2020-02-12 17:40:38 +01:00
Greg Karékinian
e56faab5b1 Set the ACIs on the base DN
Allow users to change their own password, but nothing else (no search,
no read, no write)

This will only run when setting up the 389-dirsrv instance for the first
time, this has been applied on barnard by editing the dn (see
#128 (comment))

Closes #128
2020-02-12 16:13:45 +01:00
Greg Karékinian
396cc344fb Switch the ipfs cookbook from GitHub to Gitlab 2020-02-04 16:26:31 +01:00
628b8c6ef8 Merge branch 'feature/124-enable_cite_extension' of kosmos/chef into master 2020-01-29 14:36:31 +00:00
Greg Karékinian
2a66ff6146 Enable the Cite extension in the MediaWiki config
This is used to create references as footnotes.
See https://www.mediawiki.org/wiki/Extension:Cite

Closes #124
2020-01-29 14:30:39 +01:00
ef29e60403 Merge branch 'feature/107-ldap_mediawiki' of kosmos/chef into master 2020-01-28 17:02:42 +00:00
Greg Karékinian
9ece855902 Remove the config.rb at the root, it interferes with knife-zero 2020-01-28 14:02:34 +01:00
Greg Karékinian
a06ea47e58 Update the LDAPProvider extension 2020-01-28 13:54:57 +01:00
Greg Karékinian
a69192a863 Enable LDAP support on mediawiki
Users can log in using their LDAP account (in the
ou=users,dc=kosmos,dc=org group and with the wiki attribute set to
enabled)

Add an attribute for the ldap master server, so it can be overridden in
the development environment

Refs #107
2020-01-24 13:45:17 +01:00
gregkare
484f1306da Merge branch 'chore/default_license' of kosmos/chef into master 2019-12-27 15:32:10 +00:00
Greg Karékinian
d029ee91be Move the generate options to config.rb at the root of the repo
This has been the only way I managed to make `chef generate cookbook
COOKBOOK_NAME` set the default values

This is not documented, there is an issue open about it:
https://github.com/chef/chef-cli/issues/54
2019-12-27 11:33:05 +01:00
gregkare
7fd558215d Merge branch 'feature/107-ldap_server' of kosmos/chef into master 2019-12-23 17:50:19 +00:00
gregkare
f3a711ccfe Merge branch 'feature/mediawiki_file_uploads' of kosmos/chef into master 2019-12-20 16:09:10 +00:00
Greg Karékinian
9828b867ba Disable anonymous binds
See https://access.redhat.com/documentation/en-US/Red_Hat_Directory_Server/8.2/html/Administration_Guide/configuring-special-binds.html#disabling-anonymous-binds
2019-12-20 16:46:03 +01:00
8d78d41af7 Use MIT as default cookbook license
And improve the author name, making it more consistent with the rest of
the repo.
2019-12-18 20:19:42 +01:00
11c7019bfa Fix thumbnails not working for larger SVGs
See linked docs in code comments
2019-12-13 13:46:57 +01:00
2358ed00db Fix wiki permissions 2019-12-13 13:41:48 +01:00
cbfb760787 Increase wiki file upload size limit 2019-12-13 13:41:48 +01:00
2158e1d4bf Allow SVG file uploads 2019-12-13 13:41:48 +01:00
Greg Karékinian
0a96c31e12 Add initial LDAP documentation 2019-12-06 10:54:10 +01:00
Greg Karékinian
1240ed9da8 Move the dirsrv cert generation to a certbot deploy hook 2019-12-05 15:47:10 +01:00
Greg Karékinian
0d192f536f Add the empty nginx vhost template 2019-12-05 15:05:37 +01:00
Greg Karékinian
0dbf350540 Restart the server after importing the TLS cert 2019-12-04 17:40:27 +01:00
Greg Karékinian
5ba700cd00 Add the kosmos-dirsrv recipe to barnard 2019-12-04 17:34:15 +01:00
Greg Karékinian
4e7d453942 Move the firewall and backup recipes outside of the custom resource
See the comment for more details
2019-12-04 17:33:41 +01:00
Greg Karékinian
e24cd01287 Add an empty template because the nginx_certbot_site resource needs one 2019-12-04 17:33:13 +01:00
Greg Karékinian
632cb38aab Pass an empty passphrase on the command line for the p12 cert 2019-12-04 17:32:40 +01:00
Greg Karékinian
9d9493af0d Add a missing dependency on the kosmos-nginx cookbook 2019-12-04 17:32:03 +01:00
Greg Karékinian
9e4f12b1b1 Merge branch 'master' into feature/107-ldap_server 2019-12-04 15:52:08 +01:00
gregkare
aecdaabbcc Merge branch 'chore/enable_wiki_editor_toolbar' of kosmos/chef into master 2019-11-29 16:38:08 +00:00
Greg Karékinian
dc91128eca Use a custom resource to create a 389 Directory Server instance
This replaces the default recipe and will make it much easier to create
other types of instances, for example for replication
2019-11-29 14:34:52 +01:00
678286d758 Enable wiki editor toolbar
Enables the formatting toolbar for the wiki editor.
2019-11-26 22:04:49 +01:00
Greg Karékinian
65eca52b75 Delete file committed by accident 2019-11-22 17:44:47 +01:00
gregkare
056a3eb0d6 Merge branch 'bugfix/letsencrypt_regenerate_template' of kosmos/chef into master 2019-11-22 16:19:52 +00:00
Greg Karékinian
db4e2777d4 Fix a bug preventing nginx from being reloaded after generating a cert
Change the notifies property to :immediately in nginx_certbot_site. This
way the vhost template is recreated and then triggers a reload of the
nginx service. The previous code resulted in nginx not being reloaded,
as the action had already been queued earlier.
2019-11-22 14:37:29 +01:00
galfert
22400b929e Merge branch 'feature/no_tweets_for_xmpp_hal8000' of kosmos/chef into master 2019-11-15 14:49:45 +00:00
Greg Karékinian
9e4685a743 Initial version of the kosmos-dirsrv cookbook
It sets up 389 Directory Server, including a TLS cert acquired using
Let's Encrypt in production (that requires ldap.kosmos.org pointing to
the server's IP)
2019-11-15 15:41:30 +01:00
bd3ef8b635 Remove tweet reading from XMPP Hubot
Because of the wormhole feature between XMPP and IRC, any links to
tweets will be read by the hal8000 bots on both platforms.

This change removes the Tweet reading extension from the XMPP version of
the bot.
2019-11-15 14:43:56 +01:00
90aebe54de Revert "Remove tweet reading from IRC Hubot"
This reverts commit d5fc7ad105.
2019-11-15 14:37:19 +01:00
galfert
529a4fc4a8 Merge branch 'feature/no_tweets_for_irc_hal8000' of kosmos/chef into master 2019-11-15 11:00:18 +00:00
d5fc7ad105 Remove tweet reading from IRC Hubot
Because of the wormhole feature between XMPP and IRC, any links to
tweets will be read by the hal8000 bots on both platforms.

This change removes the Tweet reading extension from the IRC version of
the bot.
2019-11-14 19:00:04 +01:00
gregkare
86c43dfb29 Merge branch 'bugfix/110-mastodon_broken_certbot' of kosmos/chef into master 2019-10-30 11:29:55 +00:00
Greg Karékinian
0b579b1fea Remove the redirection from HTTP to HTTPS from the mastodon vhost
This is already done in the certbot vhost
(https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-nginx/templates/default/nginx_conf_certbot.erb)
and it redirects every request to HTTPS, breaking Let's Encrypt
validation

Fixes #110
2019-10-28 11:18:31 +01:00
77508c62a9 Update barnard node config 2019-10-18 15:52:22 +02:00
9e00070141 Merge branch 'feature/18-akkounts-api' of kosmos/chef into master 2019-10-18 12:31:38 +00:00
Greg Karékinian
2c20fa4a2f Fix the nginx vhost for akkounts-api
Listening on port 80 when there is no TLS cert prevented Let's Encrypt
to generate a cert
2019-10-18 13:26:04 +02:00
f8af66a532 Add/fix akkounts credentials 2019-10-18 13:10:43 +02:00
Greg Karékinian
2104e81250 Add the kosmos-akkounts::nginx recipe to kosmos-akkounts::default 2019-10-18 12:30:26 +02:00
Greg Karékinian
6bb93eb5f5 Fix the path to index.js 2019-10-18 12:27:33 +02:00
Greg Karékinian
c5eeab3606 Remove typescript and the compilation step
The app is now compiled during the release phase:
https://github.com/67P/akkounts-api/pull/6
2019-10-18 12:24:47 +02:00
Greg Karékinian
9ecf40e72a Add dummy encrypted data bag secret
TODO: replace them with the actual secrets
2019-10-17 14:58:07 +02:00
Greg Karékinian
185982ff9f Add the initial kosmos-akkounts cookbook to deploy akkounts-api
Includes a recipe to set up nginx as a reverse proxy with a TLS
certificate for api.accounts.kosmos.org

Closes #18
Closes #20
2019-10-17 14:56:48 +02:00
gregkare
1b2edb770e Merge branch 'bugfix/mastodon-web_service' of kosmos/chef into master 2019-10-16 10:34:29 +00:00
c7d91f68f9 Fix Mastodon Web systemd service
Removes a legacy property from the config, which made the service fail
to start after having upgraded systemd on Andromeda.
2019-10-16 08:29:34 +02:00
fd913770b9 Merge branch 'feature/wormhole_sockethub' of kosmos/chef into master 2019-10-13 19:33:19 +00:00
76c8120058 Set up XMPP/IRC integration for Sockethub rooms 2019-10-13 21:32:12 +02:00
fd59c9b23b Merge branch 'chore/update_mastodon_ruby' of kosmos/chef into master 2019-10-13 18:19:58 +00:00
66782f1f05 Update installed Ruby version for Mastodon 3.x 2019-10-13 20:16:54 +02:00
b49b494d43 Update andromeda node file 2019-10-13 20:16:18 +02:00
d255c06759 Merge branch 'feature/103-chef_15' of kosmos/chef into master 2019-10-13 18:15:07 +00:00
Greg Karékinian
a32f34b408 Vendor the external cookbooks
Knife-Zero doesn't include Berkshelf support, so vendoring everything in
the repo is convenient again
2019-10-13 19:17:42 +02:00
Greg Karékinian
f4bfe31ac1 Update the node files after running Knife-Zero 2019-10-10 12:52:10 +02:00
Greg Karékinian
ebcb700eaf Add the command to update Chef Client 2019-10-10 12:43:47 +02:00
Greg Karékinian
67c9ea621c Add the latest bootstrap command to the README 2019-10-10 12:37:14 +02:00
Greg Karékinian
8fdafa1484 Set attribute whitelists for Knife-Zero
This prevents all attributes to be written in the node files. We don't
want that data stored in git.
See https://knife-zero.github.io/40_configuration/
2019-10-10 12:34:55 +02:00
Greg Karékinian
f5858a8a6e Remove unneeded setting
In Chef 15 local_mode is enough
2019-10-10 12:34:08 +02:00
Greg Karékinian
a7aa38805c Merge branch 'master' into feature/103-chef_15 2019-10-09 13:04:05 +02:00
Greg Karékinian
aa66743166 Set a low Java heap size in development 2019-10-08 18:23:27 +02:00
Greg Karékinian
bf010b943a Add commented recipes to the run list 2019-10-08 18:22:51 +02:00
Greg Karékinian
7f57caddf9 Update Chef to 15.3.14 in the Vagrant config
Add the switch to accept the license
2019-10-08 18:22:11 +02:00
Greg Karékinian
6ea0498490 Get rid of the vagrant-berkshelf plugin
It has been abandoned by its creators
2019-10-08 18:20:57 +02:00
Greg Karékinian
585374861d Update the README for Knife-Zero 2019-10-08 18:17:57 +02:00
Greg Karékinian
b633205d6d Update poise-javascript to support Chef 15 2019-10-08 18:17:34 +02:00
Greg Karékinian
0b9ab63a61 Update Chef to 15.3.14 2019-10-08 18:17:34 +02:00
Greg Karékinian
20f6e9e04d Delete config for knife-solo 2019-10-08 18:17:34 +02:00
Greg Karékinian
3c05f172de Add the cookbooks dir to the load path for Knife-Zero 2019-10-08 18:17:34 +02:00
Greg Karékinian
2c2ae596ed Don't update chef using the chef_client_updater cookbook
It only makes sense when using Chef Server, which we don't
2019-10-08 18:17:34 +02:00
1660 changed files with 102341 additions and 3253 deletions

View File

@@ -1,19 +1,32 @@
current_dir = File.dirname(__FILE__)
cookbook_path ["#{current_dir}/../site-cookbooks"]
cookbook_path ["#{current_dir}/../site-cookbooks", "#{current_dir}/../cookbooks"]
node_path "nodes"
role_path "roles"
environment_path "environments"
data_bag_path "data_bags"
encrypted_data_bag_secret "#{current_dir}/encrypted_data_bag_secret"
local_mode true # Chef local mode, replacing Solo
chef_zero.enabled true
cookbook_copyright 'Kosmos'
cookbook_license 'none'
cookbook_email 'mail@kosmos.org'
# Knife-Zero config, see https://knife-zero.github.io/40_configuration/
# Prevent attributes from being saved to the node files
knife[:automatic_attribute_whitelist] = %w[
fqdn
os
os_version
hostname
ipaddress
roles
recipes
ipaddress
platform
platform_version
cloud
cloud_v2
chef_packages
]
# Enable knife-solo's Berkshelf integration
knife[:berkshelf] = true
# Set Chef version installed by `knife solo prepare`
knife[:bootstrap_version] = "14.11.21"
# Added to /etc/chef/client.rb on node bootstrap
# https://docs.chef.io/attribute_persistence/
knife[:normal_attribute_allowlist] = ['knife_zero', 'kosmos_kvm', 'kosmos-ejabberd', 'openresty']
knife[:allowed_normal_attributes] = ['knife_zero', 'kosmos_kvm', 'kosmos-ejabberd', 'openresty']

2
.gitignore vendored
View File

@@ -1,4 +1,6 @@
/.chef/encrypted_data_bag_secret
.chef/chef_guid
/.bundle/
/.vagrant/
/.kitchen
/nodes/vagrant-node.json

12
.gitmodules vendored Normal file
View File

@@ -0,0 +1,12 @@
[submodule "site-cookbooks/postgresql"]
path = site-cookbooks/postgresql
url = git@github.com:67P/postgresql.git
[submodule "site-cookbooks/openresty"]
path = site-cookbooks/openresty
url = https://github.com/67P/chef-openresty.git
[submodule "site-cookbooks/strfry"]
path = site-cookbooks/strfry
url = git@gitea.kosmos.org:kosmos/strfry-cookbook.git
[submodule "site-cookbooks/deno"]
path = site-cookbooks/deno
url = git@gitea.kosmos.org:kosmos/deno-cookbook.git

1
.ruby-version Normal file
View File

@@ -0,0 +1 @@
chef-workstation

View File

@@ -2,53 +2,43 @@
source 'https://supermarket.chef.io'
cookbook 'mediawiki',
git: 'https://github.com/67P/mediawiki-cookbook.git',
ref: '55a4680ee298199fa5f7fa51b5c589fbfa52eed0'
cookbook 'redis',
git: 'https://github.com/phlipper/chef-redis.git',
ref: 'v0.5.6'
cookbook 'postfix', '= 5.0.2'
cookbook 'php-fpm', '~> 0.8.0'
cookbook 'php', '~> 6.1.1'
cookbook 'composer', '~> 2.6.1'
cookbook 'poise-ruby-build', '~> 1.1.0'
cookbook 'application', '~> 5.2.0'
cookbook 'application_javascript', '~> 1.0.0'
cookbook 'application_git', '= 1.1.0' # 1.2.0 doesn't work with knife-solo
cookbook 'poise', '~> 2.8.2'
cookbook 'poise-languages', '~> 2.1.1'
cookbook 'poise-javascript', git: 'https://github.com/67p/poise-javascript.git',
ref: 'd85078f'
cookbook 'poise-archive', '~> 1.5.0'
cookbook 'poise-service', '~> 1.5.2'
cookbook 'users', '~> 5.3.1'
cookbook 'hostname', '= 0.4.2'
cookbook 'firewall', '~> 2.6.3'
cookbook 'nginx', '= 9.0.0'
# Remove when cookbooks stop depending on it, the build_essential resource is
# part of Chef 14 (https://docs.chef.io/resource_build_essential.html)
cookbook 'build-essential', '~> 8.2.1'
cookbook 'mysql', '~> 8.5.1'
cookbook 'postgresql', '= 7.1.4'
cookbook 'apt', '~> 7.0.0'
cookbook 'git', '= 6.0.0'
cookbook 'hostsfile', '= 2.4.5'
cookbook 'ohai', '~> 5.2.5'
cookbook 'nodejs', '~> 5.0.0'
cookbook 'chef_client_updater', '= 1.1.1'
cookbook 'timezone_iii', '= 1.0.4'
cookbook 'ark', '= 3.1.0'
cookbook 'logrotate', '= 2.2.0'
cookbook 'openssl', '~> 8.5.5'
cookbook 'ntp', '= 3.4.0'
cookbook 'apache2', '= 3.3.0'
cookbook 'chef-sugar', '= 3.3.0'
cookbook 'compat_resource', '= 12.19.0'
cookbook 'homebrew', '= 3.0.0'
cookbook 'mariadb', '= 0.3.1'
cookbook 'elasticsearch', '~> 5.1.3'
cookbook 'firewall', '~> 6.2.16'
cookbook 'redisio', '~> 6.4.1'
cookbook 'ruby_build', '~> 2.5.0'
cookbook 'ipfs',
git: 'https://github.com/67P/ipfs-cookbook.git',
ref: 'v0.4.1'
cookbook 'elasticsearch', '= 4.2.0'
git: 'https://gitea.kosmos.org/kosmos/ipfs-cookbook.git',
ref: 'v0.7.0'
cookbook 'mediawiki',
git: 'https://github.com/67P/mediawiki-cookbook.git',
ref: 'nginx'
cookbook 'apache2', '= 3.3.0'
cookbook 'apt', '~> 7.3.0'
cookbook 'ark', '>= 5.0.0'
cookbook 'composer', '~> 2.7.0'
cookbook 'fail2ban', '~> 7.0.4'
cookbook 'git', '~> 10.0.0'
cookbook 'golang', '~> 5.3.1'
cookbook 'hostname', '= 0.4.2'
cookbook 'hostsfile', '~> 3.0.1'
cookbook 'java', '~> 4.3.0'
cookbook 'logrotate', '= 2.2.0'
cookbook 'mysql', '~> 8.7.3'
cookbook 'nginx', '= 9.0.0'
cookbook 'nodejs', '~> 7.3.1'
cookbook 'ntp', '= 3.4.0'
cookbook 'ohai', '~> 5.2.5'
cookbook 'openssl', '~> 8.5.5'
cookbook 'php', '~> 8.0.0'
cookbook 'postfix', '~> 6.0.26'
cookbook 'timezone_iii', '= 1.0.4'
cookbook 'ulimit', '~> 1.0.0'
cookbook 'users', '~> 5.3.1'
cookbook 'zerotier', '~> 1.0.7'
cookbook 'unbound', '~> 3.0.2'
# openresty dependency
cookbook 'jemalloc', '~> 0.1.7'
cookbook 'yum'

View File

@@ -1,168 +1,109 @@
DEPENDENCIES
apache2 (= 3.3.0)
application (~> 5.2.0)
application_git (= 1.1.0)
application_javascript (~> 1.0.0)
apt (~> 7.0.0)
ark (= 3.1.0)
build-essential (~> 8.2.1)
chef-sugar (= 3.3.0)
chef_client_updater (= 1.1.1)
compat_resource (= 12.19.0)
composer (~> 2.6.1)
elasticsearch (= 4.2.0)
firewall (~> 2.6.3)
git (= 6.0.0)
homebrew (= 3.0.0)
apt (~> 7.3.0)
ark (>= 5.0.0)
composer (~> 2.7.0)
elasticsearch (~> 5.1.3)
fail2ban (~> 7.0.4)
firewall (~> 6.2.16)
git (~> 10.0.0)
golang (~> 5.3.1)
hostname (= 0.4.2)
hostsfile (= 2.4.5)
hostsfile (~> 3.0.1)
ipfs
git: https://github.com/67P/ipfs-cookbook.git
revision: 5c31191ff8571bc8425375fbf938913ac64aa2ee
ref: v0.4.1
git: https://gitea.kosmos.org/kosmos/ipfs-cookbook.git
revision: d7c25b6ce5fa490b6de3529fdc163fb64f1ece8a
ref: v0.7.0
java (~> 4.3.0)
jemalloc (~> 0.1.7)
logrotate (= 2.2.0)
mariadb (= 0.3.1)
mediawiki
git: https://github.com/67P/mediawiki-cookbook.git
revision: 55a4680ee298199fa5f7fa51b5c589fbfa52eed0
ref: 55a4680
mysql (~> 8.5.1)
revision: 78641e53635ba6cbd4a2a51fd597adb8fef1e8ad
ref: nginx
mysql (~> 8.7.3)
nginx (= 9.0.0)
nodejs (~> 5.0.0)
nodejs (~> 7.3.1)
ntp (= 3.4.0)
ohai (~> 5.2.5)
openssl (~> 8.5.5)
php (~> 6.1.1)
php-fpm (~> 0.8.0)
poise (~> 2.8.2)
poise-archive (~> 1.5.0)
poise-javascript
git: https://github.com/67p/poise-javascript.git
revision: d85078fe59bd4f16d05a9ffe6e0fc449015e4440
ref: d85078f
poise-languages (~> 2.1.1)
poise-ruby-build (~> 1.1.0)
poise-service (~> 1.5.2)
postfix (= 5.0.2)
postgresql (= 7.1.4)
redis
git: https://github.com/phlipper/chef-redis.git
revision: 7476279fc9c8727f082b8d77b5e1922dc2ef437b
ref: v0.5.6
php (~> 8.0.0)
postfix (~> 6.0.26)
redisio (~> 6.4.1)
ruby_build (~> 2.5.0)
timezone_iii (= 1.0.4)
ulimit (~> 1.0.0)
unbound (~> 3.0.2)
users (~> 5.3.1)
yum
zerotier (~> 1.0.7)
GRAPH
apache2 (3.3.0)
application (5.2.0)
poise (~> 2.4)
poise-service (~> 1.0)
application_git (1.1.0)
application (~> 5.0)
git (>= 0.0.0)
poise (~> 2.0)
application_javascript (1.0.0)
application (~> 5.0)
poise (~> 2.0)
poise-javascript (~> 1.0)
poise-service (~> 1.0)
apt (7.0.0)
ark (3.1.0)
build-essential (>= 0.0.0)
seven_zip (>= 0.0.0)
windows (>= 0.0.0)
apt (7.3.0)
ark (6.0.3)
seven_zip (>= 3.1)
build-essential (8.2.1)
mingw (>= 1.1)
seven_zip (>= 0.0.0)
chef-sugar (3.3.0)
chef_client_updater (1.1.1)
compat_resource (>= 12.16.3)
compat_resource (12.19.0)
composer (2.6.1)
chocolatey (3.0.0)
composer (2.7.0)
apt (>= 0.0.0)
php (>= 0.0.0)
windows (>= 0.0.0)
dmg (4.1.1)
elasticsearch (4.2.0)
apt (>= 0.0.0)
elasticsearch (5.1.3)
ark (>= 0.0.0)
chef-sugar (>= 0.0.0)
yum (>= 0.0.0)
firewall (2.6.5)
chef-sugar (>= 0.0.0)
git (6.0.0)
build-essential (>= 0.0.0)
dmg (>= 0.0.0)
fail2ban (7.0.4)
yum-epel (>= 0.0.0)
homebrew (3.0.0)
firewall (6.2.16)
git (10.0.0)
golang (5.3.1)
ark (>= 6.0)
homebrew (5.4.1)
hostname (0.4.2)
hostsfile (>= 0.0.0)
hostsfile (2.4.5)
ipfs (0.4.1)
hostsfile (3.0.1)
ipfs (0.7.0)
ark (>= 0.0.0)
java (4.3.0)
homebrew (>= 0.0.0)
windows (>= 0.0.0)
jemalloc (0.1.7)
build-essential (>= 0.0.0)
logrotate (2.2.0)
mariadb (0.3.1)
apt (>= 0.0.0)
yum (>= 0.0.0)
yum-epel (>= 0.0.0)
mediawiki (0.5.0)
apache2 (>= 0.0.0)
nginx (>= 0.0.0)
php (>= 0.0.0)
php-fpm (>= 0.0.0)
mingw (2.1.0)
mingw (2.1.7)
seven_zip (>= 0.0.0)
mysql (8.5.1)
mysql (8.7.4)
nginx (9.0.0)
build-essential (>= 5.0)
ohai (>= 4.1.0)
yum-epel (>= 0.0.0)
nodejs (5.0.0)
nodejs (7.3.3)
ark (>= 2.0.2)
build-essential (>= 0.0.0)
chocolatey (>= 3.0)
ntp (3.4.0)
ohai (5.2.5)
openssl (8.5.5)
php (6.1.1)
build-essential (>= 5.0)
php (8.0.1)
yum-epel (>= 0.0.0)
php-fpm (0.8.0)
poise (2.8.2)
poise-archive (1.5.0)
poise (~> 2.6)
poise-build-essential (1.0.0)
poise (~> 2.6)
poise-git (1.0.0)
poise (~> 2.6)
poise-languages (~> 2.1)
poise-javascript (1.2.1)
poise (~> 2.0)
poise-languages (~> 2.0)
poise-languages (2.1.2)
poise (~> 2.5)
poise-archive (~> 1.0)
poise-ruby (2.4.0)
poise (~> 2.0)
poise-languages (~> 2.0)
poise-ruby-build (1.1.0)
poise (~> 2.0)
poise-build-essential (~> 1.0)
poise-git (~> 1.0)
poise-ruby (~> 2.1)
poise-service (1.5.2)
poise (~> 2.0)
postfix (5.0.2)
postgresql (7.1.4)
redis (0.5.6)
apt (>= 0.0.0)
seven_zip (3.1.1)
windows (>= 0.0.0)
postfix (6.0.26)
redisio (6.4.1)
selinux (>= 0.0.0)
ruby_build (2.5.0)
homebrew (>= 0.0.0)
yum-epel (>= 0.0.0)
selinux (6.1.12)
seven_zip (4.2.2)
timezone_iii (1.0.4)
ulimit (1.0.0)
unbound (3.0.2)
users (5.3.1)
windows (6.0.0)
yum (5.1.0)
yum-epel (3.3.0)
windows (7.0.2)
yum (7.4.13)
yum-epel (4.2.3)
zerotier (1.0.7)
ohai (>= 0.0.0)

View File

@@ -1,8 +1,3 @@
source 'https://rubygems.org'
gem 'chef', '~> 14.11.21'
gem 'berkshelf', '~> 7.0'
gem 'knife-solo', '~> 0.7.0'
gem 'knife-solo_data_bag'
gem 'cookstyle'
gem 'test-kitchen'
gem 'knife-zero', '>= 2.4.2'

View File

@@ -1,241 +1,316 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
ast (2.3.0)
berkshelf (7.0.7)
chef (>= 13.6.52)
chef-config
cleanroom (~> 1.0)
concurrent-ruby (~> 1.0)
minitar (>= 0.6)
mixlib-archive (~> 0.4)
mixlib-config (>= 2.2.5)
mixlib-shellout (~> 2.0)
octokit (~> 4.0)
retryable (~> 2.0)
solve (~> 4.0)
thor (>= 0.20)
builder (3.2.3)
chef (14.11.21)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
aws-eventstream (1.2.0)
aws-partitions (1.551.0)
aws-sdk-core (3.125.6)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.53.0)
aws-sdk-core (~> 3, >= 3.125.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.111.3)
aws-sdk-core (~> 3, >= 3.125.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sdk-secretsmanager (1.56.0)
aws-sdk-core (~> 3, >= 3.125.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.4.0)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt_pbkdf (1.1.0)
builder (3.2.4)
chef (17.9.42)
addressable
bundler (>= 1.10)
chef-config (= 14.11.21)
chef-zero (>= 13.0)
diff-lcs (~> 1.2, >= 1.2.4)
aws-sdk-s3 (~> 1.91)
aws-sdk-secretsmanager (~> 1.46)
chef-config (= 17.9.42)
chef-utils (= 17.9.42)
chef-vault
chef-zero (>= 14.0.11)
corefoundation (~> 0.3.4)
diff-lcs (>= 1.2.4, < 1.4.0)
erubis (~> 2.7)
ffi (~> 1.9, >= 1.9.25)
ffi (>= 1.5.0)
ffi-libarchive (~> 1.0, >= 1.0.3)
ffi-yajl (~> 2.2)
highline (~> 1.6, >= 1.6.9)
iniparse (~> 1.4)
inspec-core (~> 4.23)
license-acceptance (>= 1.0.5, < 3)
mixlib-archive (>= 0.4, < 2.0)
mixlib-authentication (~> 2.1)
mixlib-cli (~> 1.7)
mixlib-log (~> 2.0, >= 2.0.3)
mixlib-shellout (~> 2.4)
net-sftp (~> 2.1, >= 2.1.2)
net-ssh (~> 4.2)
net-ssh-multi (~> 1.2, >= 1.2.1)
ohai (~> 14.0)
mixlib-authentication (>= 2.1, < 4)
mixlib-cli (>= 2.1.1, < 3.0)
mixlib-log (>= 2.0.3, < 4.0)
mixlib-shellout (>= 3.1.1, < 4.0)
net-sftp (>= 2.1.2, < 4.0)
ohai (~> 17.0)
plist (~> 3.2)
proxifier (~> 1.0)
rspec-core (~> 3.5)
rspec-expectations (~> 3.5)
rspec-mocks (~> 3.5)
rspec_junit_formatter (~> 0.2.0)
serverspec (~> 2.7)
specinfra (~> 2.10)
syslog-logger (~> 1.6)
uuidtools (~> 2.1.5)
chef-config (14.11.21)
train-core (~> 3.2, >= 3.2.28)
train-winrm (>= 0.2.5)
uuidtools (>= 2.1.5, < 3.0)
vault (~> 0.16)
chef-config (17.9.42)
addressable
chef-utils (= 17.9.42)
fuzzyurl
mixlib-config (>= 2.2.12, < 3.0)
mixlib-shellout (~> 2.0)
mixlib-config (>= 2.2.12, < 4.0)
mixlib-shellout (>= 2.0, < 4.0)
tomlrb (~> 1.2)
chef-zero (14.0.12)
chef-telemetry (1.1.1)
chef-config
concurrent-ruby (~> 1.0)
chef-utils (17.9.42)
concurrent-ruby
chef-vault (4.1.5)
chef-zero (15.0.11)
ffi-yajl (~> 2.2)
hashie (>= 2.0, < 4.0)
hashie (>= 2.0, < 5.0)
mixlib-log (>= 2.0, < 4.0)
rack (~> 2.0, >= 2.0.6)
uuidtools (~> 2.1)
cleanroom (1.0.0)
concurrent-ruby (1.1.4)
cookstyle (1.3.1)
rubocop (= 0.47.1)
webrick
coderay (1.1.3)
concurrent-ruby (1.1.9)
corefoundation (0.3.10)
ffi (>= 1.15.0)
diff-lcs (1.3)
erubi (1.10.0)
erubis (2.7.0)
faraday (0.15.4)
faraday (1.4.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.1)
multipart-post (>= 1.2, < 3)
ffi (1.10.0)
ffi-yajl (2.3.1)
libyajl2 (~> 1.2)
ruby2_keywords (>= 0.0.4)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday_middleware (1.2.0)
faraday (~> 1.0)
ffi (1.15.5)
ffi-libarchive (1.1.3)
ffi (~> 1.0)
ffi-yajl (2.4.0)
libyajl2 (>= 1.2)
fuzzyurl (0.9.0)
gssapi (1.2.0)
gssapi (1.3.1)
ffi (>= 1.0.1)
gyoku (1.3.1)
builder (>= 2.1.2)
hashie (3.6.0)
highline (1.7.10)
hashie (4.1.0)
highline (2.0.3)
httpclient (2.8.3)
iniparse (1.4.4)
iniparse (1.5.0)
inspec-core (4.52.9)
addressable (~> 2.4)
chef-telemetry (~> 1.0, >= 1.0.8)
faraday (>= 0.9.0, < 1.5)
faraday_middleware (~> 1.0)
hashie (>= 3.4, < 5.0)
license-acceptance (>= 0.2.13, < 3.0)
method_source (>= 0.8, < 2.0)
mixlib-log (~> 3.0)
multipart-post (~> 2.0)
parallel (~> 1.9)
parslet (>= 1.5, < 2.0)
pry (~> 0.13)
rspec (>= 3.9, < 3.11)
rspec-its (~> 1.2)
rubyzip (>= 1.2.2, < 3.0)
semverse (~> 3.0)
sslshake (~> 1.2)
thor (>= 0.20, < 2.0)
tomlrb (>= 1.2, < 2.1)
train-core (~> 3.0)
tty-prompt (~> 0.17)
tty-table (~> 0.10)
ipaddress (0.8.3)
knife-solo (0.7.0)
chef (>= 10.20)
erubis (~> 2.7.0)
net-ssh (>= 2.7)
knife-solo_data_bag (2.1.0)
libyajl2 (1.2.0)
jmespath (1.5.0)
json (2.6.1)
knife (17.9.26)
bcrypt_pbkdf (~> 1.1)
chef (>= 17)
chef-config (>= 17)
chef-utils (>= 17)
chef-vault
erubis (~> 2.7)
ffi (>= 1.15)
ffi-yajl (~> 2.2)
highline (>= 1.6.9, < 3)
license-acceptance (>= 1.0.5, < 3)
mixlib-archive (>= 0.4, < 2.0)
mixlib-cli (>= 2.1.1, < 3.0)
net-ssh (>= 5.1, < 7)
net-ssh-multi (~> 1.2, >= 1.2.1)
ohai (~> 17.0)
pastel
train-core (~> 3.2, >= 3.2.28)
train-winrm (>= 0.2.5)
tty-prompt (~> 0.21)
tty-screen (~> 0.6)
tty-table (~> 0.11)
knife-zero (2.4.2)
chef (>= 15.0)
knife (>= 17.0)
libyajl2 (2.1.0)
license-acceptance (2.1.13)
pastel (~> 0.7)
tomlrb (>= 1.2, < 3.0)
tty-box (~> 0.6)
tty-prompt (~> 0.20)
little-plugger (1.1.4)
logging (2.2.2)
logging (2.3.0)
little-plugger (~> 1.1)
multi_json (~> 1.10)
minitar (0.8)
mixlib-archive (0.4.20)
multi_json (~> 1.14)
method_source (1.0.0)
mixlib-archive (1.1.7)
mixlib-log
mixlib-authentication (2.1.1)
mixlib-cli (1.7.0)
mixlib-config (2.2.18)
mixlib-authentication (3.0.10)
mixlib-cli (2.1.8)
mixlib-config (3.0.9)
tomlrb
mixlib-install (3.11.5)
mixlib-shellout
mixlib-versioning
thor
mixlib-log (2.0.9)
mixlib-shellout (2.4.4)
mixlib-versioning (1.2.7)
molinillo (0.6.6)
multi_json (1.13.1)
multipart-post (2.0.0)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
net-ssh (4.2.0)
net-ssh-gateway (1.3.0)
net-ssh (>= 2.6.5)
mixlib-log (3.0.9)
mixlib-shellout (3.2.5)
chef-utils
multi_json (1.15.0)
multipart-post (2.1.1)
net-scp (3.0.0)
net-ssh (>= 2.6.5, < 7.0.0)
net-sftp (3.0.0)
net-ssh (>= 5.0.0, < 7.0.0)
net-ssh (6.1.0)
net-ssh-gateway (2.0.0)
net-ssh (>= 4.0.0)
net-ssh-multi (1.2.1)
net-ssh (>= 2.6.5)
net-ssh-gateway (>= 1.2.0)
net-telnet (0.1.1)
nori (2.6.0)
octokit (4.13.0)
sawyer (~> 0.8.0, >= 0.5.3)
ohai (14.8.11)
chef-config (>= 12.8, < 15)
ohai (17.9.0)
chef-config (>= 14.12, < 18)
chef-utils (>= 16.0, < 18)
ffi (~> 1.9)
ffi-yajl (~> 2.2)
ipaddress
mixlib-cli (>= 1.7.0)
mixlib-config (>= 2.0, < 4.0)
mixlib-log (>= 2.0.1, < 4.0)
mixlib-shellout (>= 2.0, < 4.0)
mixlib-shellout (~> 3.2, >= 3.2.5)
plist (~> 3.1)
systemu (~> 2.6.4)
train-core
wmi-lite (~> 1.0)
parser (2.4.0.0)
ast (~> 2.2)
plist (3.5.0)
powerpack (0.1.1)
parallel (1.21.0)
parslet (1.8.2)
pastel (0.8.0)
tty-color (~> 0.5)
plist (3.6.0)
proxifier (1.0.3)
public_suffix (3.0.3)
rack (2.0.6)
rainbow (2.2.2)
rake
rake (12.0.0)
retryable (2.0.4)
rspec (3.8.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-core (3.8.0)
rspec-support (~> 3.8.0)
rspec-expectations (3.8.2)
pry (0.14.1)
coderay (~> 1.1)
method_source (~> 1.0)
public_suffix (4.0.6)
rack (2.2.3)
rspec (3.10.0)
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
rspec-mocks (~> 3.10.0)
rspec-core (3.10.2)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-its (1.2.0)
rspec-support (~> 3.10.0)
rspec-its (1.3.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.8.0)
rspec-mocks (3.10.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.8.0)
rspec-support (3.8.0)
rspec_junit_formatter (0.2.3)
builder (< 4)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (0.47.1)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.8.1)
rubyntlm (0.6.2)
rubyzip (1.2.2)
sawyer (0.8.1)
addressable (>= 2.3.5, < 2.6)
faraday (~> 0.8, < 1.0)
rspec-support (~> 3.10.0)
rspec-support (3.10.3)
ruby2_keywords (0.0.5)
rubyntlm (0.6.3)
rubyzip (2.3.2)
semverse (3.0.0)
serverspec (2.41.3)
multi_json
rspec (~> 3.0)
rspec-its
specinfra (~> 2.72)
sfl (2.3)
solve (4.0.2)
molinillo (~> 0.6)
semverse (>= 1.1, < 4.0)
specinfra (2.77.0)
net-scp
net-ssh (>= 2.7)
net-telnet (= 0.1.1)
sfl
sslshake (1.3.1)
strings (0.2.1)
strings-ansi (~> 0.2)
unicode-display_width (>= 1.5, < 3.0)
unicode_utils (~> 1.4)
strings-ansi (0.2.0)
syslog-logger (1.6.8)
systemu (2.6.5)
test-kitchen (1.24.0)
mixlib-install (~> 3.6)
mixlib-shellout (>= 1.2, < 3.0)
net-scp (~> 1.1)
net-ssh (>= 2.9, < 5.0)
net-ssh-gateway (~> 1.2)
thor (~> 0.19)
winrm (~> 2.0)
winrm-elevated (~> 1.0)
winrm-fs (~> 1.1)
thor (0.20.3)
tomlrb (1.2.8)
unicode-display_width (1.2.1)
uuidtools (2.1.5)
winrm (2.3.1)
thor (1.2.1)
tomlrb (1.3.0)
train-core (3.8.7)
addressable (~> 2.5)
ffi (!= 1.13.0)
json (>= 1.8, < 3.0)
mixlib-shellout (>= 2.0, < 4.0)
net-scp (>= 1.2, < 4.0)
net-ssh (>= 2.9, < 7.0)
train-winrm (0.2.12)
winrm (>= 2.3.6, < 3.0)
winrm-elevated (~> 1.2.2)
winrm-fs (~> 1.0)
tty-box (0.7.0)
pastel (~> 0.8)
strings (~> 0.2.0)
tty-cursor (~> 0.7)
tty-color (0.6.0)
tty-cursor (0.7.1)
tty-prompt (0.23.1)
pastel (~> 0.8)
tty-reader (~> 0.8)
tty-reader (0.9.0)
tty-cursor (~> 0.7)
tty-screen (~> 0.8)
wisper (~> 2.0)
tty-screen (0.8.1)
tty-table (0.12.0)
pastel (~> 0.8)
strings (~> 0.2.0)
tty-screen (~> 0.8)
unicode-display_width (2.1.0)
unicode_utils (1.4.0)
uuidtools (2.2.0)
vault (0.16.0)
aws-sigv4
webrick (1.7.0)
winrm (2.3.6)
builder (>= 2.1.2)
erubis (~> 2.7)
erubi (~> 1.8)
gssapi (~> 1.2)
gyoku (~> 1.0)
httpclient (~> 2.2, >= 2.2.0.2)
logging (>= 1.6.1, < 3.0)
nori (~> 2.0)
rubyntlm (~> 0.6.0, >= 0.6.1)
winrm-elevated (1.1.1)
rubyntlm (~> 0.6.0, >= 0.6.3)
winrm-elevated (1.2.3)
erubi (~> 1.8)
winrm (~> 2.0)
winrm-fs (~> 1.0)
winrm-fs (1.3.2)
erubis (~> 2.7)
winrm-fs (1.3.5)
erubi (~> 1.8)
logging (>= 1.6.1, < 3.0)
rubyzip (~> 1.1)
rubyzip (~> 2.0)
winrm (~> 2.0)
wmi-lite (1.0.2)
wisper (2.0.1)
wmi-lite (1.0.5)
PLATFORMS
ruby
x86_64-darwin-18
x86_64-darwin-19
x86_64-linux
DEPENDENCIES
berkshelf (~> 7.0)
chef (~> 14.11.21)
cookstyle
knife-solo (~> 0.7.0)
knife-solo_data_bag
test-kitchen
knife-zero (>= 2.4.2)
BUNDLED WITH
1.17.3
2.2.15

View File

@@ -1,16 +1,56 @@
### Install dependencies
This repository contains all infrastructure automation code that we use to set
up and configure servers, virtual machines, and applications for Kosmos hosted
services.
Chef cookbooks are written in Ruby, and based on [Chef Infra
resources](https://docs.chef.io/resources/). Some cookbooks contain integration
test suites based on [Test Kitchen](https://docs.chef.io/workstation/kitchen/).
Note: Manual configuration of servers and applications is highly discouraged,
and can be overwritten or lost without notice!
## Setup
### Install Chef Workstation
* macOS, Windows, RHEL, Ubuntu: https://docs.chef.io/workstation/install_workstation/
* Arch Linux: https://aur.archlinux.org/packages/chef-workstation
#### rbenv
If you use rbenv to manage Ruby versions on your system, install the
[rbenv-chef-workstation](https://github.com/docwhat/rbenv-chef-workstation)
plugin.
### Install gem dependencies
Clone this repository, `cd` into it, and run:
bundle install
### Run Chef Solo
## Common tasks
knife solo cook dev.kosmos.org
### Bootstrap a new host server
### Bootstrap a new server
knife zero bootstrap root@server-name.kosmos.org --run-list "role[base],role[kvm_host]" --secret-file .chef/encrypted_data_bag_secret
knife solo prepare root@dev.kosmos.org
### Bootstrap a new VM
### Managing cookbooks
knife zero bootstrap ubuntu@zerotier-ip-address -x ubuntu --sudo --run-list "role[base],role[kvm_guest]" --secret-file .chef/encrypted_data_bag_secret
### Run Chef Zero on a host server
knife zero converge -p2222 name:server-name.kosmos.org
### Run Chef Zero on a VM
knife zero converge -a knife_zero.host name:vm-name-23
### Update Chef Client on a server:
knife zero converge name:dev.kosmos.org --client-version 15.3.14
## Managing cookbooks
Cookbooks are managed via Berkshelf. Run `berks --help` for command help.
@@ -20,4 +60,15 @@ Install cookbooks listed in Berksfile:
Vendor installed cookbooks to the `cookbooks/` dir:
berks vendor cookbooks/
berks vendor cookbooks/ --delete
## "Expired" TLS certificates
If you encounter expired TLS certificates during a Chef run (e.g. for remote
files), the issue is likely that the certificate has been issued by Let's
Encrypt and Chef is still using its own, outdated CA cert store (see
[here](https://github.com/chef/chef/issues/12126#issuecomment-932067530) for
example).
As a hotfix, you can manually remove the "DST Root CA X3" cert from
`/opt/chef/embedded/ssl/cert.pem` on the machine you're trying to converge.

170
Vagrantfile vendored
View File

@@ -2,109 +2,91 @@
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
# configures the configuration version.
#
# Documentation for all configuration options can be found here:
# https://www.vagrantup.com/docs/vagrantfile
Vagrant.configure(2) do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = "bento/ubuntu-18.04"
config.vm.provider :virtualbox do |vb|
# Customize the amount of memory on the VM:
vb.memory = "1024"
vb.cpus = 2
end
config.vm.provider :docker do |d, override|
d.image = "nishidayuya/docker-vagrant-ubuntu:xenial"
d.has_ssh = true
override.vm.box = nil
override.ssh.port = 22
end
if Vagrant.has_plugin?("vagrant-berkshelf")
config.berkshelf.enabled = true
else
puts "Install vagrant-berkshelf:\n vagrant plugin install vagrant-berkshelf"
exit 1
end
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
# such as FTP and Heroku are also available. See the documentation at
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
# config.push.define "atlas" do |push|
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# config.vm.provider :docker do |d, override|
# d.image = "nishidayuya/docker-vagrant-ubuntu:xenial"
# d.has_ssh = true
# override.vm.box = nil
# override.ssh.port = 22
# end
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# sudo apt-get update
# sudo apt-get install -y apache2
# SHELL
config.vm.define "ldap" do |ldap|
ldap.vm.box = "bento/ubuntu-18.04"
ldap.vm.network "forwarded_port", guest: 389, host: 389
ldap.vm.network "private_network", ip: "192.168.56.5"
config.vm.provision :chef_zero do |chef|
chef.version = '14.11.21'
chef.cookbooks_path = ['site-cookbooks']
chef.data_bags_path = 'data_bags'
chef.roles_path = 'roles'
chef.node_name = "vagrant-node"
chef.nodes_path = 'nodes'
chef.environments_path = 'environments'
chef.encrypted_data_bag_secret_key_path = '.chef/encrypted_data_bag_secret'
chef.environment = 'development'
chef.add_recipe 'kosmos-base'
chef.add_recipe 'kosmos-wordpress'
# chef.add_recipe 'sockethub'
# chef.add_recipe 'kosmos-mastodon'
# chef.add_recipe 'kosmos-mastodon::nginx'
# chef.add_recipe '5apps-hubot::xmpp_botka'
# chef.add_recipe 'kosmos-hubot'
ldap.vm.provision :chef_zero do |chef|
chef.version = "18.2.7"
chef.node_name = "vagrant-node-ldap"
chef.arguments = "--chef-license accept"
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
chef.data_bags_path = "data_bags"
chef.roles_path = "roles"
chef.nodes_path = "nodes"
chef.environments_path = "environments"
chef.encrypted_data_bag_secret_key_path = ".chef/encrypted_data_bag_secret"
chef.environment = "development"
chef.add_recipe "kosmos-base"
chef.add_recipe "kosmos-dirsrv"
end
end
config.vm.define "bitcoin" do |bitcoin|
bitcoin.vm.box = "generic/ubuntu2004"
bitcoin.vm.network "forwarded_port", guest: 4201, host: 4201
bitcoin.vm.network "private_network", ip: "192.168.56.6"
# bitcoin.vm.synced_folder "../kredits/yap/", "/opt/yap"
bitcoin.vm.provision :chef_zero do |chef|
chef.version = "18.2.7"
chef.node_name = "vagrant-node-bitcoin"
chef.arguments = "--chef-license accept"
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
chef.data_bags_path = "data_bags"
chef.roles_path = "roles"
chef.nodes_path = "nodes"
chef.environments_path = "environments"
chef.encrypted_data_bag_secret_key_path = ".chef/encrypted_data_bag_secret"
chef.environment = "development"
chef.add_recipe "kosmos-base"
chef.add_recipe "kosmos-bitcoin::source"
# chef.add_recipe "kosmos-bitcoin::foo"
end
end
config.vm.define "openresty" do |openresty|
openresty.vm.box = "bento/ubuntu-20.04"
openresty.vm.network "forwarded_port", guest: 6379, host: 6379
openresty.vm.network "private_network", ip: "192.168.56.7"
openresty.vm.provision :chef_zero do |chef|
chef.version = "18.2.7"
chef.node_name = "vagrant-openresty"
chef.arguments = "--chef-license accept"
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
chef.data_bags_path = "data_bags"
chef.roles_path = "roles"
chef.nodes_path = "nodes"
chef.environments_path = "environments"
chef.encrypted_data_bag_secret_key_path = ".chef/encrypted_data_bag_secret"
chef.environment = "development"
chef.add_recipe "kosmos-base"
chef.add_role "openresty"
chef.add_role "openresty_proxy"
end
end
end

4
clients/akkounts-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "akkounts-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0LKcqydrG3zgtmThEg+q\nOcw8QvIB2usMkF4kNMFeqhhdr2q/AtRcq4RJ0u0MiZbkHduGWfG9QZpjmbFZcEke\nURJbddqSDPHFAtrK2+BpcMqNN/mSp59f4MJf6wdLnBoeZCF5pCCXibyj+/754Ly+\nEJNiB1sf1Lu82YW2YM7iLhOLk1QQD2DTfBGbj9swdPrgKK+1npQ4A7O8sOB5gDjb\n9QVLCvCEoYFi+9is0vw/YryEr6tfnNw+CroP2uDfyVfWznF8oPUuttAcHgqDA3CV\n7lCRk9yVt1FKwuq2lFcsMqZ7wO4EoxpzCz/XTnpFPFvgeVinyXjSPsQCBAdwJe5T\nWQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/bitcoin-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "bitcoin-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNy0NZUQo93anCe3YkGI\nGTzHnH1SUqc7315ShEEgp9GC9ghEaFe9YX6fdYma4KLfehi1LNoYhibpaVvF6qMB\n5p2pCk4eM9EjRYve3byqt0ZJZzLEcR4zfoiqJHLMBfB1tDiGj3BbahY6LJ0WH/q2\nTek61LOp2nB/9HYSIRlYz8EJtt2YyjV57oqQD5rnEDCJyBf34VI81SZFBeSHCeHQ\nUDALdnkro840FHfFKMUTdUmtpq/bhBA13EkFqVObnc0xZQP3eW6pRNeZ5oUpBLK3\nbAXahd8YEW6c6XerK3JqROs/l2ZRXmfmOMB5RjzmTEuCDsZFuCnJDQEY1nWCyUmu\nhQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/discourse-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "discourse-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwinJNGMUzUdrZwx/ZCkU\nxZRnuWqZHXHdZtkEG6beMY1sB/PpGknLgcfTjhh4FR/5hIXqBcVdUj3DZiTmhd8o\n0QpEkJPNKd08PN12CyShPwCcIA1KTqsCsNys+bp6Wff84JClAe/Oza6DonoRmhqO\ncFxSQcscuv8a6Gc/1X/aySmS01hwL+r9p0VZBEPNKEObgJXHsGIIbajlxgq037X/\n2/IsIk2etXTUSWPJLxNKSXzxC3l4Izw4NfvUgipByPTeJQ2YAVxbvrDEqquBGk5S\nll/mlF+fKX0QvUhm7sdLiSy++rHc8R1ny+4LnR1gAOscYMuLbDbpJnW0Rc0GEJOL\nVwIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
{
"name": "draco.kosmos.org",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqJiREO7WJyKWzOltXREs\n6bCMBzHTeyBSLxK/50xPvk43A8e+8qW1V52oO/uQkHh8YJ8BCDdSsWTNTudTuMhm\nEFLYP7n+ESYyz7nBgcwLX19lSo3dGnyuQBwlno6W/F1uEdTxfY6MtxJdiPZQDIt0\noijEwOF4ZhA5A+kqx6fpp+rX48r9wdidjdhrJimQixL0SsJFkoStc17BxrnqPpv9\n/sd4xYKgK9hEmEovhghBN3ULsxDOj63cGmM4uWLjbO4ZpL6g1lZRJR5kmcziL9KH\n23M7ShaJu90PnPiFSCUFgNN24zA7aKTkKulNs4g2OYovWVG/z8WglGqHNY83dBP0\nLwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/drone-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "drone-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0DLEt7jfKPH7X7pBknG3\nWoB6Q6Vffl6Q0GRxQiMJ1uRC79dulKH097CYfLzIXFZD9gRRP4K78vW5BA2spXVV\nn3qrak9JT6BGgdFrkBEdMNGZyz814aMiyhPZrQUrmIzyH8R04xZgv7UH86qdNQ5p\nPeIXS7gU7/0PmwRgEBiM1KLq+Kba6pYdGefKqxx5D59xweH+yE+rbd5ac9xn2GP7\nyOiZoG2sMuksq7d3O4SeTS2lBAmG5IeiP2iWvHWpZD48PTr78ItkTgIbaqZU2PXV\ng+2OcJPTel5xISooe5FvW8gdpC9SYoBPvgJuJ6czc1+LdUSK7pE7577eAJNDlh+H\nRwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/ejabberd-4.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "ejabberd-4",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6FuI13W2sft83OIWe59/\nYTfpTfKcYTCq5zAQEu87OYHHQeBAYo0W/g/qICh3qw0ie2QMPyggAezoeR5VQdLt\nkJq1X9AHqyX59YThzj7dLCCEKq+mAdriuKzNGu8eml4DRM3m+xw7jFzcwwrD8ECZ\nY+Kn7bcOtozx0mXpEm+cO2cOKmRQn0VJwAQSe6eW301iGmpR9et4hDqMjhiUiwaU\nWAqpsmP/JQMLAX2gLzwilD63VCQlcQCDq/D1m/N6bWb1L47zNAzwOCSYV92bGNDe\nRe+4gCVVLpfGWKbkjQFDraCmME7+O50WpbfowylF8gOzgl3AvnpC/LOSzT8VtMPr\nZQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/ejabberd-8.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "ejabberd-8",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2r+emfhx7bl7MxEeIDGY\nKnj3xEyFvVgXL7GwOsbKszFVgZ17yuPwa6vuiJsZsbcFC/nXgGNH2WF5FEv7XhOi\nwE8KMeNrR4xQ9BEANRlRgUTfrkhZG1NCy7PpVBb7L2r36STBuFSdQJmruJAfvTHm\na4hhmfaSIJ0Wa+Q24gL1GNwkSRdOhXRYxB4OvNIJzzuC3XqgugQVG5xzZh0kULQs\nkZVvkL5dM0FEZzBn8aK2sohTFDivvYJy7PAogC9Z5M1nPatZBowruUZvCym3Wh1J\nRtBwsS9SsTcsUqaT9FpEa7vYUney1/R8G2FAFufTyztjgBQzh78GhU+dek+ycIf1\nVQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/email-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "email-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxDRdvMYKRjejoFsOxS6s\n4gj0Gsaxk/j25A5VPHBcEhr+NOh8W/6NnTTHuFMaorEIl/2kscgrcwriDN7xIFmO\nz/C1+spDLPMGSWd+422KSS3fjVfByLlMwxh171RDZBlZVze7H7CIV/rxCG7Ri85y\nPvyp2rT4ioyVGyYK3e8CiXwQckpFC1ex9VRk/GR8zbCYUIw+qbTFRcl/mQuxKqWK\n22vrgAR+6OL8lcyhssmKiQ1r3GtxwJusgffw4/5S8sRR1z8OB4wiwgOWR1E36EbF\nhTBjFzPiKVjVjP/TQpUoYdnBhuD223M8nPWJl1HMVQPMjL6R2BBOF+iK0Wx9SiFD\nJwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwuZbclnx/1Oas1+q5vUz\nsvCpTwKBrb3dah2YoZfZg0K15+MZshSyCZxo5T+SGp2OwhV65UptMJZbeyhVtzEp\ncN62G7exf65rNesXOL82PNQC6iInxNvyOgzdTOo7tdQ2ln/3QRpZOtUOB9PEkK17\nNmHfVIWKEc9YajRff5zE1LzSWulTNJ3D4GAIhsli//Rv45MhjyYoQKf1AXtqI72A\n2FE2YWXOjjSHJIPRfcUrmBOmEt/gkWySxGAs8Dg112vOC1ftk0KiQFWKVydMicIj\nyySQH1/neQFSq2HLNajDc9S2l7cjhPEjov7taS9LkXfPtnfN8ajEEP0S2MgZnf4N\ngwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-4.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-4",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8it7QtT6zDiJJqlyHKfQ\nLqwu6bLblD15WWxlUSiOdhz3njWDv1BIDCAdkCR3HAXgxvk8sMj9QkvWS7u1+bc4\nxvHrY4Tgfg+Tk1h3gGa7ukll8s1WLIbGjj89vrK8PFr4iuDqRytYRMmcdMsNzPkS\nKcsOjFYWGV7KM/OwoQGVIOUPB+WtkrFAvNkXtIU6Wd5orzFMjt/9DPF2aO7QegL8\nG1mQmXcPGl9NSDUXptn/kzFKm/p4n7pjy6OypFT192ak7OA/s+CvQlaVE2tb/M3c\ne4J6A+PInV5AGKY6BxI3QRQLZIlqE0FXawFKr1iRU4JP4tVnICXZqy+SDXQU1zar\nTQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-5.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-5",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnJxLFOBbml94W/GAe7nm\ntZs1Ziy8IbqXySsm8bSwWhRMQ8UuseqQLG30R3Q5X5AoJbtNfd26l63qLtP2fFtL\n5km9dV+2FoIJWFetl8Wzr7CaLYAiNzTQSFHlV7+6DKmPMDcJ63GKrFR77vkSGOG6\nOWL1bJy5BOaClp/sKL/0WQ0+mRbTP6RCQ2eI+46clAg702SenBU6Nz9HDm+teKN7\nYlP1CvzXgfgfpDOsat7wGn5+oKcmKavZxcdn8bt5jRpg8v3JezaZIjMXt7XcNS4n\n0F4XO/efnZE5B5SN68j4BpD8N79zJw4HlRIGP+RaYv2qLtBeWgLHCCs9wXQXfj6b\nLwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-6.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-6",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwasYgWLM8ShvirFiKRE6\nGWqc3pMlvcrk4YnWAUW5Y/H26EnyexxWNfnwlEcq8thJ3M3hs7zkoF3Yk4uqX869\n4/niYqXwYgeE1K3gzLp4K1+w3yVupYAFVFStVEHJyuMlLJ+ulDEGvNdQDuIfw7+E\nr6DcDLa1o92Eo0wL1ihYyMilduH0LdFTixL+tEBXbbPWBa3RDJJCFsRF1+UC6hAH\nzmaWL661Gdzdabxjm/FlGUYkdbDqeInZq/1GMQqv+9/DcNRkWA9H7i4Ykrfpx4/2\nRZ8xtx/DbnJVB1zYoORygFMMAkTu5E+R8ropeI7Wi77Yq0S7laiRlYQYQml3x9ak\nzQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-7.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-7",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwoAigZUSwsfbBHx2PQ6W\n38Ght6eCvbpW1lsS58hTieRmRn+pgZVjvixhsBh57rUasCjaBywXk9BpNj2Foxck\nReHeoDI0RHsgniClyMrYj80y2NhoB6J8NB+cHkhdzIKplm6AH6M5xaAedtZU639a\n1nHMtpDlJhzgIYsiq1q06Aqd1w0Z9tf1RXQ1WvMDhTY4wlE5RZ2epBb6Usnlbjo2\nSqCIGIjRLmZxdsSWoiUUTlVPdUCzTNsN5G/ZVdRswhgseDmVJCIkK2Aji/XzhIrR\nh4RvUv9dhFemOVsFctJ/dQILXz5MZLUgakKf970M5R/Zggv//pqRSsYcB2UfaBpV\nLQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/garage-8.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "garage-8",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt4hXODzgHsIeWxXJm/F6\nSTFJ8JC89mWru7pOFzPWenOVMHgp4UpUB4rDTwQqojsWTDiq0x3ckUyOPw3Nj0jv\nxP4MMGS4SI0oRSJKzrYYss0hgUDTOBBd+Wxn0UiNEpN/PfQo9VZj9v/jak57cz7z\n5+rpl5v27fhgUIChjsHxdy+EamvCrYc+1JhyrLOlwlt8JxkZ8UPhoeZLWAbDgGLS\nEzHWSSVtBUPK+KYmVb2OK4lB56zPfek0U3gKN+04a1650jzOit8LzE6NaT180QDv\nX+gG6tk53vSXDmkBXsQ1mtB8aF+HaEG2Pra5HyihlweCPYdJT+e28wpq6+P5l3YR\ndQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/gitea-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "gitea-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7MKbO2vvX7TD1cFKjITh\ntvsf6hgAQRcu7F0kiekx15aC3VLnRgsB9A6SXySVrqvhq/vOSTXZsIC62IQi4Oks\nhhtAA/uvwcOmZ7JkMi0vJ3Ary94dTsg/L8i/0/k2V/D4FRKTV4414wSkpglFGLhl\nvbZ6P17LrqfyAzNJwIDzwd9d6cvt4a0qxvuxbTOHkBuY8tpyGdNzhg6fATadxbBa\nRASEVFb+xqxG3K+8zRmaCFyYqmSPS/8liVVbLPAeUlK6pDyQ5g4T37E5o+CpWfPF\nkBgYw/hHQe6zt1Z4wNJ6mb8YIN/l9kFF3EE99laYxp9Ua7ffrZkRgw12C5Yrn3N6\noQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/her.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "her",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsuj7OCWX2qz/WbsjMgpi\nI4CM13Pxrj+8Enrl4IorkK6O338rhdtfXmOJt2AuDuj6u12Xtnk0LN2n01hffXNu\nU0Hwy+szavnbjiqC8jw1nyCFwYgdy8lCj3WV4t/gRWFhiHZGkhBKaksAoo8jJqZv\nXi/4ZuRov01HJgT6CJBEfR5TUaRCHM4hz2Y60mmegmUNLTRUNIDy6rg5W8JplMlJ\ny0dJc6uEp8asKhPnEfMz1kXukjnsBLXZmxglqdAQeaZ1I78QvRV3rYh0Ge2ZPF8t\nv2c+mUMbH7e80lJPgp7rwqjKrjLfaYo/1ZqTqr3ArWw3253ttLp8KX1ltX69nIHq\nMwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/ldap-3.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "ldap-3",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzLndVZtKubbJf2izx6vN\ntU0gwZUhcCz4Dq+Ilu9D8tPVEWUqKp9RyPkSO8iIxdLXJ8ZjtG3oBVPFGka/fW1a\n/SSf4Yn6ArkNhP9dmDKzrOYOuoPF+h+Fa9Jecy2PtNzhGdBdynIK4ezJIdq5vPEG\nAsJf/Ad9EIU8D4Aj/nhNUwfUwsFTTE++LL9yCzRiDHg6pjNToM75V/+fFPk0UL1/\neLcaJzqi5WeXhfq7DbjMtqnt/+vUxO2YAk9MDb3U15hnH4xkxtDfRth1UGkpR/PK\naLn/RTS9sqk3oMZVzDSioXO0TGp00sWDmvpBvEBwlYgWnx1o8JQnkClvn2OSo6va\nzQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/ldap-4.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "ldap-4",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmzFyZh5/J2BsKRunghis\nwUGbv4j/ynAF7QY+CYoOwDBcbLHk6odn1JyUqCgfhCIX0mh8F/fDKyU9Aw6+HHZ/\nX0DTt/enLTaWc2vxRfyJLRXP7/ymHOr4u6HYEINMdVJp4yQ9XLcWpuRHfA+fHrZ7\n9fI8sCMSEawvVpEKytYdVnm3VCjfIVrfCAkY0lP0mNG908edX2ZuJ4GS1UwADUZX\nLZuMhbGX9JqIQYWCyiMDakD7P7PlEDf/JVkvkao4HQatkqJGmGDhvfIPodIo8JC0\n6FsYxWtvrLJBArYjnVBKRuxIlBqq/7Yx0gj09kGf84aSXvkMDgio7AO4xSp9GJTJ\n4wIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/lq-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "lq-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6mrJdvfx2pvuYIOCwDe4\nXJ4NJSEq+9oyqW/JWNDnUN/GAZLCfTOa+qu1nA8sOspWWpaikHpo2meYlzA1HCPh\nF4LX7C83dA9CXB8BDCddmkAxhPPXIeFM3AmaEwfv+dLYNuO6bWvOKcHjJdw7Mp4W\nrdg9MsIh28W9jf7KehvPWx3ZvrJm2vyiFGQNBDWGdkVq40P2lhvCISvWb+Ugpjos\nJzq/HZNFq6Fc72jWfwwGcDgwfc1/jmWJlz2J5v8xHwwhVtcWTg1AWqfcVQZ6OKtf\nwP6s/pAK4dAXqPz8OE17GPJ42r94AeWr39Cn5b8EzrVhKOeODlpihfzIaa/sfb44\n6wIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/lq-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "lq-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzyquIPPckL4Bybw4H0t6\nHexR7u97//eXBGpN+PJcp3PAUTJVWr1m7uDnpD9JAP370Cp05Tz0ydYXk/2NTpFf\nvRu20401VWTWbClIdN7n89edtER/XX90KrcKplV4bZcFN0UC2Il6SGH0uvUYzZRr\nPV2eXftDvu7Mhl1xlmeJ0S6bH95v1G2k6TrTLAOBs6gpqiCWyjrNB9AY3SpEv9Ya\nK8T0M10LAY0UwKccSp/eTZzCfbmzvNIyyRlJbzEAsHmoDPyR2/4LB1ndtbkTszmk\noHvpBJu3noKXo0SW/WqhSvwxBVV0bZUYjgH3Bx8nudNkHgL6ZH6FVQ6ED+70jWiq\ngwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/mastodon-3.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "mastodon-3",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArBsrwKV1RtDfw/5y/L2N\n/x7UL2q6G4JypcD5Q8/aDQOTaGuTR+4RCup+Zcn2wzpdGnX6IzS7cy4/LqMoR2pB\nq8K1FZOXvcCtwsBqsyGWiFdy5aLXy2CkHhTRbkwOLPyb1rBy+qPCBdr055BPZUWm\nTfJaxTmph+Z1J+INz0YndYxz3iKET2V99OP27D7tUdZ7yPgMDbDJWqVxPdYrmAUr\n3QLpmYWsYlmPKhpTAXlvbvzE5vgh5EC8RGfhfYRpacc6QdwbahtxMQAV9+1S2+Vj\nntHfB6PSnYwewUHs9MMn8e33KmNlOZdMAVlyJymBZ4pNceC44vxvZYElp077A6tN\nFwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/nodejs-4.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "nodejs-4",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwIlB6swdT/Z7tRx/Sm24\n/ro3Jotpsi0DiNS6i7BA1fH0OdbX5CRel62jGC1Nja9QCY8aBd00E8u7KPCuK3iY\n5aA7v91sxWZ7nbXdSwBawaNsTZAe4rMaEkA74INpq7TOvLzHcmDcgRbo+MC2Nw3T\nl0mCOaWkUWFaukTLN8zBldzEbYxztKsaL+b2TbevnSCaPkdD9WmDbmjrUiWTlnpE\nDidMjZ9rp+PcODyjlvwka1yJCoPFoN/+ZL4yXxo49tJ2kbrxSh4tdDZqiZwnajRb\n4SAuRCaHTASDSmZ1Dj0ET/miXuvy6Jgvt06eSMPDKvb+84Dk8zLf4CW6DaE2TfX4\nzwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/postgres-5.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "postgres-5",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXZv6Gk+dhIVkTXH9hJ1\nt2oqsMSLmTUj71uPN+4j0rxCQriXa095Nle9ifJAxfwzQyKEpWKyZd1Hpyye6bL1\nwgWATZ/u5ZS4B63NhRFyDxgPlHWBBohaZBN42zeq0Y0PNGHPVGDH/zFDrpP22Q9Q\nYScsyXTauE/Yf8a/rKR5jdnoVsVVMxk0LHxka8FcM2cqVsDAcK7GqIG6epqNFY8P\nUb1P+mVxRwnkzvf1VtG212ezV/yw9uiQcUkHS+JwZMAgbC34k9iDyRmk6l4sj/Zk\nNem20ImMqdDzsrX8zEe21K+KNvpejPH9fxaNCwR8W+woBMMzqD3I7P9PbLjc70Rx\nRwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/postgres-6.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "postgres-6",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtVzM0fwlimmq11jTGTko\nK87LRYSar61tNF3qVWp9axNSMa6BSxVark9eYOqY4eLh/5vJVDqXDFq30/IUWg40\nH8hHWaOEvQrP2dm/XFw1RmunfbfN9gN07TuhaT3xFD5t+jFBuOSoJ4cPnFIABuVt\nFLrjgtYYjtZe5hGE9ZPmS7o2ATM5EU9mxeQ+TkgDbr8StvSPGdZ1ykhagf1pegGU\nRIfZ+4ZKzyDUAq+fYNhIbmlm5h2gP+XdtakPy43j7n0iN1vwDgBqJ2pdaVs/GcFf\nvaztoltguoknI2NPSez1N217asTTLuth0nHxVXiKCVXnqwDjxgWmuP6X2B7VYjyc\nxQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/redis-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "redis-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7J/jWx6xCoz3ECDA9gr6\nAVVjd3MhE9LmE/bFLdQLariJjyNxJ1qLp/SN1P/H/aBS9YP6HEGkkTekRkWrHkDr\n5pliR9lmdS7c1W2pRKOaBm8r3pl98fBcFtxrkEhlULX5XMUCeGqANjDYeswaKYGb\nYF/OPsL2ZyIzUiejIVoPR9kuCWA8DNa1whgO84r2gMkBSzGu8hAhBoAlXQAoZWWj\nem3sNNwA9X+0WVGuG0X+RxdzNnZ6o28f5UZuDTCuMjJubKM4qg5uuwFtSXHoW8nU\nGl6Y7Owmqsdkh8ZCM8gA4lPu5Kh6XatqQ6Gzq0PXFyCykuXzJRwW4ZVCKC+UyhA0\nQQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/redis-2.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "redis-2",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzjHtl5iChC5+uxr9YrQu\n3x4zihlVZGk+fYlpbHg2hV880NslRb1MJYFTaKcJrYmgVAnMaKZjfA4fGsWQ3tDl\n/2JcA95U0Soj9BMwr1EUfvna587xS5DnYNCd+OkVtNwqujdoU8Use13UcpwnaN4V\n/9bslQdw2qDeVmeqx7bfTvsATIedWt9eseMR/qnsMd9Rkz/Q3xJ9NgIdQL6cC7uf\nN6H/B+Y+qV5Kv84nwrkTGPyzNOt21mfzeYOiAMGUTUoS+l38hA4ehfVxb8dWTmNa\n8QENbx6DKP5xUEyCiluzFp5jiGJu9xSDngndLVsQ7de5+KvxTjfipczmrWSjPuYB\nXQIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
{
"name": "rs-discourse-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApJquhCuRRN/O3rh2QShw\nYxGkEIoBImpVv8uF+VmdPLGQ3fYCO20OSr3y+yk1zGN1aQTEgD7LeCd+U2vBUPAh\nwr2uNkZotIsemkWZIMAPLb9d/2uv/GxBqku0L8JRAxGleHVO5eKsi6w1XdwO00dw\nwgEJa+mju86Vz6hzRzW+KzkdpkcfowH2+BVUV+zuzaR9/mPUiuQXZwSnR+Li4S6j\nR4x/AkRsN/43gzgiBwZz1UdAy6r6ZbUBPm4lZT/QKbURJ+x15swbFHKvR34GvdbT\n2mI15VFvLxr+h4bH5CCswcV4eThzISHGbiN3LZQVpneoWP8BjerFVqx0NfbKDu9t\nsQIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
{
"name": "rsk-mainnet-3",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwdrYfy0Spmt8VETCdUgW\nHbxV3uYA3kn2swvOdIjIR29gNO+t6wWv6FHnV/pfefIweIPaNlr9VMoUejUKX809\ngzdsiVWh1T6s4Yzbbt+O8mF3my5RXiSvizda8c6U65vofBSL2WVzE1AW9v7lXRHX\nJ4auKrpgKWkNLU52QLIP9/X5YLUHQtpTnplO31eb+jSD185aN1qoIxugunxnWSgm\n2NgUPlVbNCFrhv0PVv4Ts10eX6smRX3LKyNBtRRXM3GIrQHlAYRohIpy3lt8tKm4\nE/v9qpXQHvqEmX9FH1/Sonea849cWX3LuxUYLT2XFpaNwUxJK56Ef0HsgZESaxL+\n3QIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
{
"name": "rsk-testnet-4",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1NgmlPomxGRtu5oyro+m\ndQwBXwrhEuE73aLrUsqGOVSezph6LnETiEMFUIe1weoG+xdcykcUUMt7o1+nKs+E\nl8dxMIgbXAxdpI4n8gOpii70Sh30BDbh8+qZHsKBq32UmkCpz2ViVe/Vb3ViqB3e\n0GIkknPle5G4IC612O8EUkCenwcD1jSXYyug5zWI2T/TwnTuw4JdxfhkMgBM7Y2n\nR1YY6GwAMkK97wE/yBM74+Tiv/6lDy/JDbYmUVcQ55C937oodSWLAEM24EcOOtMA\nKfGumnthbdHzmHjONmLIegD3OJGYC2ulcB9qmaL/7cyIRhf6fEQrBolCH5881fxl\nxwIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
{
"name": "rsk-testnet-5",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx/UHlgcSeh9Do7CTCKXC\n/4/aO2OvT+ijDVmrMYCNtE4sMeuFqKPnV1zxJZmRm4VNhkSQDkdWYD+6XvuFYW60\nyjB/N6D5lLlyjG4HD6fTkfh0K6f7t5mOYV7o4T59OoA3cBZuSROjtWmJ8jEFJ+k9\nII2kcyhPQcFN01ckzvZKRSPbVRccMoc+AKTjB3ZUfs/ERtlVoDrK4jEHluXOxUJO\nBKCcLonjJuLlpRLh7QfKrKFcR4idn5Ir43R6aSUesI/ipKwKsXnR3Bu7vXp74VF3\nMJ3EkdSBG+qJzy51fbRfQiUPAr/vSoVQZwW7FkIhIqqLkMaYCymn7qKfTGujoNU7\nlwIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/sentry-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "sentry-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZFwP58ym+92YFa0adU3\nVGEJW13NkfaHChx+akB3IioSPKyJ9eOXEI8pOmU3QyqOUKSbqth78DY84hobXlqs\n4O0A7TV029uepcj5zPN047gDsV1TJ6Dakma5eH+Pe5kP/TigCEOF0Cgo+fqtEBEJ\nT/rhSs3zHD1EfBnZdyj/7YyeDv1XLWI8dXoizDUAoBSCDeJ5d7fG56zmFYLV05Ex\nMrjJuHitEmeJXTZABKstRbEd+3Rld+gfJZ/jI4djEW2j1EKAYMT1SxoXdjKlCrpQ\nGux2RSe+Gspt1hyp/flU5gHGO+qLDNSU9tZInClToyFMVBfoW8kWg28Gm2kGkIvr\npQIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/strfry-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "strfry-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzDV/RMGMXVDbvoA6PNh8\nQzhtHwYDCFcUSkbrwP6tzh6GpVunGEOdOdhj2V63T2tF1H+lujxQXh5pK7C0D6VZ\niO04ftJlo7/svyxUcwWr+znyN5sFdQRh3cBZiGSBYolizwoqgtPFlbNhmWAzV0Du\n9t8mhz70IK3B+UdwWyHtoK0NNsJGnQ9YzAvcjyDmEO/3sCjAhNnxVpmXftpcSmd9\nMonzFtIDBbRRll4AHZYRbmXCzx63+VmelvdnufnbY82liol0zzBwJaBD1wyNlG0y\ni96p3Kx03bLNlIaYVGbjZeJi+6oo2VDWJ4OloLLAYoHDSipeHT9qWfUdnE6ge4Lm\nywIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/uploads-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "uploads-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwJwWaz8TeGv3SFlKzLMx\nqN8GTL/c0N9ppBvv8xNSS/yF9Y40SbL418uxYzm9hIhOXgIygIgLT2EKIXX32t+R\neOJCdYycQFM3At2fhMkjhuUW0gmDRcYBcBJLC5hLh2EZ+A8V7k4qgrBpPLOjEv48\nhQY0vuAw2DGndWr4QLh5NLUmQiOrfuzcZSSNCBOTIgUZgNmRd9QcCHDq4WDH3poa\nosJo4a9JGEGUL1irOivvEdyJPwEd2f++nYAdWwj8pjCYgpRshQlLhxOlylMx7MxB\nQt2bgJC9sahfbfJCOqdlCU3DMJL0bRUiuxK77WeSsxWBJmrsiF3+Ljs2Ix+s7fnS\nywIDAQAB\n-----END PUBLIC KEY-----\n"
}

4
clients/wiki-1.json Normal file
View File

@@ -0,0 +1,4 @@
{
"name": "wiki-1",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3LprIvOWrnsywbvFGXtK\nsbd6xmILw/W/dSogLi0DQBXxPsOipH8pL4K6IeZmMeU3TXaW7faf/54KrMnh+4s1\nLEXpWSATvCaw1LzihzoXELpVLNvBLHZjAAO2TJ5ay1knTlA92hqN8qZOKzRtfHBX\n49dIgJgY95UIIJqSk4425llgQY/tntEWPjSduPIyST/PKkuW+RbUj4XyKm/qrASV\nXrbDK0dZAD0kJrOEjKspUyBQjyutFy+hkv0ldiGogcpCNPDaDsJqnw+Gp0gv6w7V\n92omCx8oJuXoqL1SIB6ayHV3q1pEWC9VbDRdcSYBjbRPFITEj6Er0m6OhJjlOyyR\nfwIDAQAB\n-----END PUBLIC KEY-----\n"
}

View File

@@ -0,0 +1,4 @@
~FC007
~FC015
~FC023
~FC024

View File

@@ -0,0 +1,491 @@
apache2 Cookbook Changelog
==========================
This file is used to list changes made in each version of the apache2 cookbook.
v3.3.0 (2017-04-11)
-------------------
- [GH-478] Added support for the amazon platform_family, outside of rhel
- [GH-474] Update Berksfile to allow fetching of newer
- [GH-473] Update copyright header format
- [GH-472] foodcritic: add sous-chefs rules
- add CODE_OF_CONDUCT
- [GH-471] FCGI paths should not be messed with on RHEL/CenOS 7. CentOS 7 (and recent Fedoras) have Apache 2.4, where FCGI socket path and shared memory path is managed adequately without further involvment neccessary (subdirectory is created under /var/run/httpd).
- [GH-470] Remove support for EOL Fedora < 18 / FreeBSD 9
- [GH-465] Testing updates
- [GH-469] Use the default cookbook style rules
- [GH-460] Serverspec to InSpec migration
- [GH-461] Update comment header format & other cookstyle fixes
- [GH-454] Test in Travis with Chef-DK and a Rakefile
- [GH-455] openSUSE Leap has it's own platform name
- [GH-279] leave stubs for rhel family `conf.d` files to avoid conflicts on package upgrade; no longer remove `conf.d`, just don't use it
- [GH-427] Add option to configure custom log level
- [GH-450] Ensure the lock_dir is owned by www-data for Apache 2.2 and 2.4 on Debian/Ubuntu
- Remove mod_auth_openid tests, as it is not part of the ASF release and plan to drop support for it and right now it is failing our tests
- [GH-440] Update default values in `apache.prefork` section of README
- [GH-443] fixed typo in copyright year
- Test on the latest chef with chef-zero
- Update supported platforms to Ubuntu 16.04, Debian 8.4, Centos 7.2; deprecating Ubuntu 12.04
- [GH-422] Fix uniq for nil:NilClass error introduced in 3.2.2
- [GH-423] allow for apache 2.4 usage on rhel < 7.0
- Cookbook is now part of the sous-chefs, but still maintained by the same folks
- mod_perl: No longer install libapache2-mpm-prefork
- mod_php: renamed mod_php5 to more generic mod_php; using php 7.0 where available
v3.2.2 (2016-04-13)
-------------------
- [GH-420] Allow auto-conversion if either of `apache.listen_ports` or `apache.listen_addresses` are set rather than '&&'. This ensures conversion occurs if only one of the two is set.
v3.2.1 (2016-04-11)
-------------------
- [GH-225] notify `restart` instead of `reload` service on `apache_conf`, `apache_config`
- Update to foodcritic 6
v3.2.0 (2016-03-26)
-------------------
- [GH-378] Deprecates `apache.listen_addresses` and `apache.listen_ports` infavor of [GH-409]
- [GH-409] `apache.listen` now accepts an array of `addr:port` strings
- [GH-358] FreeBSD: Update 10.1 support; Adds php 5.6 in collaboration with chef-cookbooks/php#119
- [GH-394] Have `apache.prefork.serverlimit` set ServerLimit directive on 2.4
- [GH-363] Escape '.' in regex for .htaccess/.htpasswd files
- [GH-365] Force log directory creation to be recursive
- [GH-368] Change the service creation to use the `apache.service_name` attribute throughout
- [GH-374] Make metadata.rb compatible with chef versions < 12.
- [GH-382] Fixed typo in node['platform_family'] for NameError in `mod_proxy_html`
- [GH-369] README: Added on Ubuntu `mod_fastcgi` requires `multiverse` apt repository to enabled.
- [GH-381] README: Add missing backtick
- [GH-384] README: Fix names for a2enconf and a2disconf
- [GH-393] README: mention availability of `mod_actions` support
- [GH-383] Debian: Add possibility to use other releases via `apache.default_release`
- [GH-377] Restart service when including `mod_headers` to allow healing of failed service because of missing directives.
- [GH-416] Change the default of `apache.mod_fastcgi.install_method` to 'package' all platforms, as `source` is no longer available.
- [GH-401] Move `mod_deflate` to `apache.default_modules` and no longer force installation on `debian` families.
- [GH-386] Do not install an extra mod_ssl package on SUSE Linux Enterprise
- [GH-335] Do not hardcoded reload/restart on more modern rhel platforms, allowing systemd on CentOS 7
- [GH-375] Install package `mod_ldap` on CentOS 7 (triggered by `apache.version` == 2.4)
- Update `apache.mod_ssl.cipher_suite` to latest from https://bettercrypto.org/
- README: Re-organize README to make it easier to find usage and remove old references.
- Added new standard and missing modules (Note: these may not be available natively on all operating systems)
* [mod_http2](http://httpd.apache.org/docs/2.4/mod/mod_http2.html) - Support for the HTTP/2 transport layer. (available since 2.4.17)
* [mod_authnz_fcgi](http://httpd.apache.org/docs/2.4/mod/mod_authnz_fcgi.html) - Enable FastCGI authorizer applications to authenticate and/or authorize clients. (available since 2.4.10)
* [mod_cern_meta](http://httpd.apache.org/docs/2.4/mod/mod_cern_meta.html) - CERN httpd metafile semantics
* [mod_ident](http://httpd.apache.org/docs/2.4/mod/mod_ident.html) - RFC 1413 ident lookups
* [mod_privileges](http://httpd.apache.org/docs/2.4/mod/mod_privileges.html) - Support for Solaris privileges and for running virtual hosts under different user IDs.
* [mod_socache_dc](http://httpd.apache.org/docs/2.4/mod/mod_socache_dc.html) - Distcache based shared object cache provider.
* [mod_version](http://httpd.apache.org/docs/2.4/mod/mod_version.html) - Version dependent configuration
* [mod_watchdog](http://httpd.apache.org/docs/2.4/mod/mod_watchdog.html) - Provides infrastructure for other modules to periodically run tasks
v3.1.0 (2015-05-25)
-------------------
- [GH-315] Fix `apache.default_site_name` .conf extension references to ensure deletion
- [GH-258] Use `apache.default_site_name` for consistency, minimize hardcoding of filenames
- [GH-259] Add `&& sleep 1` to end of apache restart command on rhel-based systems using apache2.2
- [GH-271] Remove FreeBSD 9.x, Red Hat and CentOS 5.x and OpenSUSE 11.x Series from tests and focus on newer releases
- [GH-276] Add psych gem to development gems
- [GH-293] Add `apache.mod_fastcgi.install_method` flag to allow install of mod_fastcgi from source (even on Debian family)
- [GH-285] Made `apache.devel_package` configurable based on platform, including support for Amazon Linux.
- [GH-316] Update Opscode references to Chef
- [GH-318] Apply default recipe in all definitions
- [GH-320] Add attribute to adjust `apache.default_site_port`
- [GH-321] Fix issue with default_site name in not_if guards
- [GH-322] Add `apache.mod_ssl.pkg_name` to allow custom mod_ssl package names. Set defaults for supported platforms including Amazon Linux
- [GH-323] Don't create the default site configuration file in `sites-available` unless it is enabled.
- [GH-324] Add `apache.mod_ssl.port` to set the default ssl port to something other than 443
- [GH-328] Add the ability to pass in a pipe as to log
- [GH-332] `SSLStrictSNIVHostCheck` is only written to config if enabled to avoid breaking apache prior to 2.2.12.
- [GH-334] Removed `iptables`, `god-monitor`, and `logrotate` recipes to avoid having external dependencies. These services should be managed in a wrapper cookbook going forward.
- [GH-339] Allow custom names for php so_filename (`node['apache']['mod_php5']['so_filename']`)
v3.0.1 (2015-02-11)
-------------------
- [GH-310] Ubuntu Apache 2.2 requires the lock_dir to be owned by www-data
- [GH-309] Clarify that apache.version is a string
- [GH-305] Restart service after MPM changes
- [GH-304] Don't install systemd module on Amazon Linux
- [GH-298] Add non-threaded MPM break notice for PHP users
- [GH-296] Create lock_dir automatically
v3.0.0 (2014-11-30)
-------------------
Major version update because of SSL Improvements and new platform MPM and Version defaults.
- [GH-286] Refactor MPM and Apache version defaults: default is now apache 2.4
- Note: set `apache.mpm` to `prefork` if you are using `mod_php` in Ubuntu >=14.04
- [GH-281] mod_ssl: Disable SSLv3 by default to protect against POODLE attack (CVE-2014-3566)
- [GH-280] mod_ssl: Major update with modern Cipher Suite, and best practices.
Updated to a more modern default `apache.mod_ssl.cipher_suite`.
Added the following additional mod_ssl attributes
* `apache.mod_ssl.honor_cipher_order`
* `apache.mod_ssl.insecure_renegotiation`
* `apache.mod_ssl.strict_sni_vhost_check`
* `apache.mod_ssl.session_cache_timeout`
* `apache.mod_ssl.compression`
* `apache.mod_ssl.use_stapling`
* `apache.mod_ssl.stapling_responder_timeout`
* `apache.mod_ssl.stapling_return_responder_errors`
* `apache.mod_ssl.stapling_cache`
* `apache.mod_ssl.pass_phrase_dialog`
* `apache.mod_ssl.mutex`
* `apache.mod_ssl.directives`
- [GH-278] Improved chefspec tests execution time
- [GH-277] Optimize files watching for Guard on Win32 platform
- [GH-270] Don't attempt start until after configuration is written
- [GH-268] Now uses chefspec 4.1
- [GH-267] Use Supermarket as the Berkshelf 3 source
- [GH-266] Rubocop based ruby style/syntax improvements
- [GH-264] mod_ssl: Add new attribute for to be ready to any custom directive
- [GH-249] Don't prepend Apache log path when requesting error logging to syslog
- [GH-247] Explicitly include mod_ldap before mod_authnz_ldap
- [GH-243] Expand mpm options for different distros/versions.
- [GH-239] Added `apache.mod_php5.install_method` attribute defaults to `package`. Install packages unless PHP is compiled from source.
- OneHealth Solutions was acquired by Viverae
- Remove ArchLinux pacman as a dependency and handle similar to apt, yum, zypper
- Adjust ubuntu apache 2.4 docroot_dir to match package (from /var/www to /var/www/html)
- [GH-238] Bump service config syntax check guard timeout to 10 seconds
- [GH-235] Removed `apache2::mpm_itk` which is not part of core and therefore should be its own cookbook
- [GH-234] /var/run/httpd/mod_fcgid directory now belongs to apache on Fedora/RHEL systems.
- [GH-233] Default web_app template should return 503 status code when maintenance file is present
- [GH-232] Cookbook now deletes a2* if they are symlinks before dropping template versions
- [GH-222] Set TraceEnable to off by default.
- [GH-213] Adjust chefspec to use the package resource on FreeBSD (previously freebsd_package)
- [GH-212] New attribute apache.locale which sets LANG. defaults to 'C'
- [GH-210] Clarify web_app definition usage around configuration templates.
- [GH-208] `apache_conf` now accepts `source` and `cookbook` parameters.
v2.0.0 (2014-08-06)
--------------------
Major version update because of major overhaul to support Apache 2.4 and a2enconf and a2endisconf changes.
- [GH-204] mod_auth_openid: Added `apache.mod_auth_openid.version` attribute
- FreeBSD support has been improved with the release of chef 11.14.2, portsnap is no longer used in favor of pkgng.
- [GH-157] - Apache will only be started when a configuration test passes, this allows the chef run to fix any broken configuration without failing the chef run.
- `apache.log_dir` directory is now 0755 on all platforms (including the debian platform family)
- [GH-166, GH-173] - `conf.d` is no longer used and replaced by `conf-available` and `conf-enabled` managed via the `a2enconf` and `a2disconf` scripts
- [GH-166, GH-173] - All configuration files need to end in `.conf` for them to be loaded
- [GH-173] - Perl is a required package on all platforms to support the a2* scripts as we now use the debian versions directly.
- [GH-193] - per MPM settings: `maxclients` is now `maxrequestworkers`
- [GH-194] - per MPM settings: `maxrequestsperchild` is now `maxconnectionsperchild`
- [GH-161] - Added support for CentOS 7
- [GH-180] - Improved SuSE support
- [GH-100] - Apache HTTP 2.4 support
This provides Apache 2.4 support in a backwards compatible way.
It adds the following new attributes:
- `apache.version` - This defaults to `2.2` and if changed to `2.4`; it triggers and assumes 2.4 packages will be installed.
- `apache.mpm` - In 2.4 mode, this specifies which mpm to install. Default is `prefork`.
- `apache.run_dir`
- `apache.lock_dir`
- `apache.libexec_dir` replaces `apache.libexecdir`
- `apache.prefork.maxrequestworkers` replaces `apache.prefork.maxclients`
- `apache.prefork.maxconnectionsperchild` replaces `apache.prefork.maxrequestsperchild`
- `apache.worker.threadlimit`
- `apache.worker.maxrequestworkers` replaces `apache.worker.maxclients`
- `apache.worker.maxconnectionsperchild `replaces `apache.worker.maxrequestsperchild`
- `apache.event.startservers`
- `apache.event.serverlimit`
- `apache.event.minsparethreads`
- `apache.event.maxsparethreads`
- `apache.event.threadlimit`
- `apache.event.threadsperchild`
- `apache.event.maxrequestworkers`
- `apache.event.maxconnectionsperchild`
- `apache.itk.startservers`
- `apache.itk.minspareservers`
- `apache.itk.maxspareservers`
- `apache.itk.maxrequestworkers`
- `apache.itk.maxconnectionsperchild`
Apache 2.4 Upgrade Notes:
Since the changes between apache 2.2 and apache 2.4 are pretty significant, we are unable to account for all changes needed for your upgrade. Please take a moment to familiarize yourself with the Apache Software Foundation provided upgrade documentation before attempting to use this cookbook with apache 2.4. See http://httpd.apache.org/docs/current/upgrading.html
- This cookbook does not automatically specify which version of apache to install. We are at the mercy of the `package` provider. It is important, however, to make sure that you configure the `apache.version` attribute to match. For your convenience, we try to set reasonable defaults based on different platforms in our test suite.
- `mod_proxy` - In 2.4 mode, `apache.proxy.order`, `apache.proxy.deny_from`, `apache.proxy.allow_from` are ignored, as the attributes can not be supported in a backwards compatible way. Please use `apache.proxy.require` instead.
v1.11.0 (2014-07-25)
--------------------
- [GH-152] - Checking if server_aliases is defined in example
- [GH-106] - Only turn rewrite on once in web_app.conf.erb
- [GH-156] - Correct mod_basic/digest recipe names in README
- Recipe iptables now includes the iptables::default recipe
- Upgrade test-kitchen to latest version
- Replaced minitest integration tests with serverspec tests
- Added chefspec tests
v1.10.4 (2014-04-23)
--------------------
- [COOK-4249] mod_proxy_http requires mod_proxy
v1.10.2 (2014-04-09)
--------------------
- [COOK-4490] - Fix minitest `apache_configured_ports` helper
- [COOK-4491] - Fix minitest: escape regex interpolation
- [COOK-4492] - Fix service[apache2] CHEF-3694 duplication
- [COOK-4493] - Fix template[ports.conf] CHEF-3694 duplication
As of 2014-04-04 and per [Community Cookbook Diversification](https://wiki.chef.io/display/chef/Community+Cookbook+Diversification) this cookbook now maintained by OneHealth Solutions. Please be patient as we get into the swing of things.
v1.10.0 (2014-03-28)
--------------------
- [COOK-3990] - Fix minitest failures on EL5
- [COOK-4416] - Support the ability to point to local apache configs
- [COOK-4469] - Use reload instead of restart on RHEL
v1.9.6 (2014-02-28)
-------------------
[COOK-4391] - uncommenting the PIDFILE line
v1.9.4 (2014-02-27)
-------------------
Bumping version for toolchain
v1.9.1 (2014-02-27)
-------------------
[COOK-4348] Allow arbitrary params in sysconfig
v1.9.0 (2014-02-21)
-------------------
### Improvement
- **[COOK-4076](https://tickets.chef.io/browse/COOK-4076)** - foodcritic: dependencies are not defined properly
- **[COOK-2572](https://tickets.chef.io/browse/COOK-2572)** - Add mod_pagespeed recipe to apache2
### Bug
- **[COOK-4043](https://tickets.chef.io/browse/COOK-4043)** - apache2 cookbook does not depend on 'iptables'
- **[COOK-3919](https://tickets.chef.io/browse/COOK-3919)** - Move the default pidfile for apache2 on Ubuntu 13.10 or greater
- **[COOK-3863](https://tickets.chef.io/browse/COOK-3863)** - Add recipe for mod_jk
- **[COOK-3804](https://tickets.chef.io/browse/COOK-3804)** - Fix incorrect datatype for apache/default_modules, use recipes option in metadata
- **[COOK-3800](https://tickets.chef.io/browse/COOK-3800)** - Cannot load modules that use non-standard module identifiers
- **[COOK-1689](https://tickets.chef.io/browse/COOK-1689)** - The perl package name should be configurable
v1.8.14
-------
Version bump for toolchain sanity
v1.8.12
-------
Fixing various style issues for travis
v1.8.10
-------
fixing metadata version error. locking to 3.0"
v1.8.8
------
Version bump for toolchain sanity
v1.8.6
------
Locking yum dependency to '< 3'
v1.8.4
------
### Bug
- **[COOK-3769](https://tickets.chef.io/browse/COOK-3769)** - Fix a critical bug where the `apache_module` could not enable modules
v1.8.2
------
### Bug
- **[COOK-3766](https://tickets.chef.io/browse/COOK-3766)** - Fix an issue where the `mod_ssl` recipe fails due to a missing attribute
v1.8.0
------
### Bug
- **[COOK-3680](https://tickets.chef.io/browse/COOK-3680)** - Update template paths
- **[COOK-3570](https://tickets.chef.io/browse/COOK-3570)** - Apache cookbook breaks on RHEL / CentOS 6
- **[COOK-2944](https://tickets.chef.io/browse/COOK-2944)** - Fix foodcritic failures
- **[COOK-2893](https://tickets.chef.io/browse/COOK-2893)** - Improve mod_auth_openid recipe with guards and idempotency
- **[COOK-2758](https://tickets.chef.io/browse/COOK-2758)** - Fix use of non-existent attribute
### New Feature
- **[COOK-3665](https://tickets.chef.io/browse/COOK-3665)** - Add recipe for mod_userdir
- **[COOK-3646](https://tickets.chef.io/browse/COOK-3646)** - Add recipe for mod_cloudflare
- **[COOK-3213](https://tickets.chef.io/browse/COOK-3213)** - Add recipe for mod_info
### Improvement
- **[COOK-3656](https://tickets.chef.io/browse/COOK-3656)** - Parameterize apache2 binary
- **[COOK-3562](https://tickets.chef.io/browse/COOK-3562)** - Allow mod_proxy settings to be configured as attributes
- **[COOK-3326](https://tickets.chef.io/browse/COOK-3326)** - Fix default_test to use ServerTokens attribute
- **[COOK-2635](https://tickets.chef.io/browse/COOK-2635)** - Add support for SVG mime types
- **[COOK-2598](https://tickets.chef.io/browse/COOK-2598)** - FastCGI Module only works on Debian-based platforms
- **[COOK-1984](https://tickets.chef.io/browse/COOK-1984)** - Add option to configure the address apache listens to
v1.7.0
------
### Improvement
- [COOK-3073]: make access.log location configurable per-platform
- [COOK-3074]: don't hardcode the error.log location in the default site config
- [COOK-3268]: don't hardcode DocumentRoot and cgi-bin locations in `default_site`
### New Feature
- [COOK-3184]: Add `mod_filter` recipe to Apache2-cookbook
- [COOK-3236]: Add `mod_action` recipe to Apache2-cookbook
v1.6.6
------
1.6.4 had a missed step in the automated release, long live 1.6.6.
### Bug
- [COOK-3018]: apache2_module does duplicate delayed restart of apache2 service when conf = true
- [COOK-3027]: Default site enable true, then false, does not disable default site
- [COOK-3109]: fix apache lib_dir arch attribute regexp
v1.6.2
------
- [COOK-2535] - `mod_auth_openid` requires libtool to run autogen.sh
- [COOK-2667] - Typo in usage documentation
- [COOK-2461] - `apache2::mod_auth_openid` fails on some ubuntu systems
- [COOK-2720] - Apache2 minitest helper function `ran_recipe` is not portable
v1.6.0
------
- [COOK-2372] - apache2 mpm_worker: add ServerLimit attribute (default to 16)
v1.5.0
------
The `mod_auth_openid` attributes are changed. The upstream maintainer deprecated the older release versions, and the source repository has releases available at specific SHA1SUM references. The new attribute, `node['apache']['mod_auth_openid']['ref']` is used to set this.
- [COOK-2198] - `apache::mod_auth_openid` compiles from source, but does not install make on debian/ubuntu
- [COOK-2224] - version conflict between cucumber and other gems
- [COOK-2248] - `apache2::mod_php5` uses `not_if` "which php" without ensuring package 'which' is installed
- [COOK-2269] - Set allow list for mod_status incase external monitor scripts need
- [COOK-2276] - cookbook apache2 documentation regarding listening ports doesn't match default attributes
- [COOK-2296] - `mod_auth_openid` doesn't have tags/releases for the version I need for features and fixes
- [COOK-2323] - Add Oracle linux support
v1.4.2
------
- [COOK-1721] - fix logrotate recipe
v1.4.0
------
- [COOK-1456] - iptables enhancements
- [COOK-1473] - apache2 does not disable default site when setting "`default_site_enabled`" back to false
- [COOK-1824] - the apache2 cookbook needs to specify which binary is used on rhel platform
- [COOK-1916] - Download location wrong for apache2 `mod_auth_openid` >= 0.7
- [COOK-1917] - Improve `mod_auth_openid` recipe to handle module upgrade more gracefully
- [COOK-2029] - apache2 restarts on every run on RHEL and friends, generate-module-list on every run.
- [COOK-2036] - apache2: Cookbook style
v1.3.2
------
- [COOK-1804] - fix `web_app` definition parameter so site can be disabled.
v1.3.0
------
- [COOK-1738] - Better configuration for `mod_include` and some overrides in `web_app` definition
- [COOK-1470] - Change SSL Ciphers to Mitigate BEAST attack
v1.2.0
------
- [COOK-692] - delete package conf.d files in module recipes, for EL
- [COOK-1693] - Foodcritic finding for unnecessary string interpolation
- [COOK-1757] - platform_family and better style / usage practices
v1.1.16
-------
re-releasing as .16 due to error on tag 1.1.14
- [COOK-1466] - add `mod_auth_cas` recipe
- [COOK-1609] - apache2 changes ports.conf twice per run when using apache2::mod_ssl
v1.1.12
-------
- [COOK-1436] - restore apache2 web_app definition
- [COOK-1356] - allow ExtendedStatus via attribute
- [COOK-1403] - add mod_fastcgi recipe
v1.1.10
-------
- [COOK-1315] - allow the default site to not be enabled
- [COOK-1328] - cookbook tests (minitest, cucumber)
v1.1.8
------
- Some platforms with minimal installations that don't have perl won't have a `node['languages']['perl']` attribute, so remove the conditional and rely on the power of idempotence in the package resource.
- [COOK-1214] - address foodcritic warnings
- [COOK-1180] - add `mod_logio` and fix `mod_proxy`
v1.1.6
------
FreeBSD users: This release requires the `freebsd` cookbook. See README.md.
- [COOK-1025] - freebsd support in mod_php5 recipe
v1.1.4
------
- [COOK-1100] - support amazon linux
v1.1.2
------
- [COOK-996] - apache2::mod_php5 can cause PHP and module API mismatches
- [COOK-1083] - return string for v_f_p and use correct value for default
v1.1.0
------
- [COOK-861] - Add `mod_perl` and apreq2
- [COOK-941] - fix `mod_auth_openid` on FreeBSD
- [COOK-1021] - add a commented-out LoadModule directive to keep apxs happy
- [COOK-1022] - consistency for icondir attribute
- [COOK-1023] - fix platform test for attributes
- [COOK-1024] - fix a2enmod script so it runs cleanly on !bash
- [COOK-1026] - fix `error_log` location on FreeBSD
v1.0.8
------
- COOK-548 - directory resource doesn't have backup parameter
v1.0.6
------
- COOK-915 - update to `mod_auth_openid` version 0.6, see __Recipes/mod_auth_openid__ below.
- COOK-548 - Add support for FreeBSD.
v1.0.4
------
- COOK-859 - don't hardcode module paths
v1.0.2
------
- Tickets resolved in this release: COOK-788, COOK-782, COOK-780
v1.0.0
------
- Red Hat family support is greatly improved, all recipes except `god_monitor` converge.
- Recipe `mod_auth_openid` now works on RHEL family distros
- Recipe `mod_php5` will now remove config from package on RHEL family so it doesn't conflict with the cookbook's.
- Added `php5.conf.erb` template for `mod_php5` recipe.
- Create the run state directory for `mod_fcgid` to prevent a startup error on RHEL version 6.
- New attribute `node['apache']['lib_dir']` to handle lib vs lib64 on RHEL family distributions.
- New attribute `node['apache']['group']`.
- Scientific Linux support added.
- Use a file resource instead of the generate-module-list executed perl script on RHEL family.
- "default" site can now be disabled.
- web_app now has an "enable" parameter.
- Support for dav_fs apache module.
- Tickets resolved in this release: COOK-754, COOK-753, COOK-665, COOK-624, COOK-579, COOK-519, COOK-518
- Fix node references in template for a2dissite
- Use proper user and group attributes on files and templates.
- Replace the anemic README.rdoc with this new and improved superpowered README.md :).

View File

@@ -0,0 +1,105 @@
# Contributing to the apache2 cookbook
We are glad you want to contribute to the apache2 cookbook! The first
step is the desire to improve the project.
## Quick-contribute
* Create an issue on the github [issue tracker](https://github.com/sous-chefs/apache2/issues)
* Link to your patch as a rebased git branch or pull request from the ticket
We regularly review contributions and will get back to you if we have
any suggestions or concerns.
### Branches and Commits
You should submit your patch as a git branch named after the change.
It is a best practice to have your commit message have a _summary
line_, followed by an empty line and then a brief description of
the commit. This also helps other contributors understand the
purpose of changes to the code.
Remember that not all users use Chef in the same way or on the same
operating systems as you, so it is helpful to be clear about your use
case and change so they can understand it even when it doesn't apply
to them.
### Github and Pull Requests
We don't require you to use Github, and we will even take patch diffs
attached to tickets on the issue tracker. However Github has a lot of
convenient features, such as being able to see a diff of changes
between a pull request and the main repository quickly without
downloading the branch.
## Functional and Unit Tests
This cookbook is set up to run tests under
[Test Kitchen](http://kitchen.ci/). It uses serverspec to run
integration tests after the node has been converged to verify that
the state of the node.
Test kitchen should run completely without exception using the default
[baseboxes provided by Chef](http://chef.github.io/bento/).
Because Test Kitchen creates VirtualBox machines and runs through
every configuration in the .kitchen.yml file, it may take some time for
these tests to complete.
If your changes are only for a specific recipe, run only its
configuration with Test Kitchen. If you are adding a new recipe, or
other functionality such as a LWRP or definition, please add
appropriate tests and ensure they run with Test Kitchen.
If any don't pass, investigate them before submitting your patch.
Any new feature should have unit tests included with the patch with
good code coverage to help protect it from future changes. Similarly,
patches that fix a bug or regression should have a _regression test_.
Simply put, this is a test that would fail without your patch but
passes with it. The goal is to ensure this bug doesn't regress in the
future. Consider a regular expression that doesn't match a certain
pattern that it should, so you provide a patch and a test to ensure
that the part of the code that uses this regular expression works as
expected. Later another contributor may modify this regular expression
in a way that breaks your use cases. The test you wrote will fail,
signalling to them to research your ticket and use case and accounting
for it.
If you need help writing tests, please ask on the Chef Developer's
mailing list, or https://community-slack.chef.io/
## Cookbook Contribution Do's and Don't's
Please do include tests for your contribution. If you need help, ask
on the
[chef-dev mailing list](http://lists.chef.io/sympa/info/chef-dev)
or the https://community-slack.chef.io/
Not all platforms that a cookbook supports may be supported by Test
Kitchen. Please provide evidence of testing your contribution if it
isn't trivial so we don't have to duplicate effort in testing. Chef
10.14+ "doc" formatted output is sufficient.
Please do indicate new platform (families) or platform versions in the
commit message, and update the relevant ticket. If a contribution adds
new platforms or platform versions, indicate such in the body of the commit message(s).
Please do use [foodcritic](http://www.foodcritic.io/) to
lint-check the cookbook. Except FC007, it should pass all correctness
rules. FC007 is okay as long as the dependent cookbooks are *required*
for the default behavior of the cookbook, such as to support an
uncommon platform, secondary recipe, etc.
Please do ensure that your changes do not break or modify behavior for
other platforms supported by the cookbook. For example if your changes
are for Debian, make sure that they do not break on CentOS.
Please do not modify the version number in the metadata.rb, the maintainer
will select the appropriate version based on the release cycle
information above.
Please do not update the CHANGELOG.md for a new version. Not all
changes to a cookbook may be merged and released in the same versions.
We will update the CHANGELOG.md when releasing a new version of
the cookbook.

693
cookbooks/apache2/README.md Normal file
View File

@@ -0,0 +1,693 @@
apache2 Cookbook
================
[![Cookbook Version](https://img.shields.io/cookbook/v/apache2.svg?style=flat)](https://supermarket.chef.io/cookbooks/apache2)
[![Build Status](https://travis-ci.org/sous-chefs/apache2.svg?branch=master)](https://travis-ci.org/sous-chefs/apache2)
[![Dependency Status](http://img.shields.io/gemnasium/sous-chefs/apache2.svg?style=flat)](https://gemnasium.com/sous-chefs/apache2)
[![License](https://img.shields.io/badge/license-Apache_2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
This cookbook provides a complete Debian/Ubuntu style Apache HTTPD
configuration. Non-Debian based distributions such as Red Hat/CentOS,
ArchLinux and others supported by this cookbook will have a
configuration that mimics Debian/Ubuntu style as it is easier to
manage with Chef.
Debian-style Apache configuration uses scripts to manage modules and
sites (vhosts). The scripts are:
* a2ensite
* a2dissite
* a2enmod
* a2dismod
* a2enconf
* a2disconf
This cookbook ships with templates of these scripts for non
Debian/Ubuntu platforms. The scripts are used in the __Definitions__
below.
## Cookbooks:
This cookbook has no direct external dependencies.
Depending on your OS configuration and security policy, you may need
additional recipes or cookbooks for this cookbook's recipes to
converge on the node. In particular, the following Operating System
settings may affect the behavior of this cookbook:
* apt cache outdated
* SELinux enabled
* firewalls (such as iptables, ufw, etc.)
* Compile tools
* 3rd party repositories
On Ubuntu/Debian, use [apt](https://supermarket.chef.io/cookbooks/apt) cookbook to ensure the package
cache is updated so Chef can install packages, or consider putting
apt-get in your bootstrap process or
[knife bootstrap template](http://docs.chef.io/knife_bootstrap.html)
On RHEL, SELinux is enabled by default. The [selinux](https://supermarket.chef.io/cookbooks/selinux) cookbook
contains a `permissive` recipe that can be used to set SELinux to
"Permissive" state. Otherwise, additional recipes need to be created
by the user to address SELinux permissions.
To deal with firewalls Chef Software does provide an [iptables](https://supermarket.chef.io/cookbooks/iptables) and [ufw](https://supermarket.chef.io/cookbooks/ufw) cookbook but is migrating from the approach used there to a more robust solution
utilizing the general [firewall](https://supermarket.chef.io/cookbooks/firewall) cookbook to setup rules.
See those cookbooks' READMEs for documentation.
Build/compile tools may not be installed on the system by default.
Some recipes (e.g., `apache2::mod_auth_openid`) build the module from
source. Use the [build-essential](https://supermarket.chef.io/cookbooks/build-essential) cookbook to get essential
build packages installed.
On ArchLinux, if you are using the `apache2::mod_auth_openid` recipe,
you also need the [pacman](https://supermarket.chef.io/cookbooks/pacman) cookbook for the `pacman_aur` LWRP. Put
`recipe[pacman]` on the node's expanded run list (on the node or in a
role). This is not an explicit dependency because it is only required
for this single recipe and platform; the pacman default recipe
performs `pacman -Sy` to keep pacman's package cache updated.
## Platforms:
The following platforms and versions are tested and supported using
[test-kitchen](http://kitchen.ci/)
* Ubuntu 14.04
* Ubuntu 16.04
* Debian 8.6
* CentOS 7.3
* Fedora 25
The following platform families are supported in the code, and are
assumed to work based on the successful testing on Ubuntu and CentOS.
* Red Hat (rhel)
The following platforms are also supported in the code, have been
tested manually but are not regularly tested under test-kitchen.
* Amazon Linux
* SUSE/OpenSUSE
* ArchLinux
* FreeBSD
### Notes for RHEL Family:
On Red Hat Enterprise Linux and derivatives, the EPEL repository may
be necessary to install packages used in certain recipes. The
`apache2::default` recipe, however, does not require any additional
repositories. The [yum-epel](https://supermarket.chef.io/cookbooks/yum-epel) cookbook can be used to add the
EPEL repository. See __Examples__ for more information.
Usage
=====
Using this cookbook is relatively straightforward. It is recommended to create
a project or organization specific [wrapper cookbook](https://www.chef.io/blog/2013/12/03/doing-wrapper-cookbooks-right/)
and add the desired recipes to the run list of a node, or create a role. Depending on your
environment, you may have multiple roles that use different recipes
from this cookbook. Adjust any attributes as desired. For example, to
create a basic role for web servers that provide both HTTP and HTTPS:
```ruby
% cat roles/webserver.rb
name "webserver"
description "Systems that serve HTTP and HTTPS"
run_list(
"recipe[apache2]",
"recipe[apache2::mod_ssl]"
)
default_attributes(
"apache" => {
"listen" => ["*:80", "*:443"]
}
)
```
For examples of using the definitions in your own recipes, see their
respective sections below.
Attributes
==========
This cookbook uses many attributes, broken up into a few different
kinds.
Platform specific
-----------------
In order to support the broadest number of platforms, several
attributes are determined based on the node's platform. See the
attributes/default.rb file for default values in the case statement at
the top of the file.
* `node['apache']['package']` - Package name for Apache2
* `node['apache']['perl_pkg']` - Package name for Perl
* `node['apache']['dir']` - Location for the Apache configuration
* `node['apache']['log_dir']` - Location for Apache logs
* `node['apache']['error_log']` - Location for the default error log
* `node['apache']['access_log']` - Location for the default access log
* `node['apache']['user']` - User Apache runs as
* `node['apache']['group']` - Group Apache runs as
* `node['apache']['binary']` - Apache httpd server daemon
* `node['apache']['conf_dir']` - Location for the main config file (e.g apache2.conf or httpd.conf)
* `node['apache']['docroot_dir']` - Location for docroot
* `node['apache']['cgibin_dir']` - Location for cgi-bin
* `node['apache']['icondir']` - Location for icons
* `node['apache']['cache_dir']` - Location for cached files used by Apache itself or recipes
* `node['apache']['pid_file']` - Location of the PID file for Apache httpd
* `node['apache']['lib_dir']` - Location for shared libraries
* `node['apache']['default_site_enabled']` - Default site enabled. Default is false.
* `node['apache']['ext_status']` - if true, enables ExtendedStatus for `mod_status`
* `node['apache']['locale']` - Locale to set in sysconfig or envvars and used for subprocesses and modules (like mod_dav and mod_wsgi). On debian systems Uses system-local if set to 'system', defaults to 'C'.
General settings
----------------
These are general settings used in recipes and templates. Default
values are noted.
* `node['apache']['version']` - Specifing 2.4 triggers apache 2.4 support. If the platform is known during our test to install 2.4 by default, it will be set to 2.4 for you. Otherwise it falls back to 2.2. This value should be specified as a string.
* `node['apache']['listen']` - Array of address:port combinations that httpd should listen on. Default is any address and port 80 (`["*:80"]`).
* `node['apache']['contact']` - Value for ServerAdmin directive. Default "ops@example.com".
* `node['apache']['timeout']` - Value for the Timeout directive. Default is 300.
* `node['apache']['keepalive']` - Value for the KeepAlive directive. Default is On.
* `node['apache']['keepaliverequests']` - Value for MaxKeepAliveRequests. Default is 100.
* `node['apache']['keepalivetimeout']` - Value for the KeepAliveTimeout directive. Default is 5.
* `node['apache']['sysconfig_additional_params']` - Additionals variables set in sysconfig file. Default is empty.
* `node['apache']['log_level']` - Value for LogLevel directive. Default is 'warn'.
* `node['apache']['default_modules']` - Array of module names. Can take "mod_FOO" or "FOO" as names, where FOO is the apache module, e.g. "`mod_status`" or "`status`".
* `node['apache']['mpm']` - With apache.version 2.4, specifies what Multi-Processing Module to enable. Defaults to platform default, otherwise it is "prefork"
The modules listed in `default_modules` will be included as recipes in `recipe[apache::default]`.
Prefork attributes
------------------
Prefork attributes are used for tuning the Apache HTTPD [prefork MPM](http://httpd.apache.org/docs/current/mod/prefork.html) configuration.
* `node['apache']['prefork']['startservers']` - initial number of server processes to start. Default is 16.
* `node['apache']['prefork']['minspareservers']` - minimum number of spare server processes. Default 16.
* `node['apache']['prefork']['maxspareservers']` - maximum number of spare server processes. Default 32.
* `node['apache']['prefork']['serverlimit']` - upper limit on configurable server processes. Default 256.
* `node['apache']['prefork']['maxrequestworkers']` - Maximum number of connections that will be processed simultaneously. Default 256.
* `node['apache']['prefork']['maxconnectionsperchild']` - Maximum number of request a child process will handle. Default 10000.
Worker attributes
-----------------
Worker attributes are used for tuning the Apache HTTPD [worker MPM](http://httpd.apache.org/docs/current/mod/worker.html)
configuration.
* `node['apache']['worker']['startservers']` - Initial number of server processes to start. Default 4
* `node['apache']['worker']['serverlimit']` - Upper limit on configurable server processes. Default 16.
* `node['apache']['worker']['minsparethreads']` - Minimum number of spare worker threads. Default 64
* `node['apache']['worker']['maxsparethreads']` - Maximum number of spare worker threads. Default 192.
* `node['apache']['worker']['maxrequestworkers']` - Maximum number of simultaneous connections. Default 1024.
* `node['apache']['worker']['maxconnectionsperchild']` - Limit on the number of connections that an individual child server will handle during its life.
Event attributes
----------------
Event attributes are used for tuning the Apache HTTPD [event MPM](http://httpd.apache.org/docs/current/mod/event.html)
configuration.
* `node['apache']['event']['startservers']` - Initial number of child server processes created at startup. Default 4.
* `node['apache']['event']['serverlimit']` - Upper limit on configurable number of processes. Default 16.
* `node['apache']['event']['minsparethreads']` - Minimum number of spare worker threads. Default 64
* `node['apache']['event']['maxsparethreads']` - Maximum number of spare worker threads. Default 192.
* `node['apache']['event']['threadlimit']` - Upper limit on the configurable number of threads per child process. Default 192.
* `node['apache']['event']['threadsperchild']` - Number of threads created by each child process. Default 64.
* `node['apache']['event']['maxrequestworkers']` - Maximum number of connections that will be processed simultaneously.
* `node['apache']['event']['maxconnectionsperchild']` - Limit on the number of connections that an individual child server will handle during its life.
Other/Unsupported MPM
---------------------
To use the cookbook with an unsupported mpm (other than prefork, event or worker):
* set `node['apache']['mpm']` to the name of the module (e.g. `itk`)
* in your cookbook, after `include_recipe 'apache2'` use the `apache_module` definition to enable/disable the required module(s)
Module specific attributes
--------------------------
Some module recipes have their own attributes that can be used to alter and modify the behavior of this cookbook. Please see the sections for the indivual modules below for more information on those attributes.
Recipes
=======
Most of the recipes in the cookbook are for enabling Apache modules.
Where additional configuration or behavior is used, it is documented
below in more detail.
The following recipes merely enable the specified module: `mod_actions`, `mod_alias`,
`mod_auth_basic`, `mod_auth_digest`, `mod_authn_file`, `mod_authnz_ldap`,
`mod_authz_default`, `mod_authz_groupfile`, `mod_authz_host`,
`mod_authz_user`, `mod_autoindex`, `mod_cgi`, `mod_dav_fs`,
`mod_dav_svn`, `mod_deflate`, `mod_dir`, `mod_env`, `mod_expires`,
`mod_headers`, `mod_ldap`, `mod_log_config`, `mod_mime`,
`mod_negotiation`, `mod_proxy`, `mod_proxy_ajp`, `mod_proxy_balancer`,
`mod_proxy_connect`, `mod_proxy_http`, `mod_python`, `mod_rewrite`,
`mod_setenvif`, `mod_status`, `mod_wsgi`, `mod_xsendfile`.
On RHEL Family distributions, certain modules ship with a config file
with the package. The recipes here may delete those configuration
files to ensure they don't conflict with the settings from the
cookbook, which will use per-module configuration in
`/etc/httpd/mods-enabled`.
default
-------
The default recipe does a number of things to set up Apache HTTPd. It
also includes a number of modules based on the attribute
`node['apache']['default_modules']` as recipes.
mod\_auth\_cas
--------------
This recipe installs the proper package and enables the `auth_cas`
module. It can install from source or package. Package is the default,
set the attribute `node['apache']['mod_auth_cas']['from_source']` to
true to enable source installation. Modify the version to install by
changing the attribute
`node['apache']['mod_auth_cas']['source_revision']`. It is a version
tag by default, but could be master, or another tag, or branch.
The module configuration is written out with the `CASCookiePath` set,
otherwise an error loading the module may cause Apache to not start.
**Note**: This recipe does not work on EL 6 platforms unless
epel-testing repository is enabled (outside the scope of this
cookbook), or the package version 1.0.8.1-3.el6 or higher is otherwise
available to the system due to this bug:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=708550
mod\_auth\_openid
-----------------
This recipe compiles the module from source. In addition to
`build-essential`, some other packages are included for installation
like the GNU C++ compiler and development headers.
To use the module in your own cookbooks to authenticate systems using
OpenIDs, specify an array of OpenIDs that are allowed to authenticate
with the attribute `node['apache']['allowed_openids']`. Use the
following in a vhost to protect with OpenID authentication:
AuthType OpenID require user <%= node['apache']['allowed_openids'].join(' ') %>
AuthOpenIDDBLocation <%= node['apache']['mod_auth_openid']['dblocation'] %>
Change the DBLocation with the attribute as required; this file is in
a different location than previous versions, see below. It should be a
sane default for most platforms, though, see
`attributes/mod_auth_openid.rb`.
The following attributes are in the `attributes/mod_auth_openid.rb` file.
* `node['apache']['mod_auth_openid']['checksum']` - sha256sum of the tarball containing the source.
* `node['apache']['mod_auth_openid']['ref']` - Any sha, tag, or branch found from https://github.com/bmuller/mod_auth_openid
* `node['apache']['mod_auth_openid']['version']` - directory name version within the tarball
* `node['apache']['mod_auth_openid']['cache_dir']` - the cache directory is where the sqlite3 database is stored. It is separate so it can be managed as a directory resource.
* `node['apache']['mod_auth_openid']['dblocation']` - filename of the sqlite3 database used for directive `AuthOpenIDDBLocation`, stored in the `cache_dir` by default.
* `node['apache']['mod_auth_openid']['configure_flags']` - optional array of configure flags passed to the `./configure` step in the compilation of the module.
mod\_fastcgi
------------
Install the fastcgi package and enable the module.
Note: In Ubuntu 14.04, the `libapache2-mod-fastcgi` module is not available by default due to the [Multiverse](https://help.ubuntu.com/community/Repositories/Ubuntu) repositories.
You need to enable the multiverse repositories either from `/etc/apt/sources.list` or use the [apt](https://supermarket.chef.io/cookbooks/apt) cookbook.
mod\_fcgid
----------
Installs the fcgi package and enables the module. Requires EPEL on
RHEL family.
mod\_php5
--------
Simply installs the appropriate package on Debian, Ubuntu and
ArchLinux.
On Red Hat family distributions including Fedora, the php.conf that
comes with the package is removed. On RHEL platforms less than v6, the
`php53` package is used.
* `node['apache']['mod_php5']['install_method']` - default `package` can be overridden to avoid package installs.
mod\_ssl
--------
Besides installing and enabling `mod_ssl`, this recipe will append
port 443 to the `node['apache']['listen']` attributes for all addresses and
update the ports.conf.
* `node['apache']['mod_ssl']['cipher_suite']` - sets the SSLCiphersuite value to the specified string. The default is
considered "sane" but you may need to change it for your local security policy, e.g. if you have PCI-DSS requirements. Additional
commentary on the
[original pull request](https://github.com/sous-chefs/apache2/pull/15#commitcomment-1605406).
* `node['apache']['mod_ssl']['honor_cipher_order']` - Option to prefer the server's cipher preference order. Default 'On'.
* `node['apache']['mod_ssl']['insecure_renegotiation']` - Option to enable support for insecure renegotiation. Default 'Off'.
* `node['apache']['mod_ssl']['strict_sni_vhost_check']` - Whether to allow non-SNI clients to access a name-based virtual host. Default 'Off'.
* `node['apache']['mod_ssl']['session_cache']` - Configures the OCSP stapling cache. Default `shmcb:/var/run/apache2/ssl_scache`
* `node['apache']['mod_ssl']['session_cache_timeout']` - Number of seconds before an SSL session expires in the Session Cache. Default 300.
* `node['apache']['mod_ssl']['compression']` - Enable compression on the SSL level. Default 'Off'.
* `node['apache']['mod_ssl']['use_stapling']` - Enable stapling of OCSP responses in the TLS handshake. Default 'Off'.
* `node['apache']['mod_ssl']['stapling_responder_timeout']` - Timeout for OCSP stapling queries. Default 5
* `node['apache']['mod_ssl']['stapling_return_responder_errors']` - Pass stapling related OCSP errors on to client. Default 'Off'
* `node['apache']['mod_ssl']['stapling_cache']` - Configures the OCSP stapling cache. Default `shmcb:/var/run/ocsp(128000)`
* `node['apache']['mod_ssl']['pass_phrase_dialog']` - Configures SSLPassPhraseDialog. Default `builtin`
* `node['apache']['mod_ssl']['mutex']` - Configures SSLMutex. Default `file:/var/run/apache2/ssl_mutex`
* `node['apache']['mod_ssl']['directives']` - Hash for add any custom directive.
For general information on these attributes see http://httpd.apache.org/docs/current/mod/mod_ssl.html
For more information on these directives and how to best secure your site see
- https://bettercrypto.org/
- https://wiki.mozilla.org/Security/Server_Side_TLS
- https://www.insecure.ws/linux/apache_ssl.html
- https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
- https://istlsfastyet.com/
- https://www.ssllabs.com/projects/best-practices/
Definitions
===========
The cookbook provides a few definitions. At some point in the future
these definitions will be refactored into custom resources see
[issue 414](https://github.com/sous-chefs/apache2/issues/414).
apache\_conf
------------
Writes conf files to the `conf-available` folder, and passes enabled values to `apache_config`.
This definition should generally be called over `apache_config`.
### Parameters:
* `name` - Name of the config placed and enabled or disabled with the `a2enconf` or `a2disconf` scripts.
* `enable` - Default true, which uses `a2enconf` to enable the config. If false, the config will be disabled with `a2disconf`.
* `conf_path` - path to put the config in if you need to override the default `conf-available`.
* `source` - The source configuration template name. The default value is `params[:name].conf.erb`
* `cookbook` - The cookbook in which the configuration template is located. The default value is the current cookbook.
### Examples:
Place and enable the example conf:
```ruby
apache_conf 'example' do
enable true
end
```
Place and disable (or never enable to begin with) the example conf:
```ruby
apache_conf 'example' do
enable false
end
```
Place the example conf, which has a different path than the default (conf-*):
```ruby
apache_conf 'example' do
conf_path '/random/example/path'
enable false
end
```
apache\_config (internal)
--------------------------
Sets up configuration file for Apache from a template. The
template should be in the same cookbook where the definition is used. This is used by the `apache_conf` definition and should not be used directly.
It will use `a2enconf` and `a2disconf` to control the symlinking of configuration files between `conf-available` and `conf-enabled`.
Enable or disable an Apache config file in
`#{node['apache']['dir']}/conf-available` by calling `a2enconf` or
`a2disconf` to manage the symbolic link in
`#{node['apache']['dir']}/conf-enabled`. These config files should be created in your cookbook, and placed on the system using `apache_conf`
### Parameters:
* `name` - Name of the config enabled or disabled with the `a2enconf` or `a2disconf` scripts.
* `source` - The location of a template file. The default `name.erb`.
* `cookbook` - The cookbook in which the configuration template is located (if it is not located in the current cookbook). The default value is the current cookbook.
* `enable` - Default true, which uses `a2enconf` to enable the config. If false, the config will be disabled with `a2disconf`.
### Examples:
Enable the example config.
```ruby
apache_config 'example' do
enable true
end
```
Disable a module:
```ruby
apache_config 'disabled_example' do
enable false
end
```
See the recipes directory for many more examples of `apache_config`.
apache\_module
--------------
Enable or disable an Apache module in
`#{node['apache']['dir']}/mods-available` by calling `a2enmod` or
`a2dismod` to manage the symbolic link in
`#{node['apache']['dir']}/mods-enabled`. If the module has a
configuration file, a template should be created in the cookbook where
the definition is used. See __Examples__.
### Parameters:
* `name` - Name of the module enabled or disabled with the `a2enmod` or `a2dismod` scripts.
* `identifier` - String to identify the module for the `LoadModule` directive. Not typically needed, defaults to `#{name}_module`
* `enable` - Default true, which uses `a2enmod` to enable the module. If false, the module will be disabled with `a2dismod`.
* `conf` - Default false. Set to true if the module has a config file, which will use `apache_mod` for the file.
* `filename` - specify the full name of the file, e.g.
### Examples:
Enable the ssl module, which also has a configuration template in `templates/default/mods/ssl.conf.erb`.
```ruby
apache_module "ssl" do
conf true
end
```
Enable the php5 module, which has a different filename than the module default:
```ruby
apache_module "php5" do
filename "libphp5.so"
end
```
Disable a module:
```ruby
apache_module "disabled_module" do
enable false
end
```
See the recipes directory for many more examples of `apache_module`.
apache\_mod (internal)
----------------------
Sets up configuration file for an Apache module from a template. The
template should be in the same cookbook where the definition is used.
This is used by the `apache_module` definition and is not often used
directly.
This will use a template resource to write the module's configuration
file in the `mods-available` under the Apache configuration directory
(`node['apache']['dir']`). This is a platform-dependent location. See
__apache\_module__.
### Parameters:
* `name` - Name of the template. When used from the `apache_module`,
it will use the same name as the module.
### Examples:
Create `#{node['apache']['dir']}/mods-available/alias.conf`.
```ruby
apache_mod "alias"
```
apache\_site
------------
Enable or disable a VirtualHost in
`#{node['apache']['dir']}/sites-available` by calling a2ensite or
a2dissite to manage the symbolic link in
`#{node['apache']['dir']}/sites-enabled`.
The template for the site must be managed as a separate resource. To
combine the template with enabling a site, see `web_app`.
### Parameters:
* `name` - Name of the site.
* `enable` - Default true, which uses `a2ensite` to enable the site. If false, the site will be disabled with `a2dissite`.
web\_app
--------
Manage a template resource for a VirtualHost site, and enable it with
`apache_site`. This is commonly done for managing web applications
such as Ruby on Rails, PHP or Django, and the default behavior
reflects that. However it is flexible.
This definition includes some recipes to make sure the system is
configured to have Apache and some sane default modules:
* `apache2`
* `apache2::mod_rewrite`
* `apache2::mod_deflate`
* `apache2::mod_headers`
It will then configure the template (see __Parameters__ and
__Examples__ below), and enable or disable the site per the `enable`
parameter.
### Parameters:
Current parameters used by the definition:
* `name` - The name of the site. The template will be written to
`#{node['apache']['dir']}/sites-available/#{params['name']}.conf`
* `cookbook` - Optional. Cookbook where the source template is. If
this is not defined, Chef will use the named template in the
cookbook where the definition is used.
* `template` - Default `web_app.conf.erb`, source template file.
* `enable` - Default true. Passed to the `apache_site` definition.
Additional parameters can be defined when the definition is called in
a recipe, see __Examples__.
### Examples:
The recommended way to use the `web_app` definition is in a application specific cookbook named "my_app".
The following example would look for a template named 'web_app.conf.erb' in your cookbook containing
the apache httpd directives defining the `VirtualHost` that would serve up "my_app".
```ruby
web_app "my_app" do
template 'web_app.conf.erb'
server_name node['my_app']['hostname']
end
```
All parameters are passed into the template. You can use whatever you
like. The apache2 cookbook comes with a `web_app.conf.erb` template as
an example. The following parameters are used in the template:
* `server_name` - ServerName directive.
* `server_aliases` - ServerAlias directive. Must be an array of aliases.
* `docroot` - DocumentRoot directive.
* `application_name` - Used in RewriteLog directive. Will be set to the `name` parameter.
* `directory_index` - Allow overriding the default DirectoryIndex setting, optional
* `directory_options` - Override Options on the docroot, for example to add parameters like Includes or Indexes, optional.
* `allow_override` - Modify the AllowOverride directive on the docroot to support apps that need .htaccess to modify configuration or require authentication.
To use the default web_app, for example:
```ruby
web_app "my_site" do
server_name node['hostname']
server_aliases [node['fqdn'], "my-site.example.com"]
docroot "/srv/www/my_site"
cookbook 'apache2'
end
```
The parameters specified will be used as:
* `@params[:server_name]`
* `@params[:server_aliases]`
* `@params[:docroot]`
In the template. When you write your own, the `@` is significant.
For more information about Definitions and parameters, see the
[Chef Wiki](http://docs.chef.io/definitions.html)
Tests
=====
This cookbook in the [source repository](https://github.com/sous-chefs/apache2/)
contains chefspec, serverspec tests.
Please see the CONTRIBUTING file for information on how to add tests
for your contributions.
License and Authors
===================
* Author:: Adam Jacob <adam@chef.io>
* Author:: Joshua Timberman <joshua@chef.io>
* Author:: Bryan McLellan <bryanm@widemile.com>
* Author:: Dave Esposito <esposito@espolinux.corpnet.local>
* Author:: David Abdemoulaie <github@hobodave.com>
* Author:: Edmund Haselwanter <edmund@haselwanter.com>
* Author:: Eric Rochester <err8n@virginia.edu>
* Author:: Jim Browne <jbrowne@42lines.net>
* Author:: Matthew Kent <mkent@magoazul.com>
* Author:: Nathen Harvey <nharvey@customink.com>
* Author:: Ringo De Smet <ringo.de.smet@amplidata.com>
* Author:: Sean OMeara <someara@chef.io>
* Author:: Seth Chisamore <schisamo@chef.io>
* Author:: Gilles Devaux <gilles@peerpong.com>
* Author:: Sander van Zoest <sander+cookbooks@vanzoest.com>
* Author:: Taylor Price <tayworm@gmail.com>
* Author:: Ben Dean <ben.dean@ontariosystems.com>
* Copyright:: 2009-2012, Chef Software, Inc
* Copyright:: 2011, Atriso
* Copyright:: 2011, CustomInk, LLC.
* Copyright:: 2013-2014, OneHealth Solutions, Inc.
* Copyright:: 2014, Viverae, Inc.
* Copyright:: 2015-2016, Alexander van Zoest
* Copyright:: 2015, Ontario Systems, LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,355 @@
#
# Cookbook:: apache2
# Attributes:: default
#
# Copyright:: 2008-2013, Chef Software, Inc.
# Copyright:: 2014, Viverae, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
default['apache']['mpm'] =
case node['platform_family']
when 'debian'
case node['platform']
when 'ubuntu'
if node['platform_version'].to_f >= 14.04
'event'
elsif node['platform_version'].to_f >= 12.04
'worker'
else
'prefork'
end
when 'debian'
node['platform_version'].to_f >= 7.0 ? 'worker' : 'prefork'
when 'linuxmint'
node['platform_version'].to_i >= 17 ? 'event' : 'prefork'
else
'prefork'
end
when 'suse'
'prefork'
when 'rhel'
'prefork'
when 'amazon'
'prefork'
else
'prefork'
end
default['apache']['version'] =
case node['platform_family']
when 'debian'
case node['platform']
when 'ubuntu'
node['platform_version'].to_f >= 13.10 ? '2.4' : '2.2'
when 'linuxmint'
node['platform_version'].to_i >= 16 ? '2.4' : '2.2'
when 'debian', 'raspbian'
node['platform_version'].to_f >= 8.0 ? '2.4' : '2.2'
else
'2.4'
end
when 'amazon'
node['platform_version'].to_f >= 2013.09 ? '2.4' : '2.2'
when 'rhel'
case node['platform']
when 'amazon'
node['platform_version'].to_f >= 2013.09 ? '2.4' : '2.2'
else
node['platform_version'].to_f >= 7.0 ? '2.4' : '2.2'
end
when 'fedora'
'2.4'
when 'suse'
case node['platform']
when 'suse'
node['platform_version'].to_f >= 12.1 ? '2.4' : '2.2'
else
'2.4'
end
when 'freebsd'
'2.4'
end
default['apache']['root_group'] = 'root'
default['apache']['default_site_name'] = 'default'
# Where the various parts of apache are
case node['platform']
when 'redhat', 'centos', 'scientific', 'fedora', 'amazon', 'oracle'
if node['platform'] == 'amazon'
if node['apache']['version'] == '2.4'
default['apache']['package'] = 'httpd24'
default['apache']['devel_package'] = 'httpd24-devel'
else
default['apache']['package'] = 'httpd22'
default['apache']['devel_package'] = 'httpd22-devel'
end
else
default['apache']['package'] = 'httpd'
default['apache']['devel_package'] = 'httpd-devel'
end
default['apache']['service_name'] = 'httpd'
default['apache']['perl_pkg'] = 'perl'
default['apache']['apachectl'] = '/usr/sbin/apachectl'
default['apache']['dir'] = '/etc/httpd'
default['apache']['log_dir'] = '/var/log/httpd'
default['apache']['error_log'] = 'error.log'
default['apache']['access_log'] = 'access.log'
default['apache']['user'] = 'apache'
default['apache']['group'] = 'apache'
default['apache']['binary'] = '/usr/sbin/httpd'
default['apache']['conf_dir'] = '/etc/httpd/conf'
default['apache']['docroot_dir'] = '/var/www/html'
default['apache']['cgibin_dir'] = '/var/www/cgi-bin'
default['apache']['icondir'] =
if node['apache']['version'] == '2.4'
'/usr/share/httpd/icons'
else
'/var/www/icons'
end
default['apache']['cache_dir'] = '/var/cache/httpd'
default['apache']['run_dir'] = '/var/run/httpd'
default['apache']['lock_dir'] = '/var/run/httpd'
default['apache']['pid_file'] =
if node['platform_version'].to_f >= 6
'/var/run/httpd/httpd.pid'
else
'/var/run/httpd.pid'
end
default['apache']['lib_dir'] = node['kernel']['machine'] =~ /^i[36]86$/ ? '/usr/lib/httpd' : '/usr/lib64/httpd'
default['apache']['libexec_dir'] = "#{node['apache']['lib_dir']}/modules"
when 'suse', 'opensuse', 'opensuseleap'
default['apache']['package'] = 'apache2'
default['apache']['perl_pkg'] = 'perl'
default['apache']['devel_package'] = 'httpd-devel'
default['apache']['apachectl'] = '/usr/sbin/apache2ctl'
default['apache']['dir'] = '/etc/apache2'
default['apache']['log_dir'] = '/var/log/apache2'
default['apache']['error_log'] = 'error.log'
default['apache']['access_log'] = 'access.log'
default['apache']['user'] = 'wwwrun'
default['apache']['group'] = 'www'
default['apache']['binary'] = '/usr/sbin/httpd2'
default['apache']['conf_dir'] = '/etc/apache2'
default['apache']['docroot_dir'] = '/srv/www/htdocs'
default['apache']['cgibin_dir'] = '/srv/www/cgi-bin'
default['apache']['icondir'] = '/usr/share/apache2/icons'
default['apache']['cache_dir'] = '/var/cache/apache2'
default['apache']['run_dir'] = '/var/run/httpd'
default['apache']['lock_dir'] = '/var/run/httpd'
default['apache']['pid_file'] =
if node['platform_version'].to_f > 11.4
'/var/run/httpd.pid'
else
'/var/run/httpd2.pid'
end
default['apache']['lib_dir'] = node['kernel']['machine'] =~ /^i[36]86$/ ? '/usr/lib/apache2' : '/usr/lib64/apache2'
default['apache']['libexec_dir'] = node['apache']['lib_dir']
when 'debian', 'ubuntu'
default['apache']['package'] = 'apache2'
default['apache']['perl_pkg'] = 'perl'
default['apache']['devel_package'] =
if node['apache']['mpm'] == 'prefork'
'apache2-prefork-dev'
else
'apache2-dev'
end
default['apache']['apachectl'] = '/usr/sbin/apache2ctl'
default['apache']['dir'] = '/etc/apache2'
default['apache']['log_dir'] = '/var/log/apache2'
default['apache']['error_log'] = 'error.log'
default['apache']['access_log'] = 'access.log'
default['apache']['user'] = 'www-data'
default['apache']['group'] = 'www-data'
default['apache']['binary'] = '/usr/sbin/apache2'
default['apache']['conf_dir'] = '/etc/apache2'
default['apache']['cgibin_dir'] = '/usr/lib/cgi-bin'
default['apache']['icondir'] = '/usr/share/apache2/icons'
default['apache']['cache_dir'] = '/var/cache/apache2'
default['apache']['run_dir'] = '/var/run/apache2'
default['apache']['lock_dir'] = '/var/lock/apache2'
# this should use COOK-3917 to educate the initscript of the pid location
if node['apache']['version'] == '2.4'
default['apache']['pid_file'] = '/var/run/apache2/apache2.pid'
default['apache']['docroot_dir'] = '/var/www/html'
else
default['apache']['pid_file'] = '/var/run/apache2.pid'
default['apache']['docroot_dir'] = '/var/www'
end
default['apache']['lib_dir'] = '/usr/lib/apache2'
default['apache']['build_dir'] = '/usr/share/apache2'
default['apache']['libexec_dir'] = "#{node['apache']['lib_dir']}/modules"
default['apache']['default_site_name'] = '000-default'
when 'arch'
default['apache']['package'] = 'apache'
default['apache']['service_name'] = 'httpd'
default['apache']['perl_pkg'] = 'perl'
# default['apache']['apachectl'] = '/usr/sbin/apachectl'
default['apache']['dir'] = '/etc/httpd'
default['apache']['log_dir'] = '/var/log/httpd'
default['apache']['error_log'] = 'error.log'
default['apache']['access_log'] = 'access.log'
default['apache']['user'] = 'http'
default['apache']['group'] = 'http'
default['apache']['binary'] = '/usr/sbin/httpd'
default['apache']['conf_dir'] = '/etc/httpd'
default['apache']['docroot_dir'] = '/srv/http'
default['apache']['cgibin_dir'] = '/usr/share/httpd/cgi-bin'
default['apache']['icondir'] = '/usr/share/httpd/icons'
default['apache']['cache_dir'] = '/var/cache/httpd'
default['apache']['run_dir'] = '/var/run/httpd'
default['apache']['lock_dir'] = '/var/run/httpd'
default['apache']['pid_file'] = '/var/run/httpd/httpd.pid'
default['apache']['lib_dir'] = '/usr/lib/httpd'
default['apache']['libexec_dir'] = "#{node['apache']['lib_dir']}/modules"
when 'freebsd'
default['apache']['package'] = 'apache24'
default['apache']['dir'] = '/usr/local/etc/apache24'
default['apache']['conf_dir'] = '/usr/local/etc/apache24'
default['apache']['docroot_dir'] = '/usr/local/www/apache24/data'
default['apache']['cgibin_dir'] = '/usr/local/www/apache24/cgi-bin'
default['apache']['icondir'] = '/usr/local/www/apache24/icons'
default['apache']['cache_dir'] = '/var/cache/apache24'
default['apache']['run_dir'] = '/var/run'
default['apache']['lock_dir'] = '/var/run'
default['apache']['lib_dir'] = '/usr/local/libexec/apache24'
default['apache']['devel_package'] = 'httpd-devel'
default['apache']['perl_pkg'] = 'perl5'
default['apache']['apachectl'] = '/usr/local/sbin/apachectl'
default['apache']['pid_file'] = '/var/run/httpd.pid'
default['apache']['log_dir'] = '/var/log'
default['apache']['error_log'] = 'httpd-error.log'
default['apache']['access_log'] = 'httpd-access.log'
default['apache']['root_group'] = 'wheel'
default['apache']['user'] = 'www'
default['apache']['group'] = 'www'
default['apache']['binary'] = '/usr/local/sbin/httpd'
default['apache']['libexec_dir'] = node['apache']['lib_dir']
else
default['apache']['package'] = 'apache2'
default['apache']['devel_package'] = 'apache2-dev'
default['apache']['perl_pkg'] = 'perl'
default['apache']['dir'] = '/etc/apache2'
default['apache']['log_dir'] = '/var/log/apache2'
default['apache']['error_log'] = 'error.log'
default['apache']['access_log'] = 'access.log'
default['apache']['user'] = 'www-data'
default['apache']['group'] = 'www-data'
default['apache']['binary'] = '/usr/sbin/apache2'
default['apache']['conf_dir'] = '/etc/apache2'
default['apache']['docroot_dir'] = '/var/www'
default['apache']['cgibin_dir'] = '/usr/lib/cgi-bin'
default['apache']['icondir'] = '/usr/share/apache2/icons'
default['apache']['cache_dir'] = '/var/cache/apache2'
default['apache']['run_dir'] = 'logs'
default['apache']['lock_dir'] = 'logs'
default['apache']['pid_file'] = 'logs/httpd.pid'
default['apache']['lib_dir'] = '/usr/lib/apache2'
default['apache']['libexec_dir'] = "#{node['apache']['lib_dir']}/modules"
end
###
# These settings need the unless, since we want them to be tunable,
# and we don't want to override the tunings.
###
# General settings
if node['apache']['service_name'].nil?
default['apache']['service_name'] = node['apache']['package']
end
default['apache']['listen'] = ['*:80']
default['apache']['contact'] = 'ops@example.com'
default['apache']['timeout'] = 300
default['apache']['keepalive'] = 'On'
default['apache']['keepaliverequests'] = 100
default['apache']['keepalivetimeout'] = 5
default['apache']['locale'] = 'C'
default['apache']['sysconfig_additional_params'] = {}
default['apache']['default_site_enabled'] = false
default['apache']['default_site_port'] = '80'
default['apache']['access_file_name'] = '.htaccess'
default['apache']['default_release'] = nil
default['apache']['log_level'] = 'warn'
# Security
default['apache']['servertokens'] = 'Prod'
default['apache']['serversignature'] = 'On'
default['apache']['traceenable'] = 'Off'
# mod_status Allow list, space seprated list of allowed entries.
default['apache']['status_allow_list'] = '127.0.0.1 ::1'
# mod_status ExtendedStatus, set to 'true' to enable
default['apache']['ext_status'] = false
# mod_info Allow list, space seprated list of allowed entries.
default['apache']['info_allow_list'] = '127.0.0.1 ::1'
# Supported mpm list
default['apache']['mpm_support'] = %w(prefork worker event)
# Prefork Attributes
default['apache']['prefork']['startservers'] = 16
default['apache']['prefork']['minspareservers'] = 16
default['apache']['prefork']['maxspareservers'] = 32
default['apache']['prefork']['serverlimit'] = 256
default['apache']['prefork']['maxrequestworkers'] = 256
default['apache']['prefork']['maxconnectionsperchild'] = 10_000
# Worker Attributes
default['apache']['worker']['startservers'] = 4
default['apache']['worker']['serverlimit'] = 16
default['apache']['worker']['minsparethreads'] = 64
default['apache']['worker']['maxsparethreads'] = 192
default['apache']['worker']['threadlimit'] = 192
default['apache']['worker']['threadsperchild'] = 64
default['apache']['worker']['maxrequestworkers'] = 1024
default['apache']['worker']['maxconnectionsperchild'] = 0
# Event Attributes
default['apache']['event']['startservers'] = 4
default['apache']['event']['serverlimit'] = 16
default['apache']['event']['minsparethreads'] = 64
default['apache']['event']['maxsparethreads'] = 192
default['apache']['event']['threadlimit'] = 192
default['apache']['event']['threadsperchild'] = 64
default['apache']['event']['maxrequestworkers'] = 1024
default['apache']['event']['maxconnectionsperchild'] = 0
# mod_proxy settings
default['apache']['proxy']['require'] = 'all denied'
default['apache']['proxy']['order'] = 'deny,allow'
default['apache']['proxy']['deny_from'] = 'all'
default['apache']['proxy']['allow_from'] = 'none'
# Default modules to enable via include_recipe
default['apache']['default_modules'] = %w(
status alias auth_basic authn_core authn_file authz_core authz_groupfile
authz_host authz_user autoindex deflate dir env mime negotiation setenvif
)
%w(log_config logio).each do |log_mod|
default['apache']['default_modules'] << log_mod if %w(rhel amazon fedora suse arch freebsd).include?(node['platform_family'])
end
if node['apache']['version'] == '2.4'
%w(unixd).each do |unix_mod|
default['apache']['default_modules'] << unix_mod if %w(rhel amazon fedora suse arch freebsd).include?(node['platform_family'])
end
unless node['platform'] == 'amazon'
default['apache']['default_modules'] << 'systemd' if %w(rhel fedora amazon).include?(node['platform_family'])
end
end

View File

@@ -0,0 +1,21 @@
#
# Cookbook:: apache2
# Attributes:: mod_auth_cas
#
# Copyright:: 2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
default['apache']['mod_auth_cas']['from_source'] = false
default['apache']['mod_auth_cas']['source_revision'] = 'v1.0.9.1'

View File

@@ -0,0 +1,38 @@
#
# Cookbook:: apache2
# Attributes:: mod_auth_openid
#
# Copyright:: 2013, Chef Software, Inc.
# Copyright:: 2014-2016, Alexander van Zoest
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# mod_auth_openids
default['apache']['allowed_openids'] = []
default['apache']['mod_auth_openid']['ref'] = 'v0.8'
default['apache']['mod_auth_openid']['version'] = '0.8'
default['apache']['mod_auth_openid']['source_url'] = "https://github.com/bmuller/mod_auth_openid/archive/#{node['apache']['mod_auth_openid']['ref']}.tar.gz"
default['apache']['mod_auth_openid']['cache_dir'] = '/var/cache/mod_auth_openid'
default['apache']['mod_auth_openid']['dblocation'] = "#{node['apache']['mod_auth_openid']['cache_dir']}/mod_auth_openid.db"
default['apache']['mod_auth_openid']['configure_flags'] =
case node['platform_family']
when 'freebsd'
[
'CPPFLAGS=-I/usr/local/include',
'LDFLAGS=-I/usr/local/lib -lsqlite3',
]
else
[]
end

View File

@@ -0,0 +1,39 @@
#
# Cookbook:: apache2
# Attributes:: mod_fastcgi
#
# Copyright:: 2013, Chef Software, Inc.
# Copyright:: 2016, Alexander van Zoest
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
default['apache']['mod_fastcgi']['download_url'] = 'http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz'
default['apache']['mod_fastcgi']['install_method'] = 'package'
default['apache']['mod_fastcgi']['package'] =
case node['platform_family']
when 'debian'
'libapache2-mod-fastcgi'
when 'amazon'
'mod_fastcgi'
when 'rhel'
'mod_fastcgi'
when 'freebsd'
if node['apache']['version'] == '2.4'
'ap24-mod_fastcgi'
else
'ap22-mod_fastcgi'
end
else
'mod_fastcgi'
end

View File

@@ -0,0 +1,25 @@
#
# Cookbook:: apache2
# Attributes:: mod_pagespeed
#
# Copyright:: 2013, ZOZI
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
default['apache2']['mod_pagespeed']['package_link'] =
if node['kernel']['machine'] =~ /^i[36']86$/
'https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb'
else
'https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb'
end

View File

@@ -0,0 +1,34 @@
#
# Cookbook:: apache2
# Attributes:: mod_php5
#
# Copyright:: 2014, Viverae, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
default['apache']['mod_php']['install_method'] = 'package'
default['apache']['mod_php']['module_name'] = 'php5'
default['apache']['mod_php']['so_filename'] = 'libphp5.so'
default['apache']['mod_php']['so_filename'] = 'mod_php5.so' if node['platform_family'] == 'suse'
if node['platform'] == 'ubuntu' && node['platform_version'].to_f >= 16.04
default['apache']['mod_php']['module_name'] = 'php7'
default['apache']['mod_php']['so_filename'] = 'libphp7.0.so'
end
if node['platform'] == 'debian' && node['platform_version'].to_f >= 9
default['apache']['mod_php']['module_name'] = 'php7'
default['apache']['mod_php']['so_filename'] = 'libphp7.0.so'
end
if node['platform'] == 'amazon' && node['apache']['version'] == '2.4'
default['apache']['mod_php']['so_filename'] = 'libphp.so'
end

View File

@@ -0,0 +1,63 @@
#
# Cookbook:: apache2
# Attributes:: mod_ssl
#
# Copyright:: 2012-2013, Chef Software, Inc.
# Copyright:: 2014, Viverae, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
default['apache']['mod_ssl']['port'] = 443
default['apache']['mod_ssl']['protocol'] = 'All -SSLv2 -SSLv3'
default['apache']['mod_ssl']['cipher_suite'] = 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA'
default['apache']['mod_ssl']['honor_cipher_order'] = 'On'
default['apache']['mod_ssl']['insecure_renegotiation'] = 'Off'
default['apache']['mod_ssl']['strict_sni_vhost_check'] = 'Off'
default['apache']['mod_ssl']['session_cache'] = 'shmcb:/var/run/apache2/ssl_scache'
default['apache']['mod_ssl']['session_cache_timeout'] = 300
default['apache']['mod_ssl']['compression'] = 'Off'
default['apache']['mod_ssl']['use_stapling'] = 'Off'
default['apache']['mod_ssl']['stapling_responder_timeout'] = 5
default['apache']['mod_ssl']['stapling_return_responder_errors'] = 'Off'
default['apache']['mod_ssl']['stapling_cache'] = 'shmcb:/var/run/ocsp(128000)'
default['apache']['mod_ssl']['pass_phrase_dialog'] = 'builtin'
default['apache']['mod_ssl']['mutex'] = 'file:/var/run/apache2/ssl_mutex'
default['apache']['mod_ssl']['directives'] = {}
default['apache']['mod_ssl']['pkg_name'] = 'mod_ssl'
case node['platform_family']
when 'debian'
case node['platform']
when 'ubuntu'
if node['apache']['version'] == '2.4'
default['apache']['mod_ssl']['pass_phrase_dialog'] = 'exec:/usr/share/apache2/ask-for-passphrase'
end
end
when 'freebsd'
default['apache']['mod_ssl']['session_cache'] = 'shmcb:/var/run/ssl_scache(512000)'
default['apache']['mod_ssl']['mutex'] = 'file:/var/run/ssl_mutex'
when 'amazon'
if node['apache']['version'] == '2.4'
default['apache']['mod_ssl']['pkg_name'] = 'mod24_ssl'
end
when 'rhel', 'fedora', 'suse'
case node['platform']
when 'amazon'
if node['apache']['version'] == '2.4'
default['apache']['mod_ssl']['pkg_name'] = 'mod24_ssl'
end
end
default['apache']['mod_ssl']['session_cache'] = 'shmcb:/var/cache/mod_ssl/scache(512000)'
default['apache']['mod_ssl']['mutex'] = 'default'
end

View File

@@ -0,0 +1,45 @@
#
# Cookbook:: apache2
# Definition:: apache_conf
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :apache_conf, enable: true do
include_recipe 'apache2::default'
conf_name = "#{params[:name]}.conf"
params[:conf_path] = params[:conf_path] || "#{node['apache']['dir']}/conf-available"
file "#{params[:conf_path]}/#{params[:name]}" do
action :delete
end
template "#{params[:conf_path]}/#{conf_name}" do
source params[:source] || "#{conf_name}.erb"
cookbook params[:cookbook] if params[:cookbook]
owner 'root'
group node['apache']['root_group']
backup false
mode '0644'
notifies :restart, 'service[apache2]', :delayed
end
if params[:enable]
apache_config params[:name] do
enable true
end
end
end

View File

@@ -0,0 +1,42 @@
#
# Cookbook:: apache2
# Definition:: apache_config
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :apache_config, enable: true do
include_recipe 'apache2::default'
conf_name = "#{params[:name]}.conf"
params[:conf_path] = params[:conf_path] || "#{node['apache']['dir']}/conf-available"
if params[:enable]
execute "a2enconf #{conf_name}" do
command "/usr/sbin/a2enconf #{conf_name}"
notifies :restart, 'service[apache2]', :delayed
not_if do
::File.symlink?("#{node['apache']['dir']}/conf-enabled/#{conf_name}") &&
(::File.exist?(params[:conf_path]) ? ::File.symlink?("#{node['apache']['dir']}/conf-enabled/#{conf_name}") : true)
end
end
else
execute "a2disconf #{conf_name}" do
command "/usr/sbin/a2disconf #{conf_name}"
notifies :reload, 'service[apache2]', :delayed
only_if { ::File.symlink?("#{node['apache']['dir']}/conf-enabled/#{conf_name}") }
end
end
end

View File

@@ -0,0 +1,28 @@
#
# Cookbook:: apache2
# Definition:: apache_mod
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :apache_mod do
include_recipe 'apache2::default'
template "#{node['apache']['dir']}/mods-available/#{params[:name]}.conf" do
source "mods/#{params[:name]}.conf.erb"
mode '0644'
notifies :reload, 'service[apache2]', :delayed
end
end

View File

@@ -0,0 +1,58 @@
#
# Cookbook:: apache2
# Definition:: apache_module
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :apache_module, enable: true, conf: false, restart: false do
include_recipe 'apache2::default'
params[:filename] = params[:filename] || "mod_#{params[:name]}.so"
params[:module_path] = params[:module_path] || "#{node['apache']['libexec_dir']}/#{params[:filename]}"
params[:identifier] = params[:identifier] || "#{params[:name]}_module"
apache_mod params[:name] if params[:conf]
file "#{node['apache']['dir']}/mods-available/#{params[:name]}.load" do
content "LoadModule #{params[:identifier]} #{params[:module_path]}\n"
mode '0644'
end
if params[:enable]
execute "a2enmod #{params[:name]}" do
command "/usr/sbin/a2enmod #{params[:name]}"
if params[:restart]
notifies :restart, 'service[apache2]', :delayed
else
notifies :reload, 'service[apache2]', :delayed
end
not_if do
::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.load") &&
(::File.exist?("#{node['apache']['dir']}/mods-available/#{params[:name]}.conf") ? ::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.conf") : true)
end
end
else
execute "a2dismod #{params[:name]}" do
command "/usr/sbin/a2dismod #{params[:name]}"
if params[:restart]
notifies :restart, 'service[apache2]', :delayed
else
notifies :reload, 'service[apache2]', :delayed
end
only_if { ::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.load") }
end
end
end

View File

@@ -0,0 +1,44 @@
#
# Cookbook:: apache2
# Definition:: apache_site
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :apache_site, enable: true do
include_recipe 'apache2::default'
conf_name = "#{params[:name]}.conf"
if params[:enable]
execute "a2ensite #{conf_name}" do
command "/usr/sbin/a2ensite #{conf_name}"
notifies :reload, 'service[apache2]', :delayed
not_if do
::File.symlink?("#{node['apache']['dir']}/sites-enabled/#{conf_name}") ||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/000-#{conf_name}")
end
only_if { ::File.exist?("#{node['apache']['dir']}/sites-available/#{conf_name}") }
end
else
execute "a2dissite #{conf_name}" do
command "/usr/sbin/a2dissite #{conf_name}"
notifies :reload, 'service[apache2]', :delayed
only_if do
::File.symlink?("#{node['apache']['dir']}/sites-enabled/#{conf_name}") ||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/000-#{conf_name}")
end
end
end
end

View File

@@ -0,0 +1,48 @@
#
# Cookbook:: apache2
# Definition:: web_app
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
define :web_app, template: 'web_app.conf.erb', local: false, enable: true, server_port: 80 do
application_name = params[:name]
include_recipe 'apache2::default'
include_recipe 'apache2::mod_rewrite'
include_recipe 'apache2::mod_deflate'
include_recipe 'apache2::mod_headers'
template "#{node['apache']['dir']}/sites-available/#{application_name}.conf" do
source params[:template]
local params[:local]
owner 'root'
group node['apache']['root_group']
mode '0644'
cookbook params[:cookbook] if params[:cookbook]
variables(
application_name: application_name,
params: params
)
if ::File.exist?("#{node['apache']['dir']}/sites-enabled/#{application_name}.conf")
notifies :reload, 'service[apache2]', :delayed
end
end
site_enabled = params[:enable]
apache_site params[:name] do
enable site_enabled
end
end

View File

@@ -0,0 +1,41 @@
#!/usr/bin/perl
=begin
Generates Ubuntu style module.load files.
./apache2_module_conf_generate.pl /usr/lib64/httpd/modules /etc/httpd/mods-available
ARGV[0] is the apache modules directory, ARGV[1] is where you want 'em.
=cut
use File::Find;
use strict;
use warnings;
die "Must have '/path/to/modules' and '/path/to/modules.load'"
unless $ARGV[0] && $ARGV[1];
find(
{
wanted => sub {
return 1 if $File::Find::name !~ /\.so$/;
my $modfile = $_;
$modfile =~ /(lib|mod_)(.+)\.so$/;
my $modname = $2;
my $filename = "$ARGV[1]/$modname.load";
unless ( -f $filename ) {
open( FILE, ">", $filename ) or die "Cannot open $filename";
print FILE "LoadModule " . $modname . "_module $File::Find::name\n";
close(FILE);
}
},
follow => 1,
},
$ARGV[0]
);
exit 0;

View File

@@ -0,0 +1,45 @@
# encoding: utf-8
#
# Cookbook:: apache2
# Libraries:: listen
#
# Copyright:: 2015, Ontario Systems, LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
module Apache2
# Provides method to convert node['apache']['listen_ports'] and node['apache']['listen_addresses'] into new node['apache']['listen']
module Listen
# @param node [Chef::Node] the chef node
# @return [Hash] a hash indexed by address where the values are arrays of ports to listen to
def merge_listen_attributes(node)
(Apache2::Listen.converted_listen_ports_and_addresses(node) + node['apache']['listen']).uniq
end
module_function :merge_listen_attributes
private_class_method
def self.converted_listen_ports_and_addresses(node)
return [] unless node['apache']['listen_ports'] || node['apache']['listen_addresses']
Chef::Log.warn "node['apache']['listen_ports'] and node['apache']['listen_addresses'] are deprecated in favor of node['apache']['listen']. Please adjust your cookbooks"
# Defaults to * for addresses or 80 / 443 for ports if not specified
(node['apache']['listen_addresses'] || %w(*)).uniq.each_with_object([]) do |address, listen|
(node['apache']['listen_ports'] || %w(80 443)).uniq.each do |port|
listen << "#{address}:#{port}"
end
end
end
end
end

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,219 @@
#
# Cookbook:: apache2
# Recipe:: default
#
# Copyright:: 2008-2013, Chef Software, Inc.
# Copyright:: 2014-2015, Alexander van Zoest
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
package 'apache2' do # ~FC009 only available in apt_package. See #388
package_name node['apache']['package']
default_release node['apache']['default_release'] unless node['apache']['default_release'].nil?
end
%w(sites-available sites-enabled mods-available mods-enabled conf-available conf-enabled).each do |dir|
directory "#{node['apache']['dir']}/#{dir}" do
mode '0755'
owner 'root'
group node['apache']['root_group']
end
end
%w(default default.conf 000-default 000-default.conf).each do |site|
link "#{node['apache']['dir']}/sites-enabled/#{site}" do
action :delete
not_if { site == "#{node['apache']['default_site_name']}.conf" && node['apache']['default_site_enabled'] }
end
file "#{node['apache']['dir']}/sites-available/#{site}" do
action :delete
backup false
not_if { site == "#{node['apache']['default_site_name']}.conf" && node['apache']['default_site_enabled'] }
end
end
directory node['apache']['log_dir'] do
mode '0755'
recursive true
end
# perl is needed for the a2* scripts
package node['apache']['perl_pkg']
package 'perl-Getopt-Long-Descriptive' if platform?('fedora')
%w(a2ensite a2dissite a2enmod a2dismod a2enconf a2disconf).each do |modscript|
link "/usr/sbin/#{modscript}" do
action :delete
only_if { ::File.symlink?("/usr/sbin/#{modscript}") }
end
template "/usr/sbin/#{modscript}" do
source "#{modscript}.erb"
mode '0700'
owner 'root'
group node['apache']['root_group']
action :create
end
end
unless platform_family?('debian')
cookbook_file '/usr/local/bin/apache2_module_conf_generate.pl' do
source 'apache2_module_conf_generate.pl'
mode '0755'
owner 'root'
group node['apache']['root_group']
end
execute 'generate-module-list' do
command "/usr/local/bin/apache2_module_conf_generate.pl #{node['apache']['lib_dir']} #{node['apache']['dir']}/mods-available"
action :nothing
end
end
if platform_family?('freebsd')
directory "#{node['apache']['dir']}/Includes" do
action :delete
recursive true
end
directory "#{node['apache']['dir']}/extra" do
action :delete
recursive true
end
end
if platform_family?('suse')
directory "#{node['apache']['dir']}/vhosts.d" do
action :delete
recursive true
end
%w(charset.conv default-vhost.conf default-server.conf default-vhost-ssl.conf errors.conf listen.conf mime.types mod_autoindex-defaults.conf mod_info.conf mod_log_config.conf mod_status.conf mod_userdir.conf mod_usertrack.conf uid.conf).each do |file|
file "#{node['apache']['dir']}/#{file}" do
action :delete
backup false
end
end
end
%W(
#{node['apache']['dir']}/ssl
#{node['apache']['cache_dir']}
).each do |path|
directory path do
mode '0755'
owner 'root'
group node['apache']['root_group']
end
end
directory node['apache']['lock_dir'] do
mode '0755'
if node['platform_family'] == 'debian'
owner node['apache']['user']
else
owner 'root'
end
group node['apache']['root_group']
end
# Set the preferred execution binary - prefork or worker
template "/etc/sysconfig/#{node['apache']['package']}" do
source 'etc-sysconfig-httpd.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
notifies :restart, 'service[apache2]', :delayed
only_if { platform_family?('rhel', 'amazon', 'fedora', 'suse') }
end
template "#{node['apache']['dir']}/envvars" do
source 'envvars.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
notifies :reload, 'service[apache2]', :delayed
only_if { platform_family?('debian') }
end
template 'apache2.conf' do
if platform_family?('rhel', 'amazon', 'fedora', 'arch', 'freebsd')
path "#{node['apache']['conf_dir']}/httpd.conf"
elsif platform_family?('debian')
path "#{node['apache']['conf_dir']}/apache2.conf"
elsif platform_family?('suse')
path "#{node['apache']['conf_dir']}/httpd.conf"
end
action :create
source 'apache2.conf.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
notifies :reload, 'service[apache2]', :delayed
end
%w(security charset).each do |conf|
apache_conf conf do
enable true
end
end
apache_conf 'ports' do
enable false
conf_path node['apache']['dir']
end
if node['apache']['version'] == '2.4'
if node['apache']['mpm_support'].include?(node['apache']['mpm'])
include_recipe "apache2::mpm_#{node['apache']['mpm']}"
else
Chef::Log.warn("apache2: #{node['apache']['mpm']} module is not supported and must be handled separately!")
end
end
node['apache']['default_modules'].each do |mod|
module_recipe_name = mod =~ /^mod_/ ? mod : "mod_#{mod}"
include_recipe "apache2::#{module_recipe_name}"
end
if node['apache']['default_site_enabled']
web_app node['apache']['default_site_name'] do
template 'default-site.conf.erb'
enable node['apache']['default_site_enabled']
end
end
apache_service_name = node['apache']['service_name']
service 'apache2' do
service_name apache_service_name
case node['platform_family']
when 'rhel'
if node['platform_version'].to_f < 7.0 && node['apache']['version'] != '2.4'
restart_command "/sbin/service #{apache_service_name} restart && sleep 1"
reload_command "/sbin/service #{apache_service_name} graceful && sleep 1"
end
when 'debian'
provider Chef::Provider::Service::Debian
when 'arch'
service_name apache_service_name
end
supports [:start, :restart, :reload, :status]
action [:enable, :start]
only_if "#{node['apache']['binary']} -t", environment: { 'APACHE_LOG_DIR' => node['apache']['log_dir'] }, timeout: 10
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_access_compat
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'access_compat'

View File

@@ -0,0 +1,22 @@
#
# Cookbook:: apache2
# Recipe:: mod_actions
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'actions' do
conf true
end

View File

@@ -0,0 +1,22 @@
#
# Cookbook:: apache2
# Recipe:: mod_alias
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'alias' do
conf true
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_allowmethods
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'allowmethods'

View File

@@ -0,0 +1,50 @@
#
# Cookbook:: apache2
# Recipe:: apreq2
#
# modified from the python recipe by Jeremy Bingham
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include_recipe 'apache2::default'
case node['platform_family']
when 'debian'
package 'libapache2-mod-apreq2'
when 'suse'
package 'apache2-mod_apreq2' do
notifies :run, 'execute[generate-module-list]', :immediately
end
when 'rhel', 'fedora', 'amazon'
package 'libapreq2' do
notifies :run, 'execute[generate-module-list]', :immediately
end
# seems that the apreq lib is weirdly broken or something - it needs to be
# loaded as 'apreq', but on RHEL & derivitatives the file needs a symbolic
# link to mod_apreq.so.
link "#{node['apache']['libexec_dir']}/mod_apreq.so" do
to "#{node['apache']['libexec_dir']}/mod_apreq2.so"
only_if "test -f #{node['apache']['libexec_dir']}/mod_apreq2.so"
end
end
file "#{node['apache']['dir']}/conf.d/apreq.conf" do
content '# conf is under mods-available/apreq.conf - apache2 cookbook\n'
only_if { ::Dir.exist?("#{node['apache']['dir']}/conf.d") }
end
apache_module 'apreq'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_asis
#
# Copyright:: 2008-2009, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'asis'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_auth_basic
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'auth_basic'

View File

@@ -0,0 +1,68 @@
#
# Cookbook:: apache2
# Recipe:: mod_auth_cas
#
# Copyright:: 2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include_recipe 'apache2::default'
if node['apache']['mod_auth_cas']['from_source']
package node['apache']['devel_package']
git '/tmp/mod_auth_cas' do
repository 'git://github.com/Jasig/mod_auth_cas.git'
revision node['apache']['mod_auth_cas']['source_revision']
notifies :run, 'execute[compile mod_auth_cas]', :immediately
end
execute 'compile mod_auth_cas' do
command './configure && make && make install'
cwd '/tmp/mod_auth_cas'
not_if "test -f #{node['apache']['libexec_dir']}/mod_auth_cas.so"
end
template "#{node['apache']['dir']}/mods-available/auth_cas.load" do
source 'mods/auth_cas.load.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
end
else
case node['platform_family']
when 'debian'
package 'libapache2-mod-auth-cas'
when 'rhel', 'fedora', 'amazon'
yum_package 'mod_auth_cas' do
notifies :run, 'execute[generate-module-list]', :immediately
end
file "#{node['apache']['dir']}/conf.d/auth_cas.conf" do
content '# conf is under mods-available/auth_cas.conf - apache2 cookbook\n'
only_if { ::Dir.exist?("#{node['apache']['dir']}/conf.d") }
end
end
end
apache_module 'auth_cas' do
conf true
end
directory "#{node['apache']['cache_dir']}/mod_auth_cas" do
owner node['apache']['user']
group node['apache']['group']
mode '0700'
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_auth_digest
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'auth_digest'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_auth_form
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'auth_form'

View File

@@ -0,0 +1,122 @@
#
# Cookbook:: apache2
# Recipe:: mod_auth_openid
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
openid_dev_pkgs = value_for_platform_family(
'debian' => %W(automake make g++ #{node['apache']['devel_package']} libopkele-dev libopkele3 libtool),
'suse' => %W(automake make g++ #{node['apache']['devel_package']} libopkele-dev libopkele3 libtool),
%w(rhel fedora amazon) => %W(gcc-c++ #{node['apache']['devel_package']} curl-devel libtidy libtidy-devel sqlite-devel pcre-devel openssl-devel make libtool),
'arch' => %w(libopkele),
'freebsd' => %w(libopkele pcre sqlite3)
)
make_cmd = value_for_platform_family(
'freebsd' => { 'default' => 'gmake' },
'default' => 'make'
)
case node['platform_family']
when 'arch'
package 'tidyhtml'
pacman_aur openid_dev_pkgs.first do
action [:build, :install]
end
else
openid_dev_pkgs.each do |pkg|
package pkg
end
end
case node['platform_family']
when 'rhel', 'fedora', 'amazon'
remote_file "#{Chef::Config['file_cache_path']}/libopkele-2.0.4.tar.gz" do
source 'http://kin.klever.net/dist/libopkele-2.0.4.tar.gz'
mode '0644'
checksum '57a5bc753b7e80c5ece1e5968b2051b0ce7ed9ce4329d17122c61575a9ea7648'
end
bash 'install libopkele' do
cwd Chef::Config['file_cache_path']
# Ruby 1.8.6 does not have rpartition, unfortunately
syslibdir = node['apache']['lib_dir'][0..node['apache']['lib_dir'].rindex('/')]
code <<-EOH
tar zxvf libopkele-2.0.4.tar.gz
cd libopkele-2.0.4 && ./configure --prefix=/usr --libdir=#{syslibdir}
#{make_cmd} && #{make_cmd} install
EOH
creates "#{syslibdir}/libopkele.a"
end
end
version = node['apache']['mod_auth_openid']['version']
configure_flags = node['apache']['mod_auth_openid']['configure_flags']
remote_file "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}.tar.gz" do
source node['apache']['mod_auth_openid']['source_url']
mode '0644'
action :create_if_missing
end
directory node['apache']['mod_auth_openid']['cache_dir'] do
owner node['apache']['user']
group node['apache']['group']
mode '0700'
end
bash 'untar mod_auth_openid' do
cwd Chef::Config['file_cache_path']
code <<-EOH
tar zxvf mod_auth_openid-#{version}.tar.gz
EOH
creates "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}/src/types.h"
end
bash 'compile mod_auth_openid' do
cwd "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}"
code <<-EOH
./autogen.sh
./configure #{configure_flags.join(' ')}
perl -pi -e "s/-i -a -n 'authopenid'/-i -n 'authopenid'/g" Makefile
#{make_cmd}
EOH
creates "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}/src/.libs/mod_auth_openid.so"
notifies :run, 'bash[install-mod_auth_openid]', :immediately
not_if "test -f #{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}/src/.libs/mod_auth_openid.so"
end
bash 'install-mod_auth_openid' do
cwd "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}"
code <<-EOH
#{make_cmd} install
EOH
creates "#{node['apache']['libexec_dir']}/mod_auth_openid.so"
notifies :restart, 'service[apache2]'
not_if "test -f #{node['apache']['libexec_dir']}/mod_auth_openid.so"
end
template "#{node['apache']['dir']}/mods-available/authopenid.load" do
source 'mods/authopenid.load.erb'
owner 'root'
group node['apache']['root_group']
mode '0644'
end
apache_module 'authopenid' do
filename 'mod_auth_openid.so'
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_anon
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authn_anon'

View File

@@ -0,0 +1,23 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_core
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
if node['apache']['version'] == '2.4'
apache_module 'authn_core'
else
Chef::Log.info('Ignoring apache2::mod_authn_core. not available until apache 2.4')
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_dbd
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authn_dbd'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_dbm
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authn_dbm'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_file
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authn_file'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authn_socache
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authn_socache'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authnz_fcgi
#
# Copyright:: 2016, Alexander van Zoest
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authnz_fcgi'

View File

@@ -0,0 +1,22 @@
#
# Cookbook:: apache2
# Recipe:: mod_authnz_ldap
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include_recipe 'apache2::mod_ldap'
apache_module 'authnz_ldap'

View File

@@ -0,0 +1,24 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_core
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
if node['apache']['version'] == '2.4'
apache_module 'authz_core'
else
apache_module 'authz_default'
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_dbd
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_dbd'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_dbm
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_dbm'

View File

@@ -0,0 +1,21 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_default
#
# Copyright:: 2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
log 'apache2::mod_authz_default is deprecated in favor of apache2::mod_authz_core. Please adjust your cookbooks'
include_recipe 'apache2::mod_authz_core'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_groupfile
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_groupfile'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_host
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_host'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_owner
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_owner'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_authz_user
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'authz_user'

View File

@@ -0,0 +1,22 @@
#
# Cookbook:: apache2
# Recipe:: mod_autoindex
#
# Copyright:: 2008-2013, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'autoindex' do
conf true
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_buffer
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'buffer'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_cache
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'cache'

View File

@@ -0,0 +1,22 @@
#
# Cookbook:: apache2
# Recipe:: mod_cache_disk
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'cache_disk' do
conf true
end

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_cache_socache
#
# Copyright:: 2013, OneHealth Solutions, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'cache_socache'

View File

@@ -0,0 +1,20 @@
#
# Cookbook:: apache2
# Recipe:: mod_cern_meta
#
# Copyright:: 2016, Alexander van Zoest
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'cern_meta'

View File

@@ -0,0 +1,26 @@
#
# Cookbook:: apache2
# Recipe:: mod_cgi
#
# Copyright:: 2008-2013, Chef Software, Inc.
# Copyright:: 2014, Viverae, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
if node['apache']['mpm'] == 'prefork'
apache_module 'cgi'
else
Chef::Log.warn "apache::mod_cgi. Your MPM #{node['apache']['mpm']} seems to be threaded. Selecting cgid instead of cgi."
apache_module 'cgid'
end

View File

@@ -0,0 +1,23 @@
#
# Cookbook:: apache2
# Recipe:: mod_cgid
#
# Copyright:: 2013, OneHealth Solutions, Inc.
# Copyright:: 2014, Viverae, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apache_module 'cgid' do
conf true
end

Some files were not shown because too many files have changed in this diff Show More