aboutsummaryrefslogtreecommitdiff
path: root/content/en/docs/Releases/0_20.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/en/docs/Releases/0_20.md')
-rw-r--r--content/en/docs/Releases/0_20.md62
1 files changed, 62 insertions, 0 deletions
diff --git a/content/en/docs/Releases/0_20.md b/content/en/docs/Releases/0_20.md
new file mode 100644
index 0000000..4e59f73
--- /dev/null
+++ b/content/en/docs/Releases/0_20.md
@@ -0,0 +1,62 @@
+---
+date: 2023-09-21
+title: "Ouroboros 0.20"
+linkTitle: "Ouroboros 0.20"
+description: "Major additions and changes in 0.20.0"
+author: Dimitri Staessens
+---
+
+Version 0.20 brings some code refactoring and a slow of bugfixes to
+the prototype to improve stability, but the main quality-of-life
+addition is config file support in TOML format. This removes the need
+for bash scripts to configure the prototype on reboots/restarts; a
+very basic feature that was long overdue.
+
+As an example, before v0.20, this server had Ouroboros running as a
+systemd service, and it was configured using the following irm commands:
+
+```bash
+irm i b t udp n udp l udp ip 51.38.114.133
+irm n r ouroboros.rocks.oping l udp
+irm b prog oping n ouroboros.rocks.oping auto -- -l
+```
+
+These bootstrap a UDP layer to the server's public IP address,
+register the name "ouroboros.rocks.oping" with that layer and bind the
+program binary /usr/bin/oping to that name, telling the irmd to start
+that server automatically if it wasn't running before.
+
+While pretty simple to perform, if the service was restarted or the
+server was rebooted, we needed to re-run these commands (we could have
+added them to some system startup script, of course).
+
+Now the IRMd will load the config file specified in
+/etc/ouroboros/irmd.conf. The IRMd configuration to achieve the above
+(I renamed the UDP layer to "Internet", but that name doesn't really
+matter if there is only one ipcpd-udp in the system):
+```bash
+root@vps646159:~# cat /etc/ouroboros/irmd.conf
+### Ouroboros configuration file
+[name."ouroboros.rocks.oping"]
+prog=["/usr/bin/oping"]
+args=["-l"]
+
+[udp.internet]
+bootstrap="Internet"
+ip="51.38.114.133"
+reg=["ouroboros.rocks.oping"]
+```
+
+To enable config file support, tomlc99 is needed. Install via
+
+```bash
+git clone https://github.com/cktan/tomlc99
+cd tomlc99
+make
+sudo make install
+```
+
+and then reconfigure cmake and build Ouroboros as usual.
+
+
+