{"id":1646,"date":"2017-05-16T16:55:50","date_gmt":"2017-05-16T14:55:50","guid":{"rendered":"https:\/\/www.nico-maas.de\/?p=1646"},"modified":"2017-05-16T16:55:50","modified_gmt":"2017-05-16T14:55:50","slug":"resinos-dockerize-your-own-flask-gui-with-resinos","status":"publish","type":"post","link":"https:\/\/www.nico-maas.de\/?p=1646","title":{"rendered":"[resinOS] Dockerize your own Flask GUI with resinOS"},"content":{"rendered":"<p>I have been working with Docker and <a href=\"http:\/\/resin.io\">resin.io<\/a> as well as <a href=\"http:\/\/resinos.io\">resinOS<\/a> for quite some time now and I am actively using those services actively for different projects: The possibility to just throw away a container and build it anew in record breaking time is just awesome and also the fact that I can now just ship images to some device, deploy it there - and it will just work. As some of you know, I am working as volunteer in different NPOs, i.e. the RepairCaf\u00e9 Trier in which I repair Computers and Mobile phones for free, the PiAndMore \/ CMD e.V. on which I teach interessted guys and gals about Raspberry Pi and Linux (and even did two presentations on <a href=\"https:\/\/www.nico-maas.de\/?p=1236\">resin.io<\/a> and <a href=\"https:\/\/www.nico-maas.de\/?p=1406\">resinOS<\/a>, both linked on this blog - and as <a href=\"https:\/\/www.nico-maas.de\/?page_id=1244\">video<\/a>\u00a0:)) - and also one other NPO which is trying to give information about Japanese Culture. For those events I already created an Tickting System called JCTixx, which uses QR Codes to sell and check tickets for those named festivals. However, I created the Scanner Hardware in 2010, just starting my second year in an Apprenticeship as IT Systemselectronics guy, without anything as a Raspberry Pi available. However, being a bit creative, I just took some old Linux routers, threw the good old OpenWRT on those and soldered directly to the its testpoints \/ CPU to get the GPIO pins I needed ;). That worked very well - however, nowadays, TLS 1.2 and such eat away those small MIPS cores - and I could - with a lot of work - just get them working with said crypto in 2015. However, being 7 years old now, I need new Scanners - and more flexible way of delivery software as well. So resinOS it is! \ud83d\ude42<\/p>\n<p>Full disclosure: As I am currently developing the Hardware for the Scanners and I am always looking for some Raspberry Pis and other hardware, I stumbled upon resin.ios #blog4swag program and decided to make this tutorial because of two reasons: 1.) I actually need an dockerized GUI for the scanners and therefore am working on a good solution to the problem - and as usually - I want my dear readers to get some interesting stuff to read. 2.) Maybe I can acquire some hardware support from the resin guys which then would help me out to get my NPO helped :). So in the end, everyone wins and no one dies - to cite Doctor Who :).<\/p>\n<p>So, lets get started!<\/p>\n<p>1.) Getting some GUI working at all<br \/>\nI saw some users experimenting with Docker and Chromium along the x86 systems - however, the first resin project I stumbled upon which really made me think about putting the GUI within a container, was resin.ios <a href=\"https:\/\/resin.io\/blog\/electronjs-the-ultimate-guide\" target=\"_blank\" rel=\"noopener noreferrer\">ElectronJS example<\/a>. This thing really rocked, but I saw that I needed to work on something a bit easier which would just deploy some sort of GUI - and being as simple as it gets. So I started to look around and stumbled across different projects, namely<br \/>\n<a href=\"https:\/\/github.com\/TechHub\/RPiBrowser-resin.io\" target=\"_blank\" rel=\"noopener noreferrer\">RPiBrowser-resin.io<\/a> and <a href=\"https:\/\/github.com\/pcarranzav\/resin-electron-app\" target=\"_blank\" rel=\"noopener noreferrer\">resin-electron-app<\/a>. Those two were a great starting point and using resin.ios ElectronJS example as well, I started hacking the code together, which I finally submitted to this Git Repo:<br \/>\n<a href=\"https:\/\/github.com\/nmaas87\/docker-raspbian_xinit\" target=\"_blank\" rel=\"noopener noreferrer\">docker-raspbian_xinit<\/a>. With the great help of Gergely Imreh from the resinIO Team (thanks a lot :)!) I got the project working and pushed it onto <a href=\"https:\/\/hub.docker.com\/r\/nmaas87\/docker-raspbian_xinit\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Hub<\/a>. To walk you through the Git Repo: I made two versions, one nailed to the release of the 26.04.2017 Raspbian and one made from the latest version. I basically grabbed resin.ios Raspbian from Docker Hub, injected the qemu files (which they did show in one tutorial) and used this as a starting point. It enables Docker Hub to build the Raspberry Pi Images, so that you can use them on your Pi.<\/p>\n<p>If you want to build the docker-raspbian_xinit image yourself, you need to remove the RUN [ \"cross-build-start\" ] and RUN [ \"cross-build-stop\" ] command from the Dockerfile :).<\/p>\n<p>The Dockerfile itself builds a basic system with xinit \/ xorg, alsa and even touchscreen support (xinput-calibrator). It generated german locales and a user called pi (which is both not needed, but I included it as matter of personal preference), copys the needed files and enables systemd. Systemd will start the xinit-docker.service which invokes the start.sh which does prepare the system, i.e. adds the container name to the \/etc\/hostname, so that sudo will work, activates its own SSH server on port 22, includes a touchscreen calibiration file - if available, creates a very needed config folder, removes files from old X11 sections, sets volume to 100% on speakers and phones and then starts the xinit process with the launch_app.sh :).<\/p>\n<p>The launch_app.sh then works in the xinit context and does xinit specific stuff: It disables screen blanking, sets the keyboard to the created german locales (you can comment this out as well if you want or overwrite the file ;)) - then - finally - starts the matchbox-window-manager without titlebar, but WITH keyboard and mousesupport and launches....<br \/>\n... gedit.<br \/>\nYeah. Right. I know that is a real disappointment. But I needed a small tool which would not add too much file size and show that keyboard and mouse are working - so I just went for gedit ^^'. Sorry if you were hoping to find something really awesome and cool at this place. But nonetheless, it works, and this image as well as the <a href=\"https:\/\/github.com\/nmaas87\/docker-raspbian_xinit\">Git Files<\/a> should serve as a starting point for your own Xinit adventure - so, thats the reason :).<\/p>\n<p>After I got it finally working, I thought about my personal usecase: I will be using a lot of Python and thought about using <a href=\"http:\/\/flask.pocoo.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flask <\/a>as a GUI. However, Flask is just a webframework and does not have the ability to shown something \"GUI-like\" - thus needing some kind of Webbrowser - and this part could be found in shape of <a href=\"https:\/\/github.com\/r0x0r\/pywebview\" target=\"_blank\" rel=\"noopener noreferrer\">pywebview<\/a>. Pywebview just includes some website, app or similiar into a small GUI Frame with Webkit Browser in it. Cool! Exactly what I needed. However, I did not have time get to work on my own UI - and wanted to jumpstart the project by getting the Docker Container to work - so I decided to grab a cool small Flask Web GUI project and use this to showcase how easy it is to built a self-starting Docker Container GUI - on resinOS. And with that in mind, I went for the very cool <a href=\"https:\/\/github.com\/helloflask\/calculator\" target=\"_blank\" rel=\"noopener noreferrer\">helloflask Calculator by Grey Li<\/a>.<\/p>\n<p>2.) Getting a Flask GUI working - using 1. \ud83d\ude09<br \/>\nOk, as soon as I got my Xinit project working, I decided to use this a base image, just overwriting changes in the system and injecting the files needed to run the pywebview'd Calculator.<br \/>\nWith that in mind, the Dockerfile became quite small (you'll find the Source Files on <a href=\"https:\/\/github.com\/nmaas87\/docker-raspbian_pywebview\">Github<\/a>\u00a0and the Image on <a href=\"https:\/\/hub.docker.com\/r\/nmaas87\/docker-raspbian_pywebview\">Docker Hub<\/a> as well :))<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">FROM nmaas87\/docker-raspbian_xinit:jessie-20170426\nMAINTAINER Nico Maas &lt;mail@nico-maas.de&gt;\nENV DEBIAN_FRONTEND noninteractive\nRUN [ \"cross-build-start\" ]\n\nRUN apt-get update \\\n    &amp;&amp; apt-get install -yq --no-install-recommends \\\n        python3-pip python3-pyqt5 python-gi gir1.2-webkit-3.0=2.4.9-1~deb8u1+rpi1 gir1.2-javascriptcoregtk-3.0=2.4.9-1~deb8u1+rpi1 libjavascriptcoregtk-3.0-0=2.4.9-1~deb8u1+rpi1 libwebkitgtk-3.0-0=2.4.9-1~deb8u1+rpi1 \\\n    &amp;&amp; apt-get autoremove -qqy \\\n    &amp;&amp; apt-get autoclean -y \\\n    &amp;&amp; apt-get clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/* &amp;&amp; mkdir \/var\/lib\/apt\/lists\/partial \\\n    &amp;&amp; pip3 install Flask pywebview \\\n    &amp;&amp; mkdir \/usr\/src\/app\/templates \/usr\/src\/app\/static\n\n# copy program\nCOPY src \/usr\/src\/app\n\n# start init system\nENV INITSYSTEM on\n\nRUN [ \"cross-build-end\" ]<\/pre>\n<p>I just needed to include the cross-build-start and end for Docker Hub again, installed python3-pip and pyqt5 dependencies with webkit (in a special version, otherwise it did not work...) and then installed Flask and pywebview. I then proceded to inject the pywebview-erized Calculator:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">def start_server():\n    app.run(host=\"0.0.0.0\",port=\"80\");\n \nif __name__ == '__main__':\n    t = threading.Thread(target=start_server)\n    t.daemon = True\n    t.start()\n \n    webview.create_window(\"Calculator\", \"http:\/\/127.0.0.1:80\/\")\n    webview.toggle_fullscreen()\n \n    sys.exit()<\/pre>\n<p>I had to create a start_server function to let Flask run in its own thread while pywebview would show the GUI in fullscreen mode and connect to the Flask server.<\/p>\n<p>As last step, I need to rewrite the launch_app.sh<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">#!\/bin\/bash\n\n# Disable DPMS \/ Screen blanking\nxset -dpms\nxset s off\nxset s noblank\n\n# Change Keyboard Layout from US to German\nsetxkbmap de\n\n# Debug Tools\n#xinput --list\n#evtest\n\n# Start Window Manager\nsudo matchbox-window-manager -use_cursor yes -use_titlebar no &amp; \n#sudo matchbox-window-manager -use_cursor no -use_titlebar no &amp;\n\n# Start Payload App\n#gedit\npython3 \/app\/app.py\n<\/pre>\n<p>As seen, I only changed the \"Start Payload App\" line and now initialize Python 3 with the pywebview\/Flask\/Caculator app.<\/p>\n<p>And thats it :).<\/p>\n<p>&nbsp;<\/p>\n<p>To use this app with resinOS, just go to\u00a0<a href=\"https:\/\/resinos.io\/\">resinos.io<\/a>, download the latest 2.0.3 release for the RPi, flash the image to your SD Card using i.e. <a href=\"https:\/\/etcher.io\/\">etcher<\/a>, boot your RPi and ssh to your system IP, using user root and port 22222. From then on, you can just run the app via<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">docker run --name pywebview --privileged --restart=unless-stopped nmaas87\/docker-raspbian_pywebview:jessie-20170426<\/pre>\n<p>or you upload the Git src to the \/mnt\/data folder and build your own version of this pywebview using<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">docker build -t pywebview .<\/pre>\n<p>Please do NOT forget to comment out the RUN [ \"cross-build-start\" ] and RUN [ \"cross-build-end\" ] commands!<\/p>\n<p>After that worked, you can start the app via<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">docker run --name pywebview --privileged --restart=unless-stopped pywebview<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1650\" data-permalink=\"https:\/\/www.nico-maas.de\/?attachment_id=1650\" data-orig-file=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?fit=1024%2C768&amp;ssl=1\" data-orig-size=\"1024,768\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.65&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Nexus 4&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1494935608&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.6&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.0083333333333333&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"pywebview1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?fit=1024%2C768&amp;ssl=1\" class=\"aligncenter size-full wp-image-1650\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?resize=1024%2C768&#038;ssl=1\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview1.jpg?resize=700%2C525&amp;ssl=1 700w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a> <a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1651\" data-permalink=\"https:\/\/www.nico-maas.de\/?attachment_id=1651\" data-orig-file=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?fit=1024%2C768&amp;ssl=1\" data-orig-size=\"1024,768\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.65&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Nexus 4&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1494935641&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.6&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"pywebview2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?fit=1024%2C768&amp;ssl=1\" class=\"aligncenter size-full wp-image-1651\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?resize=1024%2C768&#038;ssl=1\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/pywebview2.jpg?resize=700%2C525&amp;ssl=1 700w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>You can also use the app with resin.io by creating an resin.io account, a new RPi App, pushing either the latest or\u00a0jessie-20170426 tag to resin - and it should built and work :). However, I am more a fan of the flexibility resinOS offers in terms of developing Docker Apps - so I decided to describe this way here.<\/p>\n<p>And with that said, you can now starting working on your own GUI Apps - working in resinOS \/ resin.io on your RPi or similar device :)! Have fun - and if you'll excuse me, I now have 4 <a href=\"http:\/\/www.jctixx.de\">JCTixx<\/a>\u00a0Ticket Scanners to build ^^'.<\/p>\n<div class=\"shariff shariff-align-left shariff-widget-align-left\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&subject=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&text=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2Fpywebview2.jpg&description=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>I have been working with Docker and resin.io as well as resinOS for quite some time now and I am actively using those services actively for different projects: The possibility to just throw away a container and build it anew in record breaking time is just awesome and also the fact that I can now &hellip; <a href=\"https:\/\/www.nico-maas.de\/?p=1646\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">[resinOS] Dockerize your own Flask GUI with resinOS<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"shariff shariff-align-left shariff-widget-align-left\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&subject=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&text=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D1646&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2Fpywebview2.jpg&description=%5BresinOS%5D%20Dockerize%20your%20own%20Flask%20GUI%20with%20resinOS\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,531],"tags":[519,550,687,484,554,619],"class_list":["post-1646","post","type-post","status-publish","format-standard","hentry","category-computer","category-docker","tag-docker","tag-flask","tag-pywebview","tag-raspberry-pi","tag-resin-io","tag-resinos"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/piXYf-qy","jetpack-related-posts":[{"id":1406,"url":"https:\/\/www.nico-maas.de\/?p=1406","url_meta":{"origin":1646,"position":0},"title":"[PiAndMore] resinOS Presentation","author":"Nico Maas","date":"14. January 2017","format":false,"excerpt":"Here is my presentation to resinOS @ PiAndMore 9 1\/2 (Hochschule Niederrhein \/ Krefeld, 14.01.2017) resinOS_PiAndMore9_1_2.pdf (0,6 MB, PDF) Videorecording of the talk can be found here","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.nico-maas.de\/?cat=531"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1709,"url":"https:\/\/www.nico-maas.de\/?p=1709","url_meta":{"origin":1646,"position":1},"title":"[Talk] Allesnetz 11 Podcast: Docker Container f\u00fcr IoT mit Resin.io","author":"Nico Maas","date":"30. September 2017","format":false,"excerpt":"For my German readers: I took part in\u00a0Leonid Lezner's Allesnetz Podcast 11 - about Resin.io and Docker - together with Resin.ios very own\u00a0Jonas Hermsmeier - you can check out the podcast here.","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.nico-maas.de\/?cat=531"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1664,"url":"https:\/\/www.nico-maas.de\/?p=1664","url_meta":{"origin":1646,"position":2},"title":"[resinOS] Build resinOS from scratch","author":"Nico Maas","date":"28. June 2017","format":false,"excerpt":"As the time of writing, resinOS is available for Download\u00a0at Version 2.0.6+rev3.dev for Raspberry Pi 3. This build, however, is nearly 2 weeks old and in the meantime, something great happend: Docker has finally updated to Version 17.03.1 - upgraded from the old ~10 (ten-ish) version - which was not\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/www.nico-maas.de\/?cat=531"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1715,"url":"https:\/\/www.nico-maas.de\/?p=1715","url_meta":{"origin":1646,"position":3},"title":"Running resin balena on Raspberry Pi 3","author":"Nico Maas","date":"15. October 2017","format":false,"excerpt":"Just two days ago, resin.io announced balena\u00a0their new, moby based container engine. Basically, it is a Docker-dropin-replacement for IoT Devices: It is compatible with Docker and Docker Hub, gains a lot of stabilty with atomic pulls, more conservative flash memory use - as well as smaller updates due to true\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/balena.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/balena.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/balena.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/balena.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1824,"url":"https:\/\/www.nico-maas.de\/?p=1824","url_meta":{"origin":1646,"position":4},"title":"[Talk] resin(io|os) Presentation","author":"Nico Maas","date":"22. February 2018","format":false,"excerpt":"Here is my presentation about resin.io, resinOS and balena @ Docker & Kubernetes Meetup Feb 2018 (Heidelberg, 20.02.2018) resin_DKM2018.pdf (2,57 MB, PDF) Videorecording of the talk can be found here","rel":"","context":"In &quot;balena&quot;","block_context":{"text":"balena","link":"https:\/\/www.nico-maas.de\/?cat=728"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1926,"url":"https:\/\/www.nico-maas.de\/?p=1926","url_meta":{"origin":1646,"position":5},"title":"[Talk] resin(io|os) and Fin Presentation","author":"Nico Maas","date":"27. June 2018","format":false,"excerpt":"Here is my presentation about resin.io, resinOS, balena and Fin @ the internal DLR \"Erfahrungsaustausch Workshop - Software-Entwicklung V: Embedded Systems\" (Bremen, 16.05.2018) resin_DLR_EAW_SE_V.pdf (6,07 MB, PDF)","rel":"","context":"In &quot;balena&quot;","block_context":{"text":"balena","link":"https:\/\/www.nico-maas.de\/?cat=728"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/1646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1646"}],"version-history":[{"count":6,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/1646\/revisions"}],"predecessor-version":[{"id":1654,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/1646\/revisions\/1654"}],"wp:attachment":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}