Commit Graph
100 Commits
Author SHA1 Message Date
greg 6b316f28fb Start from the current config file in Andromeda
Only changes:

Enable the new SQL schema that allows multiple vhosts in the same
database, move mod_muc config for kosmos.org to an append_host_config
directive
2019-03-27 12:56:46 +01:00
greg ce4a4bffd9 Enable OMEMO for clients using Conversations 2019-03-27 11:57:59 +01:00
greg 70fb97ba4b Add the admin_update_sql module
This allows to upgrade from the old database schema to the new one that
works for multiple virtual hosts:
https://blog.process-one.net/ejabberd-18-03/

    ejabberdctl update_sql
2019-03-27 10:35:12 +01:00
greg 6833c23a01 Replace host_config with append_host_config
This was causing only the mod_muc module to be enabled for kosmos.org

See the Virtual Hosting section of the docs
https://docs.ejabberd.im/admin/configuration/
2019-03-26 15:52:11 +01:00
greg c3da352458 Create the hook subfolders too 2019-03-26 15:23:58 +01:00
greg 20e0bb6983 Add the max_user_conferences setting for mod_muc 2019-03-26 15:22:50 +01:00
greg 3047dbe99f Fix botched merge 2019-03-19 19:41:26 +01:00
greg ec58597320 Set up Let's Encrypt for the kosmos.org ejabberd server 2019-03-19 16:27:46 +01:00
greg 39f23dd373 Move the version and checksum to attributes 2019-03-19 16:26:49 +01:00
greg 2cd85afb28 Update ejabberd to 19.02 2019-03-19 10:48:34 +01:00
greg 18b12a1dc4 Set the ejabberd postgresql user from an encrypted data bag 2019-03-19 10:48:34 +01:00
greg b5bd389e77 Set postgresql password from an encrypted data bag 2019-03-19 10:43:14 +01:00
greg 5ad24888ff Add our kosmos.org accounts as admins 2019-03-19 10:43:13 +01:00
greg 712507bed2 Get rid of the 5apps.com config for now 2019-03-19 10:43:13 +01:00
greg 8e052ab53a Add the kosmos-postgresql and ejabberd backup recipes 2019-03-19 10:43:13 +01:00
greg a9d1b38f15 Update the postgresql cookbook 2019-03-19 10:43:13 +01:00
greg 32c4896eb7 Add a recipe that sets up backups for ejabberd 2019-03-19 10:43:13 +01:00
greg 39821ad253 Update the ipfs cookbook 2019-03-19 10:43:10 +01:00
greg 28b4193982 Add a dependency on the backup cookbook 2019-03-19 10:41:25 +01:00
greg b5d76f7eaa Get rid of the deprecated set_unless 2019-03-19 10:41:25 +01:00
greg 2a4940b361 Install Ruby in the backup cookbook
Also switch to the 5.0 beta version, it works with modern Rubies
2019-03-19 10:41:23 +01:00
greg 3a8a2b6be0 Switch the config to the latest version without comments
Taken from the 18.12.1 default config
2019-03-19 10:38:34 +01:00
greg aa64456fc7 Reload ejabberd when the config file changes 2019-03-19 10:38:34 +01:00
greg 70c4419c2a Add initial kosmos-postgresql cookbook
This is to install PostgreSQL all in one place instead of for each
service that needs it (Mastodon, ejabberd, ...)
2019-03-19 10:38:34 +01:00
greg c861c73025 Initial kosmos-ejabberd cookbook
No Let's Encrypt cert generation recipe for now

Hardcoded PostgreSQL password too
2019-03-19 10:38:34 +01:00
greg 5fa0fa661b Install certbot from the direct download when on 15.04
It does not have a ppa release. Add a cron job for renewal. When using
the PPA a Systemd timer is part of the package
2019-03-18 16:52:05 +01:00
greg 17f1b2a20a Create a nginx_certbot_site resource to remove duplication
It creates a folder, the nginx vhost for certbot and HTTP redirects, and
also runs certbot and recreates the nginx vhost that includes the TLS
cert
2019-03-15 19:03:28 +01:00
greg b30dcab4da Remove an IPFS port from the ejabberd firewall 2019-03-15 12:30:56 +01:00
greg c3135402ad Move the nginx hook to the deploy directory, create renewal-hooks dir 2019-03-14 20:21:34 +01:00
greg f50f48b55b Remove the old deploy hook, we moved it to the certbot config dir 2019-03-14 18:07:52 +01:00
greg a978f2a6a5 Fix the path to the Gandi DNS certbot script 2019-03-14 18:06:55 +01:00
greg f12ddefec8 Move the Gandi DNS hook for certbot to the kosmos-base cookbook 2019-03-14 18:01:29 +01:00
greg 65482f09c3 Extract the post hooks to their own script in Certbot's config dir 2019-03-14 15:21:50 +01:00
greg 36e046ea73 Run certbot using the binary provided by the Ubuntu PPA 2019-03-14 10:52:44 +01:00
greg fa27187f11 Switch from the git version of certbot to the Ubuntu PPA 2019-03-14 10:49:47 +01:00
greg fc265014de Switch back to the upstream nginx cookbook
chef_nginx is deprecated
2019-03-14 10:35:11 +01:00
greg 566e4278fd Update the ipfs cookbook 2019-03-13 15:11:02 +01:00
greg fee449f347 Set the ipfs user's shell to bash 2019-03-13 11:00:21 +01:00
greg b661f6780c Update chef, berkshelf and knife-solo gems 2019-02-26 14:51:56 +01:00
greg 886958270f Set REDIS_URL for botka
It was using the same Redis key to write its brain as hal8000 (`hubot:storage`),
causing scores to not be persisted to Redis. Right now botka is only
saving the online users to the database. It looks like this was only
enabled recently, as the last saved score was from Feb 8

