<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://agora.nasqueron.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A470%3A1F13%3AD91%3AF980%3A7449%3A6E00%3AB7F8</id>
	<title>Nasqueron Agora - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://agora.nasqueron.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A470%3A1F13%3AD91%3AF980%3A7449%3A6E00%3AB7F8"/>
	<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/Special:Contributions/2001:470:1F13:D91:F980:7449:6E00:B7F8"/>
	<updated>2026-06-02T11:14:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0-alpha</generator>
	<entry>
		<id>https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=552</id>
		<title>Operations grimoire/Notifications center</title>
		<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=552"/>
		<updated>2016-08-24T01:03:56Z</updated>

		<summary type="html">&lt;p&gt;2001:470:1F13:D91:F980:7449:6E00:B7F8: /* Upgrade a live container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The notifications centers is an HTTP to HTTP and HTTP to AMQP gateway for our CI infrastructure.&lt;br /&gt;
&lt;br /&gt;
It allows to receive events from GitHub, Docker Hub and Phabricator, and send them to a RabbitMQ broker (white-rabbit) or Phabricator.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[Operations grimoire/Docker engine|Docker engine]]&lt;br /&gt;
* [[Operations grimoire/RabbitMQ|RabbitMQ broker]]&lt;br /&gt;
&lt;br /&gt;
== Run it ==&lt;br /&gt;
=== Start a new container ===&lt;br /&gt;
&amp;lt;code&amp;gt;run-notifications&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade a live container ===&lt;br /&gt;
# Enter notifications container as app user : &amp;lt;code&amp;gt;docker exec -it --user=app notifications bash&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check we&#039;re on the master branch and the history is clean&lt;br /&gt;
# Update code rebasing the production branch against origin/master&lt;br /&gt;
# If composer has been touched, &amp;lt;code&amp;gt;composer update&amp;lt;/code&amp;gt; (could be faster to docker pull, stop this container and start a new container)&lt;br /&gt;
# If entered as root, fix ownership with &amp;lt;code&amp;gt;chown -R app:app /var/wwwroot/default&amp;lt;/code&amp;gt;&lt;br /&gt;
# Restart PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;php optimize&amp;lt;/code&amp;gt; to refresh compiled class&lt;br /&gt;
# Restart again PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For longer upgrade, you can put the application in maintenance mode with &amp;lt;code&amp;gt;php artisan down&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If preferences are updated (in the code or by us), update the cache: &amp;lt;code&amp;gt;php artisan config:cache &amp;amp;&amp;amp; sv restart php-fpm&amp;lt;/code&amp;gt; is needed.&lt;br /&gt;
&lt;br /&gt;
=== How to rebase against master? ===&lt;br /&gt;
&lt;br /&gt;
# update master to match origin/master&lt;br /&gt;
# rebase production against master&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git fetch&lt;br /&gt;
$ git checkout master&lt;br /&gt;
$ git rebase origin/master&lt;br /&gt;
$ git checkout production&lt;br /&gt;
$ git rebase master&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a merge conflict:&lt;br /&gt;
&lt;br /&gt;
# Edit the conflict files&lt;br /&gt;
# &amp;lt;code&amp;gt;git add &amp;lt;edited files&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;git rebase --continue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure it ==&lt;br /&gt;
=== Add a new GitHub organization ===&lt;br /&gt;
# Generate a random string to be used as a secret token shared between GitHub and the notifications center&lt;br /&gt;
# On Dwellers, add credentials to /data/notifications/storage/app/credentials.json&lt;br /&gt;
# On GitHub, go to organization settings, then Webhooks, e.g. https://github.com/organizations/acme/settings/hooks&lt;br /&gt;
# Add webhook:&lt;br /&gt;
## URL should be https://notifications.nasqueron.org/gate/GitHub/Acme where Acme is the ucfirst name of the organization account&lt;br /&gt;
## Your secret token go to secret field&lt;br /&gt;
## Switch from push events to &amp;quot;Send me everything&amp;quot;.&lt;br /&gt;
## Let default settings: active, SSL verification, application/json&lt;br /&gt;
# Run the CLI client to receive notifications (`notifications` on Ysul, require to be in the `notifications` group, editable through /etc/group)&lt;br /&gt;
# GitHub will then fire immediately a ping, check in recent deliveries it&#039;s 200&lt;br /&gt;
# Fix and redeliver it if not&lt;br /&gt;
# Check in the CLI you&#039;ve got a correct reply, e.g. [16:36:13] &amp;lt;Eglide/orgz&amp;gt; « Anything added dilutes everything else. » — GitHub Webhooks ping zen aphorism.&lt;br /&gt;
&lt;br /&gt;
For payload delivery code returned by notifications.nasqueron.org, a 500 means probably a JSON syntax error in credentials.json, a 403 tokens don&#039;t match, note the center doesn&#039;t verify token if an empty string is left in the config (or you made a typo to the property).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
# [https://devcentral.nasqueron.org/diffusion/NOTIF/ Source code]&lt;br /&gt;
# [https://devcentral.nasqueron.org/tag/notifications_center/ DevCentral board]&lt;br /&gt;
&lt;br /&gt;
{{Configuration as Code}}&lt;br /&gt;
{{Vault secrets migration}}&lt;/div&gt;</summary>
		<author><name>2001:470:1F13:D91:F980:7449:6E00:B7F8</name></author>
	</entry>
	<entry>
		<id>https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=551</id>
		<title>Operations grimoire/Notifications center</title>
		<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=551"/>
		<updated>2016-08-24T01:00:33Z</updated>

		<summary type="html">&lt;p&gt;2001:470:1F13:D91:F980:7449:6E00:B7F8: /* Upgrade a live container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The notifications centers is an HTTP to HTTP and HTTP to AMQP gateway for our CI infrastructure.&lt;br /&gt;
&lt;br /&gt;
It allows to receive events from GitHub, Docker Hub and Phabricator, and send them to a RabbitMQ broker (white-rabbit) or Phabricator.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[Operations grimoire/Docker engine|Docker engine]]&lt;br /&gt;
* [[Operations grimoire/RabbitMQ|RabbitMQ broker]]&lt;br /&gt;
&lt;br /&gt;
== Run it ==&lt;br /&gt;
=== Start a new container ===&lt;br /&gt;
&amp;lt;code&amp;gt;run-notifications&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade a live container ===&lt;br /&gt;
# Enter notifications container as app user : &amp;lt;code&amp;gt;docker exec -it --user=app notifications bash&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check we&#039;re on the master branch and the history is clean&lt;br /&gt;
# Update code rebasing the production branch against origin/master&lt;br /&gt;
# If composer has been touched, &amp;lt;code&amp;gt;composer update&amp;lt;/code&amp;gt; (could be faster to docker pull, stop this container and start a new container)&lt;br /&gt;
# If entered as root, fix ownership with &amp;lt;code&amp;gt;chown -R app:app /var/wwwroot/default&amp;lt;/code&amp;gt;&lt;br /&gt;
# Restart PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;php optimize&amp;lt;/code&amp;gt; to refresh compiled class&lt;br /&gt;
# Restart again PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For longer upgrade, you can put the application in maintenance mode with &amp;lt;code&amp;gt;php artisan down&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If preferences are updated (in the code or by us), &amp;lt;code&amp;gt;php artisan config:clear&amp;lt;/code&amp;gt; is needed.&lt;br /&gt;
&lt;br /&gt;
=== How to rebase against master? ===&lt;br /&gt;
&lt;br /&gt;
# update master to match origin/master&lt;br /&gt;
# rebase production against master&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git fetch&lt;br /&gt;
$ git checkout master&lt;br /&gt;
$ git rebase origin/master&lt;br /&gt;
$ git checkout production&lt;br /&gt;
$ git rebase master&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a merge conflict:&lt;br /&gt;
&lt;br /&gt;
# Edit the conflict files&lt;br /&gt;
# &amp;lt;code&amp;gt;git add &amp;lt;edited files&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;git rebase --continue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure it ==&lt;br /&gt;
=== Add a new GitHub organization ===&lt;br /&gt;
# Generate a random string to be used as a secret token shared between GitHub and the notifications center&lt;br /&gt;
# On Dwellers, add credentials to /data/notifications/storage/app/credentials.json&lt;br /&gt;
# On GitHub, go to organization settings, then Webhooks, e.g. https://github.com/organizations/acme/settings/hooks&lt;br /&gt;
# Add webhook:&lt;br /&gt;
## URL should be https://notifications.nasqueron.org/gate/GitHub/Acme where Acme is the ucfirst name of the organization account&lt;br /&gt;
## Your secret token go to secret field&lt;br /&gt;
## Switch from push events to &amp;quot;Send me everything&amp;quot;.&lt;br /&gt;
## Let default settings: active, SSL verification, application/json&lt;br /&gt;
# Run the CLI client to receive notifications (`notifications` on Ysul, require to be in the `notifications` group, editable through /etc/group)&lt;br /&gt;
# GitHub will then fire immediately a ping, check in recent deliveries it&#039;s 200&lt;br /&gt;
# Fix and redeliver it if not&lt;br /&gt;
# Check in the CLI you&#039;ve got a correct reply, e.g. [16:36:13] &amp;lt;Eglide/orgz&amp;gt; « Anything added dilutes everything else. » — GitHub Webhooks ping zen aphorism.&lt;br /&gt;
&lt;br /&gt;
For payload delivery code returned by notifications.nasqueron.org, a 500 means probably a JSON syntax error in credentials.json, a 403 tokens don&#039;t match, note the center doesn&#039;t verify token if an empty string is left in the config (or you made a typo to the property).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
# [https://devcentral.nasqueron.org/diffusion/NOTIF/ Source code]&lt;br /&gt;
# [https://devcentral.nasqueron.org/tag/notifications_center/ DevCentral board]&lt;br /&gt;
&lt;br /&gt;
{{Configuration as Code}}&lt;br /&gt;
{{Vault secrets migration}}&lt;/div&gt;</summary>
		<author><name>2001:470:1F13:D91:F980:7449:6E00:B7F8</name></author>
	</entry>
	<entry>
		<id>https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=550</id>
		<title>Operations grimoire/Notifications center</title>
		<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/index.php?title=Operations_grimoire/Notifications_center&amp;diff=550"/>
		<updated>2016-08-23T19:53:30Z</updated>

		<summary type="html">&lt;p&gt;2001:470:1F13:D91:F980:7449:6E00:B7F8: /* Upgrade a live container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The notifications centers is an HTTP to HTTP and HTTP to AMQP gateway for our CI infrastructure.&lt;br /&gt;
&lt;br /&gt;
It allows to receive events from GitHub, Docker Hub and Phabricator, and send them to a RabbitMQ broker (white-rabbit) or Phabricator.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* [[Operations grimoire/Docker engine|Docker engine]]&lt;br /&gt;
* [[Operations grimoire/RabbitMQ|RabbitMQ broker]]&lt;br /&gt;
&lt;br /&gt;
== Run it ==&lt;br /&gt;
=== Start a new container ===&lt;br /&gt;
&amp;lt;code&amp;gt;run-notifications&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade a live container ===&lt;br /&gt;
# Enter notifications container as app user : &amp;lt;code&amp;gt;docker exec -it --user=app notifications bash&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check we&#039;re on the master branch and the history is clean&lt;br /&gt;
# Update code rebasing the production branch against origin/master&lt;br /&gt;
# If composer has been touched, &amp;lt;code&amp;gt;composer update&amp;lt;/code&amp;gt; (could be faster to docker pull, stop this container and start a new container)&lt;br /&gt;
# If entered as root, fix ownership with &amp;lt;code&amp;gt;chown -R app:app /var/wwwroot/default&amp;lt;/code&amp;gt;&lt;br /&gt;
# Restart PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;php optimize&amp;lt;/code&amp;gt; to refresh compiled class&lt;br /&gt;
# Restart again PHP FPM with &amp;lt;code&amp;gt;sv restart php-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For longer upgrade, you can put the application in maintenance mode with &amp;lt;code&amp;gt;php artisan down&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== How to rebase against master? ===&lt;br /&gt;
&lt;br /&gt;
# update master to match origin/master&lt;br /&gt;
# rebase production against master&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git fetch&lt;br /&gt;
$ git checkout master&lt;br /&gt;
$ git rebase origin/master&lt;br /&gt;
$ git checkout production&lt;br /&gt;
$ git rebase master&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is a merge conflict:&lt;br /&gt;
&lt;br /&gt;
# Edit the conflict files&lt;br /&gt;
# &amp;lt;code&amp;gt;git add &amp;lt;edited files&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;git rebase --continue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure it ==&lt;br /&gt;
=== Add a new GitHub organization ===&lt;br /&gt;
# Generate a random string to be used as a secret token shared between GitHub and the notifications center&lt;br /&gt;
# On Dwellers, add credentials to /data/notifications/storage/app/credentials.json&lt;br /&gt;
# On GitHub, go to organization settings, then Webhooks, e.g. https://github.com/organizations/acme/settings/hooks&lt;br /&gt;
# Add webhook:&lt;br /&gt;
## URL should be https://notifications.nasqueron.org/gate/GitHub/Acme where Acme is the ucfirst name of the organization account&lt;br /&gt;
## Your secret token go to secret field&lt;br /&gt;
## Switch from push events to &amp;quot;Send me everything&amp;quot;.&lt;br /&gt;
## Let default settings: active, SSL verification, application/json&lt;br /&gt;
# Run the CLI client to receive notifications (`notifications` on Ysul, require to be in the `notifications` group, editable through /etc/group)&lt;br /&gt;
# GitHub will then fire immediately a ping, check in recent deliveries it&#039;s 200&lt;br /&gt;
# Fix and redeliver it if not&lt;br /&gt;
# Check in the CLI you&#039;ve got a correct reply, e.g. [16:36:13] &amp;lt;Eglide/orgz&amp;gt; « Anything added dilutes everything else. » — GitHub Webhooks ping zen aphorism.&lt;br /&gt;
&lt;br /&gt;
For payload delivery code returned by notifications.nasqueron.org, a 500 means probably a JSON syntax error in credentials.json, a 403 tokens don&#039;t match, note the center doesn&#039;t verify token if an empty string is left in the config (or you made a typo to the property).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
# [https://devcentral.nasqueron.org/diffusion/NOTIF/ Source code]&lt;br /&gt;
# [https://devcentral.nasqueron.org/tag/notifications_center/ DevCentral board]&lt;br /&gt;
&lt;br /&gt;
{{Configuration as Code}}&lt;br /&gt;
{{Vault secrets migration}}&lt;/div&gt;</summary>
		<author><name>2001:470:1F13:D91:F980:7449:6E00:B7F8</name></author>
	</entry>
</feed>