<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kanthaus.online/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Antonin</id>
	<title>Kanthaus wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kanthaus.online/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Antonin"/>
	<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/Special:Contributions/Antonin"/>
	<updated>2026-05-14T08:24:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Waste_management&amp;diff=2022</id>
		<title>Waste management</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Waste_management&amp;diff=2022"/>
		<updated>2025-08-09T05:33:53Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Waste management */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Waste management ==&lt;br /&gt;
We all know that lots of things which are considered waste can be very valuable. It&#039;s great to learn and teach about repairing and upcycling. But there comes the point where we have to get rid of some of the potential in order to give our souls some rest. &lt;br /&gt;
&lt;br /&gt;
This page wants to inform about how different materials are handled and where they are stored. Also there&#039;s information on recycling places and landfills and guides on what to put in which bin.&lt;br /&gt;
&lt;br /&gt;
== Different kinds of materials ==&lt;br /&gt;
&lt;br /&gt;
=== Old textiles ===&lt;br /&gt;
&lt;br /&gt;
* pure cotton things can be turned into butt towels&lt;br /&gt;
* textile without holes can go to Free Shop first&lt;br /&gt;
* with holes/sorted out/broken: old textile containers in the city or at Wertstoffhof Kell&lt;br /&gt;
* oily rags and similar: black bin&lt;br /&gt;
&lt;br /&gt;
=== Paper/cardboard ===&lt;br /&gt;
&lt;br /&gt;
* Paper could be sold at TIAx but is probably not worth the effort. Off to the blue bin!&lt;br /&gt;
* Cardboard should get folded and put in the blue bin&lt;br /&gt;
* banana boxes are nice so consider keeping them&lt;br /&gt;
&lt;br /&gt;
=== Bottles and Jars ===&lt;br /&gt;
&lt;br /&gt;
* size 77 jars and lids are being kept&lt;br /&gt;
* the rest gets collected in K20-basement&lt;br /&gt;
* empty bottles and jars go into the recycling containers that are around the town (Lidl parking lot)&lt;br /&gt;
* deposit (Pfand) can be returned best at Rewe&lt;br /&gt;
&lt;br /&gt;
=== Organic ===&lt;br /&gt;
&lt;br /&gt;
* everything organic, can be accompanied by some paper&lt;br /&gt;
* messy egg boxes&lt;br /&gt;
&lt;br /&gt;
=== Compost ===&lt;br /&gt;
&lt;br /&gt;
* most organic stuff&lt;br /&gt;
* no: cooked things, meat, citrus&lt;br /&gt;
&lt;br /&gt;
=== Construction waste ===&lt;br /&gt;
&lt;br /&gt;
* tiles, bricks, stone, concrete, ceramics, porcellain&lt;br /&gt;
* depending on the place it&#039;s more or less important to have purely mineral waste&lt;br /&gt;
&lt;br /&gt;
=== Wood ===&lt;br /&gt;
&lt;br /&gt;
* there are 4 categories of Altholz and it can be quite expensive to dispose of&lt;br /&gt;
&lt;br /&gt;
=== Metal ===&lt;br /&gt;
&lt;br /&gt;
* we keep some things out of metal for building and soldering in K18 basement&lt;br /&gt;
* most things can be collected and sold at TIAx, alternatively people like to come by and collect it for free&lt;br /&gt;
&lt;br /&gt;
=== Electric devices ===&lt;br /&gt;
&lt;br /&gt;
* to do: find out if TIAx also takes it&lt;br /&gt;
&lt;br /&gt;
=== Batteries ===&lt;br /&gt;
&lt;br /&gt;
* non-rechargables can be brought to any supermarket from time to time&lt;br /&gt;
* rechargables and devices containing rechargables are stored waterproof outside, can be brought to Kell from time to time&lt;br /&gt;
&lt;br /&gt;
=== Paint ===&lt;br /&gt;
&lt;br /&gt;
* let it dry in the sun, as soon as the surface cracks it can be put into the black bin&lt;br /&gt;
&lt;br /&gt;
=== Hazardous stuff ===&lt;br /&gt;
&lt;br /&gt;
* this is a quite wide variety. Generelly store outside and rainsafe.&lt;br /&gt;
* Schadstoffmobil takes some stuff but by far not everything&lt;br /&gt;
* ZAW Cröbern probably takes most stuff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black bin ==&lt;br /&gt;
&lt;br /&gt;
* Each emptying costs 10€. Please consider some things when using it.&lt;br /&gt;
&lt;br /&gt;
=== Yes ===&lt;br /&gt;
&lt;br /&gt;
* small amounts of broken porcellain and mixed construction waste&lt;br /&gt;
* smaller sized glued or painted wood&lt;br /&gt;
* dry paint&lt;br /&gt;
* floor sweepings&lt;br /&gt;
* old dirty rags&lt;br /&gt;
&lt;br /&gt;
=== No ===&lt;br /&gt;
&lt;br /&gt;
* bulky stuff&lt;br /&gt;
* metal (better collect and sell)&lt;br /&gt;
* stuff that can also go in other bins&lt;br /&gt;
* textile that&#039;s not super destroyed&lt;br /&gt;
&lt;br /&gt;
== Yellow bin ==&lt;br /&gt;
&lt;br /&gt;
* Packaging material (styrofoam, plastic, tin, containers, plastic bags, wrapping foil, to-go-cups)&lt;br /&gt;
* some sources say that it&#039;s okay to put small amounts of hard plastics in the yellow bin&lt;br /&gt;
&lt;br /&gt;
== Blue bin ==&lt;br /&gt;
&lt;br /&gt;
* Paper&lt;br /&gt;
* Folded cardboard&lt;br /&gt;
* If they&#039;re too full, you can climb in and trample the contents down&lt;br /&gt;
&lt;br /&gt;
== Construction waste ==&lt;br /&gt;
&lt;br /&gt;
* Kell Wertstoffhof takes it for 10€ per 100kg (not sure if this is true as there&#039;s old KH information saying 15€/ton)&lt;br /&gt;
* TiAx is offering containers (5,7,10m³), costs are about 130€ + 27,50€ per ton (source: phone call 6/25). Additionally needs [https://www.wurzen.de/buergerservice/dienstleistungen/containerstellung-900000049-0.html?myMedium=1 Antrag] to place container on the street.&lt;br /&gt;
* [https://www.dsb-degenhardt.de/kontakt DSB Degenhardt], Grube Lübschütz. Nice place and probably cheapest and easiest option for up until 1.5 tons. About 10€ per m³ (guess)&lt;br /&gt;
* ancient Kanthaus sources say Alba takes construction waste for 32,47€/ton&lt;br /&gt;
&lt;br /&gt;
== Recycling places ==&lt;br /&gt;
&lt;br /&gt;
=== Kell Wertstoffhof Wurzen ===&lt;br /&gt;
&lt;br /&gt;
* public recycling place where they take a wide variety of stuff&lt;br /&gt;
* opening hours: tu-fr, 09:00-17:00&lt;br /&gt;
** also open @2nd saturday of each month, where they also take hazardous material (Schadstoffmobil)&lt;br /&gt;
* most services here are free for Wurzeners&lt;br /&gt;
** they could ask for a proof of residency&lt;br /&gt;
** there&#039;s a limit on how much bulky waste you can dump (something like 2 m³)&lt;br /&gt;
&lt;br /&gt;
==== What they take and how they want you to seperate ====&lt;br /&gt;
&lt;br /&gt;
*Bulky waste/Sperrmüll&lt;br /&gt;
**glued wood, pressboard panels, tapestry, bulky plastic stuff &lt;br /&gt;
*Electric waste/cable stuff without batteries or solar panels&lt;br /&gt;
*Batteries, accumulators&lt;br /&gt;
*Scrap Metal (better sell it at TiAx) &lt;br /&gt;
*Textiles&lt;br /&gt;
*Construction waste (10€ per 100 kg)&lt;br /&gt;
&lt;br /&gt;
=== [https://tiax-recycling.de TIAx Transport und Recycling] ===&lt;br /&gt;
&lt;br /&gt;
* place to sell mainly scrap metal (mixed and or sorted)&lt;br /&gt;
* they say prices are based on the daily value. &lt;br /&gt;
** mixed scrap metal: 128€ per ton (03/2025)&lt;br /&gt;
* opening hours: mo-fr, 07:00-12:00 &amp;amp; 13:00-16:00&lt;br /&gt;
&lt;br /&gt;
=== [https://www.dsb-degenhardt.de/kontakt Grube Lübschütz, DSB Degenhardt] ===&lt;br /&gt;
&lt;br /&gt;
* opening hours: mo-fr 7:00-16:00. from april to october until 17:00 and also on saturdays until 12:00&lt;br /&gt;
* [https://www.openstreetmap.org/node/4784787415 B107, 800 meters to Lübschütz coming from B6.] 7,5km from KH&lt;br /&gt;
&lt;br /&gt;
=== [https://www.wev-sachsen.de/2025/06/10/fuer-unsere-kleinanlieferer-noch-einfacher-entsorgen-ab-1-juli-2025/ Zentraldeponie Cröbern] [https://www.zaw-sachsen.de/entsorgung/privatpersonen-und-kleingewerbe/ - Zweckverband Abfallwirtschaft Westsachsen] ===&lt;br /&gt;
&lt;br /&gt;
* far away, only reasonable for some special stuff&lt;br /&gt;
&lt;br /&gt;
* Am Westufer 3, 04463 Großpösna/OT Störmthal&lt;br /&gt;
&lt;br /&gt;
* Telefon: 034299 705-0 ; E-Mail: info@zaw-sachsen.de&lt;br /&gt;
* Mo-Fr 16-19:00&lt;br /&gt;
&lt;br /&gt;
=== [https://www.remondis-sachsen.de/standort-trebsen/ Remondis Recyclinghof Trebsen] ===&lt;br /&gt;
&lt;br /&gt;
* similiar to Kell Wurzen&lt;br /&gt;
&lt;br /&gt;
=== [https://sachsen.alba.info/unternehmen/standorte/detail/standort-wurzen/ Alba Wurzen] ===&lt;br /&gt;
&lt;br /&gt;
* similiar to Kell Wurzen (probably)&lt;br /&gt;
&lt;br /&gt;
== Things we keep which might be considered trash elsewhere ==&lt;br /&gt;
* Egg cartons&lt;br /&gt;
* candle butts&lt;br /&gt;
* soap bar remainings&lt;br /&gt;
* kitchen sponges&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Water_usage_tracking&amp;diff=1989</id>
		<title>Water usage tracking</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Water_usage_tracking&amp;diff=1989"/>
		<updated>2025-07-06T05:29:44Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Updating the firmware */ fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;💧 We log our water usage over time in [[Grafana]]. To do so, we have two small devices next to our main water meter and warm water meter respectively. They periodically read the meter by taking a picture and recognizing digits in it (currently every 5 minutes). This page describes how those devices are set up, how to maintain them and how to install similar ones elsewhere.&lt;br /&gt;
[[File:Water meter reader.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The device is an ESP32-CAM board with an OV2640 camera module. It can be obtained from many suppliers (we use [https://arduino-projekte.info/produkt/esp32-cam-mit-ov2640-kamera-modul/ this one]). The software on the device is the [https://github.com/jomjol/AI-on-the-edge-device AI-on-the-edge-device] firmware, which does the digitization and upload to InfluxDB directly from the board itself. General documentation for this firmware is available on [https://github.com/jomjol/AI-on-the-edge-device/wiki its GitHub wiki], this document focuses on the Kanthaus-specific parts.&lt;br /&gt;
&lt;br /&gt;
== Setting up the device ==&lt;br /&gt;
&lt;br /&gt;
First, we need a power source (5V DC) for the board. We have plenty of such adapters in the electronics workshop, all that is needed is to solder the appropriate connectors to plug the power source to the board. The camera that comes with the device is set up for a focal length that is not adapted to this use, so we need to rotate the objective to obtain a sharp image of the meter at a close distance. This requires [https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation removing the glue which holds the objective in place]. This step is quite fiddly, do not bring the lens too close to the sensor either or you could break the camera. The device comes with a default firmware which lets you stream from the camera over WiFi, which helps with checking the sharpness as you make changes. To do so, connect the device to a power source and connect to the WiFi network it creates. Then, go to &amp;lt;code&amp;gt;http://192.168.4.1/&amp;lt;/code&amp;gt; and you are able to stream directly from the device’s camera.&lt;br /&gt;
&lt;br /&gt;
The devices use by default an internal WiFi antenna which is not very strong. It is very advisable to use the external antenna instead, but that requires unsoldering a very small resistor and soldering it in another position, which requires some skill.&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
The devices are connected to the &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt; WiFi network, which means it has limited network access. Their IP addresses are static:&lt;br /&gt;
* &amp;lt;code&amp;gt;192.168.5.37&amp;lt;/code&amp;gt; for the main water meter&lt;br /&gt;
* &amp;lt;code&amp;gt;192.168.5.38&amp;lt;/code&amp;gt; for the warm water meter&lt;br /&gt;
&lt;br /&gt;
To access its web UI connect to the &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt; network and go to &amp;lt;code&amp;gt;http://192.168.5.37/&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;http://192.168.5.38/&amp;lt;/code&amp;gt; for the warm water meter). If you are outside of Kanthaus, use SSH port forwarding via kanthaus-server, such as &amp;lt;code&amp;gt;ssh -L 8080:192.168.5.37:80 kanthaus-server&amp;lt;/code&amp;gt;, and then point your browser to &amp;lt;code&amp;gt;http://localhost:8080/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The network settings for the device can be changed by taking out the SD card in it and modifying the &amp;lt;code&amp;gt;wlan.ini&amp;lt;/code&amp;gt; file on the card.&lt;br /&gt;
&lt;br /&gt;
== Updating the firmware ==&lt;br /&gt;
&lt;br /&gt;
The firmware can be updated in two ways:&lt;br /&gt;
* either via the web interface&lt;br /&gt;
* or by flashing the device directly, using a USB-to-Serial adapter. We have one in the electronics workshop for this.&lt;br /&gt;
&lt;br /&gt;
To flash via USB, the connections look like this: [[File:../images/water_meter_reader_ftdi.jpg|Connecting a FTDI adatper to flash the firmware]]&lt;br /&gt;
&lt;br /&gt;
Flashing the device requires three binary files, which can be copied to device using &amp;lt;code&amp;gt;esptool.py&amp;lt;/code&amp;gt; (which can be installed with &amp;lt;code&amp;gt;pip install esptool&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;esptool.py erase_flash&lt;br /&gt;
esptool.py write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Training the digitizer ==&lt;br /&gt;
&lt;br /&gt;
Before the device can read the meter, it needs to be calibrated. This would need to be done again for instance when our water meter is renewed. This can be done from the web UI directly. Refer to [https://github.com/jomjol/AI-on-the-edge-device/wiki/Graphical-configuration the official documentation] for more details about the process.&lt;br /&gt;
&lt;br /&gt;
== Development environment ==&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/jomjol/AI-on-the-edge-device/wiki/Build-Instructions official documentation] recommends to use VSCode with the PlatformIO extension to develop, but sadly PlatformIO is not available for VSCodium at the time of writing this. Instead you can relatively easily work with a text editor, and install [https://platformio.org/ PlatformIO] in a Python virtualenv (from the &amp;lt;code&amp;gt;code/&amp;lt;/code&amp;gt; subdirectory of the repository):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install platformio esptool&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can compile the firmware with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;platformio run --environment esp32cam&amp;lt;/pre&amp;gt;&lt;br /&gt;
This generates the three &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; files required for flashing in the &amp;lt;code&amp;gt;.pio/build/esp32cam&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
&lt;br /&gt;
For debugging purposes it is useful to use the USB-to-Serial adapter to see detailed logs. First, connect the adapter to the device (by crossing the RX/TX wires and connecting GND and +5V). Then, locate the USB-to-Serial adapter by listing the USB devices before and after plugging in. Once you have the path to the device, you can then open it with: &amp;lt;code&amp;gt;screen /dev/ttyUSB0 115200&amp;lt;/code&amp;gt;. If screen terminates immediately you might need to add your user to the &amp;lt;code&amp;gt;dialout&amp;lt;/code&amp;gt; group, see [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/establish-serial-connection.html the detailed instructions for serial communication with ESP32].&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Water_usage_tracking&amp;diff=1988</id>
		<title>Water usage tracking</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Water_usage_tracking&amp;diff=1988"/>
		<updated>2025-07-06T05:29:18Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Network settings */ fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;💧 We log our water usage over time in [[Grafana]]. To do so, we have two small devices next to our main water meter and warm water meter respectively. They periodically read the meter by taking a picture and recognizing digits in it (currently every 5 minutes). This page describes how those devices are set up, how to maintain them and how to install similar ones elsewhere.&lt;br /&gt;
[[File:Water meter reader.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The device is an ESP32-CAM board with an OV2640 camera module. It can be obtained from many suppliers (we use [https://arduino-projekte.info/produkt/esp32-cam-mit-ov2640-kamera-modul/ this one]). The software on the device is the [https://github.com/jomjol/AI-on-the-edge-device AI-on-the-edge-device] firmware, which does the digitization and upload to InfluxDB directly from the board itself. General documentation for this firmware is available on [https://github.com/jomjol/AI-on-the-edge-device/wiki its GitHub wiki], this document focuses on the Kanthaus-specific parts.&lt;br /&gt;
&lt;br /&gt;
== Setting up the device ==&lt;br /&gt;
&lt;br /&gt;
First, we need a power source (5V DC) for the board. We have plenty of such adapters in the electronics workshop, all that is needed is to solder the appropriate connectors to plug the power source to the board. The camera that comes with the device is set up for a focal length that is not adapted to this use, so we need to rotate the objective to obtain a sharp image of the meter at a close distance. This requires [https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation removing the glue which holds the objective in place]. This step is quite fiddly, do not bring the lens too close to the sensor either or you could break the camera. The device comes with a default firmware which lets you stream from the camera over WiFi, which helps with checking the sharpness as you make changes. To do so, connect the device to a power source and connect to the WiFi network it creates. Then, go to &amp;lt;code&amp;gt;http://192.168.4.1/&amp;lt;/code&amp;gt; and you are able to stream directly from the device’s camera.&lt;br /&gt;
&lt;br /&gt;
The devices use by default an internal WiFi antenna which is not very strong. It is very advisable to use the external antenna instead, but that requires unsoldering a very small resistor and soldering it in another position, which requires some skill.&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
The devices are connected to the &amp;lt;code&amp;gt;kh-iot&amp;lt;/code&amp;gt; WiFi network, which means it has limited network access. Their IP addresses are static:&lt;br /&gt;
* &amp;lt;code&amp;gt;192.168.5.37&amp;lt;/code&amp;gt; for the main water meter&lt;br /&gt;
* &amp;lt;code&amp;gt;192.168.5.38&amp;lt;/code&amp;gt; for the warm water meter&lt;br /&gt;
&lt;br /&gt;
To access its web UI connect to the &amp;lt;code&amp;gt;kh-admin&amp;lt;/code&amp;gt; network and go to &amp;lt;code&amp;gt;http://192.168.5.37/&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;http://192.168.5.38/&amp;lt;/code&amp;gt; for the warm water meter). If you are outside of Kanthaus, use SSH port forwarding via kanthaus-server, such as &amp;lt;code&amp;gt;ssh -L 8080:192.168.5.37:80 kanthaus-server&amp;lt;/code&amp;gt;, and then point your browser to &amp;lt;code&amp;gt;http://localhost:8080/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The network settings for the device can be changed by taking out the SD card in it and modifying the &amp;lt;code&amp;gt;wlan.ini&amp;lt;/code&amp;gt; file on the card.&lt;br /&gt;
&lt;br /&gt;
== Updating the firmware ==&lt;br /&gt;
&lt;br /&gt;
The firmware can be updated in two ways: * either via the web interface * or by flashing the device directly, using a USB-to-Serial adapter. We have one in the electronics workshop for this.&lt;br /&gt;
&lt;br /&gt;
To flash via USB, the connections look like this: [[File:../images/water_meter_reader_ftdi.jpg|Connecting a FTDI adatper to flash the firmware]]&lt;br /&gt;
&lt;br /&gt;
Flashing the device requires three binary files, which can be copied to device using &amp;lt;code&amp;gt;esptool.py&amp;lt;/code&amp;gt; (which can be installed with &amp;lt;code&amp;gt;pip install esptool&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;esptool.py erase_flash&lt;br /&gt;
esptool.py write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Training the digitizer ==&lt;br /&gt;
&lt;br /&gt;
Before the device can read the meter, it needs to be calibrated. This would need to be done again for instance when our water meter is renewed. This can be done from the web UI directly. Refer to [https://github.com/jomjol/AI-on-the-edge-device/wiki/Graphical-configuration the official documentation] for more details about the process.&lt;br /&gt;
&lt;br /&gt;
== Development environment ==&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/jomjol/AI-on-the-edge-device/wiki/Build-Instructions official documentation] recommends to use VSCode with the PlatformIO extension to develop, but sadly PlatformIO is not available for VSCodium at the time of writing this. Instead you can relatively easily work with a text editor, and install [https://platformio.org/ PlatformIO] in a Python virtualenv (from the &amp;lt;code&amp;gt;code/&amp;lt;/code&amp;gt; subdirectory of the repository):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install platformio esptool&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can compile the firmware with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;platformio run --environment esp32cam&amp;lt;/pre&amp;gt;&lt;br /&gt;
This generates the three &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; files required for flashing in the &amp;lt;code&amp;gt;.pio/build/esp32cam&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
&lt;br /&gt;
For debugging purposes it is useful to use the USB-to-Serial adapter to see detailed logs. First, connect the adapter to the device (by crossing the RX/TX wires and connecting GND and +5V). Then, locate the USB-to-Serial adapter by listing the USB devices before and after plugging in. Once you have the path to the device, you can then open it with: &amp;lt;code&amp;gt;screen /dev/ttyUSB0 115200&amp;lt;/code&amp;gt;. If screen terminates immediately you might need to add your user to the &amp;lt;code&amp;gt;dialout&amp;lt;/code&amp;gt; group, see [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/establish-serial-connection.html the detailed instructions for serial communication with ESP32].&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Email&amp;diff=1780</id>
		<title>Email</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Email&amp;diff=1780"/>
		<updated>2025-02-04T19:29:07Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Giving access to Kanthaus email to a personal account */ fix imported markup :(&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We have email accounts hosted on [https://uberspace.de/en/ uberspace.de]. 📨 &lt;br /&gt;
&lt;br /&gt;
== For users ==&lt;br /&gt;
&lt;br /&gt;
Ask an existing volmem familiar with email administration to [[#for-administrators|create an account for you]]. We recommend using Thunderbird to access Kanthaus email, which will let you access Kanthaus email alongside your other email accounts, provide offline access to your emails and simplify the process of responding to Kanthaus emails.&lt;br /&gt;
&lt;br /&gt;
=== Accessing Kanthaus email on the web ===&lt;br /&gt;
&lt;br /&gt;
If you don’t want to use a client like Thunderbird, you can access the email online at https://webmail.uberspace.de/.&lt;br /&gt;
&lt;br /&gt;
When replying to hello@ messages, remember to add the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address in both Reply-to: and Cc:.&lt;br /&gt;
&lt;br /&gt;
It is also worth configuring your account to display a name instead of just your email address. In the top right corner, click on the menu -&amp;amp;gt; Settings. Then click on “Identity: &amp;lt;your-name&amp;gt;@kanthaus.online” and set a name there.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Kanthaus email in Thunderbird ===&lt;br /&gt;
&lt;br /&gt;
Open up Thunderbird, go to “Tools -&amp;amp;gt; Account settings”, and create a new account with your Kanthaus email address and password just created by an administrator for you:&lt;br /&gt;
[[File:1 basic configuration (Thunderbird tutorial) .png|none|thumb|Screenshot of initial configuration screen in Thunderbird]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Thunderbird fails to detect the settings automatically, you might have to adjust the settings as follows: &lt;br /&gt;
&lt;br /&gt;
* Server (both for IMAP and SMTP): gehrels.uberspace.de&lt;br /&gt;
* Connection security: STARTTLS&lt;br /&gt;
* IMAP port: 143&lt;br /&gt;
* SMTP port: 587&lt;br /&gt;
&lt;br /&gt;
[[File:2 detailed configuration (Thunderbird tutorial) .png|none|thumb|Screenshot of server settings configuration screen in Thunderbird]]&lt;br /&gt;
&lt;br /&gt;
Once your account has been created, go to the settings:&lt;br /&gt;
[[File:3 account created (Thunderbird tutorial) .png|none|thumb|Screenshot of the link to account settings after account creation]]&lt;br /&gt;
&lt;br /&gt;
Click the “Manage Identities…” button and click “Add” to create a new identity:&lt;br /&gt;
[[File:4 manage identities (Thunderbird tutorial) .png|none|thumb|Screenshot of the dialog to manage identities]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following settings: &lt;br /&gt;
&lt;br /&gt;
* Your name: the same name as you would use on your normal account&lt;br /&gt;
* Email address: still the same address&lt;br /&gt;
* Reply-to address: the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address (@kanthaus.online).&lt;br /&gt;
* Organization: Kanthaus&lt;br /&gt;
* Identity Label: Hello@Kanthaus (or anything else you want - but it cannot be left empty)&lt;br /&gt;
* Tick &amp;amp;quot;Reply from this identity when delivery headers match and add the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address there as well. &#039;&#039;&#039;Note&#039;&#039;&#039;: this field is not immediately visible: you need to leave the dialog and edit the identity again for it to appear.&lt;br /&gt;
&lt;br /&gt;
This will ensure that whenever you are replying to common email, you are telling your recipients to reply to the common address and not to you personally.&lt;br /&gt;
[[File:5 identity configuration (Thunderbird tutorial) .png|none|thumb|Screenshot of the identity settings]]&lt;br /&gt;
&lt;br /&gt;
Then, go to the “Copies &amp;amp;amp; Folders” tab and tick “Cc these email addresses” and add the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address again. This will ensure that other Kanthausians are seeing your replies.&lt;br /&gt;
[[File:6 cc configuration (Thunderbird tutorial) .png|none|thumb|Screenshot of the copies and folders tab]]&lt;br /&gt;
&lt;br /&gt;
That’s it! You can close the dialog with “OK”. You are now ready to reply to Kanthaus email. They are located in the “hello” folder under your account:&lt;br /&gt;
[[File:7 folders (Thunderbird tutorial) .png|none|thumb|Screenshot of the folders in a typical Kanthaus email account]]&lt;br /&gt;
&lt;br /&gt;
When replying to Kanthaus email we recommend you will automatically have the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address in Cc: and Reply-To:, so that further replies are visible for others. When that is not wished, you can remove those manually.&lt;br /&gt;
[[File:8 composing email (Thunderbird tutorial) .png|none|thumb|Screenshot of replying to an email with default settings]]&lt;br /&gt;
&lt;br /&gt;
== For administrators ==&lt;br /&gt;
&lt;br /&gt;
=== Creating a new personal email account ===&lt;br /&gt;
&lt;br /&gt;
Login to Uberspace’s dashboard with Kanthaus’ account and go to [https://dashboard.uberspace.de/dashboard/mail the Email tab]. At the bottom of the page you will find “Virtual Mailboxes” section where you can add your own. Pick a fresh password for it.&lt;br /&gt;
&lt;br /&gt;
=== Changing account password ===&lt;br /&gt;
Sadly, this can&#039;t be done by users themselves. You can change passwords through Uberspace, either though the web portal, or via the [https://manual.uberspace.de/mail-mailboxes/ ssh].&lt;br /&gt;
&lt;br /&gt;
=== Giving access to Kanthaus email to a personal account ===&lt;br /&gt;
&lt;br /&gt;
Once you have created a personal account, you can set it up so that it contains the general email received by Kanthaus (at the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; address) as a subfolder. You can set it up as follows:&lt;br /&gt;
&lt;br /&gt;
* SSH into &amp;lt;code&amp;gt;gehrels.uberspace.de&amp;lt;/code&amp;gt; (username &amp;lt;code&amp;gt;kanthaus&amp;lt;/code&amp;gt;). This can be done by password or SSH key.&lt;br /&gt;
* Navigate to the email folder (&amp;lt;code&amp;gt;cd users/firstname&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;firstname&amp;lt;/code&amp;gt; is the email user name)&lt;br /&gt;
* Create a symlink to the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; account with &amp;lt;code&amp;gt;ln -s ../hello/ .hello&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add the &amp;lt;code&amp;gt;hello&amp;lt;/code&amp;gt; folder to the subscriptions: &amp;lt;code&amp;gt;echo hello &amp;amp;gt;&amp;amp;gt; subscriptions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are some other folders inside our mailbox that you could be interested in mirroring in the own account:&lt;br /&gt;
* the “Mailinglists” folder, which receives messages from mailing lists of befriended projects and other initiatives in the area.&lt;br /&gt;
* the “Spam” folder, in which spam gets sorted automatically (and therefore not always accurately).&lt;br /&gt;
&lt;br /&gt;
To subscribe to those as well, you can do again &amp;lt;code&amp;gt;ln -s ../hello/.Spam/ .hello_spam&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;echo hello_spam &amp;amp;gt;&amp;amp;gt; subscriptions&amp;lt;/code&amp;gt; for the Spam folder for instance.&lt;br /&gt;
&lt;br /&gt;
Once that is done the person should have access to Kanthaus email in their email client.&lt;br /&gt;
&lt;br /&gt;
== Email filtering ==&lt;br /&gt;
&lt;br /&gt;
The Spam filtering we use is [https://manual.uberspace.de/mail-spam/ the default one offered by Uberspace].&lt;br /&gt;
&lt;br /&gt;
On top of that, we have extra rules to sort messages into folders, for instance for mailing lists. Those filtering rules are managed by [https://manual.uberspace.de/mail-filters/ the Sieve system offered by Uberspace]. If you want to change those filters, here are some possible steps:&lt;br /&gt;
&lt;br /&gt;
* First, get hold of the password for our hello@ email account. It is in our password store.&lt;br /&gt;
* Then, install [http://sieve.info/clients a ManageSieve client] and use it to connect to the hello@ address. You can pick from a wide range of clients. For instance, the &amp;lt;code&amp;gt;sieve-connect&amp;lt;/code&amp;gt; command line interface is available on Ubuntu/Debian and works. The credentials required are:&lt;br /&gt;
** Server: gehrels.uberspace.de&lt;br /&gt;
** Port: 4190 (standard)&lt;br /&gt;
** Username: The email address&lt;br /&gt;
** The password for it&lt;br /&gt;
* Now you have access to the Sieve scripts available on the address and let you edit them.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1590</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1590"/>
		<updated>2025-01-18T13:11:32Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Backing up Forgejo’s data */ fix botched markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;📋️ We use Git to store mutable data. Our Git repositories are hosted with [https://forgejo.org Forgejo] on [[Server|our own server]]. For immutable files we have a [[Nextcloud]] in the same location.&lt;br /&gt;
&lt;br /&gt;
== What is Forgejo? ==&lt;br /&gt;
Forgejo is basically a social network built on top of the [https://git-scm.com/book/en/v2/Getting-Started-Git-Basics git technology] for version control. It is normally used for code, because it makes it easy to collaborate on common projects without breaking anything.&lt;br /&gt;
&lt;br /&gt;
== Why did you decide to use this? ==&lt;br /&gt;
* We want to help people learn things and appreciate technology!&lt;br /&gt;
* Data that was put in git is extremely secure, because it’s stored on multiple people’s computers.&lt;br /&gt;
* If multiple people work on the same file it’s possible to tell who changed which exact character.&lt;br /&gt;
* It’s easy to put content from Forgejo onto our website.&lt;br /&gt;
* Everybody becomes a webmaster. 🙂&lt;br /&gt;
* The people who decided on this were already used to it… 😉&lt;br /&gt;
&lt;br /&gt;
== What is stored where? ==&lt;br /&gt;
So far we have the following repositories: - [https://git.kanthaus.online/kanthaus/kanthaus.online kanthaus.online], where we store our website, https://kanthaus.online/. - [https://git.kanthaus.online/kanthaus/kanthaus-private kanthaus-private], where we store our [[residence record]], internal meeting minutes, financial plans and other stuff that contains personal information. Everything of relevance that consists of text and has pieces of confidential data should be put here. - [https://git.kanthaus.online/kanthaus/kanthaus-public kanthaus-public], which is publicly accessible as the name suggests. In this repository we do our task management via issues (which you can find [https://git.kanthaus.online/kanthaus/kanthaus-public/issues here]). This is especially important for our [[../social/roadmap.md|roadmap plannings]]. Other than that we have drafts, policies, signs, data on our water, electricity and gas usage and much more in here. - [https://git.kanthaus.online/kanthaus/kanthaus-ansible kanthaus-ansible] is for keeping our server tidy. Nothing you need to worry about, except you’re actually interested. In that case feel free to ask Matthias about it! - [https://git.kanthaus.online/kanthaus/handbook handbook] is where this handbook is stored. - [https://gitlab.com/kanthaus/expfloorer expfloorer] hosts a floorplan of Kanthaus.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Go to https://git.kanthaus.online and log in with your Nextcloud account. You will be automatically added to the “Kanthaus” organization in which our repositories are stored: https://git.kanthaus.online/kanthaus&lt;br /&gt;
&lt;br /&gt;
You can modify the files there directly via your web browser.&lt;br /&gt;
&lt;br /&gt;
== Cloning repositories on your machine ==&lt;br /&gt;
If you are working with local clones, you need to update those to point to Kanthaus Git instead of GitLab (which we were using before Forgejo).&lt;br /&gt;
&lt;br /&gt;
On the page of each repository, such as https://git.kanthaus.online/kanthaus/handbook, copy the clone URL you prefer. For instance, for the handbook, they look like this: * HTTPS: &amp;lt;code&amp;gt;https://git.kanthaus.online/kanthaus/handbook.git&amp;lt;/code&amp;gt; * SSH: &amp;lt;code&amp;gt;ssh://git@ssh.git.kanthaus.online:2222/kanthaus/handbook.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your local clone, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git remote set-url origin &amp;amp;lt;new-url&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that if you want to use SSH URLs, you first need to [https://git.kanthaus.online/user/settings/keys add an SSH key].&lt;br /&gt;
&lt;br /&gt;
== Instructions for administrators ==&lt;br /&gt;
&lt;br /&gt;
We are running Forgejo via Docker inside our Docker-Compose deployment of services on the &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting it up from scratch ===&lt;br /&gt;
&lt;br /&gt;
After launching the service via Docker, the following manual steps need to be taken to configure the instance:&lt;br /&gt;
* Go to https://git.kanthaus.online/ where the set-up screen should display. Change the following settings:&lt;br /&gt;
* Site title: “Kanthaus Git”&lt;br /&gt;
* SMTP host: gehrels.uberspace.de&lt;br /&gt;
* SMTP port: 587&lt;br /&gt;
* Send email as: git@kanthaus.online&lt;br /&gt;
* SMTP user: git@kanthaus.online&lt;br /&gt;
* SMTP password: found in the Kanthaus keepass&lt;br /&gt;
* Tick “Enable email notifications”&lt;br /&gt;
* Tick “Disable Gravatar”&lt;br /&gt;
* Tick “Allow registration only via external services”&lt;br /&gt;
* Tick “Hide email addresses by default”&lt;br /&gt;
* Domain for hidden email addresses: &amp;lt;code&amp;gt;git.kanthaus.online&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set up an admin user with credentials you own: we will delete it later on&lt;br /&gt;
* After validating the sign-up form, go to https://git.kanthaus.online/org/create and create a “kanthaus” organization. You can prettify it a little, by adding a bit of metadata at https://git.kanthaus.online/org/kanthaus/settings and uploading a logo from https://kanthaus.online/pics/newLogo.png&lt;br /&gt;
* In Forgejo’s configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), add the following lines at the end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[oauth2_client]&lt;br /&gt;
USERNAME = userid&lt;br /&gt;
ENABLE_AUTO_REGISTRATION = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can also take this opportunity to add &amp;lt;code&amp;gt;LANDING_PAGE = /kanthaus&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[server]&amp;lt;/code&amp;gt; section. And disable OpenID login:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[openid]&lt;br /&gt;
ENABLE_OPENID_SIGNIN = false&lt;br /&gt;
ENABLE_OPENID_SIGNUP = false&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make sure our Nextcloud instance has the [https://apps.nextcloud.com/apps/oidc OIDC Identity Provider] app installed&lt;br /&gt;
* Go to [https://cloud.kanthaus.online/settings/admin/security Nextcloud’s security settings] (while logged in with an administrator account in NextCloud) and generate a new OpenID Connect client (if it does not exist yet), with the following details&lt;br /&gt;
** Name: Forgejo&lt;br /&gt;
** Redirection URI: https://git.kanthaus.online/user/oauth2/NextCloud/callback&lt;br /&gt;
* Go to [https://git.kanthaus.online/admin/auths Forgejo’s Authentication Sources] and click “Add an authentication source”, with the following settings:&lt;br /&gt;
** Authentication type: OAuth2&lt;br /&gt;
** Authentication name: “NextCloud”&lt;br /&gt;
** OAuth2 provider: OpenID Connect&lt;br /&gt;
** Client ID: the client ID produced at the previous step&lt;br /&gt;
** Client secret: the client secret produced at the previous step&lt;br /&gt;
** OpenID Connect Auto Discovery URL: https://cloud.kanthaus.online/.well-known/openid-configuration&lt;br /&gt;
** Additional scopes: &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;&lt;br /&gt;
** Claim name providing group names for this source: &amp;lt;code&amp;gt;roles&amp;lt;/code&amp;gt;&lt;br /&gt;
** Group claim value for administrator users: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Map claimed groups to Organization teams: &amp;lt;code&amp;gt;{&amp;amp;quot;Kanthaus&amp;amp;quot;: {&amp;amp;quot;kanthaus&amp;amp;quot;: [&amp;amp;quot;Owners&amp;amp;quot;]}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart forgejo with &amp;lt;code&amp;gt;docker-compose restart forgejo&amp;lt;/code&amp;gt; (in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Note: this configuration relies on our NextCloud instance having the [https://docs.nextcloud.com/server/27/admin_manual/configuration_server/config_sample_php_parameters.html “clean URLs” option] enabled. Otherwise, the URLs need to be adapted to add &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; in them, such as &amp;lt;code&amp;gt;https://cloud.kanthaus.online/index.php/.well-known/openid-configuration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up SSH access ===&lt;br /&gt;
&lt;br /&gt;
To let users clone via SSH, we need to take some additional steps. In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[server]&lt;br /&gt;
START_SSH_SERVER = true&lt;br /&gt;
SSH_PORT = 2222&lt;br /&gt;
SSH_LISTEN_PORT = 2222&lt;br /&gt;
SSH_LISTEN_HOST = 0.0.0.0&lt;br /&gt;
SSH_DOMAIN = ssh.git.kanthaus.online&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, set up a port forwarding in OpenWISP. You need to be connected to the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; network for this and go to [https://192.168.178.1/firewall_nat.php the NAT Port Forward page]. Create a new rule: * Interface: WAN * TCP/IP version: IPv4+IPv6 * Protocol: TCP * Destination: WAN address * Destination port range: (other) 2222 to (other) 2222 * Redirect target port: 2222 * Description: git SSH access for Forgejo&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh.git.kanthaus.online&amp;lt;/code&amp;gt; should point to the Fritzbox (not kanthaus-server) so that it can take care of forwarding the port. If the domain points to kanthaus-server, connecting over IPv6 will likely fail.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the continuous integration ===&lt;br /&gt;
&lt;br /&gt;
In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[actions]&lt;br /&gt;
ENABLED = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, go to the [https://git.kanthaus.online/user/settings/actions/runners Runners Management] page and click “Create new Runner”. Copy the registration token and put it in &amp;lt;code&amp;gt;/opt/kh-services/.env&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;FORGEJO_RUNNER_REGISTRATION_TOKEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Delete &amp;lt;code&amp;gt;/data/services/forgejo_runner/.runner&amp;lt;/code&amp;gt; if it is present.&lt;br /&gt;
&lt;br /&gt;
Restart the runner with &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The runner will register and should become visible [https://git.kanthaus.online/user/settings/actions/runners in Forgejo’s settings].&lt;br /&gt;
&lt;br /&gt;
For each repository where you want to use the runner, you need to enable actions in the repository’s settings.&lt;br /&gt;
&lt;br /&gt;
=== Backing up Forgejo’s data ===&lt;br /&gt;
&lt;br /&gt;
You need to back up two things:&lt;br /&gt;
* the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt;&lt;br /&gt;
* the Postgresql database.&lt;br /&gt;
&lt;br /&gt;
To do so:&lt;br /&gt;
* First, find out the container id of the postgres instance with &amp;lt;code&amp;gt;docker ps | grep kh-services_postgres&amp;lt;/code&amp;gt; and copy the first hash in the output to the second command, in place of &amp;lt;code&amp;gt;&amp;amp;lt;container-id&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run &amp;lt;code&amp;gt;docker exec -it &amp;amp;lt;container-id&amp;amp;gt; pg_dump -U postgres --clean forgejo | gzip &amp;amp;gt; forgejo_database_dump.sql.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restore the backup, you need to:&lt;br /&gt;
* restore the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt;&lt;br /&gt;
* restore the database similarly with: &amp;lt;code&amp;gt;cat forgejo_database_dump.sql.gz | gunzip | docker exec -i &amp;amp;lt;container-id&amp;amp;gt; psql -U postgres forgejo&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1589</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1589"/>
		<updated>2025-01-18T13:07:58Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Setting it up from scratch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;📋️ We use Git to store mutable data. Our Git repositories are hosted with [https://forgejo.org Forgejo] on [[Server|our own server]]. For immutable files we have a [[Nextcloud]] in the same location.&lt;br /&gt;
&lt;br /&gt;
== What is Forgejo? ==&lt;br /&gt;
Forgejo is basically a social network built on top of the [https://git-scm.com/book/en/v2/Getting-Started-Git-Basics git technology] for version control. It is normally used for code, because it makes it easy to collaborate on common projects without breaking anything.&lt;br /&gt;
&lt;br /&gt;
== Why did you decide to use this? ==&lt;br /&gt;
* We want to help people learn things and appreciate technology!&lt;br /&gt;
* Data that was put in git is extremely secure, because it’s stored on multiple people’s computers.&lt;br /&gt;
* If multiple people work on the same file it’s possible to tell who changed which exact character.&lt;br /&gt;
* It’s easy to put content from Forgejo onto our website.&lt;br /&gt;
* Everybody becomes a webmaster. 🙂&lt;br /&gt;
* The people who decided on this were already used to it… 😉&lt;br /&gt;
&lt;br /&gt;
== What is stored where? ==&lt;br /&gt;
So far we have the following repositories: - [https://git.kanthaus.online/kanthaus/kanthaus.online kanthaus.online], where we store our website, https://kanthaus.online/. - [https://git.kanthaus.online/kanthaus/kanthaus-private kanthaus-private], where we store our [[residence record]], internal meeting minutes, financial plans and other stuff that contains personal information. Everything of relevance that consists of text and has pieces of confidential data should be put here. - [https://git.kanthaus.online/kanthaus/kanthaus-public kanthaus-public], which is publicly accessible as the name suggests. In this repository we do our task management via issues (which you can find [https://git.kanthaus.online/kanthaus/kanthaus-public/issues here]). This is especially important for our [[../social/roadmap.md|roadmap plannings]]. Other than that we have drafts, policies, signs, data on our water, electricity and gas usage and much more in here. - [https://git.kanthaus.online/kanthaus/kanthaus-ansible kanthaus-ansible] is for keeping our server tidy. Nothing you need to worry about, except you’re actually interested. In that case feel free to ask Matthias about it! - [https://git.kanthaus.online/kanthaus/handbook handbook] is where this handbook is stored. - [https://gitlab.com/kanthaus/expfloorer expfloorer] hosts a floorplan of Kanthaus.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Go to https://git.kanthaus.online and log in with your Nextcloud account. You will be automatically added to the “Kanthaus” organization in which our repositories are stored: https://git.kanthaus.online/kanthaus&lt;br /&gt;
&lt;br /&gt;
You can modify the files there directly via your web browser.&lt;br /&gt;
&lt;br /&gt;
== Cloning repositories on your machine ==&lt;br /&gt;
If you are working with local clones, you need to update those to point to Kanthaus Git instead of GitLab (which we were using before Forgejo).&lt;br /&gt;
&lt;br /&gt;
On the page of each repository, such as https://git.kanthaus.online/kanthaus/handbook, copy the clone URL you prefer. For instance, for the handbook, they look like this: * HTTPS: &amp;lt;code&amp;gt;https://git.kanthaus.online/kanthaus/handbook.git&amp;lt;/code&amp;gt; * SSH: &amp;lt;code&amp;gt;ssh://git@ssh.git.kanthaus.online:2222/kanthaus/handbook.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your local clone, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git remote set-url origin &amp;amp;lt;new-url&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that if you want to use SSH URLs, you first need to [https://git.kanthaus.online/user/settings/keys add an SSH key].&lt;br /&gt;
&lt;br /&gt;
== Instructions for administrators ==&lt;br /&gt;
&lt;br /&gt;
We are running Forgejo via Docker inside our Docker-Compose deployment of services on the &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting it up from scratch ===&lt;br /&gt;
&lt;br /&gt;
After launching the service via Docker, the following manual steps need to be taken to configure the instance:&lt;br /&gt;
* Go to https://git.kanthaus.online/ where the set-up screen should display. Change the following settings:&lt;br /&gt;
* Site title: “Kanthaus Git”&lt;br /&gt;
* SMTP host: gehrels.uberspace.de&lt;br /&gt;
* SMTP port: 587&lt;br /&gt;
* Send email as: git@kanthaus.online&lt;br /&gt;
* SMTP user: git@kanthaus.online&lt;br /&gt;
* SMTP password: found in the Kanthaus keepass&lt;br /&gt;
* Tick “Enable email notifications”&lt;br /&gt;
* Tick “Disable Gravatar”&lt;br /&gt;
* Tick “Allow registration only via external services”&lt;br /&gt;
* Tick “Hide email addresses by default”&lt;br /&gt;
* Domain for hidden email addresses: &amp;lt;code&amp;gt;git.kanthaus.online&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set up an admin user with credentials you own: we will delete it later on&lt;br /&gt;
* After validating the sign-up form, go to https://git.kanthaus.online/org/create and create a “kanthaus” organization. You can prettify it a little, by adding a bit of metadata at https://git.kanthaus.online/org/kanthaus/settings and uploading a logo from https://kanthaus.online/pics/newLogo.png&lt;br /&gt;
* In Forgejo’s configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), add the following lines at the end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[oauth2_client]&lt;br /&gt;
USERNAME = userid&lt;br /&gt;
ENABLE_AUTO_REGISTRATION = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can also take this opportunity to add &amp;lt;code&amp;gt;LANDING_PAGE = /kanthaus&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[server]&amp;lt;/code&amp;gt; section. And disable OpenID login:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[openid]&lt;br /&gt;
ENABLE_OPENID_SIGNIN = false&lt;br /&gt;
ENABLE_OPENID_SIGNUP = false&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make sure our Nextcloud instance has the [https://apps.nextcloud.com/apps/oidc OIDC Identity Provider] app installed&lt;br /&gt;
* Go to [https://cloud.kanthaus.online/settings/admin/security Nextcloud’s security settings] (while logged in with an administrator account in NextCloud) and generate a new OpenID Connect client (if it does not exist yet), with the following details&lt;br /&gt;
** Name: Forgejo&lt;br /&gt;
** Redirection URI: https://git.kanthaus.online/user/oauth2/NextCloud/callback&lt;br /&gt;
* Go to [https://git.kanthaus.online/admin/auths Forgejo’s Authentication Sources] and click “Add an authentication source”, with the following settings:&lt;br /&gt;
** Authentication type: OAuth2&lt;br /&gt;
** Authentication name: “NextCloud”&lt;br /&gt;
** OAuth2 provider: OpenID Connect&lt;br /&gt;
** Client ID: the client ID produced at the previous step&lt;br /&gt;
** Client secret: the client secret produced at the previous step&lt;br /&gt;
** OpenID Connect Auto Discovery URL: https://cloud.kanthaus.online/.well-known/openid-configuration&lt;br /&gt;
** Additional scopes: &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;&lt;br /&gt;
** Claim name providing group names for this source: &amp;lt;code&amp;gt;roles&amp;lt;/code&amp;gt;&lt;br /&gt;
** Group claim value for administrator users: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Map claimed groups to Organization teams: &amp;lt;code&amp;gt;{&amp;amp;quot;Kanthaus&amp;amp;quot;: {&amp;amp;quot;kanthaus&amp;amp;quot;: [&amp;amp;quot;Owners&amp;amp;quot;]}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart forgejo with &amp;lt;code&amp;gt;docker-compose restart forgejo&amp;lt;/code&amp;gt; (in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Note: this configuration relies on our NextCloud instance having the [https://docs.nextcloud.com/server/27/admin_manual/configuration_server/config_sample_php_parameters.html “clean URLs” option] enabled. Otherwise, the URLs need to be adapted to add &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; in them, such as &amp;lt;code&amp;gt;https://cloud.kanthaus.online/index.php/.well-known/openid-configuration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up SSH access ===&lt;br /&gt;
&lt;br /&gt;
To let users clone via SSH, we need to take some additional steps. In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[server]&lt;br /&gt;
START_SSH_SERVER = true&lt;br /&gt;
SSH_PORT = 2222&lt;br /&gt;
SSH_LISTEN_PORT = 2222&lt;br /&gt;
SSH_LISTEN_HOST = 0.0.0.0&lt;br /&gt;
SSH_DOMAIN = ssh.git.kanthaus.online&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, set up a port forwarding in OpenWISP. You need to be connected to the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; network for this and go to [https://192.168.178.1/firewall_nat.php the NAT Port Forward page]. Create a new rule: * Interface: WAN * TCP/IP version: IPv4+IPv6 * Protocol: TCP * Destination: WAN address * Destination port range: (other) 2222 to (other) 2222 * Redirect target port: 2222 * Description: git SSH access for Forgejo&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh.git.kanthaus.online&amp;lt;/code&amp;gt; should point to the Fritzbox (not kanthaus-server) so that it can take care of forwarding the port. If the domain points to kanthaus-server, connecting over IPv6 will likely fail.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the continuous integration ===&lt;br /&gt;
&lt;br /&gt;
In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[actions]&lt;br /&gt;
ENABLED = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, go to the [https://git.kanthaus.online/user/settings/actions/runners Runners Management] page and click “Create new Runner”. Copy the registration token and put it in &amp;lt;code&amp;gt;/opt/kh-services/.env&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;FORGEJO_RUNNER_REGISTRATION_TOKEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Delete &amp;lt;code&amp;gt;/data/services/forgejo_runner/.runner&amp;lt;/code&amp;gt; if it is present.&lt;br /&gt;
&lt;br /&gt;
Restart the runner with &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The runner will register and should become visible [https://git.kanthaus.online/user/settings/actions/runners in Forgejo’s settings].&lt;br /&gt;
&lt;br /&gt;
For each repository where you want to use the runner, you need to enable actions in the repository’s settings.&lt;br /&gt;
&lt;br /&gt;
=== Backing up Forgejo’s data ===&lt;br /&gt;
&lt;br /&gt;
You need to back up two things: * the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt; * the Postgresql database. To do so: * First, find out the container id of the postgres instance with &amp;lt;code&amp;gt;docker ps | grep kh-services_postgres&amp;lt;/code&amp;gt; and copy the first hash in the output to the second command, in place of &amp;lt;code&amp;gt;&amp;amp;lt;container-id&amp;amp;gt;&amp;lt;/code&amp;gt; * Run &amp;lt;code&amp;gt;docker exec -it &amp;amp;lt;container-id&amp;amp;gt; pg_dump -U postgres --clean forgejo | gzip &amp;amp;gt; forgejo_database_dump.sql.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restore the backup, you need to: * restore the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt; * restore the database similarly with: &amp;lt;code&amp;gt;cat forgejo_database_dump.sql.gz | gunzip | docker exec -i &amp;amp;lt;container-id&amp;amp;gt; psql -U postgres forgejo&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1588</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Git&amp;diff=1588"/>
		<updated>2025-01-18T13:07:36Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Instructions for administrators */ fix markup botched by the migration from the handbook :(&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;📋️ We use Git to store mutable data. Our Git repositories are hosted with [https://forgejo.org Forgejo] on [[Server|our own server]]. For immutable files we have a [[Nextcloud]] in the same location.&lt;br /&gt;
&lt;br /&gt;
== What is Forgejo? ==&lt;br /&gt;
Forgejo is basically a social network built on top of the [https://git-scm.com/book/en/v2/Getting-Started-Git-Basics git technology] for version control. It is normally used for code, because it makes it easy to collaborate on common projects without breaking anything.&lt;br /&gt;
&lt;br /&gt;
== Why did you decide to use this? ==&lt;br /&gt;
* We want to help people learn things and appreciate technology!&lt;br /&gt;
* Data that was put in git is extremely secure, because it’s stored on multiple people’s computers.&lt;br /&gt;
* If multiple people work on the same file it’s possible to tell who changed which exact character.&lt;br /&gt;
* It’s easy to put content from Forgejo onto our website.&lt;br /&gt;
* Everybody becomes a webmaster. 🙂&lt;br /&gt;
* The people who decided on this were already used to it… 😉&lt;br /&gt;
&lt;br /&gt;
== What is stored where? ==&lt;br /&gt;
So far we have the following repositories: - [https://git.kanthaus.online/kanthaus/kanthaus.online kanthaus.online], where we store our website, https://kanthaus.online/. - [https://git.kanthaus.online/kanthaus/kanthaus-private kanthaus-private], where we store our [[residence record]], internal meeting minutes, financial plans and other stuff that contains personal information. Everything of relevance that consists of text and has pieces of confidential data should be put here. - [https://git.kanthaus.online/kanthaus/kanthaus-public kanthaus-public], which is publicly accessible as the name suggests. In this repository we do our task management via issues (which you can find [https://git.kanthaus.online/kanthaus/kanthaus-public/issues here]). This is especially important for our [[../social/roadmap.md|roadmap plannings]]. Other than that we have drafts, policies, signs, data on our water, electricity and gas usage and much more in here. - [https://git.kanthaus.online/kanthaus/kanthaus-ansible kanthaus-ansible] is for keeping our server tidy. Nothing you need to worry about, except you’re actually interested. In that case feel free to ask Matthias about it! - [https://git.kanthaus.online/kanthaus/handbook handbook] is where this handbook is stored. - [https://gitlab.com/kanthaus/expfloorer expfloorer] hosts a floorplan of Kanthaus.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
Go to https://git.kanthaus.online and log in with your Nextcloud account. You will be automatically added to the “Kanthaus” organization in which our repositories are stored: https://git.kanthaus.online/kanthaus&lt;br /&gt;
&lt;br /&gt;
You can modify the files there directly via your web browser.&lt;br /&gt;
&lt;br /&gt;
== Cloning repositories on your machine ==&lt;br /&gt;
If you are working with local clones, you need to update those to point to Kanthaus Git instead of GitLab (which we were using before Forgejo).&lt;br /&gt;
&lt;br /&gt;
On the page of each repository, such as https://git.kanthaus.online/kanthaus/handbook, copy the clone URL you prefer. For instance, for the handbook, they look like this: * HTTPS: &amp;lt;code&amp;gt;https://git.kanthaus.online/kanthaus/handbook.git&amp;lt;/code&amp;gt; * SSH: &amp;lt;code&amp;gt;ssh://git@ssh.git.kanthaus.online:2222/kanthaus/handbook.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In your local clone, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git remote set-url origin &amp;amp;lt;new-url&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that if you want to use SSH URLs, you first need to [https://git.kanthaus.online/user/settings/keys add an SSH key].&lt;br /&gt;
&lt;br /&gt;
== Instructions for administrators ==&lt;br /&gt;
&lt;br /&gt;
We are running Forgejo via Docker inside our Docker-Compose deployment of services on the &amp;lt;code&amp;gt;kanthaus-server&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting it up from scratch ===&lt;br /&gt;
&lt;br /&gt;
After launching the service via Docker, the following manual steps need to be taken to configure the instance:&lt;br /&gt;
* Go to https://git.kanthaus.online/ where the set-up screen should display. Change the following settings:&lt;br /&gt;
* Site title: “Kanthaus Git”&lt;br /&gt;
* SMTP host: gehrels.uberspace.de&lt;br /&gt;
* SMTP port: 587 &lt;br /&gt;
 Send email as: git@kanthaus.online&lt;br /&gt;
* SMTP user: git@kanthaus.online&lt;br /&gt;
* SMTP password: found in the Kanthaus keepass&lt;br /&gt;
* Tick “Enable email notifications”&lt;br /&gt;
* Tick “Disable Gravatar”&lt;br /&gt;
* Tick “Allow registration only via external services”&lt;br /&gt;
* Tick “Hide email addresses by default”&lt;br /&gt;
* Domain for hidden email addresses: &amp;lt;code&amp;gt;git.kanthaus.online&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set up an admin user with credentials you own: we will delete it later on&lt;br /&gt;
* After validating the sign-up form, go to https://git.kanthaus.online/org/create and create a “kanthaus” organization. You can prettify it a little, by adding a bit of metadata at https://git.kanthaus.online/org/kanthaus/settings and uploading a logo from https://kanthaus.online/pics/newLogo.png&lt;br /&gt;
* In Forgejo’s configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), add the following lines at the end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[oauth2_client]&lt;br /&gt;
USERNAME = userid&lt;br /&gt;
ENABLE_AUTO_REGISTRATION = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can also take this opportunity to add &amp;lt;code&amp;gt;LANDING_PAGE = /kanthaus&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;[server]&amp;lt;/code&amp;gt; section. And disable OpenID login:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[openid]&lt;br /&gt;
ENABLE_OPENID_SIGNIN = false&lt;br /&gt;
ENABLE_OPENID_SIGNUP = false&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make sure our Nextcloud instance has the [https://apps.nextcloud.com/apps/oidc OIDC Identity Provider] app installed&lt;br /&gt;
* Go to [https://cloud.kanthaus.online/settings/admin/security Nextcloud’s security settings] (while logged in with an administrator account in NextCloud) and generate a new OpenID Connect client (if it does not exist yet), with the following details&lt;br /&gt;
** Name: Forgejo&lt;br /&gt;
** Redirection URI: https://git.kanthaus.online/user/oauth2/NextCloud/callback&lt;br /&gt;
* Go to [https://git.kanthaus.online/admin/auths Forgejo’s Authentication Sources] and click “Add an authentication source”, with the following settings:&lt;br /&gt;
** Authentication type: OAuth2&lt;br /&gt;
** Authentication name: “NextCloud”&lt;br /&gt;
** OAuth2 provider: OpenID Connect&lt;br /&gt;
** Client ID: the client ID produced at the previous step&lt;br /&gt;
** Client secret: the client secret produced at the previous step&lt;br /&gt;
** OpenID Connect Auto Discovery URL: https://cloud.kanthaus.online/.well-known/openid-configuration&lt;br /&gt;
** Additional scopes: &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;&lt;br /&gt;
** Claim name providing group names for this source: &amp;lt;code&amp;gt;roles&amp;lt;/code&amp;gt;&lt;br /&gt;
** Group claim value for administrator users: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Map claimed groups to Organization teams: &amp;lt;code&amp;gt;{&amp;amp;quot;Kanthaus&amp;amp;quot;: {&amp;amp;quot;kanthaus&amp;amp;quot;: [&amp;amp;quot;Owners&amp;amp;quot;]}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart forgejo with &amp;lt;code&amp;gt;docker-compose restart forgejo&amp;lt;/code&amp;gt; (in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Note: this configuration relies on our NextCloud instance having the [https://docs.nextcloud.com/server/27/admin_manual/configuration_server/config_sample_php_parameters.html “clean URLs” option] enabled. Otherwise, the URLs need to be adapted to add &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; in them, such as &amp;lt;code&amp;gt;https://cloud.kanthaus.online/index.php/.well-known/openid-configuration&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Setting up SSH access ===&lt;br /&gt;
&lt;br /&gt;
To let users clone via SSH, we need to take some additional steps. In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[server]&lt;br /&gt;
START_SSH_SERVER = true&lt;br /&gt;
SSH_PORT = 2222&lt;br /&gt;
SSH_LISTEN_PORT = 2222&lt;br /&gt;
SSH_LISTEN_HOST = 0.0.0.0&lt;br /&gt;
SSH_DOMAIN = ssh.git.kanthaus.online&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, set up a port forwarding in OpenWISP. You need to be connected to the &amp;lt;code&amp;gt;kanthaus-admin&amp;lt;/code&amp;gt; network for this and go to [https://192.168.178.1/firewall_nat.php the NAT Port Forward page]. Create a new rule: * Interface: WAN * TCP/IP version: IPv4+IPv6 * Protocol: TCP * Destination: WAN address * Destination port range: (other) 2222 to (other) 2222 * Redirect target port: 2222 * Description: git SSH access for Forgejo&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;ssh.git.kanthaus.online&amp;lt;/code&amp;gt; should point to the Fritzbox (not kanthaus-server) so that it can take care of forwarding the port. If the domain points to kanthaus-server, connecting over IPv6 will likely fail.&lt;br /&gt;
&lt;br /&gt;
=== Setting up the continuous integration ===&lt;br /&gt;
&lt;br /&gt;
In the configuration file (&amp;lt;code&amp;gt;/data/services/forgejo/config/app.ini&amp;lt;/code&amp;gt;), set those settings (if not set already):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[actions]&lt;br /&gt;
ENABLED = true&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, go to the [https://git.kanthaus.online/user/settings/actions/runners Runners Management] page and click “Create new Runner”. Copy the registration token and put it in &amp;lt;code&amp;gt;/opt/kh-services/.env&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;FORGEJO_RUNNER_REGISTRATION_TOKEN&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Delete &amp;lt;code&amp;gt;/data/services/forgejo_runner/.runner&amp;lt;/code&amp;gt; if it is present.&lt;br /&gt;
&lt;br /&gt;
Restart the runner with &amp;lt;code&amp;gt;docker-compose up -d&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/opt/kh-services&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The runner will register and should become visible [https://git.kanthaus.online/user/settings/actions/runners in Forgejo’s settings].&lt;br /&gt;
&lt;br /&gt;
For each repository where you want to use the runner, you need to enable actions in the repository’s settings.&lt;br /&gt;
&lt;br /&gt;
=== Backing up Forgejo’s data ===&lt;br /&gt;
&lt;br /&gt;
You need to back up two things: * the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt; * the Postgresql database. To do so: * First, find out the container id of the postgres instance with &amp;lt;code&amp;gt;docker ps | grep kh-services_postgres&amp;lt;/code&amp;gt; and copy the first hash in the output to the second command, in place of &amp;lt;code&amp;gt;&amp;amp;lt;container-id&amp;amp;gt;&amp;lt;/code&amp;gt; * Run &amp;lt;code&amp;gt;docker exec -it &amp;amp;lt;container-id&amp;amp;gt; pg_dump -U postgres --clean forgejo | gzip &amp;amp;gt; forgejo_database_dump.sql.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restore the backup, you need to: * restore the contents of &amp;lt;code&amp;gt;/data/services/forgejo&amp;lt;/code&amp;gt; * restore the database similarly with: &amp;lt;code&amp;gt;cat forgejo_database_dump.sql.gz | gunzip | docker exec -i &amp;amp;lt;container-id&amp;amp;gt; psql -U postgres forgejo&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=CoMe&amp;diff=1582</id>
		<title>CoMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=CoMe&amp;diff=1582"/>
		<updated>2025-01-13T10:09:31Z</updated>

		<summary type="html">&lt;p&gt;Antonin: migrate facilitation instructions here&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;✔️ The &#039;&#039;&#039;Co&#039;&#039;&#039;ordination &#039;&#039;&#039;Me&#039;&#039;&#039;eting is the only weekly meeting everyone is [https://kanthaus.online/en/governance/collectiveagreements recommended] to join. This makes it the main ‘real-life’ event we have for sharing information and ideas. We try and keep it short, and as relevant for the participants as possible. In consequence, it can be quite rapid: it’s not a good place for resolving emotional conflicts or making complex decisions.&lt;br /&gt;
&lt;br /&gt;
== Time and place ==&lt;br /&gt;
The default is &#039;&#039;&#039;Monday 10 am&#039;&#039;&#039; in the [[dining room]]. The meeting lasts until 11 am maximum.&lt;br /&gt;
&lt;br /&gt;
== Scope and importance ==&lt;br /&gt;
This is the most important meeting at Kanthaus. It takes place every week, we take notes which we [https://kanthaus.online/governance/minutes publish on our website] and we expect people to take part if they want to know what’s going on.&lt;br /&gt;
&lt;br /&gt;
== Facilitation ==&lt;br /&gt;
A facilitator guides through the meeting, reads out the relevant informational sections and guides through the discussion points. Topics are collected before-hand in the [https://codi.kanthaus.online/come CoMe pad]. This document is then used as base for the meeting by the facilitator.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
* a Kanthaus [https://cloud.kanthaus.online nextcloud] account with membership of the &amp;lt;code&amp;gt;Kanthaus&amp;lt;/code&amp;gt; group&lt;br /&gt;
* a [https://mattermost.kanthaus.online/ Kanthaus Mattermost] account with access to the private &amp;lt;code&amp;gt;kanthaus-residence&amp;lt;/code&amp;gt; channel&lt;br /&gt;
* to know where the cash box is and how to open it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;preparation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;check-dates&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Check dates ====&lt;br /&gt;
&lt;br /&gt;
Ensure that both meta-data date and markup date are current.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;residence-record&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Residence record ====&lt;br /&gt;
&lt;br /&gt;
Check that the [https://git.kanthaus.online/kanthaus/kanthaus-private/src/branch/master/residenceRecord.csv residence record] is up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;run-the-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Run the script ====&lt;br /&gt;
&lt;br /&gt;
After you have updated the records, go to the [https://git.kanthaus.online/kanthaus/kanthaus-governance/actions?workflow=weekly_report.yaml&amp;amp;actor=0&amp;amp;status=0 Forgejo action], click on any run in the list and press “Re-run all jobs”. - After some minutes, the bot will post data to the &amp;lt;code&amp;gt;kanthaus-residence&amp;lt;/code&amp;gt; channel. - Copy the contents in the gray ‘stats’ box to the &amp;lt;code&amp;gt;Previous week stats&amp;lt;/code&amp;gt; CoMe section&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;trash&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Trash ====&lt;br /&gt;
&lt;br /&gt;
Check the dates for trash pickups in the [https://cloud.kanthaus.online/apps/calendar/dayGridMonth/now Kanthaus calendar] and write them down in the &amp;lt;code&amp;gt;Schedule&amp;lt;/code&amp;gt; section. Make sure to include any trash pickup on the next monday, as next CoMe will be to late to plan for it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;money&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Money ====&lt;br /&gt;
&lt;br /&gt;
Check the donation ‘shoe’ in the k20 hallway and deposit it in the cash box. List this sum plus any other donation in the last week in the &amp;lt;code&amp;gt;Income&amp;lt;/code&amp;gt; CoMe section. If you’re feeling energetic, you can also check the donation box in the Verschenkeladen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;evaluations&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Evaluations ====&lt;br /&gt;
&lt;br /&gt;
Included in the post you sent to &amp;lt;code&amp;gt;kanthaus-residence&amp;lt;/code&amp;gt; earlier are any evaluation notices. Copy &amp;lt;code&amp;gt;Due for evaluation&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Due for evaluation soon&amp;lt;/code&amp;gt; entries to the &amp;lt;code&amp;gt;Evaluations and check-ins&amp;lt;/code&amp;gt; CoMe section&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;during&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== During ===&lt;br /&gt;
&lt;br /&gt;
There are no fixed rules, so feel free to add your own touch and do (small) experiments. Some general advice that seems to have worked so far: - Notify people 10 minutes before the meeting starts. - Start as close to 10:00 as possible. - Go through the ordered points in order, even if nothing has changed. - At the end of each section, ask people if they have anything add (and give them some moments to think!) - Do moderate discussion if off-topic or too detailed. You can always suggest a small group forms for special topics. - Try to finish the meeting before 11:00. If you think it really makes sense to extend it, announce that. - Try to leave the room as soon as CoMe has has ended. (This sends a signal to everyone else that they can also leave if they want to.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;afterwards&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Afterwards ===&lt;br /&gt;
&lt;br /&gt;
‘Sanitize’ the CoMe pad by removing any data which shouldn’t be published. This includes anything marked &amp;lt;code&amp;gt;to be removed&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tbr&amp;lt;/code&amp;gt;, as well as any personal information about people who haven’t agreed to it.&lt;br /&gt;
&lt;br /&gt;
Copy CoMe pad contents to the website. A graphical way of doing this can be done by: - Go to the [https://git.kanthaus.online/kanthaus/kanthaus.online/src/branch/master/user/pages/40.governance/90.minutes minutes] folder - Click &amp;lt;code&amp;gt;Add File&amp;lt;/code&amp;gt; -&amp;amp;gt; &amp;lt;code&amp;gt;New File&amp;lt;/code&amp;gt; - As filename use &amp;lt;code&amp;gt;YYYY-MM-DD_CoMe/item.md&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;2023-05-15_CoMe/item.md&amp;lt;/code&amp;gt;) - Copy the following metadata header (including the &amp;lt;code&amp;gt;---&amp;lt;/code&amp;gt;) into this new document, and fix the date:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;---&lt;br /&gt;
title: Coordination Meeting&lt;br /&gt;
date: &amp;amp;quot;2023-MM-DD&amp;amp;quot;&lt;br /&gt;
taxonomy:&lt;br /&gt;
    tag: [come]&lt;br /&gt;
---&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Copy the CoMe pad content from the Edit mode/Bearbeiten Modus (black window) after the metadata header.&lt;br /&gt;
* Change the commit message to something like &amp;lt;code&amp;gt;add CoMe minutes for YYYY-MM-DD&amp;lt;/code&amp;gt;&lt;br /&gt;
* Click &amp;lt;code&amp;gt;Commit changes&amp;lt;/code&amp;gt;&lt;br /&gt;
* That´s it! After a few minutes the CoMe-minutes should appear on the website.&lt;br /&gt;
&lt;br /&gt;
Prepare the CoMe pad for next week - clear all information that is no longer relevant (i.e. most of it except regular schedule events) - put forward the meta-data date and markup date to next CoMe&lt;br /&gt;
&lt;br /&gt;
Then, finally, notify #kanthaus that the minutes are online and pad is cleared. &#039;&#039;Well done!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Adaptability ==&lt;br /&gt;
The CoMe pad is not subject to the [[Documents|core documents]] which means that facilitators can change it as they see fit and add or omit sections to their liking.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;small&amp;gt;&#039;&#039;&#039;Sections which have been used reliably for a long time are (in chronological order):&#039;&#039;&#039;&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Introduction &amp;amp;amp; review of the week before&#039;&#039;&#039; ====&lt;br /&gt;
* a greeting&lt;br /&gt;
* a moment of silence&lt;br /&gt;
** to focus the attention&lt;br /&gt;
* a brief [https://medium.com/range/check-in-rounds-a7737012fed5 check-in round]&lt;br /&gt;
** to have heard everyone’s voice and be able to understand their current mode&lt;br /&gt;
* finding volunteers for the imminent meeting tasks&lt;br /&gt;
** meaning someone to take notes, someone to update the physical board, and someone for the digital calendar&lt;br /&gt;
** the volunteer to clear all [[Room reservation|weekly reservation sheets]] after the meeting is also found now&lt;br /&gt;
* an overview of resources used in the last week (e.g. water and electricity)&lt;br /&gt;
** to give people a feeling of how much we as a group consume&lt;br /&gt;
** the format has been changed many times and is still not satisfying&lt;br /&gt;
* irregular communal income and expenses&lt;br /&gt;
** for transparency&lt;br /&gt;
* a summary of things that happened in and around Kanthaus&lt;br /&gt;
** to celebrate achievements&lt;br /&gt;
&lt;br /&gt;
==== Planning of the current week ====&lt;br /&gt;
* an overview of planned arrivals and departures this week&lt;br /&gt;
** to nurture and/or protect the community feeling&lt;br /&gt;
* the weather forcast&lt;br /&gt;
** to take into account for the schedule&lt;br /&gt;
* who is due to be [[Positions and evaluations|evaluated]] or have a visitor check-in&lt;br /&gt;
** to be able to schedule them&lt;br /&gt;
* &#039;&#039;&#039;the schedule for the week&#039;&#039;&#039;&lt;br /&gt;
** 1st main part of the meeting&lt;br /&gt;
** creates the communal week plan&lt;br /&gt;
* if someone wants to get/buy something&lt;br /&gt;
** to find out if buying is necessary and/or get approval from the group&lt;br /&gt;
* &#039;&#039;&#039;discussion and announcements&#039;&#039;&#039;&lt;br /&gt;
** 2nd main part of the meeting&lt;br /&gt;
** the space for people to raise points concerning the current week and/or near future&lt;br /&gt;
* [https://kanthaus.gitlab.io/task-lottery/ task lottery] and food planning&lt;br /&gt;
** to distribute communal dinner preparation and hosting of the free shop opening&lt;br /&gt;
&lt;br /&gt;
==== Sections which are new, have been there in the past or are used only sometimes are: ====&lt;br /&gt;
&lt;br /&gt;
* an selection of subjectively interesting world news&lt;br /&gt;
* a tiny version of [https://theanarchistlibrary.org/library/tekosina-anarsist-tekmil-a-tool-for-collective-reflection Tekmíl] or a space for potentially critical feedback to others present&lt;br /&gt;
* a to-do list for fixes and improvements around the house&lt;br /&gt;
* handing out responsibilities (like answering the phone or mails) for the whole week&lt;br /&gt;
* a list of who is actively hosting whom&lt;br /&gt;
* probably more that got forgotten over time…&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1442</id>
		<title>Mattermost</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1442"/>
		<updated>2024-11-27T22:11:50Z</updated>

		<summary type="html">&lt;p&gt;Antonin: start list of known issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👪️ We use Mattermost to organize ourselves, at https://chat.kanthaus.online/&lt;br /&gt;
&lt;br /&gt;
== Creating a personal account ==&lt;br /&gt;
You can get an account by following [https://chat.kanthaus.online/signup_user_complete/?id=7y1m51bwj3rmmmis573zyknofw&amp;amp;md=link&amp;amp;sbr=sa this link].&lt;br /&gt;
&lt;br /&gt;
== Channels ==&lt;br /&gt;
Our main channel is &amp;lt;code&amp;gt;#kanthaus&amp;lt;/code&amp;gt;. Many channels we use have been historically prefixed by &amp;lt;code&amp;gt;#kanthaus-&amp;lt;/code&amp;gt; because they were in a Slack instance shared with other people.&lt;br /&gt;
&lt;br /&gt;
Some of those channels are private, because they contain private or sensitive information. Those are reserved to Volunteers and Members.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This lists the issues we have encountered when using Mattermost:&lt;br /&gt;
* No email integration. We have built the [https://codeberg.org/mailmirror/mailmirror MailMirror plugin] for that, which could still be [https://codeberg.org/mailmirror/mailmirror/issues improved in many ways]&lt;br /&gt;
* No support for reminders of events (for instance stored in an ICS file)&lt;br /&gt;
* Not possible to fully rename the &amp;quot;Town Square&amp;quot; channel (the id will stay `~town-square`)&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Glossary&amp;diff=1423</id>
		<title>Glossary</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Glossary&amp;diff=1423"/>
		<updated>2024-11-24T08:36:56Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Script (CoMe context) */ update for Mattermost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kanthaus has many terms that might be confusing. This page is meant to help restore clarity. 📄&lt;br /&gt;
&lt;br /&gt;
To make adding terms easier there is no order whatsoever. The best way to find what you’re looking for is probably &amp;lt;code&amp;gt;CTRL+f&amp;lt;/code&amp;gt; (which lets you search for terms on the whole page through your browser).&lt;br /&gt;
&lt;br /&gt;
== CoMe ==&lt;br /&gt;
The weekly [[CoMe|Coordination Meeting]]&lt;br /&gt;
&lt;br /&gt;
== PlaMe ==&lt;br /&gt;
The monthly [[PlaMe|Planning Meeting]]&lt;br /&gt;
&lt;br /&gt;
== Power Hour ==&lt;br /&gt;
The weekly common cleaning. More info on [[Powerhour|its own page]].&lt;br /&gt;
&lt;br /&gt;
== Popcorn ==&lt;br /&gt;
In a round people speak (or pass on) one after the other, whereas a popcorn scenario means that people just speak up if they think of something. More info on [[meeting culture]]&lt;br /&gt;
&lt;br /&gt;
== KMW ==&lt;br /&gt;
The van we owned until 2022. Abbreviation for its name ‘KeinMüllWagen’ (no trash wagon)&lt;br /&gt;
&lt;br /&gt;
== HKW ==&lt;br /&gt;
The association that owns the house. Abbreviation for ‘Haus Kante Wurzen w.V.’&lt;br /&gt;
&lt;br /&gt;
== WaWü ==&lt;br /&gt;
The charitable association that runs projects in the house and beyond. Abbreviation for ‘Wandel würzen e.V.’&lt;br /&gt;
&lt;br /&gt;
== foodsharing ==&lt;br /&gt;
Big organization, community, [https://foodsharing.network online platform] and method to save and share food. Starting point of the history that led to Kanthaus.&lt;br /&gt;
&lt;br /&gt;
== yunity ==&lt;br /&gt;
Project emerging from foodsharing to make a new online platform to save and share everything. Context in which the people who would later found Kanthaus met. More info on [[history]]&lt;br /&gt;
&lt;br /&gt;
== Karrot ==&lt;br /&gt;
[https://karrot.world Online platform] for grassroots organizing of real-life activity. Over years co-developed by people in the house.&lt;br /&gt;
&lt;br /&gt;
== Sociocracy ==&lt;br /&gt;
A governance system that uses small groups of people to make decisions based on consent and feedback loops. More info at [https://www.sociocracyforall.org/sociocracy/ Sociocracy for all]. Kanthaus is &#039;&#039;not&#039;&#039; organized sociocratically, but this, like other systems, was useful inspiration at many points.&lt;br /&gt;
&lt;br /&gt;
== Score voting ==&lt;br /&gt;
A voting system where every options is rated individually on a scale and the option with the highest voting wins.&lt;br /&gt;
&lt;br /&gt;
== Harzgerode/Freie Feldlage/FFL ==&lt;br /&gt;
Befriended project in the Harz mountains. More info on [https://freiefeldlage.de their website].&lt;br /&gt;
&lt;br /&gt;
== K20/Salzderhelden ==&lt;br /&gt;
[https://k20-projekthaus.de/en/ K20] is one of the projects closest to Kanthaus conceptually. [https://utopisches-salzderhelden.de/en/ Salzderhelden] is the village around, which houses a multitude of other, related project spaces.&lt;br /&gt;
&lt;br /&gt;
== Exchange logic ==&lt;br /&gt;
The logic of reciprocity, which expects something in return for everything. A valued utopian thought in Kanthaus (and elsewhere) is that overcoming exchange logic is necessary for authentic human connection. Friederike Habermann is a German scholar who is passionate about the topic. [https://wealthofthecommons.org/essay/we-are-not-born-egoists Here’s a nice little essay of hers].&lt;br /&gt;
&lt;br /&gt;
== K20, K22 ==&lt;br /&gt;
Abbreviations for Kantstraße 20 and Kantstraße 22, the two houses that make up Kanthaus.&lt;br /&gt;
&lt;br /&gt;
== Funkenhaus/Greene ==&lt;br /&gt;
[https://funken.haus/ Funkenhaus] is a self-organized seminar space. Greene is the surrounding village.&lt;br /&gt;
&lt;br /&gt;
== Luftschlosserei ==&lt;br /&gt;
[https://luftschlosserei.org Luftschlosserei] is a nice commune south-west of Leipzig.&lt;br /&gt;
&lt;br /&gt;
== Danni ==&lt;br /&gt;
Short for ‘Dannenröder Wald’, which housed a [https://waldstattasphalt.blackblogs.org/ big forest occupation] in (mainly) 2020.&lt;br /&gt;
&lt;br /&gt;
== Spinnerei/Lausitz ==&lt;br /&gt;
[https://www.eine-spinnerei.de/ Eine Spinnerei] is a project in the Lausitz region that focuses on lignate extraction protest, consequently sustainable renovation and free ways of education.&lt;br /&gt;
&lt;br /&gt;
== Evaluation ==&lt;br /&gt;
Meeting about a single person and their relationship to Kanthaus as a whole. More info on [[positions and evaluations]].&lt;br /&gt;
&lt;br /&gt;
== Visitor/Volunteer/Member ==&lt;br /&gt;
The three positions a resident in Kanthaus can have. Residents can request a higher position at an evaluation. More info on [[positions and evaluations]].&lt;br /&gt;
&lt;br /&gt;
== VolMems ==&lt;br /&gt;
Short for ‘Volunteers and Members’.&lt;br /&gt;
&lt;br /&gt;
== ToI ==&lt;br /&gt;
Short for ‘Time of Introspection’, a time in which Kanthaus Volunteers and Members reflect on issues of the house. Usually once a year. There is no uniform format for this.&lt;br /&gt;
&lt;br /&gt;
== MoC ==&lt;br /&gt;
Short for ‘Month of Calm’, a time in which no new Visitors are allowed to arrive so that residents don’t need to worry about presenting Kanthaus and integrating new people. Happens irregularly.&lt;br /&gt;
&lt;br /&gt;
== Alumni ==&lt;br /&gt;
Term for people who have been Volunteers or Members in the past. No official position yet, but it still is a thing.&lt;br /&gt;
&lt;br /&gt;
== FFJ ==&lt;br /&gt;
Time of self-organized learning in a group. Happens in Kanthaus in 2024. More info on [https://freiwilliges-freies-jahr.de/ffj-wurzen-2024/ the project’s website].&lt;br /&gt;
&lt;br /&gt;
== BUND ==&lt;br /&gt;
[https://www.bund.net Bund für Umwelt und Naturschutz] is a huge German environmentalist NGO. We run the local branch in Wurzen.&lt;br /&gt;
&lt;br /&gt;
== Bufdi/BFD ==&lt;br /&gt;
Government-funded volunteer jobs.&lt;br /&gt;
&lt;br /&gt;
== Pad ==&lt;br /&gt;
Online text editor for collaborative use. At [https://pad.kanthaus.online pad.kanthaus.online] we run an instance of [https://hedgedoc.org/ HedgeDoc]. More info on pad usage in Kanthaus e.g. in [[CoMe]].&lt;br /&gt;
&lt;br /&gt;
== Script (CoMe context) ==&lt;br /&gt;
The residence script that runs in preparation of Come calculates who is due for an evaluation and how many resources were used in the last week, and posts the outcomes in a dedicated [[Mattermost]] channel.&lt;br /&gt;
&lt;br /&gt;
== Residence record ==&lt;br /&gt;
Manually updated data base for the CoMe script.&lt;br /&gt;
&lt;br /&gt;
== Communalizing ==&lt;br /&gt;
The act of declaring an item communal property.&lt;br /&gt;
&lt;br /&gt;
== Privatizing ==&lt;br /&gt;
The act of declaring an item private property.&lt;br /&gt;
&lt;br /&gt;
== Vortexing ==&lt;br /&gt;
The act of placing an item in the vortex. More info on the vortex in [[Processes to manage stuff|stuff processes]].&lt;br /&gt;
&lt;br /&gt;
== Open Tuesday ==&lt;br /&gt;
Opening time of the ground floor of K22 which contains the free shop, the foodsharing Fairteiler and (sometimes) the repair café / maker space. Default time is 3pm to 5pm.&lt;br /&gt;
&lt;br /&gt;
== Free shop/Verschenkeladen ==&lt;br /&gt;
Room full of things to give away. Located in K22-0-3.&lt;br /&gt;
&lt;br /&gt;
== Fairteiler ==&lt;br /&gt;
Foodsharing term for a publicly accessible shelf or fridge in which food can be shared between strangers. There is one in Wenceslaigasse in Wurzen.&lt;br /&gt;
&lt;br /&gt;
== Workaway ==&lt;br /&gt;
[https://workaway.info Website] for people to find volunteer work all over the world. Kanthaus has a host profile on there.&lt;br /&gt;
&lt;br /&gt;
== Projektverteiler ==&lt;br /&gt;
A mailing list for house projects and other alternative living concepts in and around Leipzig.&lt;br /&gt;
&lt;br /&gt;
== HWR ==&lt;br /&gt;
[https://www.hwr-leipzig.org/ HWR] is short for ‘Haus- und Wagenrat e.V.’. An association that offers guidance to house projects and trailer sites. They helped us aquire the houses in Kantstraße.&lt;br /&gt;
&lt;br /&gt;
== NDK/D5 ==&lt;br /&gt;
[https://www.ndk-wurzen.de/ NDK] is short for ‘Netzwerk für demokratische Kultur’, an association that has been doing work to counter the right-wing status quo in Wurzen for two decades now. [https://www.ndk-wurzen.de/unser-haus/kultur-und-buerger_innenzentrum-d5/ D5] are their headquarters at Domplatz 5.&lt;br /&gt;
&lt;br /&gt;
== LADEN/Schweizerhaus Püchau ==&lt;br /&gt;
[https://schweizerhaus-puechau.jimdo.com/der-laden-wurzen/ The LADEN] is an open art space run by the association [https://schweizerhaus-puechau.jimdo.com/ Schweizerhaus Püchau] that has been doing art empowerment workshops in the region since 2010.&lt;br /&gt;
&lt;br /&gt;
== Villa Klug ==&lt;br /&gt;
Something between house project and flat share with tons of space and nice people. Slightly south of Wurzen, right on the bank of the Mulde river.&lt;br /&gt;
&lt;br /&gt;
== RE/S-Bahn ==&lt;br /&gt;
The two kinds of trains that go to Leipzig. RE is the fast one (~20 minutes) and S-Bahn the slow one (~40 minutes). More info on [[travel]].&lt;br /&gt;
&lt;br /&gt;
== Phoenix ==&lt;br /&gt;
The red ebike. Usually lives in the communal bike shed.&lt;br /&gt;
&lt;br /&gt;
== Lightning ==&lt;br /&gt;
The silver ebike. Usually lives in the communal bike shed.&lt;br /&gt;
&lt;br /&gt;
== Daria ==&lt;br /&gt;
Bike trailer custom made for the base length of two green boxes. Usually stored on the wall of the communal bike shed.&lt;br /&gt;
&lt;br /&gt;
== Nathanaël ==&lt;br /&gt;
Bike trailer custom made for the base length of four green boxes. Can also be used as a ladder. Usually stored standing outside of the communal bike shed under the roof.&lt;br /&gt;
&lt;br /&gt;
== Carla (Cargo) ==&lt;br /&gt;
Heavy duty bike trailer. Inspired by [https://www.carlacargo.de/ Carla Cargo], built following the instructions provided by [https://pedalkreis.org/bauplaene/carlacargo/ Pedalkreis].&lt;br /&gt;
&lt;br /&gt;
== Kids trailer ==&lt;br /&gt;
A boringly named bike trailer to transport two small children.&lt;br /&gt;
&lt;br /&gt;
== Lollipop hitch ==&lt;br /&gt;
The kind of hitch to attach a trailer to a bike that is commonly used in Kanthaus. Like [https://www.cykelportalen.dk/wp-content/uploads/2017/08/CarryFreedomCity02.jpg this one].&lt;br /&gt;
&lt;br /&gt;
== MCM ==&lt;br /&gt;
Short for ‘Mega/meta/master Coordination Meeting’. Format for longterm organizing that is not used anymore.&lt;br /&gt;
&lt;br /&gt;
== Roadmap meetings ==&lt;br /&gt;
First longer term organizing format we came up with. Not used anymore.&lt;br /&gt;
&lt;br /&gt;
== Sommerfest ==&lt;br /&gt;
Annual garden party in the warm season. With house tours, open free shop and Fairteiler, KüfA, drinks, music and more.&lt;br /&gt;
&lt;br /&gt;
== KüfA ==&lt;br /&gt;
Short for ‘Küche für Alle’ or ‘kitchen for all’, an event where food is handed out for free or donation-based.&lt;br /&gt;
&lt;br /&gt;
== KoLa ==&lt;br /&gt;
Short for &amp;quot;Kollaboratives Landwirtschaft&amp;quot; (&amp;quot;Collaborative agriculture&amp;quot;), [https://kolalleipzig.de huge Solawi] in Sehlis, from which we sometimes save food.&lt;br /&gt;
&lt;br /&gt;
== FLINTA* ==&lt;br /&gt;
Stands for the German words &amp;quot;Frauen, Lesben, Inter*-Menschen, Nichtbinäre, trans*-Menschen und Agender-Menschen&amp;quot;, which would be translated to women, lesbians, inter*-, nonbinary-, trans*- and agender people. In short, everyone who is not an endo-cis-man. The star tries to include anyone else who experiences discrimination by the patriarchy.&lt;br /&gt;
&lt;br /&gt;
== nuudel ==&lt;br /&gt;
[https://nuudel.digitalcourage.de/ nuudel] is a non-tracking date finding tool operated by [https://digitalcourage.de/ digitalcourage]. It runs the open-source software [https://framagit.org/framasoft/framadate/framadate Framadate]. &lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;to be added&#039;&#039;&#039; - doocracy https://www.noisebridge.net/wiki/Do-ocracy - dragon dreaming - scrum - jitsi - bigbluebutton - nextcloud - inventaire - open refine - blindspots - Jugendkommune - ROAW - collective governance directory - MSV - Kita - Bubis/Bubi/Mubi - communal - sharing circle - Fokusgruppe (Nachhaltigkeit)/FGNW - Wenceslaigassenfest - potato action - Auerworld - Acroyoga - GFK/NVC - Kommuja - GEN - Eurotopia - Awareness - Privilege - FTT - Kimchi - Tempeh - Landgut Nemt - Spidey - (ebay) Kleinanzeigen - (occupancy) indicator - Window holder - Sound bowl - Guest book - Expfloorer - House bus - Ventilation system - Heatpump - AC/air conditioning - Bike repair station -&lt;br /&gt;
[[Category:Social]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Compost_toilet&amp;diff=1422</id>
		<title>Compost toilet</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Compost_toilet&amp;diff=1422"/>
		<updated>2024-11-24T08:36:25Z</updated>

		<summary type="html">&lt;p&gt;Antonin: update after Mattermost migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can find the compost toilet in the K22 staircase, the room with the actual toilet is in between the ground floor and the first floor, the “tank room” where the material is composted is right below it on the ground floor, next to the garden door.&lt;br /&gt;
&lt;br /&gt;
== General principle 🍂 ==&lt;br /&gt;
&lt;br /&gt;
* Urine is separated and directed into the normal sewage system, the urine tube forms a siphon to prevent smell from the sewers&lt;br /&gt;
* The poop falls into a 800l plastic tank (which used to be an oil tank)&lt;br /&gt;
* The tank has a grid of metal bars on the bottom that allows for airflow and “harvesting” of the composted materials from below&lt;br /&gt;
* The tank also has a sewage connection on the very bottom in case there is ever an overflow or the material becomes too wet&lt;br /&gt;
* A 120mm 3W PC fan creates a slight vacuum throughout the tank and toilet and blows unwanted smells outside just below the roof&lt;br /&gt;
&lt;br /&gt;
Details about the principle and instructions on how to build your own indoor compost toilet can be found in the brochure “Einfälle statt Abfälle” by Christian Kuhtz, which you can find in some KH bookshelf 😁&lt;br /&gt;
&lt;br /&gt;
== Usage hints ==&lt;br /&gt;
&lt;br /&gt;
* Because of the urine separation the material can get too dry. It might make sense to pee into the tank from time to time. Best have 1 or 2 people who use it regularly always pee beside the urine separation funnel (currently, 2022-07, Janina does this)&lt;br /&gt;
* Emptying the tank is necessary 1-4 times a year, depending on how much it is used&lt;br /&gt;
* If the material stacks up all the way to the ventilation outlet, its probably time to empty soon. You can buy some time by using the metal rod from the tank room, to push the hill of accumulated material down to the sides&lt;br /&gt;
&lt;br /&gt;
== Emptying procedure ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites: ===&lt;br /&gt;
&lt;br /&gt;
* approx. 1-2 hours of time&lt;br /&gt;
* tools (should be stored in the front area of the tank room):&lt;br /&gt;
** long metal rod, bend at the end&lt;br /&gt;
** some penny-bags (1-4)&lt;br /&gt;
** a shoveling device (one with short or no handle seems to work well)&lt;br /&gt;
* something to lay on, e.g. a camping mat (something that’s easy to clean or where it doesn’t matter if it gets dirty)&lt;br /&gt;
* a headlamp (can usually be found in the workshop, right when you enter to your left)&lt;br /&gt;
* maybe gloves (can also be found in the workshop)&lt;br /&gt;
* no arachnophobia :D yes, there will be spiders and other crawling insects&lt;br /&gt;
[[File:Comfortable compost toilet emptying position .jpg|thumb|Recommended emptying postition]]&lt;br /&gt;
&lt;br /&gt;
=== Emptying ===&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Start with finding a comfortable position lying on your back.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Use the metal rod with bent tip to poke around between the bars of the grid, eventually you will have enough space to shift the material around in the tank and let it trickle down through the bars of the grid.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If it does not work or it is too difficult, you can try to push a few of the bars to the sides (they are just loosely connected the the main carrying bars with some wire) to have more space to poke around with your rod.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the material in the tank is to wet/heavy/dense it can help to poke into the tank from above (i.e. into the toilet) with the tip-bent rod.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After enough material has accumulated in the area below the rod-grid, use the shovel to move it to a penny bag other other container[[File:Compost toilet shit shovel .jpg|thumb|Shovel the &amp;lt;s&amp;gt;shit&amp;lt;/s&amp;gt; compost]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Continue with step 1.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on how full the tank is and when it was last emptied, you can remove 2-6 penny bags. If the material changes from “feels like compost” to “feels like poop” you should stop :)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can just empty the bags into the normal compost at the far corner of the garden, maybe try to mix it into the normal compost a bit with a shovel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Don’t forget to clean up and wash your hands!&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General maintenance / bug fixing ==&lt;br /&gt;
&lt;br /&gt;
* clogged fan: happens either when a piece of toilet paper or similar gets stuck in front of the fan from the inside, or the fan itself or the pipe behind it are filled with sawdust/flied&lt;br /&gt;
** remedy: go into the garden to what used to be the outside window of the “tank room” (you might have to move some trash bins), remove the piped leading out from the fan (the are all only loosely stuck together) and shake out the dust / use compressed air.&lt;br /&gt;
* broken fan / power adapter: I would expect the fan to only last a few years under this stress, if is breaks you should find a new one in the electronics workshop / salvage old PCs or power supplied. Power adapters you can also find in the electronics workshop, anything from 5-16V should work (but give you a more or less powerful fan)&lt;br /&gt;
* if you for some reason need to access the tank from above, or something with be toilet itself is broken (urine tube or “poop slide” made of cut-open buckets) the wooden chassis is not screwed or glued, only held in place by some wooden dowels. You can just lift the top off the sides, the urine tube and cut-open buckets will be in the way though as they are quite tightly connected, so you will need to lift the top wooden piece together with the toilet seat, urine-tube and buckets.&lt;br /&gt;
&lt;br /&gt;
== Possible future improvements ==&lt;br /&gt;
&lt;br /&gt;
* add a butt-shower (there still should be some in the workshop, ask Silvan)&lt;br /&gt;
* integrate the sawdust bin into the main wooden construction of the compost toilet, mainly to have more space in comfort when sitting on the toilet, and for optical reasons. Its a bit tricky but should be possible, maybe with a bin a bit smaller then the one used now. The bin should stay removable and you can use the cut-out wood as a lid. Ping Bodhi on Mattermost if you are interested!&lt;br /&gt;
[[Category:Rooms]]&lt;br /&gt;
[[Category:Toilets]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Processes_to_manage_stuff&amp;diff=1421</id>
		<title>Processes to manage stuff</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Processes_to_manage_stuff&amp;diff=1421"/>
		<updated>2024-11-24T08:36:01Z</updated>

		<summary type="html">&lt;p&gt;Antonin: /* Communal stuff de-cluttering */ update for Mattermost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;📦️ &amp;quot;Stuff&amp;quot; is the term widely used in Kanthaus to refer to physical items that take up space in the house and are not food. Stuff can be useful or not, communal or private, a blessing or a curse. Managing stuff is a vital administrative task of the house, so we came up with several systems.&lt;br /&gt;
&lt;br /&gt;
== [[The Vortex]] ==&lt;br /&gt;
&lt;br /&gt;
== De-cluttering actions ==&lt;br /&gt;
&lt;br /&gt;
Formerly known as ‘sales’ (based on the idea of doing an ‘internal yard sale’), which admittedly is an extremely confusing term, de-cluttering actions are events to clear out storage areas.&lt;br /&gt;
&lt;br /&gt;
=== Communal stuff de-cluttering ===&lt;br /&gt;
&lt;br /&gt;
On example for communal stuff de-cluttering is the K20 entrance with its communal shoe and jacket shelf. Let’s say we want to de-clutter the jacket shelf, the process is as follows:&lt;br /&gt;
&lt;br /&gt;
# Empty the shelf and put all its contents to an accessible location. People need to be able to look through everything there. It should also not be in the way. Past locations were the [[Dragon room|Dragon Room]] or [[Elephantroom|Elephant Room]] tables.&lt;br /&gt;
# Specify a time frame for the event and communicate it on site (the shelf itself, the sorting area and on [[Mattermost]]). Past actions usually took 1-2 weeks maximum.&lt;br /&gt;
# During the event people are expected to take out the things they want to keep and hang them back onto the shelf.&lt;br /&gt;
# When the time is up everything that’s left will go through the vortex.&lt;br /&gt;
&lt;br /&gt;
=== Private stuff de-cluttering ===&lt;br /&gt;
&lt;br /&gt;
Basically the same as the communal stuff de-cluttering, private stuff de-cluttering are events to make sure we don’t have unnecessary items in public spaces for private items. This is only necessary in the entrance of K20 where we have space for private shoes and jackets &#039;&#039;without name tags&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Spitz Storage Room concepts ==&lt;br /&gt;
&lt;br /&gt;
Since the [[Spitz storage room|Spitz Storage Room]] is the newest storage area, we this time, took good care to come up with a nice system &#039;&#039;before&#039;&#039; it is filled with stuff. The details are in the room page, but the general idea is as outlined below&lt;br /&gt;
&lt;br /&gt;
=== Communal stuff in Spitz Storage Room ===&lt;br /&gt;
&lt;br /&gt;
* clear categories of stuff&lt;br /&gt;
* clear labels&lt;br /&gt;
* only sorted boxes are allowed in the area&lt;br /&gt;
&lt;br /&gt;
=== Private stuff in Spitz Storage Room ===&lt;br /&gt;
&lt;br /&gt;
* everybody can have up to a stack of 3 banana boxes&lt;br /&gt;
* everything needs to be labeled with a name&lt;br /&gt;
* people who are neither [[Positions and evaluations|Volunteer or Member]] need to indicate when they last accessed the box (LDA = last date accessed) and remove it if this date is more than a year in the past&lt;br /&gt;
&lt;br /&gt;
== Privatization of communal stuff ==&lt;br /&gt;
[[File:MaximeStuffRequest.jpg|thumb|&#039;&#039;Example of someone asking to privatize communal items&#039;&#039;]]&lt;br /&gt;
There is no perfectly choreographed process for privatization of communal stuff. However, there are best practices, which usually involve the following: - clearly identify the items you’d like to take, possibly with pictures - communicate your request online so that everybody has the chance to see it in time - formulate a deadline until which people are expected to react - be honestly open to other people’s potential claims on items and engage in productive discussion if necessary&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=The_Vortex&amp;diff=1420</id>
		<title>The Vortex</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=The_Vortex&amp;diff=1420"/>
		<updated>2024-11-24T08:35:26Z</updated>

		<summary type="html">&lt;p&gt;Antonin: update after Mattermost migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Located in the [[Intermediate|Intermediate Storage Room]] in K20-1-5, the vortex is a physical space to regularly look through potentially unwanted communal items.&lt;br /&gt;
&lt;br /&gt;
=== What is it for? ===&lt;br /&gt;
&lt;br /&gt;
There are three major use cases for the vortex:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Removing&#039;&#039;&#039; stuff from the household.&lt;br /&gt;
# &#039;&#039;&#039;Clearing&#039;&#039;&#039; a corner of the household.&lt;br /&gt;
# &#039;&#039;&#039;Adding&#039;&#039;&#039; stuff to the household.&lt;br /&gt;
&lt;br /&gt;
The 1. Is probably the most relevant case: Someone thinks a certain item should not be part of the Kanthaus household anymore and wants to start the process of getting rid of it. The vortex gives others time to take it back and/or privatize it.&lt;br /&gt;
&lt;br /&gt;
When someone tidies up a cluttered space they usually find stuff that is clearly (or maybe) not trash but still does not belong there. Needing to find a good new or the proper previous location os hard and blocks tidying up efforts, so putting these things in the vortex is an appropriate way to go.&lt;br /&gt;
&lt;br /&gt;
Sometimes people find stuff that might be useful to the house or individuals, but they’re not really sure. Putting it in the vortex means leaving the decision to communalize or privatize the items to others and just giving them prioritized access before it ends up in the [[Freeshop|Free Shop]] or the trash.&lt;br /&gt;
&lt;br /&gt;
=== How does it work? ===&lt;br /&gt;
&lt;br /&gt;
There are three phases which the stuff - if not taken out - travels through. ‘Vortex shifting’ is a [[Power hour|Power Hour]] task, which means that it ideally happens every week, sometimes more seldom, never more often.&lt;br /&gt;
&lt;br /&gt;
==== Phase 1 (0+ days) - New things ====&lt;br /&gt;
&lt;br /&gt;
===== Put into this phase =====&lt;br /&gt;
&lt;br /&gt;
* broken things which you don’t want to fix&lt;br /&gt;
* things you think we have too much of&lt;br /&gt;
* ‘lost’ personal property&lt;br /&gt;
* anything else you think should move (out) of the communal space in the house&lt;br /&gt;
&lt;br /&gt;
Label things with the reason why you put them in. If you’d like people to talk to you about them, also write down your name. Pens and paper are on the shelf opposite the vortex, near the door.&lt;br /&gt;
&lt;br /&gt;
===== Take out of this phase =====&lt;br /&gt;
&lt;br /&gt;
* your personal things&lt;br /&gt;
* known communal things, to return them to communal space&lt;br /&gt;
&lt;br /&gt;
==== Phase 2 (7+ days) ====&lt;br /&gt;
&lt;br /&gt;
===== Put in =====&lt;br /&gt;
* Items from phase 1&lt;br /&gt;
&lt;br /&gt;
===== Take out =====&lt;br /&gt;
&lt;br /&gt;
* Your own personal items.&lt;br /&gt;
* Items you know to be communal.&lt;br /&gt;
&lt;br /&gt;
==== Phase 3 (7+ days) - Last Chance ====&lt;br /&gt;
&lt;br /&gt;
===== Put in =====&lt;br /&gt;
* Items from phase 2&lt;br /&gt;
&lt;br /&gt;
===== Take out =====&lt;br /&gt;
&lt;br /&gt;
* Anything you want to privatize&lt;br /&gt;
* Known communal things, to return them to their storage&lt;br /&gt;
&lt;br /&gt;
==== Doom ====&lt;br /&gt;
Items from phase 3 are doomed at the next shift.&lt;br /&gt;
&lt;br /&gt;
* Items that make sense to communalize are sorted into fitting communal locations. Remember that those items had 2 weeks to be sorted in already. Only return them if you&#039;re sure.&lt;br /&gt;
* good but unneeded items go in the [[Freeshop storage|Free Shop Storage]]&lt;br /&gt;
* trash is put into bins accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Details of the shifting ====&lt;br /&gt;
Shifting is one of the [[Power hour|Power Hour]] tasks.&lt;br /&gt;
&lt;br /&gt;
To make it possible for Kanthausians who are not currently in the space to also voice an opinion on the stuff in the vortex, it’s required to document vortex shifts on [[Mattermost]].&lt;br /&gt;
&lt;br /&gt;
Experience leads to the following best-practice of vortex shifting:&lt;br /&gt;
&lt;br /&gt;
* Start on the back and empty phase 3.&lt;br /&gt;
* Make (a) box(es) with things for the Free Shop&lt;br /&gt;
* Check things you believe might be there in error with people who might know.&lt;br /&gt;
* If you feel like it, offer items to people outside Kanthaus - on Kleinanzeigen or to your friends.&lt;br /&gt;
* Don’t be shy to use the trash bins!&lt;br /&gt;
* Move phase 2 into phase 3.&lt;br /&gt;
* Take pictures and make sure that the things are identifiable.&lt;br /&gt;
* Feel free to also use the space below the table.&lt;br /&gt;
* If more space is needed than before, you can move the tape that marks the border between phase 2 and phase 3.&lt;br /&gt;
* Check phase 1. If there are items without a label explaining why they were vortexed, move them into their normal storage places. They are probably just lost.&lt;br /&gt;
* Move phase 1 into phase 2.&lt;br /&gt;
* Take pictures if you’re motivated, but the ‘phase 2 to phase 3’ pics are more important.&lt;br /&gt;
* Add stuff that came in during Power Hour to phase 1.&lt;br /&gt;
* Upload the pictures to #kanthaus-stuff on Mattermost and add some descriptive words.&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Volunteer_induction&amp;diff=1419</id>
		<title>Volunteer induction</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Volunteer_induction&amp;diff=1419"/>
		<updated>2024-11-24T08:34:47Z</updated>

		<summary type="html">&lt;p&gt;Antonin: update after Mattermost migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🔰 This page lists knowledge and accesses we give to new [[Positions and evaluations|Volunteers]]. It is formatted as Markdown to make it easier to copy into a pad and tick boxes as the steps get done.&lt;br /&gt;
&lt;br /&gt;
Evaluation facilitators don’t need to do all this work by themselves, they can share the pad with the group to spread the load.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;### Immediately after evaluation&lt;br /&gt;
_to be done by the evaluation facilitator_&lt;br /&gt;
- [ ] invite to #kh_vol_and_mem and #kanthaus-mails&lt;br /&gt;
- [ ] invite to the Signal group&lt;br /&gt;
- [ ] send them the introductory message (see below)&lt;br /&gt;
- [ ] update the website (at https://git.kanthaus.online/kanthaus/kanthaus.online/src/branch/master/user/data/kanthausians.yaml)&lt;br /&gt;
&lt;br /&gt;
### In the next days&lt;br /&gt;
- [ ] explain the hosting duties&lt;br /&gt;
- [ ] invite to Nextcloud (create their account at https://cloud.kanthaus.online/settings/users and add them to the &amp;amp;quot;Kanthaus&amp;amp;quot; group)&lt;br /&gt;
- [ ] show the cloud calendar and file system (see https://wiki.kanthaus.online/Nextcloud)&lt;br /&gt;
- [ ] show KeePassXC&lt;br /&gt;
- [ ] explain CoMe facilitation and mention git, CoMe script and records&lt;br /&gt;
- [ ] explain the email setup, offer access to hello@ and creation of personal kanthaus address (see https://wiki.kanthaus.online/Email)&lt;br /&gt;
- [ ] show the wiki (at https://wiki.kanthaus.online)&lt;br /&gt;
- [ ] explain the collective agreements changes with ukuvota&lt;br /&gt;
- [ ] share link collection&lt;br /&gt;
- [ ] give a door tag&lt;br /&gt;
&lt;br /&gt;
### Eventually&lt;br /&gt;
- [ ] introduce to git with kanthaus.online to upload CoMe minutes&lt;br /&gt;
- [ ] introduce to git with kanthaus-private to update evaluation record&lt;br /&gt;
&lt;br /&gt;
### By request or obvious interest&lt;br /&gt;
- [ ] show grafana (https://grafana.yunity.org)&lt;br /&gt;
- [ ] show the overview of kanthaus repositories on git (https://git.kanthaus.online)&lt;br /&gt;
- [ ] introduce to editing kanthaus.online&lt;br /&gt;
- [ ] introduce to editing the wiki&lt;br /&gt;
- [ ] introduce to any more complex house task (sysadmin, finances, you name it)&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Link collection ==&lt;br /&gt;
&lt;br /&gt;
* https://kanthaus.online/public&lt;br /&gt;
* https://cloud.kanthaus.online&lt;br /&gt;
* https://handbook.kanthaus.online&lt;br /&gt;
* https://pad.kanthaus.online/groupHosting#&lt;br /&gt;
* https://git.kanthaus.online/&lt;br /&gt;
* https://premiumize.me&lt;br /&gt;
&lt;br /&gt;
== Template for introductory message ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Congratulations on becoming a Volunteer 🙂&lt;br /&gt;
&lt;br /&gt;
(This message is copy-pasted from https://wiki.kanthaus.online/Volunteer_induction )&lt;br /&gt;
&lt;br /&gt;
I have invited you to the private Mattermost channels&lt;br /&gt;
#kh_vol_and_mem (the channel for volunteers and members only) and&lt;br /&gt;
#kanthaus-mails (where all mails to hello@kanthaus.online get forwarded to), but there are other channels you could be invited to if you wanted, mostly automatically fed ones like:&lt;br /&gt;
&lt;br /&gt;
* #kanthaus-konto-wawü that prints the charitable association&#039;s bank account activity&lt;br /&gt;
* #kanthaus-konto-hkw that prints the house owner association&#039;s bank account activity&lt;br /&gt;
* #kanthaus-residence that prints the results of the weekly script that is used for CoMe&lt;br /&gt;
* #kanthaus-git that prints activity on kanthaus-private and kanthaus.online git repositories&lt;br /&gt;
* #kanthaus-finances that is mainly (but rarely) used by the finances team&lt;br /&gt;
&lt;br /&gt;
There also is a Signal group that serves as the only encrypted group communication for Kanthaus volunteers and members. I can add you there if you give me your phone number.&amp;lt;/pre&amp;gt;&lt;br /&gt;
Feel free to point them to the pad where the other induction tasks are listed, so that they can prod other Volunteers and Members if they are interested in getting a specific access or knowledge.&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Alternatives_to_Slack&amp;diff=1418</id>
		<title>Alternatives to Slack</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Alternatives_to_Slack&amp;diff=1418"/>
		<updated>2024-11-24T08:32:23Z</updated>

		<summary type="html">&lt;p&gt;Antonin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the past we used Slack for internal coordination. We looked for alternatives and after [https://legacy.ukuvota.world/#/app/3ab61b88-572c-1b46-f597-1bd8a7262638/vote an ukuvota] we decided to migrate to Mattermost.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |sign up&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |app&lt;br /&gt;
!UI&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
!email&lt;br /&gt;
!phone number&lt;br /&gt;
!Use nextcloud&lt;br /&gt;
account (SSO)&lt;br /&gt;
!web&lt;br /&gt;
!mobile&lt;br /&gt;
!desktop&lt;br /&gt;
!distinct levels&lt;br /&gt;
|-&lt;br /&gt;
|Slack&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|?&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;3&#039;&#039;&#039; (workspace), channels, messages, replies&lt;br /&gt;
|-&lt;br /&gt;
|[https://mattermost.kanthaus.online/ Mattermost]&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|paid&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;3&#039;&#039;&#039; (instance), channels, messages, replies&lt;br /&gt;
|-&lt;br /&gt;
|[https://kanthaus-test.zulipchat.com/ Zulip]&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
| style=&amp;quot;background:#9EFF9E&amp;quot; |&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;3&#039;&#039;&#039; (instance), channels, topics, messages&lt;br /&gt;
|-&lt;br /&gt;
|Signal&lt;br /&gt;
|no&lt;br /&gt;
| style=&amp;quot;background:#FFC7C7&amp;quot; |&#039;&#039;&#039;required&#039;&#039;&#039;&lt;br /&gt;
|no&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#FFC7C7&amp;quot; |&#039;&#039;&#039;required&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;1&#039;&#039;&#039; (group), messages&lt;br /&gt;
|-&lt;br /&gt;
|Simplex&lt;br /&gt;
|no&lt;br /&gt;
|no&lt;br /&gt;
|no&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#FFC7C7&amp;quot; |&#039;&#039;&#039;required&#039;&#039;&#039;&lt;br /&gt;
|no&lt;br /&gt;
|&#039;&#039;&#039;1&#039;&#039;&#039; (group), messages&lt;br /&gt;
|-&lt;br /&gt;
|Discourse&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
| style=&amp;quot;background:#9EFF9E&amp;quot; |&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|&#039;&#039;&#039;2.5&#039;&#039;&#039; [forum] (instance), categories, topics, replies&lt;br /&gt;
&#039;&#039;&#039;2.5&#039;&#039;&#039; [chat] (instance), channels, messages, replies&lt;br /&gt;
|-&lt;br /&gt;
|Mailing lists&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|no&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;?&#039;&#039;&#039; (list), messages &amp;amp; replies&lt;br /&gt;
|-&lt;br /&gt;
|Matrix&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|?&lt;br /&gt;
|&#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|&#039;&#039;&#039;4&#039;&#039;&#039; (instance), space, group, message, thread&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External comparison resources==&lt;br /&gt;
&lt;br /&gt;
*[https://www.messenger-matrix.de/messenger-matrix-en.html Kuketz-Blog Messenger Matrix]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1417</id>
		<title>Mattermost</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1417"/>
		<updated>2024-11-24T08:29:17Z</updated>

		<summary type="html">&lt;p&gt;Antonin: update after Mattermost migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👪️ We use Mattermost to organize ourselves, at https://mattermost.kanthaus.online/&lt;br /&gt;
&lt;br /&gt;
== Creating a personal account ==&lt;br /&gt;
You can get an account by following [https://mattermost.kanthaus.online/signup_user_complete/?id=7y1m51bwj3rmmmis573zyknofw&amp;amp;md=link&amp;amp;sbr=sa this link].&lt;br /&gt;
&lt;br /&gt;
== Channels ==&lt;br /&gt;
Our main channel is &amp;lt;code&amp;gt;#kanthaus&amp;lt;/code&amp;gt;. Many channels we use have been historically prefixed by &amp;lt;code&amp;gt;#kanthaus-&amp;lt;/code&amp;gt; because they were in a Slack instance shared with other people.&lt;br /&gt;
&lt;br /&gt;
Some of those channels are private, because they contain private or sensitive information. Those are reserved to Volunteers and Members.&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Slack&amp;diff=1416</id>
		<title>Slack</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Slack&amp;diff=1416"/>
		<updated>2024-11-24T08:08:22Z</updated>

		<summary type="html">&lt;p&gt;Antonin: Antonin moved page Slack to Mattermost: migrating to mattermost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Mattermost]]&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1415</id>
		<title>Mattermost</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Mattermost&amp;diff=1415"/>
		<updated>2024-11-24T08:08:17Z</updated>

		<summary type="html">&lt;p&gt;Antonin: Antonin moved page Slack to Mattermost: migrating to mattermost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;👪️ We use a Slack workspace to organize ourselves, at https://yunity.slack.com/&lt;br /&gt;
&lt;br /&gt;
== Creating a personal account ==&lt;br /&gt;
You can get an account by following [https://slackin.yunity.org/ this link].&lt;br /&gt;
&lt;br /&gt;
== Channels ==&lt;br /&gt;
The Slack workspace we use is shared with other projects (notably the development of the foodsharing platform). Our main channel is &amp;lt;code&amp;gt;#kanthaus&amp;lt;/code&amp;gt;. The other channels we use are mostly all prefixed by &amp;lt;code&amp;gt;#kanthaus-&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some of those channels are private, because they contain private or sensitive information. Those are reserved to Volunteers and Members.&lt;br /&gt;
&lt;br /&gt;
== Migrating out of Slack ==&lt;br /&gt;
We are aware of Slack being a proprietary software made available by a for-profit company. We use it for historical reasons and are already preparing to migrate to another platform.&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
	<entry>
		<id>https://wiki.kanthaus.online/index.php?title=Nextcloud&amp;diff=305</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.kanthaus.online/index.php?title=Nextcloud&amp;diff=305"/>
		<updated>2024-10-16T11:21:45Z</updated>

		<summary type="html">&lt;p&gt;Antonin: list style fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;cloud: We have our own instance of Nextcloud hosted on [[Server|our server]] to store immutable data and our calendar.&lt;br /&gt;
&lt;br /&gt;
== Who can reach it where? ==&lt;br /&gt;
The address is: https://cloud.kanthaus.online&lt;br /&gt;
&lt;br /&gt;
You need to have an account to access the Nextcloud. Volunteers and Members are given accounts, others can access the &amp;lt;code&amp;gt;kanthaus-public&amp;lt;/code&amp;gt; folder via https://kanthaus.online/public&lt;br /&gt;
&lt;br /&gt;
== How to mount it as a shared directory on my machine? ==&lt;br /&gt;
Nextcloud is reachable via the WebDAV protocol. On many Linux variants, you can connect to it in your file manager via the following address (where &amp;lt;code&amp;gt;${my_username}&amp;lt;/code&amp;gt; is replaced by your Nextcloud username):&lt;br /&gt;
* &amp;lt;code&amp;gt;davs://cloud.kanthaus.online/remote.php/dav/files/${my_username}/&amp;lt;/code&amp;gt; for Gnome&lt;br /&gt;
* &amp;lt;code&amp;gt;webdav://cloud.kanthaus.online/remote.php/dav/files/${my_username}/&amp;lt;/code&amp;gt; for KDE&lt;br /&gt;
* You can also mount it manually as a filesystem with [https://docs.nextcloud.com/server/13.0.0/user_manual/files/access_webdav.html#creating-webdav-mounts-on-the-linux-command-line davfs2]&lt;br /&gt;
&lt;br /&gt;
More information about this setup is available in the [https://docs.nextcloud.com/server/13.0.0/user_manual/files/access_webdav.html#accessing-files-using-linux Nextcloud manual], including [https://docs.nextcloud.com/server/13.0.0/user_manual/files/access_webdav.html#accessing-files-using-macos instructions for MacOS] and [https://docs.nextcloud.com/server/13.0.0/user_manual/files/access_webdav.html#accessing-files-using-microsoft-windows Windows].&lt;/div&gt;</summary>
		<author><name>Antonin</name></author>
	</entry>
</feed>