Fixes #14
2019-02-25 18:29:18 +01:00
greg 5fc158cb5e Install the latest version of the backup gem 2019-02-25 18:28:55 +01:00
greg 2e1cdbecc6 Update the ipfs cookbook 2019-02-25 12:57:11 +01:00
greg 33b8b39be2 Update ipfs and ipfs-cluster 2019-02-25 12:50:07 +01:00
greg 56d14748f9 Fix the Let's Encrypt renew hook script
Only copy over the certs to the prosody directory if it's the 5apps.com
wildcard, not for any 5apps.com subdomain
2018-12-20 17:26:37 +01:00
greg 74a1f1b8a1 Update the ipfs cookbook to the latest version 2018-12-11 10:46:21 +01:00
greg 32b89422e7 Merge branch 'feature/5apps_xmpp_certs' into 'master'
Automatically generate a Let's Encrypt cert for all 5apps xmpp domains

See merge request kosmos/chef!8
2018-12-03 16:32:25 +00:00
greg 9c97cb4a58 Remove empty environment 2018-12-03 16:53:41 +01:00
greg 1e3f84ed9b Merge branch 'master' into feature/5apps_xmpp_certs 2018-12-03 16:52:26 +01:00
greg c1ea7d347d Merge branch 'bugfix/27-backup_notifications' into 'master'
Fix backup gem notifications failing

Closes #27

