<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Greg</id>
	<title>Kosmos Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Greg"/>
	<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/Special:Contributions/Greg"/>
	<updated>2026-04-05T18:53:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=940</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=940"/>
		<updated>2022-05-11T14:34:23Z</updated>

		<summary type="html">&lt;p&gt;Greg: Move our LDAP service to a VM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
''Retired''&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
''retired''&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-4&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL master node&lt;br /&gt;
* zerotier-2&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* uploads-1&lt;br /&gt;
** ejabberd file uploads&lt;br /&gt;
&lt;br /&gt;
==== fornax.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* Kosmos website (kosmos.org)&lt;br /&gt;
* Kosmos static assets (assets.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* mastodon-3&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* nodejs-4&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
** [https://github.com/67P/kredits-github kredits-github]&lt;br /&gt;
** sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* postgres-4&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
* rsk-mainnet-2&lt;br /&gt;
** rsk.kosmos.org (mainnet)&lt;br /&gt;
* rsk-testnet-3&lt;br /&gt;
** rsk-testnet.kosmos.org (testnet)&lt;br /&gt;
* gitea-2&lt;br /&gt;
** Gitea (gitea.kosmos.org)&lt;br /&gt;
* discourse-2&lt;br /&gt;
** Discourse (community.kosmos.org)&lt;br /&gt;
* drone-1&lt;br /&gt;
** Drone CI (drone.kosmos.org)&lt;br /&gt;
* ejabberd-7&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* ldap-2.kosmos.org&lt;br /&gt;
** ldap.kosmos.local ([[Infrastructure:LDAP]])&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=935</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=935"/>
		<updated>2022-03-13T12:09:48Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
''Retired''&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
* Kosmos website (kosmos.org)&lt;br /&gt;
* Kosmos static assets (assets.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-4&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* ejabberd-6&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== fornax.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* mastodon-2&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* nodejs-3&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
** [https://github.com/67P/kredits-github kredits-github]&lt;br /&gt;
** sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* zerotier-2&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* postgres-4&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
* rsk-mainnet-1&lt;br /&gt;
** rsk.kosmos.org (mainnet)&lt;br /&gt;
* rsk-testnet-2&lt;br /&gt;
** rsk-testnet.kosmos.org (testnet)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=933</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=933"/>
		<updated>2022-02-17T18:04:31Z</updated>

		<summary type="html">&lt;p&gt;Greg: Create new VMs on fornax, general cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
''Retired''&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
* Kosmos website (kosmos.org)&lt;br /&gt;
* Kosmos static assets (assets.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-3&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* ejabberd-4&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== fornax.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* mastodon-2&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* nodejs-3&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
** [https://github.com/67P/kredits-github kredits-github]&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* zerotier-2&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* postgres-4&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
* rsk-mainnet-1&lt;br /&gt;
** rsk.kosmos.org (mainnet)&lt;br /&gt;
* rsk-testnet-2&lt;br /&gt;
** rsk-testnet.kosmos.org (testnet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=928</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=928"/>
		<updated>2022-01-18T19:14:58Z</updated>

		<summary type="html">&lt;p&gt;Greg: Document new ejabberd cluster currently running on draco&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
''Retired''&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* mastodon-1&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* nodejs-2&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
** [https://github.com/67P/kredits-github kredits-github]&lt;br /&gt;
* zerotier-1&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* postgres-3&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-3&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* ejabberd-4&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=861</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=861"/>
		<updated>2021-01-25T13:15:42Z</updated>

		<summary type="html">&lt;p&gt;Greg: Update the PostgreSQL setup after replacing it with VMs https://gitea.kosmos.org/kosmos/chef/pulls/282&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* ejabberd-2&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* mastodon-1&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* nodejs-2&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
** [https://github.com/67P/kredits-github kredits-github]&lt;br /&gt;
* zerotier-1&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* postgres-3&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-1&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=857</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=857"/>
		<updated>2021-01-13T13:27:41Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add new mastodon and postgres VMs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* ejabberd-2&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* zerotier-1&lt;br /&gt;
** Zerotier One network controller&lt;br /&gt;
* mastodon-1&lt;br /&gt;
** [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
** NBXplorer&lt;br /&gt;
** BTCPay Server (btcpay.kosmos.org)&lt;br /&gt;
** LND (ln2.kosmos.org, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
** Ride The Lightning (10.1.1.163:3000)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-1&lt;br /&gt;
** ejabberd cluster node (kosmos.org XMPP and kosmos.chat MUC)&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
* postgres-2&lt;br /&gt;
** PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=829</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=829"/>
		<updated>2020-11-25T18:20:56Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add new services for centaurus and draco&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in ops@kosmos.chat if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea (gitea.kosmos.org)&lt;br /&gt;
* Discourse (community.kosmos.org)&lt;br /&gt;
* Drone (drone.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* ejabberd-2&lt;br /&gt;
** ejabberd cluster node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* ejabberd-1&lt;br /&gt;
** ejabberd cluster node&lt;br /&gt;
* akkounts-1&lt;br /&gt;
** Akkounts (accounts.kosmos.org)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=782</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=782"/>
		<updated>2020-10-06T09:29:03Z</updated>

		<summary type="html">&lt;p&gt;Greg: Document resetting a user's password&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# example admin for kosmos.org&lt;br /&gt;
dn: cn=example_admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_admin&lt;br /&gt;
sn: example_admin&lt;br /&gt;
uid: example_admin&lt;br /&gt;
mail: example_admin@example.com&lt;br /&gt;
admin: true&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Admin commands ==&lt;br /&gt;
&lt;br /&gt;
The ''ldapsearch'' and ''ldapadd'' command-line tool are provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
This can also be done using the LDAP client library of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Listing accounts ===&lt;br /&gt;
&lt;br /&gt;
 $ ldapsearch -x -W -D 'cn=Directory Manager' -b &amp;quot;ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot; -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Adding an account ===&lt;br /&gt;
&lt;br /&gt;
==== Generate a hashed password ====&lt;br /&gt;
&lt;br /&gt;
This example is using Ruby, but anything that can generate a salted SHA512 hash will also work.&lt;br /&gt;
&lt;br /&gt;
 $ ruby -r base64 -r digest -r securerandom -e 'salt = SecureRandom.hex(32); password = &amp;quot;random_password&amp;quot;; puts &amp;quot;{SSHA512}&amp;quot; + Base64.strict_encode64(Digest::SHA512.digest(password+salt) + salt)'&lt;br /&gt;
 {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
&lt;br /&gt;
==== Add the account ====&lt;br /&gt;
&lt;br /&gt;
 $ ldapadd -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 objectClass: account&lt;br /&gt;
 objectClass: person&lt;br /&gt;
 objectClass: extensibleObject&lt;br /&gt;
 cn: alice&lt;br /&gt;
 sn: alice&lt;br /&gt;
 uid: alice&lt;br /&gt;
 mail: alice@example.com&lt;br /&gt;
 userPassword: {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 adding new entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Reset a user's password ===&lt;br /&gt;
&lt;br /&gt;
This can also be used to replace any field, for example the user's email (''mail'')&lt;br /&gt;
&lt;br /&gt;
 $ ldapmodify -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 replace: userPassword&lt;br /&gt;
 userPassword: {SSHA512}tJo0ttExKmR8UMbvygtvA23cJ0XD3I6zPxd4B+l9225XynaY8kACoUNSmr4SPjOxPWRqEb4mEIJ5sN8MTOvnpTZmNGRlNDViNGY5YzQwYjM4ZmY3NDBkYjJkZjVkMWE4MjVmYTIxMjk4NmZlYWY1Yjk0MjUyOGNiZDYyZWRhNWE=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 modifying entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=781</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=781"/>
		<updated>2020-10-06T09:22:48Z</updated>

		<summary type="html">&lt;p&gt;Greg: /* Add the account */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# example admin for kosmos.org&lt;br /&gt;
dn: cn=example_admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_admin&lt;br /&gt;
sn: example_admin&lt;br /&gt;
uid: example_admin&lt;br /&gt;
mail: example_admin@example.com&lt;br /&gt;
admin: true&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Admin commands ==&lt;br /&gt;
&lt;br /&gt;
The ''ldapsearch'' and ''ldapadd'' command-line tool are provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
This can also be done using the LDAP client library of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Listing accounts ===&lt;br /&gt;
&lt;br /&gt;
 $ ldapsearch -x -W -D 'cn=Directory Manager' -b &amp;quot;ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot; -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Adding an account ===&lt;br /&gt;
&lt;br /&gt;
==== Generate a hashed password ====&lt;br /&gt;
&lt;br /&gt;
This example is using Ruby, but anything that can generate a salted SHA512 hash will also work.&lt;br /&gt;
&lt;br /&gt;
 $ ruby -r base64 -r digest -r securerandom -e 'salt = SecureRandom.hex(32); password = &amp;quot;random_password&amp;quot;; puts &amp;quot;{SSHA512}&amp;quot; + Base64.strict_encode64(Digest::SHA512.digest(password+salt) + salt)'&lt;br /&gt;
 {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
&lt;br /&gt;
==== Add the account ====&lt;br /&gt;
&lt;br /&gt;
 $ ldapadd -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 objectClass: account&lt;br /&gt;
 objectClass: person&lt;br /&gt;
 objectClass: extensibleObject&lt;br /&gt;
 cn: alice&lt;br /&gt;
 sn: alice&lt;br /&gt;
 uid: alice&lt;br /&gt;
 mail: alice@example.com&lt;br /&gt;
 userPassword: {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 adding new entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=780</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=780"/>
		<updated>2020-10-06T09:22:38Z</updated>

		<summary type="html">&lt;p&gt;Greg: /* Listing accounts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# example admin for kosmos.org&lt;br /&gt;
dn: cn=example_admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_admin&lt;br /&gt;
sn: example_admin&lt;br /&gt;
uid: example_admin&lt;br /&gt;
mail: example_admin@example.com&lt;br /&gt;
admin: true&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Admin commands ==&lt;br /&gt;
&lt;br /&gt;
The ''ldapsearch'' and ''ldapadd'' command-line tool are provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
This can also be done using the LDAP client library of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Listing accounts ===&lt;br /&gt;
&lt;br /&gt;
 $ ldapsearch -x -W -D 'cn=Directory Manager' -b &amp;quot;ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot; -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Adding an account ===&lt;br /&gt;
&lt;br /&gt;
==== Generate a hashed password ====&lt;br /&gt;
&lt;br /&gt;
This example is using Ruby, but anything that can generate a salted SHA512 hash will also work.&lt;br /&gt;
&lt;br /&gt;
 $ ruby -r base64 -r digest -r securerandom -e 'salt = SecureRandom.hex(32); password = &amp;quot;random_password&amp;quot;; puts &amp;quot;{SSHA512}&amp;quot; + Base64.strict_encode64(Digest::SHA512.digest(password+salt) + salt)'&lt;br /&gt;
 {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
&lt;br /&gt;
==== Add the account ====&lt;br /&gt;
&lt;br /&gt;
 ldapadd -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 objectClass: account&lt;br /&gt;
 objectClass: person&lt;br /&gt;
 objectClass: extensibleObject&lt;br /&gt;
 cn: alice&lt;br /&gt;
 sn: alice&lt;br /&gt;
 uid: alice&lt;br /&gt;
 mail: alice@example.com&lt;br /&gt;
 userPassword: {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 adding new entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=756</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=756"/>
		<updated>2020-09-24T15:34:30Z</updated>

		<summary type="html">&lt;p&gt;Greg: Move ipfs.kosmos.org to a VM running on draco&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo/Zero, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Host:&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
VMs:&lt;br /&gt;
&lt;br /&gt;
* bitcoin-2&lt;br /&gt;
** bitcoind (mainnet)&lt;br /&gt;
* wiki-1&lt;br /&gt;
** wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* ipfs-1&lt;br /&gt;
** ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
*** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/148.251.237.73/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
** [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP]])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Kosmos_Summit_2020&amp;diff=754</id>
		<title>Kosmos Summit 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Kosmos_Summit_2020&amp;diff=754"/>
		<updated>2020-09-24T14:38:25Z</updated>

		<summary type="html">&lt;p&gt;Greg: /* Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Location: Sambuca di Sicilia, Italy (HackerHouse/L6) + Remote (Zoom, or Jitsi Meet, or similar)&lt;br /&gt;
* Dates: October 2020&lt;br /&gt;
&lt;br /&gt;
All core contributor hands on deck! After having drifted on the oceans for a while, we need to chart a good course and set the sails.&lt;br /&gt;
&lt;br /&gt;
With all the basics for rapid feature development finally in place before this year's gathering, we'll be able to focus entirely on planning for, and hacking on, Kosmos Chat and Kosmos Services. And with our new initial budget, we can also start trialing our ideas for a sustainable, co-operative, open-source organization via Kosmos Kredits. Let's create a new roadmap and see where it takes us!&lt;br /&gt;
&lt;br /&gt;
== Dates ==&lt;br /&gt;
&lt;br /&gt;
Everyone is invited in October to visit Sicily and HackerHouse for a while and co-work from there (both on Kosmos and non-Kosmos stuff). In addition to the flexible long-form gathering, we will have two days or so of focused sessions, in which we will discuss and collaborate on the important topics.&lt;br /&gt;
&lt;br /&gt;
Dates for the Summit: October 9/10/11 (main day on Saturday).&lt;br /&gt;
&lt;br /&gt;
== Accommodations ==&lt;br /&gt;
&lt;br /&gt;
There are some beds at the house itself, and also a variety of apartments in walking distance that we can use. For leisure time, there are both beaches and mountains, as well as old towns and ruins dating back to hundreds of years before the rise of Rome. Go explore!&lt;br /&gt;
&lt;br /&gt;
== Getting there ==&lt;br /&gt;
&lt;br /&gt;
Airports PMO and TPS are both ~1:15 hrs drive to Sambuca. PMO serves the most destinations. Please coordinate with others for sharing rental cars and/or getting picked up from the airport.&lt;br /&gt;
&lt;br /&gt;
=== COVID-19 notes ===&lt;br /&gt;
&lt;br /&gt;
Sambuca hasn't recorded a single case to date, and there are currently no travel restrictions in Italy for EU residents. Everything is open for business, but mask usage is currently required for shared indoor spaces other than restaurants. These notes will be kept up to date until the summit.&lt;br /&gt;
&lt;br /&gt;
== Remote participation ==&lt;br /&gt;
&lt;br /&gt;
Whoever cannot or does not want to participate in person, can also call in via audio/video chat for the focus sessions. We are going to upgrade the buildings's Internet connection with our provider for the Summit days, and we will organize everything needed for decent remote participation. So if you cannot or do not want to travel at the moment, it will not be necessary to do so.&lt;br /&gt;
&lt;br /&gt;
Any and all help with organizing/improving remote participation is most appreciated, of course! Please join one of the upcoming weekly calls if you want to contribute to this topic.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
* raucao&lt;br /&gt;
* galfert (remote)&lt;br /&gt;
* slvrbckt (possibly in person)&lt;br /&gt;
* greg (remote)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
&lt;br /&gt;
* Set up physical remote conferencing equipment/location&lt;br /&gt;
* Set up video conferencing software and room(s) ([https://gitea.kosmos.org/kosmos/chef/issues/148 Jitsi Meet?])&lt;br /&gt;
* Set up Etherpad(s) or similar, for live collaborative docs&lt;br /&gt;
* Set up dedicated chatroom(s) for the summit? (look at Jitsi meet XMPP integration first)&lt;br /&gt;
* Create agenda with topics to discuss/work on (public or not?)&lt;br /&gt;
* Create session schedule (Unconf style. Just agree on session times and perhaps mods beforehand, so people can plan lunch, dinner, etc.)&lt;br /&gt;
* Document remote participation details (for everyone to know exactly how things will work and when)&lt;br /&gt;
* Grocery shopping for local participants&lt;br /&gt;
&lt;br /&gt;
=== Done ===&lt;br /&gt;
&lt;br /&gt;
* 🗹 Confirm dates and modes of participation&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* https://m.signalvnoise.com/options-not-roadmaps/&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=740</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=740"/>
		<updated>2020-09-16T09:30:42Z</updated>

		<summary type="html">&lt;p&gt;Greg: Fix the suffix for the search command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# example admin for kosmos.org&lt;br /&gt;
dn: cn=example_admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_admin&lt;br /&gt;
sn: example_admin&lt;br /&gt;
uid: example_admin&lt;br /&gt;
mail: example_admin@example.com&lt;br /&gt;
admin: true&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Admin commands ==&lt;br /&gt;
&lt;br /&gt;
The ''ldapsearch'' and ''ldapadd'' command-line tool are provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
This can also be done using the LDAP client library of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Listing accounts ===&lt;br /&gt;
&lt;br /&gt;
 ldapsearch -x -W -D 'cn=Directory Manager' -b &amp;quot;ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot; -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Adding an account ===&lt;br /&gt;
&lt;br /&gt;
==== Generate a hashed password ====&lt;br /&gt;
&lt;br /&gt;
This example is using Ruby, but anything that can generate a salted SHA512 hash will also work.&lt;br /&gt;
&lt;br /&gt;
 $ ruby -r base64 -r digest -r securerandom -e 'salt = SecureRandom.hex(32); password = &amp;quot;random_password&amp;quot;; puts &amp;quot;{SSHA512}&amp;quot; + Base64.strict_encode64(Digest::SHA512.digest(password+salt) + salt)'&lt;br /&gt;
 {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
&lt;br /&gt;
==== Add the account ====&lt;br /&gt;
&lt;br /&gt;
 ldapadd -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 objectClass: account&lt;br /&gt;
 objectClass: person&lt;br /&gt;
 objectClass: extensibleObject&lt;br /&gt;
 cn: alice&lt;br /&gt;
 sn: alice&lt;br /&gt;
 uid: alice&lt;br /&gt;
 mail: alice@example.com&lt;br /&gt;
 userPassword: {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 adding new entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=736</id>
		<title>Services:Accounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=736"/>
		<updated>2020-09-15T10:28:25Z</updated>

		<summary type="html">&lt;p&gt;Greg: Document LDAP admin commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Unified accounts for Kosmos services ==&lt;br /&gt;
&lt;br /&gt;
'''''This is work in progress!''''' For now, unified accounts are only enabled on this wiki and [[Services:XMPP|XMPP]]. We have decided to use LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt; to let users have the same credentials (username and password) across Kosmos services.&lt;br /&gt;
&lt;br /&gt;
The LDAP server is running on ldap.kosmos.org&amp;lt;ref&amp;gt;[[Infrastructure#barnard.kosmos.org|Infrastructure]]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Admin commands ==&lt;br /&gt;
&lt;br /&gt;
The ''ldapsearch'' and ''ldapadd'' command-line tool are provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
This can also be done using the LDAP client library of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Listing accounts ===&lt;br /&gt;
&lt;br /&gt;
 ldapsearch -x -W -D 'cn=Directory Manager' -b &amp;quot;ou=users,dc=kosmos,dc=org&amp;quot; -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Adding an account ===&lt;br /&gt;
&lt;br /&gt;
==== Generate a hashed password ====&lt;br /&gt;
&lt;br /&gt;
This example is using Ruby, but anything that can generate a salted SHA512 hash will also work.&lt;br /&gt;
&lt;br /&gt;
 $ ruby -r base64 -r digest -r securerandom -e 'salt = SecureRandom.hex(32); password = &amp;quot;random_password&amp;quot;; puts &amp;quot;{SSHA512}&amp;quot; + Base64.strict_encode64(Digest::SHA512.digest(password+salt) + salt)'&lt;br /&gt;
 {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
&lt;br /&gt;
==== Add the account ====&lt;br /&gt;
&lt;br /&gt;
 ldapadd -x -W -D 'cn=Directory Manager' -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot; &amp;lt;&amp;lt; EOF&lt;br /&gt;
 dn: cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 objectClass: account&lt;br /&gt;
 objectClass: person&lt;br /&gt;
 objectClass: extensibleObject&lt;br /&gt;
 cn: alice&lt;br /&gt;
 sn: alice&lt;br /&gt;
 uid: alice&lt;br /&gt;
 mail: alice@example.com&lt;br /&gt;
 userPassword: {SSHA512}WsELiZM9MlUM004LF3jpV5OuV+qTsGoRR1RzffdtUuPpzOl57I7WmKL+S46/KR8HUtYPRh1ttmsNvGUX/agxLjBkZGI0MTczNWNiZjkxMDI0NGEzZTE2ZDBlNGJkMDQ5N2ZhMjVjMjQ1NzFlZmJlNmZmODhmNjE5OGM1YWM3Zjc=&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 adding new entry &amp;quot;cn=alice,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Changing your password ==&lt;br /&gt;
&lt;br /&gt;
Changing your password will be made possible in the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]. But for now, you have these two options:&lt;br /&gt;
&lt;br /&gt;
=== Via XMPP client ===&lt;br /&gt;
&lt;br /&gt;
You can change your Kosmos account password globally from any XMPP client, which allows you to change your XMPP password.&lt;br /&gt;
&lt;br /&gt;
=== Via command-line interface ===&lt;br /&gt;
&lt;br /&gt;
The ''ldappasswd'' command-line tool is provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
The following command will set your new password, if you type your current password (replace '''yourusername''' with your username):&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -x -D cn=''''yourusername'''',ou=kosmos.org,cn=users,dc=kosmos,dc=org -W -S -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It will ask you the following passwords:&lt;br /&gt;
&lt;br /&gt;
 New password:&lt;br /&gt;
 Re-enter new password:&lt;br /&gt;
 Enter LDAP Password:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;New password&amp;quot; is the password that will be set on your LDAP account. &amp;quot;LDAP password&amp;quot; is your current password&lt;br /&gt;
&lt;br /&gt;
If you need any help do not hesitate to ask for help in our [[Main_Page#Chat|chatroom]].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=700</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=700"/>
		<updated>2020-07-30T09:25:47Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 20.04 LTS&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP|LDAP]] using [https://directory.fedoraproject.org 389 Directory Server])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=699</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=699"/>
		<updated>2020-07-30T09:24:15Z</updated>

		<summary type="html">&lt;p&gt;Greg: Remove GKE section, add draco, update centaurus section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
* PostgreSQL master node&lt;br /&gt;
&lt;br /&gt;
==== centaurus.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea&lt;br /&gt;
&lt;br /&gt;
==== draco.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 20.04 LTS&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL hot standby node&lt;br /&gt;
* Gitea&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP|LDAP]] using [https://directory.fedoraproject.org 389 Directory Server])&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Team&amp;diff=685</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Team&amp;diff=685"/>
		<updated>2020-03-03T15:39:20Z</updated>

		<summary type="html">&lt;p&gt;Greg: Remove old user&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Please note: this page is a bit outdated.''&lt;br /&gt;
&lt;br /&gt;
== The Agreement ==&lt;br /&gt;
&lt;br /&gt;
The core team consists of a group of people, who have agreed with each other on several things:&lt;br /&gt;
&lt;br /&gt;
* Kosmos is sorely needed an we want to use it today/asap/yesterday&lt;br /&gt;
* We can imagine this to be commercially successful, and we can see us founding a company for the paid/pro version and potentially working for it at some point (to whatever degree that might be)&lt;br /&gt;
* We will take the first step and implement the prototype MVP as a side project. Most of us will come to Chaos Communication Camp in August 2015, so we'll try to finish the MVP during our time there and then define how to proceed&lt;br /&gt;
* All work done until then, and (as far as possible) forever, will be published under open-source licenses. However, we want to protect the project name/ trademark, so that people using the name/trademark commercially need to ask our permission, and so that we can use the name commercially ourselves for the benefit of all contributors (incl. non-partners/employees/shareholders).&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;&amp;quot; style=&amp;quot;width: 100%; text-align: left&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! a.k.a.&lt;br /&gt;
! Involvement/expertise&lt;br /&gt;
! Kredit address&lt;br /&gt;
|-&lt;br /&gt;
| Ben Kero&lt;br /&gt;
| bkero&lt;br /&gt;
| SysOps, DevOps, *nix systems, infrastructure development, IRC, open-source collab/community/dev/relations, ...&lt;br /&gt;
|-&lt;br /&gt;
| David Grieshammer&lt;br /&gt;
| lsa, lsa232&lt;br /&gt;
| User experience design, interaction design, graphic/web design, audio, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Galfert|Garret Alfert]]&lt;br /&gt;
| galfert&lt;br /&gt;
| Software development (full-stack), Ember.js, RemoteStorage, back-end, payments, ...&lt;br /&gt;
| 1KLjNG9FFyTGzZdtyZjQLqhEz8VqkyKkeF&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Greg|Greg Karékinian]]&lt;br /&gt;
| gregkare, gkarekinian&lt;br /&gt;
| Infrastructure development, DevOps, operations, Chef, Ruby, *nix systems ...&lt;br /&gt;
| 1JspMAYETsLWbB1mRaGFFo8kXb96mERFPA&lt;br /&gt;
|-&lt;br /&gt;
| Michael Bumann&lt;br /&gt;
| bumi, derbumi&lt;br /&gt;
| Fin-tech development, blockchain technologies, Bitcoin, Ruby, Java, JavaScript, crowd funding/investment, ...&lt;br /&gt;
| 1Dwvbv5uMxhgHBbqawDUMSxmxmzL7VJoxV&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Silverbucket|Nick Jennings]]&lt;br /&gt;
| silverbucket, slvrbckt&lt;br /&gt;
| Software development (full-stack), JavaScript, Node.js, Sockethub, RemoteStorage, ...&lt;br /&gt;
| 19UubPU4SKymYA7gbqoyStNavQAJDrBA59&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Raucao|Sebastian Kippe]]&lt;br /&gt;
| basti, skddc, raucao&lt;br /&gt;
| Software development (full-stack), front-end/UI, Ember.js, RemoteStorage / business, funding, human resources, ...&lt;br /&gt;
| 18mFwCsjRr1M1D6kcNwWEEumhpD5i7Amqf&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=684</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=684"/>
		<updated>2020-03-03T12:09:59Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add an example admin user&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# example admin for kosmos.org&lt;br /&gt;
dn: cn=example_admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_admin&lt;br /&gt;
sn: example_admin&lt;br /&gt;
uid: example_admin&lt;br /&gt;
mail: example_admin@example.com&lt;br /&gt;
admin: true&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=683</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=683"/>
		<updated>2020-02-27T10:43:45Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | uid=wiki              |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=682</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=682"/>
		<updated>2020-02-27T10:42:47Z</updated>

		<summary type="html">&lt;p&gt;Greg: Update the directory structure after the changes in https://gitea.kosmos.org/kosmos/chef/issues/140&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                  |   dc=kosmos,dc=org   |&lt;br /&gt;
                                  | (organizationalUnit) |&lt;br /&gt;
                                  ------------------------&lt;br /&gt;
                                   |                   |&lt;br /&gt;
     ------------------------      |                   |    -----------------------------&lt;br /&gt;
     |       cn=users       |------|                   |----|   cn=applications         |&lt;br /&gt;
     | (organizationalRole) |                               | (organizationalRole)      |&lt;br /&gt;
     ------------------------                               -----------------------------&lt;br /&gt;
            |              |                                   |                       |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
|     ou=kosmos.org    | |  ou=customdomain.com |       |     ou=kosmos.org        |   |  ou=customdomain.com |&lt;br /&gt;
| (organizationalUnit) | | (organizationalUnit) |       | (organizationalUnit)     |   | (organizationalUnit) |&lt;br /&gt;
------------------------ ------------------------       ----------------------------   ------------------------&lt;br /&gt;
            |                        |                                |           |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
 | cn=example_user     | | cn=example_user      |       | uid=xmpp              | | cn=wiki               |&lt;br /&gt;
 | (account,person,    | | (account,person,     |       | (account,             | | (account,             |&lt;br /&gt;
 | extensibleObject)   | | extensibleObject)    |       | simpleSecurityObject) | | simpleSecurityObject) |&lt;br /&gt;
 ----------------------- ------------------------       ------------------------- -------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# applications, kosmos.org&lt;br /&gt;
dn: cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, applications, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
&lt;br /&gt;
# account.pro, applications, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Pro Account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# # xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&lt;br /&gt;
objectClass: simpleSecurityObject&lt;br /&gt;
objectClass: account&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=wiki,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=kosmos.org,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole || objectClass&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///uid=xmpp,ou=account.pro,cn=applications,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=681</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=681"/>
		<updated>2020-02-27T10:21:02Z</updated>

		<summary type="html">&lt;p&gt;Greg: Remove the paragraph about the anti-spam plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is an open co-operative of people, who are developing a free, open-source, and user-centric alternative to centralized group chat platforms, based on widely used protocols and standards.&lt;br /&gt;
&lt;br /&gt;
We also offer a variety of other, hosted communication and collaboration services, mostly focused on users and contributors of free and open-source software.&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== Kosmos Chat ===&lt;br /&gt;
&lt;br /&gt;
[[Kosmos Chat]] (ex ''Codename 67P'') is a group communication application, based exclusively on open protocols, standards, and data formats. All of its components can be either self-hosted or connected to hosted services. An alpha version is already in use by developers, and a public beta version is planned for early 2020.&lt;br /&gt;
&lt;br /&gt;
=== Kredits ===&lt;br /&gt;
&lt;br /&gt;
[[Kredits]] are a system for tracking project contributions, enabling the fair and transparent use of project funds, as well as improving project management and governance. After a couple of years of experimentation, we finally started issuing kredits in production earlier this year. Check out the [https://kredits.kosmos.org/ public contribution dashboard] if you're interested.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
We run a variety of public services, for which we will soon accept donations for user accounts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Services:XMPP | XMPP]] || Instant messaging and group chat&lt;br /&gt;
|-&lt;br /&gt;
| [https://kosmos.social Mastodon] || Federated social network&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitea.kosmos.org Gitea] || Code hosting and collaboration&lt;br /&gt;
|-&lt;br /&gt;
| [[Services:Accounts | Kosmos Accounts]] || Unified accounts for Kosmos services (LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt;, work in progress)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Community / Getting in touch / Getting involved ==&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/67P/ GitHub]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos Gitea]&lt;br /&gt;
&lt;br /&gt;
=== Chat ===&lt;br /&gt;
&lt;br /&gt;
* IRC: [https://waves.kosmos.org/logs/freenode/kosmos/today #kosmos] and [https://waves.kosmos.org/logs/freenode/kosmos-dev/today #kosmos-dev] on Freenode&lt;br /&gt;
* XMPP: [xmpp:kosmos@kosmos.chat?join kosmos], [xmpp:kosmos-dev@kosmos.chat?join kosmos-dev], [xmpp:kredits@kosmos.chat?join kredits], and [xmpp:ops@kosmos.chat?join ops] on kosmos.chat&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
&lt;br /&gt;
* Fediverse (Mastodon, GNU Social, Hubzilla, etc.): [https://kosmos.social/@kosmos kosmos@kosmos.social]&lt;br /&gt;
* Twitter: [https://twitter.com/KosmosHQ @KosmosHQ]&lt;br /&gt;
&lt;br /&gt;
=== Weekly conference calls ===&lt;br /&gt;
&lt;br /&gt;
We hold weekly calls to sync our team (and whoever else is interested) on development progress. Every Thursday, 3:30pm UTC/GMT, in [https://zoom.us/j/414901303 https://zoom.us/j/414901303]. Usually 30 to 60 minutes long.&lt;br /&gt;
&lt;br /&gt;
Topics:&lt;br /&gt;
&lt;br /&gt;
* Kosmos Chat&lt;br /&gt;
* Kosmos Kredits&lt;br /&gt;
* Kosmos Infra/Ops&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
This is a list of events with Kosmos activities going on. Please add more, in case you're working on something related somewhere.&lt;br /&gt;
&lt;br /&gt;
=== Upcoming ===&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.xmpp.org/web/Sprints/2020_March_Berlin XMPP Sprint] - March 26-29, Berlin, Germany&lt;br /&gt;
&lt;br /&gt;
=== Past ===&lt;br /&gt;
&lt;br /&gt;
* [https://hackerbeach.org/ Hacker Beach #8] - January 2020, Santa Marta, Colombia&lt;br /&gt;
* [[Events/DOTS 2019|DOTS]] - Dec 5-7, 2019, Nakuru, Kenya&lt;br /&gt;
* [https://www.thelightningconference.com The Lightning Conference] - Oct 19-20, Berlin (lio17, raucao, slvrbckt)&lt;br /&gt;
* [https://opt-out.hcpp.cz/ HCPP] - Oct 2019, Prague (lio17, maxsan, raucao, ...)&lt;br /&gt;
* [[Kosmos Hackdays 2019/1]] (August 26-31, 2019, Berlin)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Chaos_Communication_Camp Chaos Communication Camp 2019] (August 21-25, 2019, Mildenberg, Germany)&lt;br /&gt;
* [[Kredits Mini Hack Days (April 3-5, 2019, Sambuca di Sicilia, Italy)]]&lt;br /&gt;
* [[Kosmos Mini Hack Days (March 5-11, 2019, Chiang Saen, Thailand)]]&lt;br /&gt;
* [https://hackerbeach.org/ Hacker Beach #7] - Jan 2019, Coron, Philippines&lt;br /&gt;
* [https://neworder.hcpp.cz/ HCPP] - Oct 2018, Prague (lio17, raucao)&lt;br /&gt;
* [[Kosmos Hackdays 2018/1]] — Tuscany (Italy) in April (~11-end)&lt;br /&gt;
* [[Hacker Beach #6]] (January 2018, Petite Côte, Sénégal)&lt;br /&gt;
* [[SHA2017]] (August 4-8, 2017, Zeewolde, NL)&lt;br /&gt;
* [[Kosmos Hackdays 2017/1]] (May 2-5, 2017 | during [http://wwwtf.berlin/ WWWTF Berlin])&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
See [[Notes]].&lt;br /&gt;
&lt;br /&gt;
== Code of Conduct ==&lt;br /&gt;
&lt;br /&gt;
[[Contributor Code of Conduct]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=677</id>
		<title>Services:XMPP:SASL downgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=677"/>
		<updated>2020-02-20T13:27:15Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add caption&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Services:XMPP|See Services:XMPP for information about the kosmos.org XMPP server]]&lt;br /&gt;
&lt;br /&gt;
We are in the process of switching over the [[Services:Accounts|accounts to use LDAP]]. However, the LDAP implementation in ejabberd doesn't support SASL authentication, which we were using before. This means that some clients will refuse to connect to the server after the switch, and display a warning about it.&lt;br /&gt;
	 &lt;br /&gt;
== Conversations for Android ==&lt;br /&gt;
&lt;br /&gt;
[[File:SASL downgrade.jpg|thumb|Press accept]]&lt;br /&gt;
&lt;br /&gt;
In [https://conversations.im/ Conversations], go to the account settings (the form with user address and password). After failing to connect, the 'Save' button will turn into an 'Accept' button&amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 Issue: No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=676</id>
		<title>Services:XMPP:SASL downgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=676"/>
		<updated>2020-02-20T13:25:53Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add a screenshot of Conversations to accept the SASL downgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Services:XMPP|See Services:XMPP for information about the kosmos.org XMPP server]]&lt;br /&gt;
&lt;br /&gt;
We are in the process of switching over the [[Services:Accounts|accounts to use LDAP]]. However, the LDAP implementation in ejabberd doesn't support SASL authentication, which we were using before. This means that some clients will refuse to connect to the server after the switch, and display a warning about it.&lt;br /&gt;
	 &lt;br /&gt;
== Conversations for Android ==&lt;br /&gt;
&lt;br /&gt;
[[File:SASL downgrade.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
In [https://conversations.im/ Conversations], go to the account settings (the form with user address and password). After failing to connect, the 'Save' button will turn into an 'Accept' button&amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 Issue: No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=File:SASL_downgrade.jpg&amp;diff=675</id>
		<title>File:SASL downgrade.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=File:SASL_downgrade.jpg&amp;diff=675"/>
		<updated>2020-02-20T13:24:12Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SASL downgrade screen on Conversations for Android&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=674</id>
		<title>Services:Accounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=674"/>
		<updated>2020-02-20T13:23:00Z</updated>

		<summary type="html">&lt;p&gt;Greg: Update the instructions for the new LDAP directory structure, add XMPP to the list of services using unified credentials&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Unified accounts for Kosmos services ==&lt;br /&gt;
&lt;br /&gt;
'''''This is work in progress!''''' For now, unified accounts are only enabled on this wiki and [[Services:XMPP|XMPP]]. We have decided to use LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt; to let users have the same credentials (username and password) across Kosmos services.&lt;br /&gt;
&lt;br /&gt;
The LDAP server is running on ldap.kosmos.org (on barnard, see [[Infrastructure#barnard.kosmos.org|Infrastructure]])&lt;br /&gt;
&lt;br /&gt;
You can [https://gitea.kosmos.org/kosmos/chef/issues/126 follow the status] of the switch to LDAP for the other Kosmos services&lt;br /&gt;
&lt;br /&gt;
=== Changing your password ===&lt;br /&gt;
&lt;br /&gt;
Changing your password will be made possible in the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI], but for now some command-line knowledge is required to change your password.&lt;br /&gt;
&lt;br /&gt;
The ''ldappasswd'' command-line tool is provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
The following command will set your new password, if you type your current password (replace '''yourusername''' with your username)&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -x -D cn=''''yourusername'''',ou=kosmos.org,cn=users,dc=kosmos,dc=org -W -S -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It will ask you the following passwords:&lt;br /&gt;
&lt;br /&gt;
 New password:&lt;br /&gt;
 Re-enter new password:&lt;br /&gt;
 Enter LDAP Password:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;New password&amp;quot; is the password that will be set on your LDAP account. &amp;quot;LDAP password&amp;quot; is your current password&lt;br /&gt;
&lt;br /&gt;
If you need any help do not hesitate to ask for help in our [[Main_Page#Chat|ops chatroom]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=673</id>
		<title>Services:XMPP:SASL downgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=673"/>
		<updated>2020-02-20T11:35:51Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add link to the XMPP page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Services:XMPP|See Services:XMPP for information about the kosmos.org XMPP server]]&lt;br /&gt;
&lt;br /&gt;
We are in the process of switching over the [[Services:Accounts|accounts to use LDAP]]. However, the LDAP implementation in ejabberd doesn't support SASL authentication, which we were using before. This means that some clients will refuse to connect to the server after the switch, and display a warning about it.&lt;br /&gt;
	 &lt;br /&gt;
== Conversations for Android ==&lt;br /&gt;
&lt;br /&gt;
In [https://conversations.im/ Conversations], go to the account settings (the form with user address and password). After failing to connect, the 'Save' button will turn into an 'Accept' button&amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 Issue: No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=672</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=672"/>
		<updated>2020-02-19T17:21:52Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                         |   dc=kosmos,dc=org   |&lt;br /&gt;
                         | (organizationalUnit) |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                                     |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                         |       cn=users       |&lt;br /&gt;
                         | (organizationalRole) |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                                |         |&lt;br /&gt;
             ------------------------ ------------------------&lt;br /&gt;
             |     ou=kosmos.org    | |     ou=account.pro   |&lt;br /&gt;
             | (organizationalUnit) | | (organizationalUnit) |&lt;br /&gt;
             ------------------------ ------------------------&lt;br /&gt;
                        |                         |&lt;br /&gt;
 ------------------------------------- -------------------------------------&lt;br /&gt;
 | cn=example_user                   | | cn=example_user                   |&lt;br /&gt;
 | (account,person,extensibleObject) | | (account,person,extensibleObject) |&lt;br /&gt;
 ------------------------------------- -------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: xmpp&lt;br /&gt;
sn: xmpp&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: wiki&lt;br /&gt;
sn: wiki&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp role, used to filter users that have access to XMPP&lt;br /&gt;
dn: cn=xmpp_role,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectclass: top&lt;br /&gt;
objectclass: LDAPsubentry&lt;br /&gt;
objectclass: nsRoleDefinition&lt;br /&gt;
objectclass: nsComplexRoleDefinition&lt;br /&gt;
objectclass: nsFilteredRoleDefinition&lt;br /&gt;
cn: xmpp_role&lt;br /&gt;
nsRoleFilter: (&amp;amp;(objectclass=person)(xmpp=enabled))&lt;br /&gt;
Description: filtered role for xmpp on kosmos.org&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: xmpp&lt;br /&gt;
sn: xmpp&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp role, used to filter users that have access to XMPP&lt;br /&gt;
dn: cn=xmpp_role,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectclass: top&lt;br /&gt;
objectclass: LDAPsubentry&lt;br /&gt;
objectclass: nsRoleDefinition&lt;br /&gt;
objectclass: nsComplexRoleDefinition&lt;br /&gt;
objectclass: nsFilteredRoleDefinition&lt;br /&gt;
cn: xmpp_role&lt;br /&gt;
nsRoleFilter: (&amp;amp;(objectclass=person)(xmpp=enabled))&lt;br /&gt;
Description: filtered role for xmpp on account.pro&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=671</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=671"/>
		<updated>2020-02-19T16:58:41Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add link to the LDAP infrastructure page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org ([[Infrastructure:LDAP|LDAP]] using [https://directory.fedoraproject.org 389 Directory Server])&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 2-workers cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://velero.io/ Velero] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=670</id>
		<title>Infrastructure:LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure:LDAP&amp;diff=670"/>
		<updated>2020-02-19T16:58:09Z</updated>

		<summary type="html">&lt;p&gt;Greg: Create initial Infrastructure page for LDAP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server ==&lt;br /&gt;
&lt;br /&gt;
We use [https://directory.fedoraproject.org/ 389 Directory Server], installed using [https://gitea.kosmos.org/kosmos/chef/src/branch/master/site-cookbooks/kosmos-dirsrv this Chef cookbook]. The server runs on ldap.kosmos.org. The future plan is to make the LDAP server only accessible to services that use it for authentication and authorization, as well as the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI]&lt;br /&gt;
&lt;br /&gt;
== Directory structure ==&lt;br /&gt;
&lt;br /&gt;
Here is a diagram of the directory structure we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                         |   dc=kosmos,dc=org   |&lt;br /&gt;
                         | (organizationalUnit) |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                                     |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                         |       cn=users       |&lt;br /&gt;
                         | (organizationalRole) |&lt;br /&gt;
                         ------------------------&lt;br /&gt;
                                |         |&lt;br /&gt;
             ------------------------ ------------------------&lt;br /&gt;
             |     ou=kosmos.org    | |     ou=account.pro   |&lt;br /&gt;
             | (organizationalUnit) | | (organizationalUnit) |&lt;br /&gt;
             ------------------------ ------------------------&lt;br /&gt;
                        |                         |&lt;br /&gt;
 ------------------------------------- -------------------------------------&lt;br /&gt;
 | cn=example_user                   | | cn=example_user                   |&lt;br /&gt;
 | (account,person,extensibleObject) | | (account,person,extensibleObject) |&lt;br /&gt;
 ------------------------------------- -------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an LDIF representation of an example of what we use on ldap.kosmos.org:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# container for the organizationUnits (domains)&lt;br /&gt;
dn: cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: users&lt;br /&gt;
&lt;br /&gt;
# kosmos.org, users, kosmos.org&lt;br /&gt;
dn: ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: Kosmos&lt;br /&gt;
ou: kosmos.org&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-kosmos-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: cn=xmpp,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: xmpp&lt;br /&gt;
sn: xmpp&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# wiki account, used by mediawiki to search for users and change passwords&lt;br /&gt;
dn: cn=wiki,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: wiki&lt;br /&gt;
sn: wiki&lt;br /&gt;
uid: wiki&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp role, used to filter users that have access to XMPP&lt;br /&gt;
dn: cn=xmpp_role,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectclass: top&lt;br /&gt;
objectclass: LDAPsubentry&lt;br /&gt;
objectclass: nsRoleDefinition&lt;br /&gt;
objectclass: nsComplexRoleDefinition&lt;br /&gt;
objectclass: nsFilteredRoleDefinition&lt;br /&gt;
cn: xmpp_role&lt;br /&gt;
nsRoleFilter: (&amp;amp;(objectclass=person)(xmpp=enabled))&lt;br /&gt;
Description: filtered role for xmpp on kosmos.org&lt;br /&gt;
&lt;br /&gt;
# example user for kosmos.org&lt;br /&gt;
dn: cn=example_user,ou=kosmos.org,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_user&lt;br /&gt;
sn: example_user&lt;br /&gt;
uid: example_user&lt;br /&gt;
mail: example_user@example.com&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# account.pro, users, kosmos.org&lt;br /&gt;
dn: ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
description: account&lt;br /&gt;
ou: account.pro&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;cn || sn || uid || mail || userPassword || nsRole&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-read-search&amp;quot;; allow (read,search) userdn=&amp;quot;ldap:///cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
aci: (target=&amp;quot;ldap:///cn=*,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;)(targetattr=&amp;quot;userPassword&amp;quot;) (version 3.0; acl &amp;quot;xmpp-account-change-password&amp;quot;; allow (write) userdn=&amp;quot;ldap:///cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&amp;quot;;)&lt;br /&gt;
&lt;br /&gt;
# xmpp account, used by ejabberd to search for users and change passwords&lt;br /&gt;
dn: cn=xmpp,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: xmpp&lt;br /&gt;
sn: xmpp&lt;br /&gt;
uid: xmpp&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&lt;br /&gt;
# xmpp role, used to filter users that have access to XMPP&lt;br /&gt;
dn: cn=xmpp_role,ou=5apps.com,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectclass: top&lt;br /&gt;
objectclass: LDAPsubentry&lt;br /&gt;
objectclass: nsRoleDefinition&lt;br /&gt;
objectclass: nsComplexRoleDefinition&lt;br /&gt;
objectclass: nsFilteredRoleDefinition&lt;br /&gt;
cn: xmpp_role&lt;br /&gt;
nsRoleFilter: (&amp;amp;(objectclass=person)(xmpp=enabled))&lt;br /&gt;
Description: filtered role for xmpp on 5apps.com&lt;br /&gt;
&lt;br /&gt;
# example user for account.pro&lt;br /&gt;
dn: cn=example_pro,ou=account.pro,cn=users,dc=kosmos,dc=org&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: person&lt;br /&gt;
objectClass: extensibleObject&lt;br /&gt;
cn: example_pro&lt;br /&gt;
sn: example_pro&lt;br /&gt;
uid: example_pro&lt;br /&gt;
mail: exampleaccount.pro&lt;br /&gt;
xmpp: enabled&lt;br /&gt;
userPassword: secret&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=669</id>
		<title>Services:XMPP:SASL downgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=669"/>
		<updated>2020-02-17T16:35:21Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are in the process of switching over the [[Services:Accounts|accounts to use LDAP]]. However, the LDAP implementation in ejabberd doesn't support SASL authentication, which we were using before. This means that some clients will refuse to connect to the server after the switch, and display a warning about it.&lt;br /&gt;
	 &lt;br /&gt;
== Conversations for Android ==&lt;br /&gt;
&lt;br /&gt;
In [https://conversations.im/ Conversations], go to the account settings (the form with user address and password). After failing to connect, the 'Save' button will turn into an 'Accept' button&amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 Issue: No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=667</id>
		<title>Services:XMPP:SASL downgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:XMPP:SASL_downgrade&amp;diff=667"/>
		<updated>2020-02-17T13:31:25Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add a page about the SASL downgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are in the process of switching over the [[Services:Accounts|accounts to use LDAP]]. This page was created in order to document a warning that will occur on some clients after we enable LDAP authentication. The LDAP implementation in ejabberd doesn't support SASL authentication.&lt;br /&gt;
&lt;br /&gt;
The implication is that '''the user does not send a salted &amp;amp; hashed password''' to ejabberd, so the ejabberd process has access to a user's password and sends it over to the LDAP server to authenticate. This is considered &amp;lt;code&amp;gt;PLAIN&amp;lt;/code&amp;gt; auth, even when both the XMPP c2s connection and the LDAP connect using TLS.&lt;br /&gt;
	 &lt;br /&gt;
Some clients will display a warning because they detect that the auth used to be done with SASL, but not any longer. The most common one is [https://conversations.im/ Conversations, the Android client].&lt;br /&gt;
	 &lt;br /&gt;
== How to accept the warning in Conversations ==&lt;br /&gt;
&lt;br /&gt;
In Conversations you can accept the warning by pressing &amp;quot;Accept&amp;quot; in the account details, that appears where the &amp;quot;Save&amp;quot; button is normally. &amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=666</id>
		<title>Services:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=666"/>
		<updated>2020-02-14T17:53:41Z</updated>

		<summary type="html">&lt;p&gt;Greg: Undo revision 665 by Greg (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is XMPP? ==&lt;br /&gt;
&lt;br /&gt;
XMPP is an open standard for instant messages as well as voice and video chat. With XMPP, you can send and receive messages between users on thousands of different chat providers.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Usually, you only need your user address and password to configure your chat application.&lt;br /&gt;
&lt;br /&gt;
Your user address is &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;your-username&amp;lt;/em&amp;gt;@kosmos.org&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
For advanced users and/or troubleshooting:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: xmpp.kosmos.org&lt;br /&gt;
;C2S port&lt;br /&gt;
: 5222 (StartTLS), 5223 (TLS)&lt;br /&gt;
;S2S port&lt;br /&gt;
: 5269&lt;br /&gt;
;Bosh URL&lt;br /&gt;
: xmpp.kosmos.org:5443/bosh&lt;br /&gt;
;In-band Registration&lt;br /&gt;
: Closed&lt;br /&gt;
&lt;br /&gt;
== Multi-user Chat (MUC) ==&lt;br /&gt;
&lt;br /&gt;
The server is host to a variety of chat rooms. The server's MUC domain is &amp;lt;strong&amp;gt;kosmos.chat&amp;lt;/strong&amp;gt;. Thus, room addresses look like &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;chatroom-name&amp;lt;/em&amp;gt;@kosmos.chat&amp;lt;/strong&amp;gt;. Only local users (with a kosmos.org address) are currently allowed to create chat rooms on kosmos.chat.&lt;br /&gt;
&lt;br /&gt;
Come talk to us in [xmpp:kosmos@kosmos.chat?join kosmos@kosmos.chat]!&lt;br /&gt;
&lt;br /&gt;
== Tor hidden service ==&lt;br /&gt;
&lt;br /&gt;
You can connect to the XMPP server directly from the Tor network. The configuration is the same as for clearnet, except for the server to connect to:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: ht6eqe754p3m2gif.onion&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=665</id>
		<title>Services:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=665"/>
		<updated>2020-02-14T17:09:34Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add section about SASL being disabled once we switch to auth using LDAP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is XMPP? ==&lt;br /&gt;
&lt;br /&gt;
XMPP is an open standard for instant messages as well as voice and video chat. With XMPP, you can send and receive messages between users on thousands of different chat providers.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Usually, you only need your user address and password to configure your chat application.&lt;br /&gt;
&lt;br /&gt;
Your user address is &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;your-username&amp;lt;/em&amp;gt;@kosmos.org&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
For advanced users and/or troubleshooting:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: xmpp.kosmos.org&lt;br /&gt;
;C2S port&lt;br /&gt;
: 5222 (StartTLS), 5223 (TLS)&lt;br /&gt;
;S2S port&lt;br /&gt;
: 5269&lt;br /&gt;
;Bosh URL&lt;br /&gt;
: xmpp.kosmos.org:5443/bosh&lt;br /&gt;
;In-band Registration&lt;br /&gt;
: Closed&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
&lt;br /&gt;
==== No SASL with LDAP ====&lt;br /&gt;
&lt;br /&gt;
We are going to switch over the [[Services:Accounts|accounts to use LDAP]]. This has no happened yet, you will receive an email when that happens with a unique generated password and instructions to change it.&lt;br /&gt;
&lt;br /&gt;
The LDAP implementation in ejabberd doesn't support SASL authentication.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;You can authenticate users against an LDAP directory. '''Note that current LDAP implementation does not support SASL authentication'''.&amp;lt;ref&amp;gt;[https://docs.ejabberd.im/admin/configuration/#ldap-authentication Configuring ejabberd, LDAP Authentication].&amp;lt;/ref&amp;gt;:&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The implication is that '''the user does not send a salted &amp;amp; hashed password''' to ejabberd, so the ejabberd process has access to a user's password and sends it over to the LDAP server to authenticate. This is considered &amp;lt;code&amp;gt;PLAIN&amp;lt;/code&amp;gt; auth, even when both the XMPP c2s connection and the LDAP connect using TLS&lt;br /&gt;
&lt;br /&gt;
There is an RFC, &amp;quot;Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted Challenge Response Authentication Mechanism (SCRAM) Secrets&amp;quot;&amp;lt;ref&amp;gt;[https://tools.ietf.org/html/rfc5803 Lightweight Directory Access Protocol (LDAP) Schema for Storing Salted Challenge Response Authentication Mechanism (SCRAM) Secrets].&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===== Impact =====&lt;br /&gt;
&lt;br /&gt;
Some clients will display a warning because they detect that the auth used to be done with SASL, but not any longer. The most common one is [https://conversations.im/ Conversations, the Android client], so we are including instructions for it.&lt;br /&gt;
&lt;br /&gt;
===== How to accept the warning in Conversations =====&lt;br /&gt;
&lt;br /&gt;
In Conversations you can accept the warning by pressing &amp;quot;Accept&amp;quot; in the account details, that appears where the &amp;quot;Save&amp;quot; button is normally. &amp;lt;ref&amp;gt;[https://github.com/siacs/Conversations/issues/2498#issuecomment-556071993 No (obvious?) way to accept SASL downgrade]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multi-user Chat (MUC) ==&lt;br /&gt;
&lt;br /&gt;
The server is host to a variety of chat rooms. The server's MUC domain is &amp;lt;strong&amp;gt;kosmos.chat&amp;lt;/strong&amp;gt;. Thus, room addresses look like &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;chatroom-name&amp;lt;/em&amp;gt;@kosmos.chat&amp;lt;/strong&amp;gt;. Only local users (with a kosmos.org address) are currently allowed to create chat rooms on kosmos.chat.&lt;br /&gt;
&lt;br /&gt;
Come talk to us in [xmpp:kosmos@kosmos.chat?join kosmos@kosmos.chat]!&lt;br /&gt;
&lt;br /&gt;
== Tor hidden service ==&lt;br /&gt;
&lt;br /&gt;
You can connect to the XMPP server directly from the Tor network. The configuration is the same as for clearnet, except for the server to connect to:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: ht6eqe754p3m2gif.onion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=664</id>
		<title>Services:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=664"/>
		<updated>2020-02-14T16:38:03Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add the TLS port, clarify that 5222 has StartTLS enabled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is XMPP? ==&lt;br /&gt;
&lt;br /&gt;
XMPP is an open standard for instant messages as well as voice and video chat. With XMPP, you can send and receive messages between users on thousands of different chat providers.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Usually, you only need your user address and password to configure your chat application.&lt;br /&gt;
&lt;br /&gt;
Your user address is &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;your-username&amp;lt;/em&amp;gt;@kosmos.org&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
For advanced users and/or troubleshooting:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: xmpp.kosmos.org&lt;br /&gt;
;C2S port&lt;br /&gt;
: 5222 (StartTLS), 5223 (TLS)&lt;br /&gt;
;S2S port&lt;br /&gt;
: 5269&lt;br /&gt;
;Bosh URL&lt;br /&gt;
: xmpp.kosmos.org:5443/bosh&lt;br /&gt;
;In-band Registration&lt;br /&gt;
: Closed&lt;br /&gt;
&lt;br /&gt;
== Multi-user Chat (MUC) ==&lt;br /&gt;
&lt;br /&gt;
The server is host to a variety of chat rooms. The server's MUC domain is &amp;lt;strong&amp;gt;kosmos.chat&amp;lt;/strong&amp;gt;. Thus, room addresses look like &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;chatroom-name&amp;lt;/em&amp;gt;@kosmos.chat&amp;lt;/strong&amp;gt;. Only local users (with a kosmos.org address) are currently allowed to create chat rooms on kosmos.chat.&lt;br /&gt;
&lt;br /&gt;
Come talk to us in [xmpp:kosmos@kosmos.chat?join kosmos@kosmos.chat]!&lt;br /&gt;
&lt;br /&gt;
== Tor hidden service ==&lt;br /&gt;
&lt;br /&gt;
You can connect to the XMPP server directly from the Tor network. The configuration is the same as for clearnet, except for the server to connect to:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: ht6eqe754p3m2gif.onion&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=662</id>
		<title>Services:Accounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=662"/>
		<updated>2020-01-29T17:34:27Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add information about the LDAP server and link to the tracking issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Unified accounts for Kosmos services ==&lt;br /&gt;
&lt;br /&gt;
'''''This is work in progress!''''' For now, unified accounts are only enabled on this wiki. We have decided to use LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt; to let users have the same credentials (username and password) across Kosmos services.&lt;br /&gt;
&lt;br /&gt;
The LDAP server is running on ldap.kosmos.org (on barnard, see [[Infrastructure#barnard.kosmos.org|Infrastructure]])&lt;br /&gt;
&lt;br /&gt;
You can [https://gitea.kosmos.org/kosmos/chef/issues/126 follow the status] of the switch to LDAP for the other Kosmos services&lt;br /&gt;
&lt;br /&gt;
=== Changing your password ===&lt;br /&gt;
&lt;br /&gt;
Changing your password will be made possible in the upcoming [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Kosmos Accounts Web UI], but for now some command-line knowledge is required to change your password.&lt;br /&gt;
&lt;br /&gt;
The ''ldappasswd'' command-line tool is provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch Linux. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
The following command will set your new password, if you type your current password (replace '''yourusername''' with your username)&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -x -D cn=''''yourusername'''',ou=users,dc=kosmos,dc=org -W -S -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It will ask you the following passwords:&lt;br /&gt;
&lt;br /&gt;
 New password:&lt;br /&gt;
 Re-enter new password:&lt;br /&gt;
 Enter LDAP Password:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;New password&amp;quot; is the password that will be set on your LDAP account. &amp;quot;LDAP password&amp;quot; is your current password&lt;br /&gt;
&lt;br /&gt;
If you need any help do not hesitate to ask for help in our [[Main_Page#Chat|ops chatroom]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=657</id>
		<title>Services:Accounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=657"/>
		<updated>2020-01-29T16:12:25Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Unified accounts for Kosmos services ==&lt;br /&gt;
&lt;br /&gt;
This is work in progress, for now unified accounts are only enabled on this wiki. We have decided to use LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt; to let users have the same credentials (username and password) for Kosmos services. If you want to learn more about LDAP you can start with this page&amp;lt;ref&amp;gt;[https://ldap.com/basic-ldap-concepts/ Basic LDAP Concepts]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We are currently [https://gitea.kosmos.org/kosmos/chef/issues/123 planning the migration of the next service], [[Services:XMPP|XMPP]] to also use LDAP.&lt;br /&gt;
&lt;br /&gt;
=== Changing your password ===&lt;br /&gt;
&lt;br /&gt;
Changing your password will be made possible in [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Akkounts], but for now some command-line knowledge is required to change your password.&lt;br /&gt;
&lt;br /&gt;
The ''ldappasswd'' command-line tool is provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
The following command will set your new password, if you type your current password (replace '''yourusername''' with your username)&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -x -D cn=''''yourusername'''',ou=users,dc=kosmos,dc=org -W -S -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It will ask you the following passwords:&lt;br /&gt;
&lt;br /&gt;
 New password:&lt;br /&gt;
 Re-enter new password:&lt;br /&gt;
 Enter LDAP Password:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;New password&amp;quot; is the password that will be set on your LDAP account. &amp;quot;LDAP password&amp;quot; is your current password&lt;br /&gt;
&lt;br /&gt;
If you need any help do not hesitate to ask for help in our [[Main_Page#Chat|ops chatroom]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=656</id>
		<title>Services:Accounts</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Accounts&amp;diff=656"/>
		<updated>2020-01-29T16:11:57Z</updated>

		<summary type="html">&lt;p&gt;Greg: Initial Services:Accounts page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Unified accounts for Kosmos services ==&lt;br /&gt;
&lt;br /&gt;
This is work in progress, for now unified accounts are only enabled on this wiki. We have decided to use LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt; to let users have the same credentials (username and password) for Kosmos services. If you want to learn more about LDAP you can start with this page&amp;lt;ref&amp;gt;[https://ldap.com/basic-ldap-concepts/ Basic LDAP Concepts]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We are currently [https://gitea.kosmos.org/kosmos/chef/issues/123 planning the migration of the next service], [[Services:XMPP|XMPP]] to also use LDAP.&lt;br /&gt;
&lt;br /&gt;
=== Changing your password ===&lt;br /&gt;
&lt;br /&gt;
Changing your password will be made possible in [https://gitea.kosmos.org/kosmos/akkounts-web/issues/5 Akkounts], but for now some command-line knowledge is required to change your password.&lt;br /&gt;
&lt;br /&gt;
The `ldappasswd` command-line tool is provided by different packages depending on your OS. For example ''ldap-utils'' on Ubuntu, ''openldap-clients'' on Fedora, ''openldap'' on Arch. It is already provided in a default macOS installation.&lt;br /&gt;
&lt;br /&gt;
The following command will set your new password, if you type your current password (replace '''yourusername''' with your username)&lt;br /&gt;
&lt;br /&gt;
 ldappasswd -x -D cn=''''yourusername'''',ou=users,dc=kosmos,dc=org -W -S -H &amp;quot;ldaps://ldap.kosmos.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It will ask you the following passwords:&lt;br /&gt;
&lt;br /&gt;
 New password:&lt;br /&gt;
 Re-enter new password:&lt;br /&gt;
 Enter LDAP Password:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;New password&amp;quot; is the password that will be set on your LDAP account. &amp;quot;LDAP password&amp;quot; is your current password&lt;br /&gt;
&lt;br /&gt;
If you need any help do not hesitate to ask for help in our [[Main_Page#Chat|ops chatroom]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=655</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=655"/>
		<updated>2020-01-29T15:23:42Z</updated>

		<summary type="html">&lt;p&gt;Greg: Remove link to LDAP PR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org (LDAP using [https://directory.fedoraproject.org 389 Directory Server])&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 2-workers cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://velero.io/ Velero] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=654</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=654"/>
		<updated>2020-01-29T13:27:59Z</updated>

		<summary type="html">&lt;p&gt;Greg: Enable references again now that the Cite extension is enabled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is an open co-operative of people, who are developing a free, open-source, and user-centric alternative to centralized group chat platforms, based on widely used protocols and standards.&lt;br /&gt;
&lt;br /&gt;
We also offer a variety of other, hosted communication and collaboration services, mostly focused on users and contributors of free and open-source software.&lt;br /&gt;
&lt;br /&gt;
''Please note: this wiki is protected by an anti-spam service, which can be a bit overzealous in blocking registrations and edits. If your signup or edit is blocked, please contact us and we'll get you sorted! See below for various contact options.''&lt;br /&gt;
&lt;br /&gt;
== Products ==&lt;br /&gt;
&lt;br /&gt;
=== Kosmos Chat ===&lt;br /&gt;
&lt;br /&gt;
[[Kosmos Chat]] (ex ''Codename 67P'') is a group communication application, based exclusively on open protocols, standards, and data formats. All of its components can be either self-hosted or connected to hosted services. An alpha version is already in use by developers, and a public beta version is planned for early 2020.&lt;br /&gt;
&lt;br /&gt;
=== Kredits ===&lt;br /&gt;
&lt;br /&gt;
[[Kredits]] are a system for tracking project contributions, enabling the fair and transparent use of project funds, as well as improving project management and governance. After a couple of years of experimentation, we finally started issuing kredits in production earlier this year. Check out the [https://kredits.kosmos.org/ public contribution dashboard] if you're interested.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
We run a variety of public services, for which we will soon accept donations for user accounts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Services:XMPP | XMPP]] || Instant messaging and group chat&lt;br /&gt;
|-&lt;br /&gt;
| [https://kosmos.social Mastodon] || Federated social network&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitea.kosmos.org Gitea] || Code hosting and collaboration&lt;br /&gt;
|-&lt;br /&gt;
| [[Services:Accounts | Kosmos Accounts]] || Unified accounts for Kosmos services (LDAP&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Lightweight Directory Access Protocol]&amp;lt;/ref&amp;gt;, work in progress)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Community / Getting in touch / Getting involved ==&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/67P/ GitHub]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos Gitea]&lt;br /&gt;
&lt;br /&gt;
=== Chat ===&lt;br /&gt;
&lt;br /&gt;
* IRC: [https://waves.kosmos.org/logs/freenode/kosmos/today #kosmos] and [https://waves.kosmos.org/logs/freenode/kosmos-dev/today #kosmos-dev] on Freenode&lt;br /&gt;
* XMPP: [xmpp:kosmos@kosmos.chat?join kosmos], [xmpp:kosmos-dev@kosmos.chat?join kosmos-dev], [xmpp:kredits@kosmos.chat?join kredits], and [xmpp:ops@kosmos.chat?join ops] on kosmos.chat&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
&lt;br /&gt;
* Fediverse (Mastodon, GNU Social, Hubzilla, etc.): [https://kosmos.social/@kosmos kosmos@kosmos.social]&lt;br /&gt;
* Twitter: [https://twitter.com/KosmosHQ @KosmosHQ]&lt;br /&gt;
&lt;br /&gt;
=== Weekly conference calls ===&lt;br /&gt;
&lt;br /&gt;
We hold weekly calls to sync our team (and whoever else is interested) on development progress. Every Thursday, 3:30pm UTC/GMT, in [https://zoom.us/j/414901303 https://zoom.us/j/414901303]. Usually 30 to 60 minutes long.&lt;br /&gt;
&lt;br /&gt;
Topics:&lt;br /&gt;
&lt;br /&gt;
* Kosmos Chat&lt;br /&gt;
* Kosmos Kredits&lt;br /&gt;
* Kosmos Infra/Ops&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
This is a list of events with Kosmos activities going on. Please add more, in case you're working on something related somewhere.&lt;br /&gt;
&lt;br /&gt;
=== Upcoming ===&lt;br /&gt;
&lt;br /&gt;
* [https://hackerbeach.org/ Hacker Beach #8] - January 2020, Santa Marta, Colombia&lt;br /&gt;
* [https://wiki.xmpp.org/web/Sprints/2020_March_Berlin XMPP Sprint] - March 26-29, Berlin, Germany&lt;br /&gt;
&lt;br /&gt;
=== Past ===&lt;br /&gt;
&lt;br /&gt;
* [[Events/DOTS 2019|DOTS]] - Dec 5-7, 2019, Nakuru, Kenya&lt;br /&gt;
* [https://www.thelightningconference.com The Lightning Conference] - Oct 19-20, Berlin (lio17, raucao, slvrbckt)&lt;br /&gt;
* [https://opt-out.hcpp.cz/ HCPP] - Oct 2019, Prague (lio17, maxsan, raucao, ...)&lt;br /&gt;
* [[Kosmos Hackdays 2019/1]] (August 26-31, 2019, Berlin)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Chaos_Communication_Camp Chaos Communication Camp 2019] (August 21-25, 2019, Mildenberg, Germany)&lt;br /&gt;
* [[Kredits Mini Hack Days (April 3-5, 2019, Sambuca di Sicilia, Italy)]]&lt;br /&gt;
* [[Kosmos Mini Hack Days (March 5-11, 2019, Chiang Saen, Thailand)]]&lt;br /&gt;
* [https://hackerbeach.org/ Hacker Beach #7] - Jan 2019, Coron, Philippines&lt;br /&gt;
* [https://neworder.hcpp.cz/ HCPP] - Oct 2018, Prague (lio17, raucao)&lt;br /&gt;
* [[Kosmos Hackdays 2018/1]] — Tuscany (Italy) in April (~11-end)&lt;br /&gt;
* [[Hacker Beach #6]] (January 2018, Petite Côte, Sénégal)&lt;br /&gt;
* [[SHA2017]] (August 4-8, 2017, Zeewolde, NL)&lt;br /&gt;
* [[Kosmos Hackdays 2017/1]] (May 2-5, 2017 | during [http://wwwtf.berlin/ WWWTF Berlin])&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
See [[Notes]].&lt;br /&gt;
&lt;br /&gt;
== Code of Conduct ==&lt;br /&gt;
&lt;br /&gt;
[[Contributor Code of Conduct]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Team&amp;diff=646</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Team&amp;diff=646"/>
		<updated>2020-01-28T12:25:54Z</updated>

		<summary type="html">&lt;p&gt;Greg: Use the new wiki usernames&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Please note: this page is a bit outdated.''&lt;br /&gt;
&lt;br /&gt;
== The Agreement ==&lt;br /&gt;
&lt;br /&gt;
The core team consists of a group of people, who have agreed with each other on several things:&lt;br /&gt;
&lt;br /&gt;
* Kosmos is sorely needed an we want to use it today/asap/yesterday&lt;br /&gt;
* We can imagine this to be commercially successful, and we can see us founding a company for the paid/pro version and potentially working for it at some point (to whatever degree that might be)&lt;br /&gt;
* We will take the first step and implement the prototype MVP as a side project. Most of us will come to Chaos Communication Camp in August 2015, so we'll try to finish the MVP during our time there and then define how to proceed&lt;br /&gt;
* All work done until then, and (as far as possible) forever, will be published under open-source licenses. However, we want to protect the project name/ trademark, so that people using the name/trademark commercially need to ask our permission, and so that we can use the name commercially ourselves for the benefit of all contributors (incl. non-partners/employees/shareholders).&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;&amp;quot; style=&amp;quot;width: 100%; text-align: left&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! a.k.a.&lt;br /&gt;
! Involvement/expertise&lt;br /&gt;
! Kredit address&lt;br /&gt;
|-&lt;br /&gt;
| Ben Kero&lt;br /&gt;
| bkero&lt;br /&gt;
| SysOps, DevOps, *nix systems, infrastructure development, IRC, open-source collab/community/dev/relations, ...&lt;br /&gt;
|-&lt;br /&gt;
| David Grieshammer&lt;br /&gt;
| lsa, lsa232&lt;br /&gt;
| User experience design, interaction design, graphic/web design, audio, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Galfert|Garret Alfert]]&lt;br /&gt;
| galfert&lt;br /&gt;
| Software development (full-stack), Ember.js, RemoteStorage, back-end, payments, ...&lt;br /&gt;
| 1KLjNG9FFyTGzZdtyZjQLqhEz8VqkyKkeF&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Greg|Greg Karékinian]]&lt;br /&gt;
| gregkare, gkarekinian&lt;br /&gt;
| Infrastructure development, DevOps, operations, Chef, Ruby, *nix systems ...&lt;br /&gt;
| 1JspMAYETsLWbB1mRaGFFo8kXb96mERFPA&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Jan|Jan Lelis]]&lt;br /&gt;
| janlelis, jan, jaaan&lt;br /&gt;
| Software development (full-stack), WebRTC, Ruby, Rails, JavaScript, AngularJS&lt;br /&gt;
| 1D98jYRnPYBFdd5zeLkMQgXoifEmeh6fmH&lt;br /&gt;
|-&lt;br /&gt;
| Michael Bumann&lt;br /&gt;
| bumi, derbumi&lt;br /&gt;
| Fin-tech development, blockchain technologies, Bitcoin, Ruby, Java, JavaScript, crowd funding/investment, ...&lt;br /&gt;
| 1Dwvbv5uMxhgHBbqawDUMSxmxmzL7VJoxV&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Silverbucket|Nick Jennings]]&lt;br /&gt;
| silverbucket, slvrbckt&lt;br /&gt;
| Software development (full-stack), JavaScript, Node.js, Sockethub, RemoteStorage, ...&lt;br /&gt;
| 19UubPU4SKymYA7gbqoyStNavQAJDrBA59&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Raucao|Sebastian Kippe]]&lt;br /&gt;
| basti, skddc, raucao&lt;br /&gt;
| Software development (full-stack), front-end/UI, Ember.js, RemoteStorage / business, funding, human resources, ...&lt;br /&gt;
| 18mFwCsjRr1M1D6kcNwWEEumhpD5i7Amqf&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Slvrbckt&amp;diff=644</id>
		<title>User:Slvrbckt</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Slvrbckt&amp;diff=644"/>
		<updated>2020-01-27T15:03:48Z</updated>

		<summary type="html">&lt;p&gt;Greg: Greg moved page User:Silverbucket to User:Slvrbckt: Automatically moved page while renaming the user &amp;quot;Silverbucket&amp;quot; to &amp;quot;Slvrbckt&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Real name:''' Nick Jennings&lt;br /&gt;
&lt;br /&gt;
'''Freenode nick:''' slvrbckt&lt;br /&gt;
&lt;br /&gt;
'''Personal website:''' https://silverbucket.net&lt;br /&gt;
&lt;br /&gt;
'''GitHub:''' https://github.com/silverbucket&lt;br /&gt;
&lt;br /&gt;
'''Twitter:''' https://twitter.com/slvrbckt&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Silverbucket&amp;diff=645</id>
		<title>User:Silverbucket</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Silverbucket&amp;diff=645"/>
		<updated>2020-01-27T15:03:48Z</updated>

		<summary type="html">&lt;p&gt;Greg: Greg moved page User:Silverbucket to User:Slvrbckt: Automatically moved page while renaming the user &amp;quot;Silverbucket&amp;quot; to &amp;quot;Slvrbckt&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:Slvrbckt]]&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Raucao&amp;diff=642</id>
		<title>User:Raucao</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Raucao&amp;diff=642"/>
		<updated>2020-01-27T12:36:54Z</updated>

		<summary type="html">&lt;p&gt;Greg: Greg moved page User:Basti to User:Raucao: Automatically moved page while merging the account &amp;quot;Basti&amp;quot; to &amp;quot;Raucao&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Real name:''' Sebastian Kippe&lt;br /&gt;
* '''Freenode nick:''' raucao&lt;br /&gt;
* '''Personal website:''' https://sebastian.kip.pe&lt;br /&gt;
* '''GitHub:''' https://github.com/skddc&lt;br /&gt;
* '''Twitter:''' https://twitter.com/skddc&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Awesome space pictures (&amp;lt;3 nebulae) ===&lt;br /&gt;
&lt;br /&gt;
* http://www.cieloprofundo.com/&lt;br /&gt;
* http://www.martinpughastrophotography.id.au/&lt;br /&gt;
* http://www.astroanarchy.blogspot.cz/&lt;br /&gt;
* https://500px.com/rafaeldefavari&lt;br /&gt;
* http://astro-cabinet.com&lt;br /&gt;
* http://lvvastro.com/wordpress/?cat=3&lt;br /&gt;
* http://www.esa.int/Our_Activities/Space_Science/Mars_Express&lt;br /&gt;
* https://500px.com/demeterderek&lt;br /&gt;
* https://www.flickr.com/photos/113243238@N08/&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Greg&amp;diff=639</id>
		<title>User:Greg</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Greg&amp;diff=639"/>
		<updated>2020-01-24T15:46:16Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Real name:''' Greg Karékinian&lt;br /&gt;
* '''Freenode nick:''' gregkare&lt;br /&gt;
* '''Personal website:''' https://karekinian.com&lt;br /&gt;
* '''GitHub:''' https://github.com/gregkare&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=631</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=631"/>
		<updated>2019-12-10T14:15:31Z</updated>

		<summary type="html">&lt;p&gt;Greg: Add LDAP service to barnard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
* ldap.kosmos.org (LDAP using [https://directory.fedoraproject.org 389 Directory Server], [https://gitea.kosmos.org/kosmos/chef/pulls/115 chef pull request])&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 2-workers cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://velero.io/ Velero] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Kredits&amp;diff=630</id>
		<title>Kredits</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Kredits&amp;diff=630"/>
		<updated>2019-12-05T16:03:00Z</updated>

		<summary type="html">&lt;p&gt;Greg: Fix a few typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kredits are a system for tracking contributions to Kosmos projects, enabling the fair and transparent use of project funds, as well as improving project management and governance.&lt;br /&gt;
&lt;br /&gt;
For now, kredits are mostly a fun experiment and gaming element, but the long-term idea is that they can be rewarded with dividends, if or when the Kosmos project/org is in a financial position that allows it to reward everybody contributing to its success.&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
After a few years of experimentation, we finally started issuing kredits in production earlier this year (2019). We also have a functioning, usable Web UI up and running, which interacts directly with Ethereum and IPFS nodes, and which you can also use to create your contributor account: https://kredits.kosmos.org&lt;br /&gt;
&lt;br /&gt;
== Concept &amp;amp; Architecture ==&lt;br /&gt;
&lt;br /&gt;
=== Smart contracts ===&lt;br /&gt;
&lt;br /&gt;
Kredits are cryptographic tokens, (currently) stored on the [https://ethereum.org/ Ethereum] blockchain, issued and managed via programs called [https://en.wikipedia.org/wiki/Smart_contract smart contracts].&lt;br /&gt;
&lt;br /&gt;
We use two types of tokens:&lt;br /&gt;
&lt;br /&gt;
# A non-fungible [https://eips.ethereum.org/EIPS/eip-721 ERC721] token, which represents the actual contributions. These are unique, and they cannot be sent or traded with other people. They are earned by contributing to Kosmos projects, and either one of our bots or one of our contributors propose to create them for a contribution.&lt;br /&gt;
# A fungible [https://eips.ethereum.org/EIPS/eip-20 ERC20] token, which represents the value of contributions. These are not unique, meaning every token represents the same value. They can be sent to other addresses using any ERC20-compatible wallet.&lt;br /&gt;
&lt;br /&gt;
Every contribution token/record contains the amount of ERC20 kredits that can be claimed by the contributor. &amp;quot;Claiming&amp;quot; those tokens basically means paying them out from the Kredits smart contract to your own wallet. This is optional, and the contributor can choose to do this whenever they want.&lt;br /&gt;
&lt;br /&gt;
=== Data storage ===&lt;br /&gt;
&lt;br /&gt;
All non-essential data (basically everything except for pure IDs and numbers/amounts) is stored on [https://ipfs.io/ IPFS]. In order to ensure that no data is lost, and all data is available to Kredits users at all times, we run a few Kosmos IPFS nodes, as well as a public IPFS gateway. See [[Kredits:IPFS]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== High-level overview ===&lt;br /&gt;
&lt;br /&gt;
[[File:High-level-architecture.png|960px|link=https://wiki.kosmos.org/images/c/c1/High-level-architecture.svg|frameless|caption]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Kredits Contracts ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/67P/kredits-contracts/ kredits-contracts] contains the smart contracts, written in Solidity, as well as the generated contract ABI for use with the Web3 JavaScript library (e.g. in kredits-web). It can be linked from other programs via npm.&lt;br /&gt;
&lt;br /&gt;
=== Kosmos Schemas ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/67P/kosmos-schemas/ kosmos-schemas] contains the JSON Schema definitions and examples for all data stored in IPFS. They can be used in the kredits-contracts JS wrapper as well as in client apps.&lt;br /&gt;
&lt;br /&gt;
=== Kredits Web ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/67P/kredits-web/ kredits-web] is the Web UI for the public Kredits dashboard and management UI. The app is hosted on 5apps Deploy at [https://kredits.kosmos.org/ kredits.kosmos.org].&lt;br /&gt;
&lt;br /&gt;
=== Hubot Kredits ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/67P/hubot-kredits hubot-kredits] is a Hubot chatbot extension, which can automatically create (unconfirmed) contribution tokens, e.g. based on GitHub contributions, Mediawiki edits, etc.. We also use it to prototype back-end behavior that is potentially needed in `kredits-web`.&lt;br /&gt;
&lt;br /&gt;
=== Kredits GitHub ===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/67P/kredits-github kredits-github] is a very simple GitHub app, which adds a check to pull requests in org repos, ensuring that they are assigned a kredits label, which is used by hubot-kredits to determine the size of the contribution.&lt;br /&gt;
&lt;br /&gt;
=== Kredits IPFS Pinner ===&lt;br /&gt;
&lt;br /&gt;
[https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner kredits-ipfs-pinner] pins IPFS data of a Kredits organization on an IPFS node. Running this program turns any IPFS node into a live mirror for all Kredits-related documents.&lt;br /&gt;
&lt;br /&gt;
== Democratic governance via Kredits ==&lt;br /&gt;
&lt;br /&gt;
Kredits have the potential to be used for distributed governance of the Kosmos project and organization. The basic idea is that people can vote on decisions with a vote that carries a weight according to their contributions. In short: the people who do should be the ones who decide. With a limited set of basic rules, this makes for an interesting new and decentralized approach to open-source governance.&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
See https://wiki.kosmos.org/Meeting_Notes:_Feb_25,_2019#Kredits_Roadmap_2019&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Leaderboard for contributions/kredits, where people can choose to publish their name or not (based on actual blockchain data)&amp;lt;/del&amp;gt; WIP, almost done: https://kredits.kosmos.org/&lt;br /&gt;
* Some way for new contributors to claim kredits sent to them via email link or similar (Update: current idea is to issue them without the need for an address, then be able to confirm address change via GitHub OAuth and admin action/proposal)&lt;br /&gt;
* &amp;lt;del&amp;gt;IRC bot for small transactions, so people can send each other kredits on Kosmos project channels&amp;lt;/del&amp;gt; Turned out to not make sense.&lt;br /&gt;
* &amp;lt;del&amp;gt;Custom wallet, removing all unnecessary features and integrating custom features we'd like to have (like e.g. easy multisig transactions, linked/initiated from a Kosmos chatroom)&amp;lt;/del&amp;gt; WIP, almost done: https://github.com/67P/kredits-web/ (tokens can be sent via normal ETH wallets)&lt;br /&gt;
* [[Contribution Dashboard]] for regular Kredit distribution as well as general project stats&lt;br /&gt;
* Expense management, similar to https://opencollective.com/learn-more&lt;br /&gt;
* Interoperability with other coops/projects/software&lt;br /&gt;
** https://docs.opencoopecosystem.net/&lt;br /&gt;
** https://www.valueflo.ws/&lt;br /&gt;
&lt;br /&gt;
== Similar projects/ideas ==&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/@ecsa_team/programmed-decentralised-commons-production-2b1fac7cf9a8 cDPOs (commons-oriented decentralised programmed organisations)] as frameworks to bootstrap, develop &amp;amp; sustain commons projects&lt;br /&gt;
* [https://blog.colony.io/colony-beta-product-summary-2121a357d61d?mc_cid=b1750a36c8&amp;amp;mc_eid=fb43075dba#.9egmfejax Colony] -- &amp;quot;The Colony Beta is for teams who want to create their own “Collaboration Network”—a place to work with, incentivize, and track the contributions of a network of collaborators. It combines task management with “payments” and tracking.&amp;quot;&lt;br /&gt;
* [http://aragon.one/ Aragon] &lt;br /&gt;
* [https://github.com/ether-camp/virtual-accelerator/ ether-camp/virtual accelerator] -- &amp;quot;The Virtual Accelerator is a platform that allows for the promotion, testing and funding of ideas. &amp;quot; HackerGold is their token.&lt;br /&gt;
* [http://boardroom.to/ boardroom.to] -- A blockchain based governance platform.&lt;br /&gt;
* [https://lunyr.com/ Lunyr] -- &amp;quot;Lunyr is an Ethereum-based decentralized crowdsourced encyclopedia which rewards users with app tokens for peer-reviewing and contributing information.&amp;quot;&lt;br /&gt;
* [https://singulardtv.com/ Singulardtv] -- &amp;quot;A Blockchain Entertainment Studio, Smart Contract Rights Management Platform and Video On-Demand Portal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see also: &lt;br /&gt;
&lt;br /&gt;
* [https://tokenmarket.net/ TokenMarket] -- &amp;quot;Trade and research 152 digital assets. Organize crowdsales.&amp;quot;&lt;br /&gt;
* [https://medium.com/@ConsenSys/tokens-on-ethereum-e9e61dac9b4e#.hfxscd8yx Tokens on Ethereum] about Ethereum based tokens by ConsenSys&lt;br /&gt;
* [https://medium.com/@balajis/thoughts-on-tokens-436109aabcbe Thoughts on Tokens] by Balaji S. Srinivasan and Naval Ravikant&lt;br /&gt;
* [https://www.misthos.io/ Misthos] (multi-sig bitcoin wallet, &amp;quot;designed for project teams, investment partnerships and other ad hoc ventures to manage the divvying up of income (received as bitcoin) among their individual members&amp;quot;, based on Blockstack, [https://www.coindesk.com/bitcoin-wallet-blockstack-decentralized/ Coindesk article])&lt;br /&gt;
* https://sourcecred.io&lt;br /&gt;
* [https://freecoin.dyne.org/ Freecoin]&lt;br /&gt;
&lt;br /&gt;
== Similar code/inspirations/links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Lunyr/crowdsale-contracts/tree/master/contracts Lynyr contracts]&lt;br /&gt;
* [https://github.com/Giveth/minime minime contracts]&lt;br /&gt;
* [https://github.com/ConsenSys/gnosis-contracts/blob/master/contracts/solidity/Tokens/StandardToken.sol gnosis-contracts] &lt;br /&gt;
* [https://github.com/melonproject/melon/ melonproject contracts]&lt;br /&gt;
* Paper: [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3243656 &amp;quot;Liberal Radicalism: Formal Rules for a Society Neutral Among Communities&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* [https://sideshift.ai/ Sideshift] is similar to Shapeshift, but without KYC and such. Could be used to donate to the Kredits contract using Bitcoin via LN, as well as via normal chain txs with a variety of currencies.&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=583</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=583"/>
		<updated>2019-09-26T12:57:49Z</updated>

		<summary type="html">&lt;p&gt;Greg: Switch the MUC server to kosmos.chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and kosmos.chat MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org ([https://github.com/sockethub/sockethub sockethub])&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/wormhole wormhole] (IRC/XMPP bridge between Kosmos rooms on Freenode and kosmos.chat)&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 2-workers cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://velero.io/ Velero] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=582</id>
		<title>Services:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Services:Chat&amp;diff=582"/>
		<updated>2019-09-26T12:57:20Z</updated>

		<summary type="html">&lt;p&gt;Greg: Switch the MUC server to kosmos.chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is XMPP? ==&lt;br /&gt;
&lt;br /&gt;
XMPP is an open standard for instant messages as well as voice and video chat. With XMPP, you can send and receive messages between users on thousands of different chat providers.&lt;br /&gt;
&lt;br /&gt;
== How to connect ==&lt;br /&gt;
&lt;br /&gt;
Usually, you only need your user address and password to configure your chat application.&lt;br /&gt;
&lt;br /&gt;
Your user address is &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;your-username&amp;lt;/em&amp;gt;@kosmos.org&amp;lt;/strong&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
For advanced users and/or troubleshooting:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: xmpp.kosmos.org&lt;br /&gt;
;C2S port&lt;br /&gt;
: 5222&lt;br /&gt;
;S2S port&lt;br /&gt;
: 5269&lt;br /&gt;
;Bosh URL&lt;br /&gt;
: xmpp.kosmos.org:5443/bosh&lt;br /&gt;
;In-band Registration&lt;br /&gt;
: Closed&lt;br /&gt;
&lt;br /&gt;
== Multi-user Chat (MUC) ==&lt;br /&gt;
&lt;br /&gt;
The server is host to a variety of chat rooms. The server's MUC domain is &amp;lt;strong&amp;gt;kosmos.chat&amp;lt;/strong&amp;gt;. Thus, room addresses look like &amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;chatroom-name&amp;lt;/em&amp;gt;@kosmos.chat&amp;lt;/strong&amp;gt;. Only local users (with a kosmos.org address) are currently allowed to create chat rooms on kosmos.chat.&lt;br /&gt;
&lt;br /&gt;
Come talk to us in [xmpp:kosmos@kosmos.chat?join kosmos@kosmos.chat]!&lt;br /&gt;
&lt;br /&gt;
== Tor hidden service ==&lt;br /&gt;
&lt;br /&gt;
You can connect to the XMPP server directly from the Tor network. The configuration is the same as for clearnet, except for the server to connect to:&lt;br /&gt;
&lt;br /&gt;
;Server/host&lt;br /&gt;
: ht6eqe754p3m2gif.onion&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=570</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=570"/>
		<updated>2019-08-13T08:54:53Z</updated>

		<summary type="html">&lt;p&gt;Greg: Ark is now Velero, update the number of workers on GKE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and chat.kosmos.org MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node + public gateway)&lt;br /&gt;
** &amp;lt;code&amp;gt;ipfs swarm connect /ip4/46.4.18.160/tcp/4001/ipfs/QmZ4Lpzhz8bafbTYvEMMCmrbrMM4JfyHDR23WbCSAd9bo7&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner] (pinning kredits data from smart contract events)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org (Sockethub)&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + [https://gitea.kosmos.org/kosmos/kredits-ipfs-pinner/ kredits-ipfs-pinner]&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 2-workers cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://velero.io/ Velero] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=555</id>
		<title>Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Infrastructure&amp;diff=555"/>
		<updated>2019-05-28T10:32:12Z</updated>

		<summary type="html">&lt;p&gt;Greg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kosmos project is running some community IT infrastructure, currently sponsored by 5apps. Please ask in #kosmos-dev on Freenode if you need access, changes, info, or whatever else.&lt;br /&gt;
&lt;br /&gt;
== Servers ==&lt;br /&gt;
&lt;br /&gt;
Most things are configured via Chef Solo, based on https://gitea.kosmos.org/kosmos/chef&lt;br /&gt;
&lt;br /&gt;
=== Hetzner ===&lt;br /&gt;
&lt;br /&gt;
These are root servers run by  Hetzner Online GmbH in German datacenters (using renewable energy).&lt;br /&gt;
&lt;br /&gt;
==== andromeda.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* kosmos.org XMPP and chat.kosmos.org MUC (ejabberd)&lt;br /&gt;
* bitcoind (mainnet)&lt;br /&gt;
* lnd (mainnet, [https://www.robtex.com/lightning/node/024cd3be18617f39cf645851e3ba63f51fc13f0bb09e3bb25e6fd4de556486d946 node info])&lt;br /&gt;
* c-lightning (mainnet, [https://www.robtex.com/lightning/node/03e26a98ee4d1320d5775fab291580969180592db3679e6d32e360dbd147066ca3 node info])&lt;br /&gt;
* ipfs.kosmos.org (IPFS node)&lt;br /&gt;
* ipfs-cluster (to ensure kredits data is replicated)&lt;br /&gt;
* [https://kosmos.social kosmos.social] (Mastodon)&lt;br /&gt;
* wiki.kosmos.org (you're looking at it)&lt;br /&gt;
&lt;br /&gt;
=== Digital Ocean ===&lt;br /&gt;
&lt;br /&gt;
==== barnard.kosmos.org ====&lt;br /&gt;
&lt;br /&gt;
Running Ubuntu 18.04 LTS&lt;br /&gt;
&lt;br /&gt;
Currently hosting:&lt;br /&gt;
&lt;br /&gt;
* sockethub.kosmos.org (Sockethub)&lt;br /&gt;
* Some IRC and XMPP bots (incl. botka and hal8000 on freenode)&lt;br /&gt;
* IPFS + ipfs-cluster (syncing with andromeda)&lt;br /&gt;
&lt;br /&gt;
=== GKE ===&lt;br /&gt;
&lt;br /&gt;
We started experimenting with Kubernetes recently. There's a 3-node cluster running on Google Kubernetes Engine at the moment. &lt;br /&gt;
&lt;br /&gt;
* [https://gitea.kosmos.org/ gitea.kosmos.org] (Gitea, see [https://gitea.kosmos.org/kosmos/gitea.kosmos.org/ config repo])&lt;br /&gt;
* [https://heptio.github.io/ark/ ark] (backups)&lt;/div&gt;</summary>
		<author><name>Greg</name></author>
		
	</entry>
</feed>