See merge request kosmos/chef!13
2018-11-09 17:07:22 +00:00
greg ffc6858dcc Do not pass the password on the command line anymore to fix a warning
Since email notifications work now we do not want warnings. Write an
option file with the credentials for mysqldump
(https://dev.mysql.com/doc/refman/5.7/en/option-files.html)
2018-11-09 14:08:32 +01:00
greg 7073e5d574 Fix backup gem notifications failing
This was caused by a bogus PATH that did not include /usr/sbin. The root
user's default PATH includes that, so /usr/sbin/sendmail provided by
postfix is in it

Fixes #27
2018-11-09 14:08:32 +01:00
greg 81c68a9609 Merge branch 'master' into feature/5apps_xmpp_certs 2018-11-08 14:13:09 +01:00
greg bb7dc26f43 Run IPFS Cluster on dev too 2018-10-26 18:30:13 +02:00
greg d65de56412 Add IPFS Cluster support
See merge request kosmos/chef!7
2018-10-26 16:29:40 +00:00
greg 3ce78a9ef4 Merge branch 'master' into feature/25-ipfs_cluster 2018-10-26 17:54:05 +02:00
greg edfe891f48 Add the kosmos-ipfs::letsencrypt recipe to Andromeda
It has been extracted from the ipfs-kosmos::default recipe
2018-10-26 17:51:16 +02:00
greg 5e973b6875 Use the kosmos-ipfs recipe in the hal8000 recipe
This changes the port to not conflict with hubot and sets the gateway to
be writable
2018-10-26 17:49:06 +02:00
greg a7871770b8 Remove an unnecessary require and letsencrypt recipe
This way kosmos-ipfs::default can be used without adding the Let's
Encrypt certificate
2018-10-26 17:46:47 +02:00
greg 4c7dc764a4 Add the updated Berksfile.lock 2018-10-26 17:06:03 +02:00
greg f0542bdf2e Update the ipfs cookbook 2018-10-26 17:02:30 +02:00
greg 4a42fc4ae3 Merge branch 'master' into feature/25-ipfs_cluster 2018-10-26 16:46:44 +02:00
greg 4dff379065 Merge branch 'feature/s3_oncall' into 'master'
Set the S3 credentials to write the new oncall file

See merge request kosmos/chef!12
2018-10-26 13:08:15 +00:00
greg d236d138dc Set the S3 credentials to write the new oncall file 2018-10-26 13:38:12 +02:00
greg 293d1a8a8a Fix formatting 2018-10-04 18:59:30 +02:00
greg 8da7ebbef0 Add initial docs for ejabberd 2018-10-04 18:56:35 +02:00
greg 185649a5f9 Automatically generate a Let's Encrypt cert for all 5apps xmpp domains
Uses the Gandi LiveDNS API
2018-09-04 17:38:17 +02:00
greg e6a3460a2c Make the number of sidekiq threads configurable, bump to 25 2018-09-03 19:11:42 +02:00
greg 1f528a832d Add a role to set up a cluster node with TLS 2018-08-16 16:01:24 +02:00
greg f626131868 Build a cluster node on Andromeda 2018-08-16 16:00:44 +02:00
greg 2f87e7c07c Add the ability to override the IPFS port that nginx connects to
This allows us to use the API proxy from the cluster
2018-08-16 15:59:44 +02:00
greg f31322ab81 Move the firewall rule for ipfs p2p to the right recipe 2018-08-16 15:59:06 +02:00
greg 741c4a5192 Move the ipfs cookbook to its own GitHub repository 2018-08-13 12:05:50 +02:00
greg de32a7c595 Remove the Let's Encrypt recipe from the default one
We only need one node with a TLS cert
2018-08-13 12:05:11 +02:00
greg b36e6a718a Add a recipe that sets up the cluster and enables the firewall 2018-08-13 12:05:00 +02:00
greg 7a8042e356 Add initial IPFS Cluster support
It uses an encrypted data bag to store the cluster secret that has to be
the same on all members of a cluster. It installs ipfs-cluster-service
and ipfs-cluster-ctl and starts the cluster

Refs #25
2018-08-06 18:05:44 +02:00
greg d0f2275ebb Fix the ipfs config
The whole thing was inconsistent and didn't work when creating a server
from scratch
2018-08-06 12:14:20 +02:00
greg 7165bf49c6 Add missing recipe, used to set up andromeda's firewall rules 2018-06-07 12:33:38 +02:00
greg 08172b7e04 Add node file for andromeda server 2018-04-17 18:55:48 +02:00
greg 44625ee017 Don't connect to IPFS through localhost in hal8000
Use the new IPFS node on the new server
2018-04-17 18:52:35 +02:00
greg 11db96b3a1 Update IPFS to the latest release
Also fix the ipfs config
2018-04-17 18:51:53 +02:00
greg b4624cf2aa Don't set the default variable to a type that's not allowed 2018-04-17 16:08:30 +02:00
greg b35c4bc097 Update Chef version 2018-04-17 16:08:15 +02:00
greg 14ad962f37 Add missing cookbook files 2018-04-17 16:05:39 +02:00
greg b92cc6e5d7 Update apt cookbook 2018-04-17 13:43:22 +02:00
greg 6a86fc64fa Add configuration for knife-solo
Disable Berkshelf integration and set the version of Chef to install on
the server
2018-04-17 13:42:38 +02:00
greg a35867f3d9 Update build-essential cookbook 2018-04-17 13:31:28 +02:00
greg dd47030301 Update firewall cookbook 2018-04-17 13:27:35 +02:00
greg c3933012dd We install nodejs from package, update paths 2018-04-17 13:19:23 +02:00
greg d26d2e17fd Install nodejs from packages instead of building from source 2018-04-17 13:19:03 +02:00
greg bd71418ec2 Changes for the new sudo cookbook 2018-04-17 13:18:36 +02:00
greg 157ccdc8b7 Update nodejs, sudo and users cookbooks 2018-04-17 13:18:09 +02:00
greg ff2f424ddb Update poise-archive and poise-service cookbooks 2018-04-17 12:24:17 +02:00
greg 90bb872305 Update poise-javascript and poise-ruby cookbooks 2018-04-17 12:21:48 +02:00
greg d3aa94aab5 Switch from Batali to Berkshelf to manage upstream cookbooks 2018-04-17 12:16:20 +02:00
greg 0c80aaabd4 Update Node to the latest LTS release (8.11.1) 2018-04-06 14:02:59 +02:00
greg 36813b38d6 Remove wordpress from the dev node 2018-03-20 16:09:19 +01:00
greg 8653a8fa97 Use jemalloc1 on Puma and Sidekiq to lower the memory usage
More details:
https://www.speedshop.co/2017/12/04/malloc-doubles-ruby-memory.html
2018-03-20 16:07:55 +01:00
greg b8853a1b5d Install lua-dbi-sqlite3 and set the prosody version 2018-03-20 16:06:28 +01:00
greg 6ae27293ce Set the number of ActiveRecord DB pools to 50 in the Sidekiq service 2018-02-28 15:11:22 +01:00
greg aaabeee1fb Remove extra empty external-scripts that disabled modules for botka 2017-10-27 10:34:48 +02:00