From 88662db87e4e23b89593e83884270f0724baa926 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:39:48 +0000 Subject: [PATCH] Deployed 9016267 with MkDocs version: 1.6.0 --- .nojekyll | 0 404.html | 906 +++ FAQ.html | 954 +++ .../fonts.googleapis.com/css.49ea35f2.css | 594 ++ .../v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 | Bin 0 -> 10428 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 | Bin 0 -> 12864 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 | Bin 0 -> 5928 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 | Bin 0 -> 1512 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 | Bin 0 -> 16700 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 | Bin 0 -> 7696 bytes .../v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 | Bin 0 -> 17508 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 | Bin 0 -> 10076 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 | Bin 0 -> 12620 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 | Bin 0 -> 5972 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 | Bin 0 -> 1460 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 | Bin 0 -> 16024 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 | Bin 0 -> 7460 bytes .../v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 | Bin 0 -> 17032 bytes .../v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 | Bin 0 -> 1512 bytes .../v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 | Bin 0 -> 16676 bytes .../v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 | Bin 0 -> 12704 bytes .../v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 | Bin 0 -> 5928 bytes .../roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 | Bin 0 -> 17368 bytes .../v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 | Bin 0 -> 7700 bytes .../v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 | Bin 0 -> 10292 bytes .../v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 | Bin 0 -> 9576 bytes .../roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 | Bin 0 -> 15740 bytes .../v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 | Bin 0 -> 7120 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 | Bin 0 -> 1480 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 | Bin 0 -> 15000 bytes .../v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 | Bin 0 -> 11796 bytes .../v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 | Bin 0 -> 5468 bytes .../v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 | Bin 0 -> 9644 bytes .../roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 | Bin 0 -> 15860 bytes .../v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 | Bin 0 -> 6936 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 | Bin 0 -> 1432 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 | Bin 0 -> 14684 bytes .../v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 | Bin 0 -> 11824 bytes .../v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 | Bin 0 -> 5548 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 | Bin 0 -> 7112 bytes .../s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 | Bin 0 -> 15744 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 | Bin 0 -> 9628 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2 | Bin 0 -> 15344 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 | Bin 0 -> 11872 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 | Bin 0 -> 5560 bytes .../roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 | Bin 0 -> 1484 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 | Bin 0 -> 24792 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 | Bin 0 -> 16296 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 | Bin 0 -> 7528 bytes ...5mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 | Bin 0 -> 22736 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 | Bin 0 -> 10096 bytes ...wgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 | Bin 0 -> 13036 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 | Bin 0 -> 7972 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 | Bin 0 -> 17428 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 | Bin 0 -> 26644 bytes ...q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 | Bin 0 -> 24652 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 | Bin 0 -> 10704 bytes ...euFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 | Bin 0 -> 14288 bytes .../external/unpkg.com/iframe-worker/shim.js | 1 + .../unpkg.com/mermaid@10/dist/mermaid.min.js | 2029 +++++ assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.ad660dcc.min.js | 29 + assets/javascripts/bundle.ad660dcc.min.js.map | 7 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.b8dbb3d2.min.js | 42 + .../workers/search.b8dbb3d2.min.js.map | 7 + assets/stylesheets/main.6543a935.min.css | 1 + assets/stylesheets/main.6543a935.min.css.map | 1 + assets/stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + community/contributing.html | 1022 +++ community/examples.html | 1169 +++ community/index.html | 979 +++ configuration/env.html | 1268 ++++ configuration/index.html | 999 +++ configuration/procfile.html | 1222 +++ design/index.html | 1089 +++ design/plugins.html | 977 +++ features.html | 1106 +++ get | 9 + img/demo.svg | 44 + img/icon.png | Bin 0 -> 13510 bytes img/logo.svg | 13 + img/piku.svg | 8 + index.html | 1091 +++ install/INSTALL-centos-9.html | 1152 +++ install/INSTALL-other.html | 1451 ++++ ...NSTALL-raspbian-9.4-stretch-10-buster.html | 1176 +++ install/INSTALL-ubuntu-16.04.html | 989 +++ install/INSTALL-ubuntu-18.04-bionic.html | 1144 +++ install/INSTALL-ubuntu-22.04-jammy.html | 1144 +++ install/RASPBERRY_PI_QUICKSTART.html | 1062 +++ install/index.html | 1113 +++ manage.html | 1055 +++ search/search_index.js | 1 + search/search_index.json | 1 + sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes 131 files changed, 33061 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 FAQ.html create mode 100644 assets/external/fonts.googleapis.com/css.49ea35f2.css create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 create mode 100644 assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 create mode 100644 assets/external/unpkg.com/iframe-worker/shim.js create mode 100644 assets/external/unpkg.com/mermaid@10/dist/mermaid.min.js create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.ad660dcc.min.js create mode 100644 assets/javascripts/bundle.ad660dcc.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js create mode 100644 assets/javascripts/workers/search.b8dbb3d2.min.js.map create mode 100644 assets/stylesheets/main.6543a935.min.css create mode 100644 assets/stylesheets/main.6543a935.min.css.map create mode 100644 assets/stylesheets/palette.06af60db.min.css create mode 100644 assets/stylesheets/palette.06af60db.min.css.map create mode 100644 community/contributing.html create mode 100644 community/examples.html create mode 100644 community/index.html create mode 100644 configuration/env.html create mode 100644 configuration/index.html create mode 100644 configuration/procfile.html create mode 100644 design/index.html create mode 100644 design/plugins.html create mode 100644 features.html create mode 100644 get create mode 100644 img/demo.svg create mode 100644 img/icon.png create mode 100644 img/logo.svg create mode 100644 img/piku.svg create mode 100644 index.html create mode 100644 install/INSTALL-centos-9.html create mode 100644 install/INSTALL-other.html create mode 100644 install/INSTALL-raspbian-9.4-stretch-10-buster.html create mode 100644 install/INSTALL-ubuntu-16.04.html create mode 100644 install/INSTALL-ubuntu-18.04-bionic.html create mode 100644 install/INSTALL-ubuntu-22.04-jammy.html create mode 100644 install/RASPBERRY_PI_QUICKSTART.html create mode 100644 install/index.html create mode 100644 manage.html create mode 100644 search/search_index.js create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..c6a301a --- /dev/null +++ b/404.html @@ -0,0 +1,906 @@ + + + + + + + + + + + + + + + + + + + Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/FAQ.html b/FAQ.html new file mode 100644 index 0000000..422ea2d --- /dev/null +++ b/FAQ.html @@ -0,0 +1,954 @@ + + + + + + + + + + + + + + + + + + + + + + + FAQ - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

FAQ

+

Q: Why piku?

+

A: Partly because it's started out on the Raspberry Pi, because it's Japanese onomatopeia for 'twitch' or 'jolt', and because we knew the name would be cute and amusing.

+

Q: Why Python/why not Go?

+

A: We actually thought about doing this in Go right off the bat, but click is so cool and we needed to have uwsgi running anyway, so we caved in. But possible future directions are likely to take something like suture and port this across (or just use Caddy), doing away with uwsgi altogether.

+

Go also (at the time) did not have a way to vendor dependencies that we were comfortable with, and that is also why Go support fell behind. Hopefully that will change soon.

+

Q: Does it run under Python 3?

+

A: Right now, it only runs on Python 3, even though it can deploy apps written in both major versions. It began its development using 2.7 and usingclick for abstracting the simpler stuff, and we eventually switched over to 3.5 once it was supported in Debian Stretch and Raspbian since we wanted to make installing it on the Raspberry Pi as simple as possible.

+

Q: Why not just use dokku?

+

A: We used dokku daily for many projects. But it relied on a number of x64 containers that needed to be completely rebuilt for ARM, and when we decided we needed something like this (March 2016) that was barely possible - docker itself was not fully baked for ARM yet, and people were at the time just starting to get herokuish and buildstep to build on ARM.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/external/fonts.googleapis.com/css.49ea35f2.css b/assets/external/fonts.googleapis.com/css.49ea35f2.css new file mode 100644 index 0000000..8187a64 --- /dev/null +++ b/assets/external/fonts.googleapis.com/css.49ea35f2.css @@ -0,0 +1,594 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..943c5a0a86672fa62e37e798f763c6fc133fa87a GIT binary patch literal 10428 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b2391b928a412e3963c5e03e9892e5c6f15d9f0c GIT binary patch literal 5928 zcmV+@7uV=_Pew8T0RR9102e3#5&!@I05%{102app0RR9100000000000000000000 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 OnI?o4bc}cCkQo4MZ@9Vu literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bfcc76fabfd5e447c609af972942d94ae0aa316a GIT binary patch literal 16700 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..22c57b0157cc6b54574811e3ed5c2369b29dd134 GIT binary patch literal 17508 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d2f30b58aa2d18e1a048b945c8d75dc3ee00b55a GIT binary patch literal 10076 zcmV-iC!^SRPew8T0RR9104H1k5&!@I09vR304DkX0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c88b8aeaee17785a36a71f2d8489a0f22d6e3432 GIT binary patch literal 12620 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6363b1c7ec0c1650cb20d3f46426c4723d43d72c GIT binary patch literal 5972 zcmV-a7pv%ZPew8T0RR9102fpM5&!@I05`}002cHB0RR9100000000000000000000 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 STz45C22uK#sZ+~ShnWC)It(fR literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c8091bc97407ccf475af3a730b85c7f4aeecf7b4 GIT binary patch literal 7460 zcmV+<9oyn}Pew8T0RR91039R%5&!@I06KI4035>r0RR9100000000000000000000 z0000QWE+ci95x1E0D)u(N(qBJ5ey2_B*2CI=u4f-W1m zGerkt*f;n{e4gK-zwGREE*dt;37LIeiLC-tK!}Hthz5j_66tNmqgjS3dAV#5L$I8a&={950jk!#3)3w`qF4Ekz@6Ovz zp6^@I{!UkQlcEwxBr0T!OW7j~%42uutWzj{^51WGlhaflTVs3e--$!ZN@zF0;RQU1 z%D(3XRL6r@|5ukLTc1w~0PZbMgzJ~S8#@5(yI;CBH@8!O=knH0ICYZr-M9q4{ZwVZ z0&}Mf{d3^N!TQczUm0Bs6_E05grAuUSqW*u%KrT_mAhxals?>nfe9*&1~BLeUx;j6=;9)J+Mj%NzIdgLvQhVPM(uM`n%^^KGq&J83 z=a9id^P$}M2y#AAEMF>>Xp0bC&lBJT+jq%@nRGue9I)S&6=VVSr-F>7fc-tCFbA-~ zEguSU039Tu4Dj@1IlV;uo9b&th+8l~)AqZn>u6OEJ1LccqhK_)Sgs$##nG~om3I}o zWE<>qW9??k=DJpy_N9RpM!?U5sJ}3vN9itfWKPdo0_0!m%H~6Q>FW$;0Qm9qER&f6 z@~$jVKK^{nr2L1L%*epsozhdr028F-nawA}zhxl(wwQJ^Un+*#^3N>EFg;X@Jdv-P zBiz?*%z1Pm4ez_w_yaZnkJ{_AP|DFyJWTD9T!nVv&h)YlI!YOl>#%KRsv}7Xd`{0E zO-z|FXTg#+8@5>NaqtL;NH}vdmyDc}4}U>af`tebCRV&;L|Rh7F*LnH(l2tN;0?+m z($EZzj$xtD)Mo-8m2sI6lnGes^PNrZ;G>h}PLR1Jk-B_kv523~=ITZAyrje!a!qJn z2y?JZ?7X^@DC359l=iEI^r1r~R(jdz6UTh#l-sx&!pi_bMhVkLoL&+bpL4!&$ve_? zam_1k`Ac|uMdr5X-lnnX7N1X&3?@4%cvTwh8D-CG&CM`A8vQazoKX_n+&NubGD4a@ z;ky%^JMnxc35zfA5m>j+(-2{w01RIhGKdv&U-q-dSNF+ALW76>PCr9Zm}~ACn?do& ztXvhLGn3+BEErnyjcuOe)8(8;km{1hT=Ug%?(ZYFLTStd>x|+P7--2(qCCtXUczdu zz&%)o%~*|9vJ#%T>=kZ)#Bn|{un)iSpD1I0hMhrSJHykorR5*sM<`PX6rmvKE zP&8nj;^+Aqia-&eX3jBr+I;v`HnU(h%*MB&vpyj1?0&XBHm)tVGN-2mAR6_XsW&nQ z2oJcjN98-3`Xbl|Sl7zxUf@3f>(A{Tpb5MHfF5DAtXM&DPYfBxern*vp)N|YHzpW?Ft5NlVat%|X^Ow2Ri0;X9zeILHe`SE8VKp;y&tf*Lj{2ZJ3P1v%d7A9PTNKvB2;ENMa zAeNAb`185Mg;c_C`5%d6z)`<}O7bS+tovT6bjc=wva@9RV-KschO9@x>~-iX;-x9Hf95CCztR1E+zB%~1DEQ7Okw3rgn`@0$-SHyoRU~&xz7m(v>K)I3tWhJu^ zo1CmpelI7hL_Qv0fMMxIv&rizrXc|H@QF5D1P7UMef3wfRt*>|hOtjx3(-r`yUNuPr@{yMj0|Sc1}EQl?B+EuQ00t$J4;2pU*sFz-MqA=MzZmd9Y<}F0j*T zU}o%46Bh8v*7m*JI$#FDyoYQiP?nGRnu*n}NnEbPE@H;`8AfX$a{Ke(wUBVOki>

m{S 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..91231c9c46f4c145f98b22aed481fe3389fd43d0 GIT binary patch literal 11796 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 SIH&J9Vr~U^zi5Nh0001)vX7Gh literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1bb7737cdc956a43feb1b6d7f911e10b7c547828 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd5&!@I09i-?03}QS0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..771fbeccc691aab1962e33dbdf2be7c659d84c27 GIT binary patch literal 15860 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 K;xZEf00030kB~Y5 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cb9bfa71feafa7badf919a4663d68bbba0c2b36e GIT binary patch literal 6936 zcmV+z8|UPAPew8T0RR9102>$p5&!@I060hh02;Ue0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a0d68e2b4f2d9b4d470e6e679e8e7fccdd3e666b GIT binary patch literal 1432 zcmV;J1!wwqPew8T0RR9100o!;5&!@I012P~00lY#0RR9100000000000000000000 z0000QCL16eHU?k-GzdrugFF!o3WG?4FAER=5)=V80we<*1Rw>1eg_~7f+-t62q2D= zrILZ-4<5d6)4#KVZcI5XOK2T!or*!y)D+@g5#x#5gs1*z>cI1O>tSXSsu*q5->P~s z-T!~D>b*Bp6N;`0{u8D9Gxq4-AO(%lJEhIt*o_;!LIvXLCL&R1+5Y0%tF!L`{w)wF zWCH-j2rLK$0tGMt0|5xYK|Y0uXyvkX7yxJhnam^RQH((ojcnbuxsQs@&F#J2(AT_m zzy$zXwD5dYyGeNj9rR1}$spW)kNPql6_^y@d?`Ds?#e1m_j0|Lg)}fSWG&m2KeqODmu?uWIm-k|*%pbd)!2L)k@%8a;8AO>{p`Ong9a_{{G~ zb#$y153Wka4$cV|bLW;zxJF^rFYUgiYvZw~%fl=E(&3X8F$O1kcNo6mvErned_?r% zd^B2r8z5=8cMjNH?>WgCm+Zq9QdKVET5eJ+G$dgVK32@1aB;=4}w6!hLXvU z1ArBPY`_l81-e6MjP6F~PAFx0O+_y++hRX|+@74Bd%AjTy>&S~qBncb!M8qgBtLm) zgE;i=r)PZpHZAWBNAk6G9DLn*+M65q)H;dJ4kxd#U-!lvV%#(6@)@rIqD(_6ghjeIv-{*L{ESMb~}9 zCsiL__xq(6UGp8EEG|9&vVmEz7JWXq&cF7K2KMafYt~m+)Saw%F$S#?tmywg0t%2W z$$Y18)!#%Ci&TQHVWo6#!bh|i2UD6tUjEFK4y9FLTab?TQbtUfb(E4Tv)>DaQ<~dU z&`O0bt&fJ(#ZD5PUz-1C;}H-IK_?F@yH&Y-luH1Y`oM9-Nkb;|3(?8P7e z!*10;v1nH8c@=N|uD1stY0R1ZyRFOyz%xJP1pr?i;Tu=b@5 zuqREMo;m@+?PXO@r_DV@8v1cIG&i;VxpWBvuyPi~te}@e_B|AoNmvkojSeb8vjYuq ztpbAvtAdRlt4cAOrJ7Y|3@5D?in;T;*{t&niwqjF%Vym=b=k^f5+TBa(WJ^Cr*wVV zovRIK704|R#J=pB!sM2~Uu?HUyUn(1*CxOkgIWyQYS2Q1`m}|!W=n1;t#8qdE&vFa0{!q8WJHmD0aMEfM!FQwd&F?z@W`K1?khRRl5OOwA&)cGSwD| zSz)ah|Cj$p2o(S_J=%a9N@JpAA}QfiCUUAiW1D!t5{>xGd?%}hU9@v{)J425 z`u3)!(?+;hM!QS%oG#Xd(V0002ZB&}uu literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..639955285d3da100daab6772852ca53c1f55d071 GIT binary patch literal 14684 zcmV-iIitpRPew8T0RR9106AO$5&!@I0Eid>066#n0RR9100000000000000000000 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%0Ag;8 z#U(Ev;D zpyHk4wmN66G&(XE{heR=N%_)HaL5c3)+bS?0u38zHh?$@)p@Q)QYbT%+p@n$!1~6%PQ%5=|bR9(Eo` zqP>;P*Ia-;t`_0?3Id!$@UC9@O|J)Dz(*JF5=^00?Q3Y3%LzdjC7IzoRCS>;1P_JE zHAonM^AT#83z%yzL3`(4TP~T`bm+pp+4bLf_vR+`WOhp>GLq5www~DV{QzP7r-)^x zA^=+M{Hz8yP;lPaYp-kG+l7P^y*x(t^9vZn0eJFbf9<1p^(>#_i_N`xWj>f+{iF0oeQvas&>Ss|uHWLK4#%6^TlR zdBnkJD@7n7zd-RrXXDVtYwYu#0cMKObEfbRYK|RbB51W6HKGZ{E#&}=)BI%HZ8Wi& ziJ=V&3>0w}8OZAj=v|j9Pon92F)RaNtD9|h=S*#i61L$8j(n7s6j%^NWGIHRJu_hG z2!@E89TK!P?M{45*3{zKp@YpjfGBcIle;d0v6LylVsZLx7~*eamlX8)zO#qJ^e}lyQl7x+f_~hLHVxmgTK|_XIH7|>T81- zi_A*>WEg^qHJO=@z6 zjC;-LMvY!vkGxE4O5_5$(mNzUcri|j!GuXU_Fn*OZ5IWxvMNm$>o!7VQXAVw#+?)+ zqJ(IeLRk3}&eSxToqTGFWZ4AU^k-qXl!?!m>hDAE8R;2`(I7!gD!mRN_~f*=VD@-Z14MIrILMtT#0 z_IPC;+$KIPso_np8=oS{6ZC|Ib%Pe(UQyZRnu+t(Fk08`9S)@vo|>?WL}pq*O1P^r#yP*;;(*I{VCj3= zSgx5n{X>fBsnFpV3Y95HjuF3kFxSYXg|+ zZyp@)mKeoihJ_gHS8Al8Q9=W4l?)J-qqmBAPsseQI5Jy)ke@0h{##|m3U zga9xAAb@&O69%B~hIzPV+IJ9$)nfmbY9eSt8u$_L`9^rVF&rxf6xM{Z3HA{<>P3rX zqwUff@(NZMwE3`E7Rv1@zQf6Oe6QV+^w?!d+eYnID5VidAH&3`I2smv<6zMPvNhoQ znM;hSlBm+zXZuK2RSM$+$(Bc~m0_>%NH%56bp}DVt1f?zk|BWGIMi~AV1qHLBSfkO zVYL*PUrA6bVQ&YpcOmS38MNXlvjsSoiL$1l;#`XD00}BZhSx#U7wLL8t~LzGr%AWx z#Hd{!Gb@wBem4` zMiA%`$QW|HO$a0p@&ws~M7{C{sn*p1kSWL&$m^%;dSP<9c~(p}m>OR0z4rQg`v%P1xgIX{IY!Z9%IE?h#u-Gj0X zGtw0!Nh32&L||}9BokJ1>72chpd7piph3NT5^Q3DCdKCrO2(LBnaprAzX|#fyE2^= zh!_qyt7t$dDVZ7WSw0d2l1U>vkwEO#jwC6`R@fLqhk^r6F!8_%{it~yaIS7D{U?sHVQ-Ezs7U2!&1`?NCL}VUDBP_g#)Lc|v zLTC|Xzs?FOl8b2Ks%r9L>kMHfEP??$5?4@I$o~G4yX$loQ-eZv#TVh+u3`P3OE-abVu?e;dszqm(0U3m8G5JrXljRpyq&^X- eiu9L5SRK2?c9pHmprN8l#(*KZaBZL=HUI!Xf0hRT literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3c4501118e82d34740f2fb90d15c9bf4c9821993 GIT binary patch literal 5548 zcmV;d6;tYWPew8T0RR9102QnN5&!@I05vQC02N9A0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fc71d944a5838fcf1a870298679652ccc81ee878 GIT binary patch literal 7112 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..020729ef8d353ff843438008300bedee1f519380 GIT binary patch literal 15744 zcmV-`J%7S?Pew8T0RR9106l;J5&!@I0FHD306iK20RR9100000000000000000000 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 O=*P}hnT+8U0002VxO@Nr literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a8de615eb2f70380f60b851f97814cdf1ccda94 GIT binary patch literal 11872 zcmV-mE}zkNPew8T0RR9104`tv5&!@I0COw=04@3e0RR9100000000000000000000 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

3C=zk= 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..022274d4c4af877ac322df360cb0c1856d2931a1 GIT binary patch literal 24792 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∾9# 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1d988a3f4c7e169088a83234773dd3eb346c2196 GIT binary patch literal 22736 zcmV({K+?Z=Pew8T0RR9109eof5&!@I0F*QU09a`N0RR9100000000000000000000 z0000SHa|#KK~gFPU_Vn-K~!WX8UTb=FG3Lr3W1wI`YH>9OaL(N9sxE2Bm;v?1Rw>5 zI0uAl3el^jU`!HS|}lX}_z|0%gKrq%%JpHP5cA&GK38q*Cqz!)Zh z3apH95}Rv5J)>?_K;Z-==Ek~#+>EWbiDH2v&s-r;1M>{N7l_j@J0t7T6f#TVno%yw z4J=Y4{ihNYcGi=>)4lDP>VMu}AEB{Na*wCW`l@=*t?3>FTpS?uO!k`x;gidQ76%9G zOp;Oe8=jwA4Zd{Ygqh6G8V9n8nH1lL{M66LJ>g)1d}kPJ&e5atm-?J zhkwTL-uLM&HM21(53X?kOH?Y%U|QT+W`o}R=d_d)nPm&`3%`IYG)OYV3hqo1AkRfS zwx>On7_+mOVMzX0r+rhBzPLw#Q*pg@v8t9QK(-wjp-AiThCHOx%2@^{hd|X8)!jo= zU0&6CuBv`El;6q_l)!k4c)H_Q;+; zV~`ZmEYSySL-dj*o&M_#O)J@fk2n$!Bdvx&2_AwSExxr~Q$)ZR-*Ah&4&*Z zxRv-7Q4~cQe{ZVR{tplyfN~&Ad$`V&Y>wd!=i0bfnsY^Sb4|5)*yaA+<%)|1BrX8* zxD1*B2x+(k!!2H1@YrKb83^Pc>vI2fqWdcmnyP>4 zFQ{K0Me?FW*aNnlxFcfI*mAv>y@R|05o7>o-3?q6JPaQ8hJ!W~BET^{K^wBm2=qsx z$YI3l;ZYO-J}JyRs?}*uBTcYP>0H()FDj^+B);k;W#!DeWVcX6(=rs{WfagOZD#;$ zu|8AlXnYICq1Ye|E0aHi5rc^GrWv^o2&lvhia`Lb!!`x`x*v|imM^ds`baGrWQ_C=XSFB2=LP9XNzjxUH+vZ4SC%PzHP8(m$Kuy}&Rc z21vRbvyDVFswLeNTv&txlpoLlPUL?J$)t0Ws<-NUt3Ur1kLKd%6cD%ySKvHsk+mno zA!OkP_ujwv-o5Acp4fYO@0rQ=?|YB@|C2jo@!wYWOJA5Q-#_7Jq+knx)Gy$83#smZ;F8QnzgXsM4-lj|a3=)RHBctJ4`BcrI%4 z&^)ItFbjn1q)WPFI*)_zG9dwx6w58O%nH5wi1k}-z)Gu(7&2^)L8CTUYn@HjtGCgl zG2F^4rc>QBd=@Q1%7`rChU*3h9; z>&mESz-6IGV{x6s5>(*4Q&@(EWne`ynMsu6FT;S(qt^oErvMBUFJ?Ocs2|Efa`z_% z4+3-`nsg~u)%>w>kU>I#3DY9O@oV8+5|@}#Q_WJMOA-h0q!0^ZwMq$C2&yp!P?B}P z@=2j4X15s27udgjvj`{xRk)Vg42}kc$VYK}XeQ(MdWFMU+dd|DYIw_WNZfZ={Qg>P z(pa;VGZq{PjM>$55w<85>$GN26xDH@yT7H>HzK!0lB@?0YNLG*)Kfw5L8fQSk-yW? zdK*RC=z}=1`q-Y04rUutp-kgD*M~neG7>ET#ZYW87Frl4qJe6@&I+E_Xaq&Qj-lYY zakSa2)nw5z8X5^!7wa@`8^dL^V8B!O7wBYjz%UNeHM?Z1>}-h;1WeXi5po+HqoFtI zD#-~-qem&XsDR8YYgYy#DX~Tcam>zfHfBlO!D9I4F2+|;7eH(Ua)z!_&V?5df}w>h z;|te>K$xO>e?AGsX9~{gFl-;*V*66(23qLteM )8x2wTy4sm|$UBVF7Wz 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 bGAR@Yh2TTsqnk*C_-*A}-af0}9g0mS;50#L literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..11e6a46a40c7afdee2981511cf98f78a62ef9f2f GIT binary patch literal 10096 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

-KfCKkVgUqz8QxqfO}8iQ0)j$QDq& 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1f1c97fecdbde2d7c29e8dd92b152e5b4f30f17c GIT binary patch literal 7972 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 XMQ{4hxA|M=Cwa5=H!EjyH2?qr_e6{Z literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6f232c38a17ecea6607432d096a52b3c0ce4fb3a GIT binary patch literal 26644 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a3e5aef7c93b6334a03923067da54adb1e025619 GIT binary patch literal 24652 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 TS>*;jf81#>o`iG#8mbKdV$}U= literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f73f27d6e1a1f8ae9f9da42274083f7543d85513 GIT binary patch literal 10704 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 CEy7m- literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..135d06e00d05b590861cd226b3bbe781f4940952 GIT binary patch literal 14288 zcmV;>H!sL{Pew8T0RR9105{M85&!@I09+^l05@p>0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/assets/external/unpkg.com/iframe-worker/shim.js b/assets/external/unpkg.com/iframe-worker/shim.js new file mode 100644 index 0000000..5f1e232 --- /dev/null +++ b/assets/external/unpkg.com/iframe-worker/shim.js @@ -0,0 +1 @@ +"use strict";(()=>{function c(s,n){parent.postMessage(s,n||"*")}function d(...s){return s.reduce((n,e)=>n.then(()=>new Promise(r=>{let t=document.createElement("script");t.src=e,t.onload=r,document.body.appendChild(t)})),Promise.resolve())}var o=class extends EventTarget{constructor(e){super();this.url=e;this.m=e=>{e.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:e.data})),this.onmessage&&this.onmessage(e))};this.e=(e,r,t,i,m)=>{if(r===`${this.url}`){let a=new ErrorEvent("error",{message:e,filename:r,lineno:t,colno:i,error:m});this.dispatchEvent(a),this.onerror&&this.onerror(a)}};let r=document.createElement("iframe");r.hidden=!0,document.body.appendChild(this.iframe=r),this.w.document.open(),this.w.document.write(` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Contributing

+

piku is a stable project, but we welcome contributions that:

+
    +
  • Help us move beyond Python 3.8+ (which is the current target due to Linux LTS distribution alignment)
  • +
  • Help us do better automated testing
  • +
  • Improve documentation (some docs are a bit old by now)
  • +
  • Help us deploy piku in various Linux distributions and environments (check the sister repositories in the project)
  • +
  • Provide sample deployments of common applications (again, check the sister repositories in the project)
  • +
  • Allow us to better support more language runtimes
  • +
  • Allow us to support different web servers or process supervisors (Caddy springs to mind as a popular alternative for small VPSes)
  • +
+

Code Size / Style

+

By its very nature, piku is a very small program. By today's standards of all-encompassing solutions this may seem strange, but it would benefit from being kept that way.

+
    +
  • Small and focused PRs. Please don't include changes that don't address the subject of your PR.
  • +
  • Follow the style of importing functions directly e.g. from os.path import abspath
  • +
  • Follow PEP8.
  • +
+

So please keep that in mind when contributing.

+

For instance, if your runtime or framework needs additional setup, it might be better to contribute an utility script to run in a release entry in the Procfile rather than patching piku.py--but do hack at it if that is the best way to achieve it.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/community/examples.html b/community/examples.html new file mode 100644 index 0000000..587b1b9 --- /dev/null +++ b/community/examples.html @@ -0,0 +1,1169 @@ + + + + + + + + + + + + + + + + + + + + + + + Example Applications - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Example Applications

+

Besides the bundled examples, there are a number of community-contributed examples that can be deployed using piku.

+

They are meant to be illustrative of the kinds of applications that can be deployed using piku, and are not meant to be exhaustive.

+

Pre-built Apps and Tools

+
    +
  • avahi-aliases, a tool for announcing multiple hostnames on the same IP address via Avahi/mDNS/Bonjour.
  • +
  • Node-RED
  • +
  • Gitea
  • +
  • WebDAV, a simple WebDAV server
  • +
  • SnapDrop, a simple LAN file sharing application using Express.
  • +
+

Phoenix

+ +

Python

+ +

Ruby on Rails

+ +

NodeJS

+ +

Java

+ +

Clojure

+ +

Bare Metal C

+ + + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/community/index.html b/community/index.html new file mode 100644 index 0000000..51210b5 --- /dev/null +++ b/community/index.html @@ -0,0 +1,979 @@ + + + + + + + + + + + + + + + + + + + + + + + Community - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/configuration/env.html b/configuration/env.html new file mode 100644 index 0000000..1286f93 --- /dev/null +++ b/configuration/env.html @@ -0,0 +1,1268 @@ + + + + + + + + + + + + + + + + + + + + + + + ENV Variables - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

ENV Variables

+

You can configure deployment settings by placing special variables in an ENV file deployed with your app. This file should be placed in the root of your app's directory, and can look something like this:

+
# variables are global and can be replaced
+SETTING1=True
+SETTING2=${SETTING1}/Maybe
+
+# addr:port
+PORT=9080
+BIND_ADDRESS=0.0.0.0
+
+# the max number the worker will process
+RANGE=10
+
+# worker sleep interval between prints
+INTERVAL=1
+
+

Runtime Settings

+
    +
  • PIKU_AUTO_RESTART (boolean, defaults to true): Piku will restart all workers every time the app is deployed. You can set it to 0/false if you prefer to deploy first and then restart your workers separately.
  • +
+

Python

+
    +
  • PYTHON_VERSION (int): Forces Python 3
  • +
+
+

Warning

+

This is mostly deprecated (since piku now runs solely on Python 3.x), but is kept around for legacy compatibility.

+
+

Node

+
    +
  • NODE_VERSION: installs a particular version of node for your app if nodeenv is found on the path. Optional; if not specified, the system-wide node package is used.
  • +
+
+

Note

+

you will need to stop and re-deploy the app to change the node version in a running app.

+
+

Network Settings

+
    +
  • BIND_ADDRESS: IP address to which your app will bind (typically 127.0.0.1)
  • +
  • PORT: TCP port for your app to listen in (if deploying your own web listener).
  • +
  • DISABLE_IPV6 (boolean): if set to true, it will remove IPv6-specific items from the nginx config, which will accept only IPv4 connections
  • +
+

uWSGI Settings

+
    +
  • UWSGI_MAX_REQUESTS (integer): set the max-requests option to determine how many requests a worker will receive before it's recycled.
  • +
  • UWSGI_LISTEN (integer): set the listen queue size.
  • +
  • UWSGI_PROCESSES (integer): set the processes count.
  • +
  • UWSGI_ENABLE_THREADS (boolean): set the enable-threads option.
  • +
  • UWSGI_LOG_MAXSIZE (integer): set the log-maxsize.
  • +
  • UWSGI_LOG_X_FORWARDED_FOR (boolean): set the log-x-forwarded-for option.
  • +
  • UWSGI_GEVENT: enable the Python 2 gevent plugin
  • +
  • UWSGI_ASYNCIO (integer): enable the Python 2/3 asyncio plugin and set the number of tasks
  • +
  • UWSGI_INCLUDE_FILE: a uwsgi config file in the app's dir to include - useful for including custom uwsgi directives.
  • +
  • UWSGI_IDLE (integer): set the cheap, idle and die-on-idle options to have workers spawned on demand and killed after n seconds of inactivity.
  • +
+
+

Note

+

UWSGI_IDLE applies to all the workers, so if you have UWSGI_PROCESSES set to 4, they will all be killed simultaneously. Support for progressive scaling of workers via cheaper and similar uWSGI configurations will be added in the future.

+
+

nginx Settings

+
    +
  • NGINX_SERVER_NAME: set the virtual host name associated with your app
  • +
  • NGINX_STATIC_PATHS (string, comma separated list): set an array of /url:path values that will be served directly by nginx
  • +
  • NGINX_CLOUDFLARE_ACL (boolean, defaults to false): activate an ACL allowing access only from Cloudflare IPs
  • +
  • NGINX_HTTPS_ONLY (boolean, defaults to false): tell nginx to auto-redirect non-SSL traffic to SSL site.
  • +
+
+

Note

+

if used with Cloudflare, NGINX_HTTPS_ONLY will cause an infinite redirect loop - keep it set to false, use NGINX_CLOUDFLARE_ACL instead and add a Cloudflare Page Rule to "Always Use HTTPS" for your server (use domain.name/* to match all URLs).

+
+

nginx Caching

+

When NGINX_CACHE_PREFIXES is set, nginx will cache requests for those URL prefixes to the running application (uwsgi-like or web workers) and reply on its own for NGINX_CACHE_TIME to the outside. This is meant to be used for compute-intensive operations like resizing images or providing large chunks of data that change infrequently (like a sitemap).

+

The behavior of the cache can be controlled with the following variables:

+
    +
  • NGINX_CACHE_PREFIXES (string, comma separated list): set an array of /url values that will be cached by nginx
  • +
  • NGINX_CACHE_SIZE (integer, defaults to 1): set the maximum size of the nginx cache, in GB
  • +
  • NGINX_CACHE_TIME (integer, defaults to 3600): set the amount of time (in seconds) that valid backend replies (200 304) will be cached.
  • +
  • NGINX_CACHE_REDIRECTS (integer, defaults to 3600): set the amount of time (in seconds) that backend redirects (301 307) will be cached.
  • +
  • NGINX_CACHE_ANY (integer, defaults to 3600): set the amount of time (in seconds) that any other replies (other than errors) will be cached.
  • +
  • NGINX_CACHE_CONTROL (integer, defaults to 3600): set the amount of time (in seconds) for cache control headers (Cache-Control "public, max-age=3600")
  • +
  • NGINX_CACHE_EXPIRY (integer, defaults to 86400): set the amount of time (in seconds) that cache entries will be kept on disk.
  • +
  • NGINX_CACHE_PATH (string, detaults to ~piku/.piku/<appname>/cache): location for the nginx cache data.
  • +
+
+

Note

+

NGINX_CACHE_PATH will be completely managed by nginx and cannot be removed by Piku when the application is destroyed. This is because nginx sets the ownership for the cache to be exclusive to itself, and the piku user cannot remove that file tree. So you will either need to clean it up manually after destroying the app or store it in a temporary filesystem (or set the piku user to the same UID as www-data, which is not recommended).

+
+

Right now, there is no provision for cache revalidation (i.e., nginx asking your backend if the cache entries are still valid), since that requires active application logic that varies depending on the runtime--nginx will only ask your backend for new content when NGINX_CACHE_TIME elapses. If you require that kind of behavior, that is still possible via NGINX_INCLUDE_FILE.

+

Also, keep in mind that using nginx caching with a static website worker will not work (and there's no point to it either).

+

nginx Overrides

+
    +
  • NGINX_INCLUDE_FILE: a file in the app's dir to include in nginx config server section - useful for including custom nginx directives.
  • +
  • NGINX_ALLOW_GIT_FOLDERS: (boolean) allow access to .git folders (default: false, blocked)
  • +
+

Acme Settings

+
    +
  • ACME_ROOT_CA: set the certificate authority that Acme should use to generate public ssl certificates (string, default: letsencrypt.org)
  • +
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/configuration/index.html b/configuration/index.html new file mode 100644 index 0000000..afdfea2 --- /dev/null +++ b/configuration/index.html @@ -0,0 +1,999 @@ + + + + + + + + + + + + + + + + + + + + + + + Configuring Applications - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Configuring Applications

+

A minimal piku app has a root directory structure similar to this:

+
ENV
+Procfile
+app.py
+worker.py
+requirements.txt
+
+

+ + ENV + + + Procfile + +

+

Configuration Files

+

piku relies on two configuration files shipped with your app to determine how to run it: ENV and Procfile.

+
    +
  • The ENV file contains environment variables that allow you to configure both piku and your app, following the 12-factor app approach.
  • +
  • The Procfile tells piku what kind of workers to run
  • +
+

Runtime Detection

+

Besides ENV and Procfile, piku also looks for runtime-specific files in the root of your app's directory:

+
    +
  • If there's a requirements.txt file at the top level, then the app is assumed to require Python.
  • +
  • If there's a Gemfile at the top level, then the app is assumed to require Ruby.
  • +
  • If there's a package.json file at the top level, then the app is assumed to require Node.js.
  • +
  • If there's a pom.xml or a build.gradle file at the top level, then the app is assumed to require Java.
  • +
  • If there's a deps.edn or project.clj file at the top level, then the app is assumed to require Clojure.
  • +
  • If there's a Godeps file at the top level, then the app is assumed to require Go.
  • +
+
+

Info

+

go.mod support is currently in development.

+
+

These are not exclusive, however. There is also a sample Phoenix app that demonstrates how to add support for additional runtimes.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/configuration/procfile.html b/configuration/procfile.html new file mode 100644 index 0000000..99d5d0e --- /dev/null +++ b/configuration/procfile.html @@ -0,0 +1,1222 @@ + + + + + + + + + + + + + + + + + + + + + + + Procfile format - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Procfile format

+

piku supports a Heroku-like Procfile that you provide to indicate how to run one or more application processes (what Heroku calls "dynos"):

+
web: embedded_server --port $PORT
+worker: background_worker
+
+

Worker Types

+

piku supports six different kinds of worker processes:

+

# A module to be loaded by uwsgi to serve HTTP requests
+wsgi: module.submodule:app
+# A background worker, using the default name
+worker: python long_running_script.py
+# Another worker with a different name
+fetcher: python fetcher.py
+# Simple cron expression: minute [0-59], hour [0-23], day [0-31], month [1-12], weekday [1-7] (starting Monday, no ranges allowed on any field)
+cron: 0 0 * * * python midnight_cleanup.py
+release: python initial_cleanup.py
+
+Each of these has slightly different features:

+

wsgi

+

wsgi workers are Python-specific and must be specified in the format dotted.module:entry_point. uwsgi will load the specified module and call the entry_point function to start the application, handling all the HTTP requests directly (your Python code will run the handlers, but will run as a part of the uwsgi process).

+

uwsgi will automatically spawn multiple workers for you, and you can control the number of workers via the UWSGI_PROCESSES environment variable.

+

Also, in this mode uwsgi will talk to nginx via a Unix socket, so you don't need to worry about the HTTP server at all.

+

web

+

web workers can be literally any executable that uwsgi can run and that will serve HTTP requests. They must (by convention) honor the PORT environment variable, so that the nginx reverse proxy can talk to them.

+

worker

+

worker processes are just standard processes that run in the background. They can actually have arbitrary names, and the idea is that they would perform any tasks your app requires that isn't directly related to serving web pages.

+

static

+

static workers are simply a way to direct nginx to mount the first argument as a static path and serve it directly. This is useful for serving (and caching) static files directly from your app, without having to go through application code.

+
+

Note

+

See nginx caching for more information on how to configure nginx to serve static files.

+
+

cron

+

A cron worker is a process that runs at a specific time (or intervals), using a simplified crontab expression preceding the command to be run (e.g. cron: */5 * * * * python batch.py to run a batch every 5 minutes)

+

Multiple crons can be scheduled by simply adding multiple entries with cron prefix.

+
...
+cron1: */5 * * * * python batch.py
+cron2: 0 * * * * python batch.py
+...
+
+
+

Warning

+

crontab expressions are simplified and do not support ranges or lists, only single values, splits and * (wildcard).

+
+

alternatives

+

Python +apscheduler - Provides it's own library for scheduling jobs, and honors the full regex of crontab.

+

preflight

+

preflight is a special "worker" that is run once before the app is deployed and dependencies are installed (can be useful for cleanups, like resetting caches, removing older versions of files, etc).

+

release

+

release which is a special worker that is run once when the app is deployed, after installing dependencies (can be useful for build steps).

+

Any worker will be automatically respawned upon failure ([uWSGI][uwsgi] will automatically shun/throttle crashy workers).

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/design/index.html b/design/index.html new file mode 100644 index 0000000..975d4f7 --- /dev/null +++ b/design/index.html @@ -0,0 +1,1089 @@ + + + + + + + + + + + + + + + + + + + + + + + Design - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Design

+

The idea behind piku is that it provides the simplest possible way to deploy web apps or services. Simplicity comes at the expense of features, of course, and this document tries to capture the trade-offs.

+

Core values

+
    +
  • Run on low end devices.
  • +
  • Accessible to hobbyists and K-12 schools.
  • +
  • ~1500 lines readable code.
  • +
  • Functional code style.
  • +
  • Few (single?) dependencies
  • +
  • 12 factor app.
  • +
  • Simplify user experience.
  • +
  • Cover 80% of common use cases.
  • +
  • Sensible defaults for all features.
  • +
  • Leverage distro packages in Raspbian/Debian/Ubuntu (Alpine and RHEL support is WIP)
  • +
  • Leverage standard tooling (git, ssh, uwsgi, nginx).
  • +
  • Preserve backwards compatibility where possible
  • +
+

Why uWSGI

+

Using uWSGI in emperor mode gives us the following features for free:

+
    +
  • Painless Python WSGI and virtualenv integration
  • +
  • Process monitoring, restarting, basic resource limiting, etc.
  • +
  • Basic security scaffolding, beginning with the ability to define uid/gid on a per-app basis (if necessary)
  • +
+

Application packaging

+

An app is simply a git repository with some additional files on the top level, the most important of which is the Procfile.

+

ENV settings

+

Since piku is targeted at 12 Factor apps, it allows you to set environment variables in a number of ways, the simplest of which is by adding an ENV file to your repository:

+
SETTING1=foo
+# piku supports comments and variable expansion
+SETTING2=${SETTING1}/bar
+# if this isn't defined, piku will assign a random TCP port
+PORT=9080
+
+

See configuration for a full list of environment variables that can also be set.

+

Environment variables can be changed after deployment using the config:set command.

+

Runtime detection

+

piku follows a very simple set of rules to determine what kind of runtime is required, outlined in the configuration section

+

Application isolation

+

Application isolation can be tackled at several levels, the most relevant of which being:

+
    +
  • OS/process isolation
  • +
  • Runtime/library isolation
  • +
+

For 1.0, all applications run under the same uid, under separate branches of the same filesystem, and without any resource limiting.

+

Ways to improve upon that (short of full containerisation) typically entail the use of a chroot jail environment (which is available under most POSIX systems in one form or another) or Linux kernel namespaces - both of which are supported by uWSGI (which can also handle resource limiting to a degree).

+

As to runtime isolation, piku only provides virtualenv support until 1.0. Python apps can run under Python 2 or 3 depending on the setting of PYTHON_VERSION, but will always use pre-installed interpreters (Go, Node and Java support will share these limitations in each major version).

+

Internals

+

piku uses two git repositories for each app: a bare repository for client push, and a clone for deployment (which is efficient in terms of storage since git tries to use hardlinks on local clones whenever possible).

+

This separation makes it easier to cope with long/large deployments and restore apps to a pristine condition, since the app will only go live after the deployment clone is reset (via git checkout -f).

+

Components

+

This diagram outlines how its components interact:

+
graph TD
+    subgraph "systemd"
+        nginx([nginx])
+        sshd([sshd])
+        uwsgi([uwsgi])
+    end
+    uwsgi-->vassal([vassal])
+    vassal-.->uwsgi.ini
+    sshd-->piku([piku.py])-->repo[git repo]
+    Procfile-->uwsgi.ini
+    an-->app
+    repo---app
+    repo---ENV
+    repo---requirements.txt
+    repo---Procfile
+    requirements.txt-->virtualenv
+    uwsgi.ini-->virtualenv
+    ENV-->an
+    ENV-->uwsgi.ini
+    nginx-.-mn[master<br>nginx.conf]
+    mn-.-an[app<br>nginx.conf]
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/design/plugins.html b/design/plugins.html new file mode 100644 index 0000000..4a37fef --- /dev/null +++ b/design/plugins.html @@ -0,0 +1,977 @@ + + + + + + + + + + + + + + + + + + + + + + + Plugins - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Plugins

+ +

Thanks to jsenin, piku currently has experimental support for external plugins via #129.

+

Plugins are inserted into the commands listing and can perform arbitrary actions. At this moment there are no official plugins, but here is an example file that should be placed at ~/.piku/plugins/postgres/__init__.py that could contain the commands to manage a Postgres database:

+
import click
+
+@click.group()
+def postgres():
+    """Postgres command plugin"""
+    pass
+
+@postgres.command("postgres:create")
+@click.argument('name')
+@click.argument('user')
+@click.argument('password')
+def postgres_create():
+    """Postgres create a database"""
+    pass
+
+@postgres.command("postgres:drop")
+@click.argument('name')
+def postgres_drop():
+    """Postgres drops a database"""
+    pass
+
+@postgres.command("postgres:import")
+@click.argument('name')
+def postgres_drop():
+    """Postgres import a database"""
+    pass
+
+@postgres.command("postgres:dump")
+@click.argument('name')
+def postgres_drop():
+    """Postgres dumps a database SQL"""
+    pass
+
+def cli_commands():
+    return postgres
+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/features.html b/features.html new file mode 100644 index 0000000..ac8502f --- /dev/null +++ b/features.html @@ -0,0 +1,1106 @@ + + + + + + + + + + + + + + + + + + + + + + + Features - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Features

+

Workflow

+

piku supports a Heroku-like workflow:

+
    +
  • Create a git SSH remote pointing to your piku server with the app name as repo name: + git remote add piku piku@yourserver:appname.
  • +
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • +
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • +
  • For Python, it segregates each app's dependencies into a virtualenv.
  • +
  • For Go, it defines a separate GOPATH for each app.
  • +
  • For Node, it installs whatever is in package.json into node_modules.
  • +
  • For Java, it builds your app depending on either pom.xml or build.gradle file.
  • +
  • For Clojure, it can use either leiningen or the Clojure CLI and a deps.edn file.
  • +
  • For Ruby, it does bundle install of your gems in an isolated folder.
  • +
  • It then looks at a Procfile and starts the relevant workers using uwsgi as a generic process manager.
  • +
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • +
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • +
  • You can also bake application and nginx settings into an ENV configuration file.
  • +
+

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

+

Virtual Hosts and SSL

+

piku has full virtual host support - i.e., you can host multiple apps on the same VPS and use DNS aliases to access them via different hostnames.

+

piku will also set up either a private certificate or obtain one via Let's Encrypt to enable SSL.

+

If you are on a LAN and are accessing piku from macOS/iOS/Linux clients, you can try using piku/avahi-aliases to announce different hosts for the same IP address via Avahi/mDNS/Bonjour.

+

Caching and Static Paths

+

Besides static sites, piku also supports directly mapping specific URL prefixes to filesystem paths (to serve static assets) or caching back-end responses (to remove load from applications).

+

These features are configured by setting appropriate values in the ENV file.

+

Supported Platforms

+

piku is intended to work in any POSIX-like environment where you have Python, nginx, uwsgi and ssh: it has been deployed on Linux, FreeBSD, [Cygwin][cygwin] and the [Windows Subsystem for Linux][wsl].

+

As a baseline, it began its development on an original 256MB Rasbperry Pi Model B, and still runs reliably on it.

+

But its main use is as a micro-PaaS to run applications on cloud servers with both Intel and ARM CPUs, with either Debian or Ubuntu Linux as target platforms.

+

Supported Runtimes

+

piku currently supports apps written in Python, Node, Clojure, Java and a few other languages (like Go) in the works.

+

But as a general rule, if it can be invoked from a shell, it can be run inside piku.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/get b/get new file mode 100644 index 0000000..f7025c9 --- /dev/null +++ b/get @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +echo "Downloading piku-bootstrap here." +curl -s https://raw.githubusercontent.com/piku/piku-bootstrap/master/piku-bootstrap > piku-bootstrap +chmod 755 piku-bootstrap +echo "Now you can install Piku on `hostname` like this:" +echo "./piku-bootstrap install" diff --git a/img/demo.svg b/img/demo.svg new file mode 100644 index 0000000..abfb4d0 --- /dev/null +++ b/img/demo.svg @@ -0,0 +1,44 @@ + + + + + + + + + + $ $ l $ ls $ ls $ ls - $ ls -a $ ls -al $ c $ ca $ cat $ cat $ cat E $ cat ENV INTERVAL=1 INTERVAL=1$ $ C $ $ c $ ca $ cat $ cat $ cat P $ cat Pr $ cat Procfile $ ls -altotal 56drwxr-xr-x@ 11 rcarmo staff 352 May 22 19:03 .drwx------+ 22 rcarmo staff 704 May 22 18:56 ..-rw-r--r--@ 1 rcarmo staff 91 Jul 24 2018 ENV-rw-r--r--@ 1 rcarmo staff 63 May 21 21:21 Procfile-rw-r--r--@ 1 rcarmo staff 508 May 21 22:26 README.md-rw-r--r--@ 1 rcarmo staff 456 May 21 22:22 clock.py-rw-r--r--@ 1 rcarmo staff 1038 Jul 24 2018 main.py-rw-r--r--@ 1 rcarmo staff 19 May 21 21:22 requirements.txtdrwxr-xr-x@ 4 rcarmo staff 128 Feb 3 2018 staticdrwxr-xr-x@ 3 rcarmo staff 96 Feb 3 2018 views-rw-r--r--@ 1 rcarmo staff 146 Jun 17 2018 worker.py$ cat ENV PORT=9080BIND_ADDRESS=0.0.0.0RANGE=10SETTING1=TrueSETTING2=${SETTING1}/MaybeINTERVAL=1$ $ cat Procfile $ g $ gi $ git $ git $ git i $ git in $ git ini $ git init $ git init wsgi: main:appworker: python worker.pyclock: python clock.py$ git init . $ git init .$ git a $ git ad $ git ad $ git ad d $ git ad $ git ad $ git add $ git add Initialized empty Git repository in /Users/rcarmo/Desktop/python_example/.git/$ git add . $ git c $ git co $ git com $ git comm $ git commi $ git commit $ git commit $ git commit - $ git commit -a $ git commit -a $ git commit -a - $ git commit -a -m $ git commit -a -m $ git commit -a -m " $ git commit -a -m "i $ git commit -a -m "in $ git commit -a -m "ini $ git commit -a -m "init $ git commit -a -m "initi $ git commit -a -m "initia $ git commit -a -m "initial $ git commit -a -m "initial $ git commit -a -m "initial c $ git commit -a -m "initial co $ git commit -a -m "initial com $ git commit -a -m "initial comm $ git commit -a -m "initial commi $ git commit -a -m "initial commit $ git add . $ git commit -a -m "initial commit" $ git commit -a -m "initial commit"[master (root-commit) 816b8c8] initial commit$ git r $ git re $ git rem $ git remo $ git remot $ git remote $ git remote $ git remote a $ git remote ad $ git remote add $ git remote add $ git remote add p $ git remote add pi $ git remote add pik $ git remote add piku $ git remote add piku $ git remote add piku p $ git remote add piku pi $ git remote add piku pik $ git remote add piku piku $ git remote add piku piku@ $ git remote add piku piku@l $ git remote add piku piku@la $ git remote add piku piku@lab $ git remote add piku piku@lab. $ git remote add piku piku@lab.l $ git remote add piku piku@lab.la $ git remote add piku piku@lab.lan $ git remote add piku piku@lab.lan: $ git remote add piku piku@lab.lan:p $ git remote add piku piku@lab.lan:py $ git remote add piku piku@lab.lan:pyt $ git remote add piku piku@lab.lan:pyth $ git remote add piku piku@lab.lan:pytho $ git remote add piku piku@lab.lan:python $ git remote add piku piku@lab.lan:python_ $ git remote add piku piku@lab.lan:python_e $ git remote add piku piku@lab.lan:python_ex $ git remote add piku piku@lab.lan:python_exa $ git remote add piku piku@lab.lan:python_exam $ git remote add piku piku@lab.lan:python_examp $ git remote add piku piku@lab.lan:python_exampl 11 files changed, 978 insertions(+) create mode 100644 ENV create mode 100644 Procfile create mode 100644 README.md create mode 100644 clock.py create mode 100644 main.py create mode 100644 requirements.txt create mode 100644 static/css/normalize.css create mode 100644 static/css/skeleton.css create mode 100644 static/favicon.ico create mode 100644 views/base.tpl create mode 100644 worker.py$ git remote add piku piku@lab.lan:python_example $ git p $ git pu $ git pus $ git push $ git push $ git push p $ git push pi $ git push pik $ git push piku $ git push piku $ git push piku p $ git push piku py $ git push piku pyt $ git push piku pyth $ git push piku pytho $ git push piku python $ git push piku python_ $ git push piku python_e $ git push piku python_ex $ git push piku python_e $ git push piku python_ $ git push piku python $ git push piku pytho $ git push piku pyth $ git push piku pyt $ git push piku py $ git push piku p $ git push piku $ git push piku m $ git push piku ma $ git push piku mas $ git push piku mast $ git push piku maste $ git remote add piku piku@lab.lan:python_example$ git push piku master $ git push piku master Enumerating objects: 16, done.Counting objects: 100% (16/16), done.Delta compression using up to 4 threadsCompressing objects: 50% (7/14) Writing objects: 62% (10/16) Compressing objects: 100% (14/14), done.Writing objects: 81% (13/16) Writing objects: 100% (16/16), 11.23 KiB | 5.61 MiB/s, done.Total 16 (delta 0), reused 0 (delta 0)remote: -----> Creating app 'python_example' remote: -----> Deploying app 'python_example' remote: Your branch is up-to-date with 'origin/master'. remote: -----> Python app detected. remote: -----> Creating virtualenv for 'python_example' remote: Already using interpreter /usr/bin/python3 remote: Using base prefix '/usr' remote: New python executable in /home/piku/.piku/envs/python_example/bin/python3 remote: Also creating executable in /home/piku/.piku/envs/python_example/bin/python remote: Installing setuptools, pkg_resources, pip, wheel...done. remote: -----> Running pip for 'python_example' remote: Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple remote: Collecting bottle (from -r /home/piku/.piku/apps/python_example/requirements.txt (line 1)) remote: Using cached https://files.pythonhosted.org/packages/47/f1/666d2522c8eda26488315d7ee8882d848710b23d408ed4ced35d750d6e20/bottle-0.12.16-py3-none-any.whl remote: Collecting APScheduler (from -r /home/piku/.piku/apps/python_example/requirements.txt (line 2)) remote: Using cached https://files.pythonhosted.org/packages/93/09/ffc2ed85fa578cd0d4428e9c421407e5d91a4464bbaa44f789941416ae42/APScheduler-3.6.0-py2.py3-none-any.whl remote: Requirement already satisfied: setuptools>=0.7 in ./lib/python3.5/site-packages (from APScheduler->-r /home/piku/.piku/apps/python_example/requirements.txt (line 2)) (41.0.1) remote: Collecting pytz (from APScheduler->-r /home/piku/.piku/apps/python_example/requirements.txt (line 2)) remote: Using cached https://files.pythonhosted.org/packages/3d/73/fe30c2daaaa0713420d0382b16fbb761409f532c56bdcc514bf7b6262bb6/pytz-2019.1-py2.py3-none-any.whl remote: Collecting tzlocal>=1.2 (from APScheduler->-r /home/piku/.piku/apps/python_example/requirements.txt (line 2)) remote: Using cached https://www.piwheels.org/simple/tzlocal/tzlocal-1.5.1-py3-none-any.whl remote: Collecting six>=1.4.0 (from APScheduler->-r /home/piku/.piku/apps/python_example/requirements.txt (line 2)) remote: Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whremote: Installing collected packages: bottle, pytz, tzlocal, six, APScheduler remote: Successfully installed APScheduler-3.6.0 bottle-0.12.16 pytz-2019.1 six-1.12.0 tzlocal-1.5.1 remote: -----> nginx NGINX_IPV4_ADDRESS set to 0.0.0.0 remote: -----> nginx NGINX_IPV6_ADDRESS set to [::] remote: -----> spawning 'python_example:wsgi.1' remote: -----> nginx will talk to uWSGI via 0.0.0.0:9080 remote: -----> spawning 'python_example:worker.1' remote: -----> spawning 'python_example:clock.1' $ s $ ss $ ssh $ ssh $ ssh p $ ssh pi $ ssh pik $ ssh piku $ ssh piku@ $ ssh piku@l $ ssh piku@la $ ssh piku@lab $ ssh piku@lab. $ ssh piku@lab.l $ ssh piku@lab.la To lab.lan:python_example * [new branch] master -> master$ ssh piku@lab.lan $ ssh piku@lab.lanOptions: --help Show this message and exit.Commands: apps List apps, e.g.: piku apps config Show config, e.g.: piku config <app> config:get e.g.: piku config:get <app> FOO config:live e.g.: piku config:live <app> config:set e.g.: piku config:set <app> FOO=bar BAZ=quux config:unset e.g.: piku config:unset <app> FOO deploy e.g.: piku deploy <app> destroy e.g.: piku destroy <app> git-hook INTERNAL: Post-receive git hook git-receive-pack INTERNAL: Handle git pushes for an app logs Tail running logs, e.g: piku logs <app> ps Show process count, e.g: piku ps <app> ps:scale e.g.: piku ps:scale <app> <proc>=<count> restart Restart an app: piku restart <app> run e.g.: piku run <app> ls -- -al setup Initialize environment setup:ssh Set up a new SSH key (use - for stdin) stop Stop an app, e.g: piku stop <app>$ ssh piku@lab.lan $ ssh piku@lab.lan a $ ssh piku@lab.lan ap $ ssh piku@lab.lan app Connection to lab.lan closed.$ ssh piku@lab.lan apps $ ssh piku@lab.lan apps$ ssh piku@lab.lan app $ ssh piku@lab.lan ap $ ssh piku@lab.lan a $ ssh piku@lab.lan $ ssh piku@lab.lan l $ ssh piku@lab.lan lo $ ssh piku@lab.lan log $ ssh piku@lab.lan logs $ ssh piku@lab.lan logs $ ssh piku@lab.lan logs p $ ssh piku@lab.lan logs py $ ssh piku@lab.lan logs pyt $ ssh piku@lab.lan logs pyth $ ssh piku@lab.lan logs pytho $ ssh piku@lab.lan logs python $ ssh piku@lab.lan logs python_ $ ssh piku@lab.lan logs python_e $ ssh piku@lab.lan logs python_ex $ ssh piku@lab.lan logs python_exa $ ssh piku@lab.lan logs python_exam $ ssh piku@lab.lan logs python_examp $ ssh piku@lab.lan logs python_exampl node_expresspython_example$ ssh piku@lab.lan logs python_example $ ssh piku@lab.lan logs python_example wsgi.1 | detected binary path: /usr/bin/uwsgi-corewsgi.1 | chdir() to /home/piku/.piku/apps/python_examplewsgi.1 | your processes number limit is 7345wsgi.1 | your memory page size is 4096 byteswsgi.1 | detected max file descriptor number: 1024wsgi.1 | lock engine: pthread robust mutexeswsgi.1 | thunder lock: disabled (you can enable it with --thunder-lock)wsgi.1 | uwsgi socket 0 bound to TCP address 0.0.0.0:9080 fd 6wsgi.1 | Python version: 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516]wsgi.1 | Set PythonHome to /home/piku/.piku/envs/python_examplewsgi.1 | Python main interpreter initialized at 0x94e5e0wsgi.1 | python threads support enabledwsgi.1 | your server socket listen backlog is limited to 16 connectionswsgi.1 | your mercy for graceful operations on workers is 60 secondswsgi.1 | mapped 173056 bytes (169 KB) for 4 coreswsgi.1 | *** Operational MODE: threaded ***wsgi.1 | WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x94e5e0 pid: 14736 (default app)wsgi.1 | *** uWSGI is running in multiple interpreter mode ***wsgi.1 | spawned uWSGI master process (pid: 14736)wsgi.1 | spawned uWSGI worker 1 (pid: 14741, cores: 4)clock.1 | clock source: unixclock.1 | pcre jit disabledclock.1 | detected number of CPU cores: 4clock.1 | current working directory: /home/piku/.piku/uwsgi-enabledclock.1 | detected binary path: /usr/bin/uwsgi-coreclock.1 | chdir() to /home/piku/.piku/apps/python_exampleclock.1 | your processes number limit is 7345clock.1 | your memory page size is 4096 bytesclock.1 | detected max file descriptor number: 1024clock.1 | lock engine: pthread robust mutexesclock.1 | thunder lock: disabled (you can enable it with --thunder-lock)clock.1 | your mercy for graceful operations on workers is 60 secondsclock.1 | *** Operational MODE: no-workers ***clock.1 | !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!clock.1 | no request plugin is loaded, you will not be able to manage requests.clock.1 | you may need to install the package for your language of choice, or simply load it with --plugin.clock.1 | !!!!!!!!!!! END OF WARNING !!!!!!!!!!clock.1 | spawned uWSGI master process (pid: 14734)clock.1 | [uwsgi-daemons] spawning "python clock.py" (uid: 1001 gid: 33)clock.1 | starting schedulerworker.1 | 1worker.1 | 2worker.1 | 3worker.1 | 4worker.1 | 5worker.1 | 6worker.1 | 7worker.1 | 8worker.1 | 9worker.1 | [uwsgi-daemons] respawning "python worker.py" (uid: 1001 gid: 33)worker.1 | 0^C ^C$ ^C$ ssh piku@lab.lan logs python_example ^C$ ssh piku@lab.lan logs ^C$ ssh piku@lab.lan ^C$ ssh piku@lab.lan p ^C$ ssh piku@lab.lan ps ^C$ ssh piku@lab.lan ps: ^C$ ssh piku@lab.lan ps:s ^C$ ssh piku@lab.lan ps:sc ^C$ ssh piku@lab.lan ps:sca ^C$ ssh piku@lab.lan ps:scal ^C$ ssh piku@lab.lan ps:scale ^C$ ssh piku@lab.lan ps:scale ^C$ ssh piku@lab.lan ps:scale p ^C$ ssh piku@lab.lan ps:scale py ^C$ ssh piku@lab.lan ps:scale pyt ^C$ ssh piku@lab.lan ps:scale pyth ^C$ ssh piku@lab.lan ps:scale pytho ^C$ ssh piku@lab.lan ps:scale python ^C$ ssh piku@lab.lan ps:scale python_ ^C$ ssh piku@lab.lan ps:scale python_e ^C$ ssh piku@lab.lan ps:scale python_ex ^C$ ssh piku@lab.lan ps:scale python_exa ^C$ ssh piku@lab.lan ps:scale python_exam ^C$ ssh piku@lab.lan ps:scale python_examp ^C$ ssh piku@lab.lan ps:scale python_exampl ^C$ ssh piku@lab.lan ps:scale python_example ^C$ ssh piku@lab.lan ps:scale python_example ^C$ ssh piku@lab.lan ps:scale python_example w ^C$ ssh piku@lab.lan ps:scale python_example wo ^C$ ssh piku@lab.lan ps:scale python_example wor ^C$ ssh piku@lab.lan ps:scale python_example work ^C$ ssh piku@lab.lan ps:scale python_example worke ^C$ ssh piku@lab.lan ps:scale python_example worker ^C$ ssh piku@lab.lan ps:scale python_example worker= ^C$ ssh piku@lab.lan ps:scale python_example worker=4 ^C$ ssh piku@lab.lan ps:scale python_example worker=4 -----> Deploying app 'python_example'Your branch is up-to-date with 'origin/master'.-----> Python app detected.-----> nginx NGINX_IPV4_ADDRESS set to 0.0.0.0-----> nginx NGINX_IPV6_ADDRESS set to [::]-----> spawning 'python_example:worker.2'-----> spawning 'python_example:worker.3'$ ssh piku@lab.lan ps:scale python_example worker=4 -----> spawning 'python_example:worker.4'$ ssh piku@lab.lan logs python_example $ ssh piku@lab.lan logs python_example worker.4 | clock source: unixworker.4 | pcre jit disabledworker.4 | detected number of CPU cores: 4worker.4 | current working directory: /home/piku/.piku/uwsgi-enabledworker.4 | detected binary path: /usr/bin/uwsgi-coreworker.4 | chdir() to /home/piku/.piku/apps/python_exampleworker.4 | your processes number limit is 7345worker.4 | your memory page size is 4096 bytesworker.4 | detected max file descriptor number: 1024worker.4 | lock engine: pthread robust mutexesworker.4 | thunder lock: disabled (you can enable it with --thunder-lock)worker.4 | your mercy for graceful operations on workers is 60 secondsworker.4 | *** Operational MODE: no-workers ***worker.4 | !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!worker.4 | no request plugin is loaded, you will not be able to manage requests.worker.4 | you may need to install the package for your language of choice, or sworker.4 | !!!!!!!!!!! END OF WARNING !!!!!!!!!!worker.4 | spawned uWSGI master process (pid: 15155)worker.4 | [uwsgi-daemons] spawning "python worker.py" (uid: 1001 gid: 33)worker.4 | 0worker.3 | clock source: unixworker.3 | pcre jit disabledworker.3 | detected number of CPU cores: 4worker.3 | current working directory: /home/piku/.piku/uwsgi-enabledworker.3 | detected binary path: /usr/bin/uwsgi-coreworker.3 | chdir() to /home/piku/.piku/apps/python_exampleworker.3 | your processes number limit is 7345worker.3 | your memory page size is 4096 bytesworker.3 | detected max file descriptor number: 1024worker.3 | lock engine: pthread robust mutexesworker.3 | thunder lock: disabled (you can enable it with --thunder-lock)worker.3 | your mercy for graceful operations on workers is 60 secondsworker.3 | *** Operational MODE: no-workers ***worker.3 | !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!worker.3 | no request plugin is loaded, you will not be able to manage requests.worker.3 | you may need to install the package for your language of choice, or sworker.3 | !!!!!!!!!!! END OF WARNING !!!!!!!!!!worker.3 | spawned uWSGI master process (pid: 15160)worker.3 | [uwsgi-daemons] spawning "python worker.py" (uid: 1001 gid: 33)worker.3 | 0worker.2 | clock source: unixworker.2 | pcre jit disabledworker.2 | detected number of CPU cores: 4worker.2 | current working directory: /home/piku/.piku/uwsgi-enabledworker.2 | detected binary path: /usr/bin/uwsgi-coreworker.2 | chdir() to /home/piku/.piku/apps/python_exampleworker.2 | your processes number limit is 7345worker.2 | your memory page size is 4096 bytesworker.2 | detected max file descriptor number: 1024worker.2 | lock engine: pthread robust mutexesworker.2 | thunder lock: disabled (you can enable it with --thunder-lock)worker.2 | your mercy for graceful operations on workers is 60 secondsworker.2 | *** Operational MODE: no-workers ***worker.2 | !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!worker.2 | no request plugin is loaded, you will not be able to manage requests.worker.2 | you may need to install the package for your language of choice, or sworker.2 | !!!!!!!!!!! END OF WARNING !!!!!!!!!!worker.2 | spawned uWSGI master process (pid: 15154)worker.2 | [uwsgi-daemons] spawning "python worker.py" (uid: 1001 gid: 33)worker.2 | 0worker.4 | 1worker.3 | 1worker.2 | 1worker.4 | 2worker.3 | 2worker.2 | 2worker.4 | 3worker.3 | 3worker.2 | 3worker.4 | 4worker.3 | 4worker.2 | 4worker.4 | 5worker.3 | 5worker.2 | 5worker.4 | 6worker.3 | 6worker.2 | 6worker.4 | 7worker.3 | 7worker.2 | 7^C$ ssh piku@lab.lan d ^C$ ssh piku@lab.lan de ^C$ ssh piku@lab.lan des ^C$ ssh piku@lab.lan dest ^C$ ssh piku@lab.lan destr ^C$ ssh piku@lab.lan destro ^C$ ssh piku@lab.lan destroy ^C$ ssh piku@lab.lan destroy ^C$ ssh piku@lab.lan destroy p ^C$ ssh piku@lab.lan destroy py ^C$ ssh piku@lab.lan destroy pyt ^C$ ssh piku@lab.lan destroy pyth ^C$ ssh piku@lab.lan destroy pytho ^C$ ssh piku@lab.lan destroy python ^C$ ssh piku@lab.lan destroy python_ ^C$ ssh piku@lab.lan destroy python_e ^C$ ssh piku@lab.lan destroy python_ex ^C$ ssh piku@lab.lan destroy python_exa ^C$ ssh piku@lab.lan destroy python_exam ^C$ ssh piku@lab.lan destroy python_examp ^C$ ssh piku@lab.lan destroy python_exampl worker.4 | 8worker.3 | 8worker.2 | 8^C$ ssh piku@lab.lan destroy python_example ^C$ ssh piku@lab.lan destroy python_example Removing folder '/home/piku/.piku/apps/python_example'Removing folder '/home/piku/.piku/repos/python_example'Removing folder '/home/piku/.piku/envs/python_example'Removing folder '/home/piku/.piku/logs/python_example'Removing file '/home/piku/.piku/uwsgi-available/python_example_clock.1.ini'Removing file '/home/piku/.piku/uwsgi-available/python_example_worker.1.ini'Removing file '/home/piku/.piku/uwsgi-available/python_example_worker.2.ini'Removing file '/home/piku/.piku/uwsgi-available/python_example_worker.4.ini'Removing file '/home/piku/.piku/uwsgi-available/python_example_worker.3.ini'Removing file '/home/piku/.piku/uwsgi-available/python_example_wsgi.1.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_clock.1.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_worker.1.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_worker.2.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_worker.4.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_worker.3.ini'Removing file '/home/piku/.piku/uwsgi-enabled/python_example_wsgi.1.ini'$ $ exit + diff --git a/img/icon.png b/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..81d9bf0cdfae8cd846091cf9d8ed2146b4b586eb GIT binary patch literal 13510 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 D&!PP7 literal 0 HcmV?d00001 diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000..7d0b925 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + typeface: Varela Roundcolor: #ff2a2a + + diff --git a/img/piku.svg b/img/piku.svg new file mode 100644 index 0000000..16c42ad --- /dev/null +++ b/img/piku.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..53aa05f --- /dev/null +++ b/index.html @@ -0,0 +1,1091 @@ + + + + + + + + + + + + + + + + + + + + + Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

+

piku, inspired by dokku, allows you do git push deployments to your own servers, no matter how small they are.

+

+ + Installing + + + Using/Features + + + Managing and Monitoring + + + Examples + + + Web App Tutorial + +

+

Demo

+

asciicast

+

Workflow

+

piku supports a Heroku-like workflow:

+
    +
  • Create a git SSH remote pointing to your piku server with the app name as repo name: + git remote add piku piku@yourserver:appname.
  • +
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • +
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • +
  • It then looks at a Procfile and starts matching worker processes.
  • +
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • +
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • +
  • You can also bake application and nginx settings into an ENV configuration file.
  • +
+

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

+

Project Activity

+

piku is considered STABLE. It is actively maintained, but "actively" here means the feature set is pretty much done, so it is only updated when new language runtimes are added or reproducible bugs crop up.

+

It currently requires Python 3.7 or above, since even though 3.8+ is now the baseline Python 3 version in Ubuntu LTS 20.04 and Debian 11 has already moved on to 3.9, there are no substantial differences between those versions.

+

Deprecation Notices

+

Since most of its users run it on LTS distributions, there is no rush to introduce disruption. The current plan is to throw up a warning for older runtimes and do regression testing for 3.7-3.12 (replacing the current bracket of tests from 3.5 to 3.8), and make sure we also cover Ubuntu 22.04, Debian 11 and Fedora 37+.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-centos-9.html b/install/INSTALL-centos-9.html new file mode 100644 index 0000000..9d8f83d --- /dev/null +++ b/install/INSTALL-centos-9.html @@ -0,0 +1,1152 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation on CentOS 9 - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation on CentOS 9

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+

All steps done as root (or add sudo if you prefer).

+

Dependencies

+

Before installing piku, you need to install the following packages:

+
dnf in -y ansible-core ansible-collection-ansible-posix ansible-collection-ansible-utils nginx nodejs npm openssl postgresql postgresql-server postgresql-contrib python3 python3-pip uwsgi uwsgi-logger-file uwsgi-logger-systemd
+pip install click
+
+

Set up the piku user

+
adduser --groups nginx piku
+# copy & setup piku.py
+su - piku -c "wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup"
+
+

Set up SSH access

+

See INSTALL.md

+

uWSGI Configuration

+

FYI The uWSGI Emperor – multi-app deployment

+
mv /home/piku/.piku/uwsgi/uwsgi.ini /etc/uwsgi.d/piku.ini # linking alone increases the host attack service if one can get inside the piku user or one of its apps, so moving is safer
+chown piku:piku /etc/uwsgi.d/piku.ini # In Tyrant mode (set by default in /etc/uwsgi.ini) the Emperor will run the vassal using the UID/GID of the vassal configuration file
+systemctl restart uwsgi
+journalctl -feu uwsgi # see logs
+
+

nginx Configuration

+

FYI Setting up and configuring NGINX

+
echo "include /home/piku/.piku/nginx/*.conf;" > /etc/nginx/conf.d/piku.conf
+systemctl restart nginx
+journalctl -feu nginx # see logs
+
+

Set up systemd.path to reload nginx upon config changes

+
# Set up systemd.path to reload nginx upon config changes
+su -
+git clone https://github.com/piku/piku.git # need a copy of some files
+cp -v piku/piku-nginx.{path,service} /etc/systemd/system/
+systemctl enable piku-nginx.{path,service}
+systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `active: active (waiting)`
+
+

Notes

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-other.html b/install/INSTALL-other.html new file mode 100644 index 0000000..1db4b25 --- /dev/null +++ b/install/INSTALL-other.html @@ -0,0 +1,1451 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation on other platforms - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation on other platforms

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+

Dependencies

+

Before running piku for the first time, you need to install the following Python packages at the system level:

+

Raspbian Jessie, Debian 8, Ubuntu 16.04

+
sudo apt-get install git python3-virtualenv python3-pip
+sudo pip3 install -U click
+
+

Raspbian Wheezy

+
sudo apt-get install git python3
+sudo easy_install3 -U pip3
+sudo pip3 install -U click virtualenv
+
+

These may or may not be installed already (click usually isn't). For Raspbian Wheezy this is the preferred approach, since current apt packages are fairly outdated.

+

Set up the piku user, Set up SSH access

+

See INSTALL.md

+

uWSGI Installation (Debian Linux variants, any architecture)

+

uWSGI can be installed in a variety of fashions. These instructions cover both pre-packaged and source installs depending on your system.

+

Raspbian Jessie, Debian 8

+
+

Warning

+

These OS releases are no longer supported and these instructions are kept for reference purposes only.

+
+

In Raspbian Jessie, Debian 8 and other systemd distributions where uWSGI is already available pre-compiled (but split into a number of plugins), do the following:

+

# At the time of this writing, this installs uwsgi 2.0.7 on Raspbian Jessie.
+# You can also install uwsgi-plugins-all if you want to get runtime support for other languages
+sudo apt-get install uwsgi uwsgi-plugin-python3
+# refer to our executable using a link, in case there are more versions installed
+sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku
+# disable the standard uwsgi startup script
+sudo systemctl disable uwsgi
+
+# add our own startup script
+sudo cp /tmp/uwsgi-piku.service /etc/systemd/system/
+sudo systemctl enable uwsgi-piku
+sudo systemctl start uwsgi-piku
+
+# check it's running
+sudo systemctl status uwsgi-piku.service
+
+Important Note: Make sure you run piku.py setup as outlined above before starting the service.

+

Also, please note that uwsgi-piku.service, as provided, creates a /run/uwsgi-piku directory for it to place socket files and sundry. This is not actually used at the moment, since the uwsgi socket file is placed inside the piku user directory for consistency across OS distributions. This will be cleaned up in a later release.

+

Raspbian Wheezy

+
+

Warning

+

This OS release is no longer supported and these instructions are kept for reference purposes only.

+
+

Since Raspbian Wheezy is a fairly old distribution by now, its uwsgi-* packages are completely outdated (and depend on Python 2.6), so we have to compile and install our own version, as well as using an old-style init script to have it start automatically upon boot.

+

sudo apt-get install build-essential python-dev libpcre3-dev
+# At the time of this writing, this installs 2.0.12
+sudo pip install uwsgi
+# refer to our executable using a link, in case there are more versions installed
+sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku
+
+# set up our init script
+sudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku
+sudo chmod +x /etc/init.d/uwsgi-piku
+sudo update-rc.d uwsgi-piku defaults
+sudo service uwsgi-piku start
+
+Important Note: Make sure you run python3 piku.py setup as outlined above before starting the service.

+

Ubuntu 14.04 LTS

+
+

Warning

+

This OS release is no longer supported and these instructions are kept for reference purposes only.

+
+

This is a mix of both the above, and should change soon when we get 16.04. If you have trouble, install uWSGI via pip instead.

+
# At the time of this writing, this installs uwsgi 1.9.17 on Ubuntu 14.04 LTS.
+# You can also install uwsgi-plugins-all if you want to get runtime support for other languages
+sudo apt-get install uwsgi uwsgi-plugin-python3
+# refer to our executable using a link, in case there are more versions installed
+sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku
+
+# set up our init script
+sudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku
+sudo chmod +x /etc/init.d/uwsgi-piku
+sudo update-rc.d uwsgi-piku defaults
+sudo service uwsgi-piku start
+
+

nginx Installation (Raspbian 8, Ubuntu 16.04)

+
+

Warning

+

These OS releases are no longer supported and these instructions are kept for reference purposes only.

+
+
+

Warning

+

There is a bug in nginx 1.6.2 under Raspbian 8 that causes it to try to allocate around a gigabyte of RAM when using SSL with SPDY. I seriously recommend using Ubuntu instead, if you can, or disabling SSL altogether.

+
+
sudo apt-get install nginx
+# Set up nginx to pick up our config files
+sudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default
+# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `Active: active (waiting)`
+# Restart NGINX
+sudo systemctl restart nginx
+
+

Java 8 Installation (All Debian Linux variants, on Raspberry Pi)

+
+

Warning

+

OpenJDK 8 is no longer shipping with most distributions and these instructions are kept for reference purposes only.

+
+

To be able to deploy Java apps, we're going to need to install Java (and, since we're going to be doing so on ARM, it's best to use Oracle's runtime). To do that, we're going to use the webupd8team PPA, which has a (cross-platform) Java installer.

+

First, get rid of OpenJDK and import the PPA key:

+
sudo apt-get remove openjdk*
+sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com EEA14886
+
+

Raspbian Jessie

+
+

Warning

+

This OS release is no longer supported and these instructions are kept for reference purposes only.

+
+

For Jessie, we're going to use the trusty version of the installer:

+
sudo tee /etc/apt/sources.list.d/webupd8team.list
+deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main 
+deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
+^D
+
+

Ubuntu 16.04 for ARM

+
+

Warning

+

This OS release is no longer supported and these instructions are kept for reference purposes only.

+
+

For Xenial, we're going to use its own version:

+
sudo tee /etc/apt/sources.list.d/webupd8team.list
+deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main 
+deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main
+^D
+
+

Now perform the actual install:

+
sudo apt-get update
+sudo apt-get install oracle-java8-installer oracle-java8-set-default
+
+

Go Installation (All Debian Linux variants, on Raspberry Pi)

+
+

This is EXPERIMENTAL and may not work at all.

+
+

Raspbian Wheezy/Jessie

+
+

Warning

+

Wheezy and Jessie are no longer supported and these instructions are kept for reference purposes only.

+
+

Since Raspbian's Go compiler is version 1.0.2, we need something more up-to-date.

+
    +
  1. Get an ARM 6 binary tarball
  2. +
  3. Unpack it under the piku user like such:
  4. +
+
sudo su - piku
+tar -zxvf /tmp/go1.5.3.linux-arm.tar.gz
+# remove unnecessary files
+rm -rf go/api go/blog go/doc go/misc go/test
+
+
    +
  1. Give it a temporary GOPATH and install godep:
  2. +
+
sudo su - piku
+GOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get github.com/tools/godep
+# temporary workaround until this is fixed in godep or Go 1.7(?)
+GOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get golang.org/x/sys/unix
+
+

TODO: complete this.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-raspbian-9.4-stretch-10-buster.html b/install/INSTALL-raspbian-9.4-stretch-10-buster.html new file mode 100644 index 0000000..7745016 --- /dev/null +++ b/install/INSTALL-raspbian-9.4-stretch-10-buster.html @@ -0,0 +1,1176 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation on Raspbian Stretch or Buster - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation on Raspbian Stretch or Buster

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+

piku setup is simplified in modern Debian versions, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. However, Stretch still ships with Python 3.5, which means it's not an ideal environment for new deployments on both Intel and ARM devices (Buster, in turn, ships with Python 3.7).

+

Setting up your Raspberry Pi

+

Download and install Raspbian onto an SD card.

+

After you install it is recommended that you do the following to update your installation to the latest available software.

+
# update apt-get
+sudo apt-get update
+
+# upgrade all software
+sudo apt-get upgrade
+
+

Configure your installation. It is recommended that Change Password from the default and setup Locale Options (Locale and Timezone) and EXPAND FILESYSTEM. You will also want to Enable SSH. +

# configure your installation
+sudo raspi-config
+

+

At this point it is a good idea to sudo shutdown -h now and make a backup image of the card.

+

Dependencies

+

Before installing piku, you need to install the following packages:

+
sudo apt-get install -y build-essential certbot git \
+    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \
+    python-certbot-nginx python-dev python-pip python-virtualenv \
+    python3-dev python3-pip python3-click python3-virtualenv \
+    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \
+    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python \
+    uwsgi-plugin-lua5.1 uwsgi-plugin-lua5.2 uwsgi-plugin-luajit
+
+

Set up the piku user, Set up SSH access

+

See INSTALL.md

+

uWSGI Configuration

+

uWSGI in Stretch and Buster requires very little configuration, since it is already properly packaged. All you need to do is create a symlink to the piku configuration file in /etc/uwsgi/apps-enabled:

+
sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini
+sudo systemctl restart uwsgi
+
+

nginx Configuration

+

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

+
server {
+    listen 80 default_server;
+    listen [::]:80 default_server;
+    root /var/www/html;
+    index index.html index.htm;
+    server_name _;
+    location / {
+        try_files $uri $uri/ =404;
+    }
+}
+# replace `PAAS_USERNAME` with the username you created.
+include /home/PAAS_USERNAME/.piku/nginx/*.conf;
+
+

Set up systemd.path to reload nginx upon config changes

+
# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `Active: active (waiting)`
+# Restart NGINX
+sudo systemctl restart nginx
+
+

Notes

+
+

This file was last updated on June 2019

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-ubuntu-16.04.html b/install/INSTALL-ubuntu-16.04.html new file mode 100644 index 0000000..079bf15 --- /dev/null +++ b/install/INSTALL-ubuntu-16.04.html @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + + + + + + + + + + Ubuntu 16.04 - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Ubuntu 16.04

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+
sudo apt-get update
+sudo apt-get -y dist-upgrade
+sudo apt-get -y autoremove
+sudo apt-get install -y tmux vim htop fail2ban uwsgi uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python uwsgi-plugin-tornado-python nginx libxml2-dev libxslt1-dev python-dev zlib1g-dev build-essential git python3-virtualenv python3-pip python3-click
+sudo pip3 install -U click pip
+sudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku
+
+# move to /tmp and grab our distribution files
+cd /tmp
+wget https://raw.githubusercontent.com/piku/piku/master/piku.py
+wget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.path
+wget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.service
+wget https://raw.githubusercontent.com/piku/piku/master/nginx.default.dist
+wget https://raw.githubusercontent.com/piku/piku/master/uwsgi-piku.service
+# Set up nginx to pick up our config files
+sudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default
+# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Restart NGINX
+sudo systemctl restart nginx
+sudo cp /tmp/uwsgi-piku.service /etc/systemd/system/
+# refer to our executable using a link, in case there are more versions installed
+sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku
+# disable the standard uwsgi startup script
+sudo systemctl disable uwsgi
+sudo systemctl enable uwsgi-piku
+sudo su - piku
+mkdir ~/.ssh
+chmod 700 ~/.ssh
+# now copy the piku script to this user account
+cp /tmp/piku.py ~/piku.py
+python3 piku.py setup
+# Now import your SSH key using setup:ssh
+
+sudo systemctl start uwsgi-piku
+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-ubuntu-18.04-bionic.html b/install/INSTALL-ubuntu-18.04-bionic.html new file mode 100644 index 0000000..244a12a --- /dev/null +++ b/install/INSTALL-ubuntu-18.04-bionic.html @@ -0,0 +1,1144 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation on Ubuntu 18.04 LTS (Bionic) - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation on Ubuntu 18.04 LTS (Bionic)

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+

piku setup is simplified in Bionic, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Bionic also ships with Python 3.6, this is an ideal environment for new deployments on both Intel and ARM devices.

+

Dependencies

+

Before installing piku, you need to install the following packages:

+
sudo apt-get update
+sudo apt-get install -y build-essential certbot git \
+    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \
+    python-certbot-nginx python-dev python-pip python-virtualenv \
+    python3-dev python3-pip python3-click python3-virtualenv \
+    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \
+    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python
+
+

Set up the piku user, Set up SSH access

+

See INSTALL.md

+

uWSGI Configuration

+

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

+
sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini
+sudo systemctl restart uwsgi
+
+

nginx Configuration

+

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

+
server {
+    listen 80 default_server;
+    listen [::]:80 default_server;
+    root /var/www/html;
+    index index.html index.htm;
+    server_name _;
+    location / {
+        try_files $uri $uri/ =404;
+    }
+}
+# replace `PAAS_USERNAME` with the username you created.
+include /home/PAAS_USERNAME/.piku/nginx/*.conf;
+
+

Set up systemd.path to reload nginx upon config changes

+
# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `Active: active (waiting)`
+# Restart NGINX
+sudo systemctl restart nginx
+
+

Notes

+
+

This file was last updated on November 2018

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/INSTALL-ubuntu-22.04-jammy.html b/install/INSTALL-ubuntu-22.04-jammy.html new file mode 100644 index 0000000..f181c42 --- /dev/null +++ b/install/INSTALL-ubuntu-22.04-jammy.html @@ -0,0 +1,1144 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation on Ubuntu 22.04 LTS (Jammy) - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation on Ubuntu 22.04 LTS (Jammy)

+
+

Note

+

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

+
+

piku setup is simplified in Jammy, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Jammy also ships with Python 3.10, this is an ideal environment for new deployments on both Intel and ARM devices.

+

Dependencies

+

Before installing piku, you need to install the following packages:

+
sudo apt-get update
+sudo apt-get install -y build-essential certbot git \
+    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \
+    python3-certbot-nginx \
+    python3-dev python3-pip python3-click python3-virtualenv \
+    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python3 \
+    uwsgi-plugin-python3 uwsgi-plugin-tornado-python3
+
+

Set up the piku user, Set up SSH access

+

See INSTALL.md

+

uWSGI Configuration

+

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

+
sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini
+sudo systemctl restart uwsgi
+
+

nginx Configuration

+

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

+
server {
+    listen 80 default_server;
+    listen [::]:80 default_server;
+    root /var/www/html;
+    index index.html index.htm;
+    server_name _;
+    location / {
+        try_files $uri $uri/ =404;
+    }
+}
+# replace `PAAS_USERNAME` with the username you created.
+include /home/PAAS_USERNAME/.piku/nginx/*.conf;
+
+

Set up systemd.path to reload nginx upon config changes

+
# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `Active: active (waiting)`
+# Restart NGINX
+sudo systemctl restart nginx
+
+

Notes

+
+

This file was last updated on November 2018

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/RASPBERRY_PI_QUICKSTART.html b/install/RASPBERRY_PI_QUICKSTART.html new file mode 100644 index 0000000..ab42246 --- /dev/null +++ b/install/RASPBERRY_PI_QUICKSTART.html @@ -0,0 +1,1062 @@ + + + + + + + + + + + + + + + + + + + + + Setting up a Raspberry Pi Piku Server from Scratch - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Setting up a Raspberry Pi Piku Server from Scratch

+
+

Warning

+

These instructions are correct as of April 1st 2016. Quite a bit has changed since then in Raspberry Pi land, so you may need to adjust them accordingly.

+
+

Start by flashing a SD card with the latest Raspbian Jessie Lite image.

+

Do this in your Raspberry Pi as 'pi' user

+

Boot it, launch raspi-config to perform (at least) the following configuration:

+
# as 'pi' user
+sudo raspi-config
+
+
    +
  • 1) expand filesystem
  • +
  • 2) change default user password
  • +
  • 3) set up memory split as you wish (for a headless server, 16MB for GPU)
  • +
+

Optionally:

+
    +
  • 4) set up over-clocking.
  • +
+

Secure your install

+

Delete the existing SSH keys and recreate them (why? read this).

+
# as 'pi' user
+sudo rm -v /etc/ssh/ssh_host_*
+sudo dpkg-reconfigure openssh-server
+sudo reboot
+
+

This will recreate the server keys. Next, update your system:

+
# as 'pi' user
+sudo apt update
+sudo apt upgrade
+
+

Install required packages

+

As of April 2016, the shipping versions with Raspbian are recent enough to run piku:

+

# as 'pi' user
+sudo apt install -y python-virtualenv python-pip git uwsgi uwsgi-plugin-python nginx
+sudo pip install -U click
+sudo reboot
+
+ Meanwhile, go get the goodies while Raspberry Pi is rebooting

+

(We assume you know about ssh keys and have one "at hand", you'll need to copy it)

+

Clone the piku repo somewhere and copy files to your Raspberry Pi

+
# as yourself in your desktop/laptop computer
+scp piku.py uwsgi-piku.service nginx.default.dist pi@your_machine:/tmp
+scp your_public_ssh_key.pub pi@your_machine:/tmp
+
+

Back to the Pi

+

Prepare uWSGI (part one): +

# as 'pi' user
+sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku
+sudo systemctl disable uwsgi
+sudo cp /tmp/uwsgi-piku.service /etc/systemd/system/
+sudo systemctl daemon-reload
+sudo systemctl enable uwsgi-piku
+

+

Prepare nginx:

+
sudo apt-get install nginx
+# Set up nginx to pick up our config files
+sudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default
+# Set up systemd.path to reload nginx upon config changes
+sudo cp ./piku-nginx.{path, service} /etc/systemd/system/
+sudo systemctl enable piku-nginx.{path,service}
+sudo systemctl start piku-nginx.path
+# Check the status of piku-nginx.service
+systemctl status piku-nginx.path # should return `Active: active (waiting)`
+# Restart NGINX
+sudo systemctl restart nginx
+
+

Create 'piku' user and set it up

+
# as 'pi' user
+sudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku
+sudo su - piku
+# this is now done as 'piku' user
+mkdir ~/.ssh
+chmod 700 ~/.ssh
+cp /tmp/piku.py ~/piku.py
+python piku.py setup
+python piku.py setup:ssh /tmp/id_rsa.pub
+# return to 'pi' user
+exit
+
+

Prepare uWSGI (part two):

+

# as 'pi' user
+sudo systemctl start uwsgi-piku
+sudo systemctl status uwsgi-piku.service
+
+If you're still here, odds are your Pi is ready for work

+

Testing

+

Go back to your machine and try these commands:

+
# as yourself in your desktop/laptop computer
+ssh piku@your_machine
+
+Usage: piku.py [OPTIONS] COMMAND [ARGS]...
+
+  The smallest PaaS you've ever seen
+
+Options:
+  --help  Show this message and exit.
+
+Commands:
+  apps              List applications
+  config            Show application configuration
+  config:get        Retrieve a configuration setting
+  config:live       Show live configuration settings
+  config:set        Set a configuration setting
+  deploy            Deploy an application
+  destroy           Destroy an application
+  disable           Disable an application
+  enable            Enable an application
+  logs              Tail an application log
+  ps                Show application worker count
+  ps:scale          Show application configuration
+  restart           Restart an application
+  setup             Initialize paths
+  setup:ssh         Set up a new SSH key
+Connection to your_machine closed.
+
+

If you find any bugs with this quickstart guide, please let Luis Correia know ;)

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install/index.html b/install/index.html new file mode 100644 index 0000000..d23bc53 --- /dev/null +++ b/install/index.html @@ -0,0 +1,1113 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Installation

+

TL;DR:

+

If you are in a hurry to install it on your server and are OK with downloading random scripts off the Internet, ssh in as root and run this:

+
curl https://piku.github.io/get | sh
+
+
+

Warning

+

This installation method is not recommended for production servers, and was added after an incredible amount of requests for a one-liner. It is safe to use on a fresh server, but you MUST always read scripts before running them.

+
+ +

piku requires Python 3, uWSGI, ssh, and a Linux distribution that runs systemd, such as Raspbian Jessie/Debian 8+/Ubuntu/Fedora/CentOS.

+

There are 3 main ways to install piku on a server:

+
    +
  1. +

    Use piku-bootstrap to do it if your server is already provisioned (that is what the TL;DR command does)

    +
  2. +
  3. +

    Use cloud-init to do it automatically at VPS build time (see the cloud-init repository, which has examples for most common cloud providers)

    +
  4. +
  5. +

    Manually: Follow the guide below or one of the platform-specfic guides.

    +
  6. +
+

There is also an Ansible playbook.

+
+

Contributing

+

If you are running piku on specific Linux versions, feel free to contribute your own instructions.

+
+

Generic Installation Steps

+

Set up the piku user

+

piku requires a separate user account to run. To create a new user with the right group membership (we're using the built-in www-data group because it's generally thought of as a less-privileged group), enter the following command:

+
# pick a username
+export PAAS_USERNAME=piku
+# create it
+sudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data $PAAS_USERNAME
+# copy & setup piku.py
+sudo su - $PAAS_USERNAME -c "wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup"
+
+

The setup output should be something like this:

+
Creating '/home/piku/.piku/apps'.
+Creating '/home/piku/.piku/repos'.
+Creating '/home/piku/.piku/envs'.
+Creating '/home/piku/.piku/uwsgi'.
+Creating '/home/piku/.piku/uwsgi-available'.
+Creating '/home/piku/.piku/uwsgi-enabled'.
+Creating '/home/piku/.piku/logs'.
+Setting '/home/piku/piku.py' as executable.
+
+

Set up ssh access

+

If you don't have an ssh public key (or never used one before), you need to create one. The following instructions assume you're running some form of UNIX on your own machine (Windows users should check the documentation for their ssh client, unless you have Cygwin installed).

+

On your own machine, issue the ssh-keygen command and follow the prompts:

+
ssh-keygen 
+
+Generating public/private rsa key pair.
+Enter file in which to save the key (/home/youruser/.ssh/id_rsa): 
+Created directory '/home/youruser/.ssh'.
+Enter passphrase (empty for no passphrase): 
+Enter same passphrase again: 
+Your identification has been saved in /home/youruser/.ssh/id_rsa.
+Your public key has been saved in /home/youruser/.ssh/id_rsa.pub.
+The key fingerprint is:
+85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff youruser@yourlaptop.lan
+The key's randomart image is:
++--[ RSA 2048]----+
+<...>
++-----------------+
+
+

Copy the resulting id_rsa.pub (or equivalent, just make sure it's the public file) to your piku server and do the following:

+
sudo su - piku
+python3 piku.py setup:ssh /tmp/id_rsa.pub
+
+Adding key '85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff'.
+
+

Now if you look at .ssh/authorized_keys, you should see something like this:

+
sudo su - piku
+cat .ssh/authorized_keys
+
+command="FINGERPRINT=85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff NAME=default /home/piku/piku.py $SSH_ORIGINAL_COMMAND",no-agent-forwarding,no-user-rc,no-X11-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhTYZi/qeJBKgU3naI8FNjQgeMYnMsEtqrOmUc4lJoPNH2qBUTNkzwThGqsBm2HNLPURWMiEifBqF+kRixMud67Co7Zs9ys7pwFXkJB9bbZasd2JCGfVZ4UYXHnvgejSWkLAV/4bObhsbP2vWOmbbm91Cwn+PGJgoiW08yrd45lsDmgv9cUAJS3e8LkgVELvIDg49yM5ArB88oxwMEoUgWU2OniHmH0o1zw5I8WXHRhHOjb8cGsdTYfXEizRKKRTM2Mu6dKRt1GNL0UbWi8iS3uJHGD3AcQ4ApdMl5X0gTixKHponStOrSMy19/ltuIy8Sjr7KKPxz07ikMYr7Vpcp youruser@yourlaptop.lan
+
+

This line is what enables you to ssh (and perform git over ssh operations) to the piku user without a password, verifying your identity via your public key, restricting what can be done remotely and passing on to piku itself the commands you'll be issuing.

+

Test

+

From your machine, do:

+
ssh piku@pi.lan
+
+Usage: piku.py [OPTIONS] COMMAND [ARGS]...
+
+  The smallest PaaS you've ever seen
+
+Options:
+  --help  Show this message and exit.
+
+Commands:
+  apps              List applications
+  config            Show application configuration
+  config:get        Retrieve a configuration setting
+  config:live       Show live configuration settings
+  config:set        Set a configuration setting
+  deploy            Deploy an application
+  destroy           Destroy an application
+  disable           Disable an application
+  enable            Enable an application
+  logs              Tail an application log
+  ps                Show application worker count
+  ps:scale          Show application configuration
+  restart           Restart an application
+  setup             Initialize paths
+  setup:ssh         Set up a new SSH key
+Connection to pi.lan closed.
+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/manage.html b/manage.html new file mode 100644 index 0000000..79ddc2d --- /dev/null +++ b/manage.html @@ -0,0 +1,1055 @@ + + + + + + + + + + + + + + + + + + + + + + + Manage - Piku + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Manage

+

Managing your Piku apps

+

To make life easier you can also install the piku helper into your path (e.g. ~/bin):

+
curl https://raw.githubusercontent.com/piku/piku/master/piku > ~/bin/piku && chmod 755 ~/bin/piku
+
+

This shell script simplifies working with multiple piku remotes and applications:

+
    +
  • If you cd into a project folder that has a git remote called piku the helper will infer the remote server and app name and use them automatically:
  • +
+
$ piku logs
+$ piku config:set MYVAR=12
+$ piku stop
+$ piku deploy
+$ piku destroy
+$ piku # <- show available remote and local commands
+
+
    +
  • If you are starting a new project, piku init will download example Procfile and ENV files into the current folder:
  • +
+
$ piku init
+Wrote ./ENV file.
+Wrote ./Procfile.
+
+
    +
  • The piku helper also lets you pass settings to the underlying SSH command: -t to run interactive commands remotely, and -A to proxy authentication credentials in order to do remote git pulls.
  • +
+

For instance, here's how to use the -t flag to obtain a bash shell in the app directory of one of your piku apps:

+
$ piku -t run bash
+Piku remote operator.
+Server: piku@cloud.mccormickit.com
+App: dashboard
+
+piku@piku:~/.piku/apps/dashboard$ ls
+data  ENV  index.html  package.json  package-lock.json  Procfile  server.wisp
+
+

Monitoring

+

Besides using the logs command, there is a sample monitoring application to keep tabs on resource usage.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.js b/search/search_index.js new file mode 100644 index 0000000..9244ec6 --- /dev/null +++ b/search/search_index.js @@ -0,0 +1 @@ +var __index = {"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"Home","text":"

piku, inspired by dokku, allows you do git push deployments to your own servers, no matter how small they are.

Installing Using/Features Managing and Monitoring Examples Web App Tutorial

"},{"location":"index.html#demo","title":"Demo","text":""},{"location":"index.html#workflow","title":"Workflow","text":"

piku supports a Heroku-like workflow:

  • Create a git SSH remote pointing to your piku server with the app name as repo name: git remote add piku piku@yourserver:appname.
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • It then looks at a Procfile and starts matching worker processes.
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • You can also bake application and nginx settings into an ENV configuration file.

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

"},{"location":"index.html#project-activity","title":"Project Activity","text":"

piku is considered STABLE. It is actively maintained, but \"actively\" here means the feature set is pretty much done, so it is only updated when new language runtimes are added or reproducible bugs crop up.

It currently requires Python 3.7 or above, since even though 3.8+ is now the baseline Python 3 version in Ubuntu LTS 20.04 and Debian 11 has already moved on to 3.9, there are no substantial differences between those versions.

"},{"location":"index.html#deprecation-notices","title":"Deprecation Notices","text":"

Since most of its users run it on LTS distributions, there is no rush to introduce disruption. The current plan is to throw up a warning for older runtimes and do regression testing for 3.7-3.12 (replacing the current bracket of tests from 3.5 to 3.8), and make sure we also cover Ubuntu 22.04, Debian 11 and Fedora 37+.

"},{"location":"FAQ.html","title":"FAQ","text":"

Q: Why piku?

A: Partly because it's started out on the Raspberry Pi, because it's Japanese onomatopeia for 'twitch' or 'jolt', and because we knew the name would be cute and amusing.

Q: Why Python/why not Go?

A: We actually thought about doing this in Go right off the bat, but click is so cool and we needed to have uwsgi running anyway, so we caved in. But possible future directions are likely to take something like suture and port this across (or just use Caddy), doing away with uwsgi altogether.

Go also (at the time) did not have a way to vendor dependencies that we were comfortable with, and that is also why Go support fell behind. Hopefully that will change soon.

Q: Does it run under Python 3?

A: Right now, it only runs on Python 3, even though it can deploy apps written in both major versions. It began its development using 2.7 and usingclick for abstracting the simpler stuff, and we eventually switched over to 3.5 once it was supported in Debian Stretch and Raspbian since we wanted to make installing it on the Raspberry Pi as simple as possible.

Q: Why not just use dokku?

A: We used dokku daily for many projects. But it relied on a number of x64 containers that needed to be completely rebuilt for ARM, and when we decided we needed something like this (March 2016) that was barely possible - docker itself was not fully baked for ARM yet, and people were at the time just starting to get herokuish and buildstep to build on ARM.

"},{"location":"features.html","title":"Features","text":""},{"location":"features.html#workflow","title":"Workflow","text":"

piku supports a Heroku-like workflow:

  • Create a git SSH remote pointing to your piku server with the app name as repo name: git remote add piku piku@yourserver:appname.
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • For Python, it segregates each app's dependencies into a virtualenv.
  • For Go, it defines a separate GOPATH for each app.
  • For Node, it installs whatever is in package.json into node_modules.
  • For Java, it builds your app depending on either pom.xml or build.gradle file.
  • For Clojure, it can use either leiningen or the Clojure CLI and a deps.edn file.
  • For Ruby, it does bundle install of your gems in an isolated folder.
  • It then looks at a Procfile and starts the relevant workers using uwsgi as a generic process manager.
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • You can also bake application and nginx settings into an ENV configuration file.

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

"},{"location":"features.html#virtual-hosts-and-ssl","title":"Virtual Hosts and SSL","text":"

piku has full virtual host support - i.e., you can host multiple apps on the same VPS and use DNS aliases to access them via different hostnames.

piku will also set up either a private certificate or obtain one via Let's Encrypt to enable SSL.

If you are on a LAN and are accessing piku from macOS/iOS/Linux clients, you can try using piku/avahi-aliases to announce different hosts for the same IP address via Avahi/mDNS/Bonjour.

"},{"location":"features.html#caching-and-static-paths","title":"Caching and Static Paths","text":"

Besides static sites, piku also supports directly mapping specific URL prefixes to filesystem paths (to serve static assets) or caching back-end responses (to remove load from applications).

These features are configured by setting appropriate values in the ENV file.

"},{"location":"features.html#supported-platforms","title":"Supported Platforms","text":"

piku is intended to work in any POSIX-like environment where you have Python, nginx, uwsgi and ssh: it has been deployed on Linux, FreeBSD, [Cygwin][cygwin] and the [Windows Subsystem for Linux][wsl].

As a baseline, it began its development on an original 256MB Rasbperry Pi Model B, and still runs reliably on it.

But its main use is as a micro-PaaS to run applications on cloud servers with both Intel and ARM CPUs, with either Debian or Ubuntu Linux as target platforms.

"},{"location":"features.html#supported-runtimes","title":"Supported Runtimes","text":"

piku currently supports apps written in Python, Node, Clojure, Java and a few other languages (like Go) in the works.

But as a general rule, if it can be invoked from a shell, it can be run inside piku.

"},{"location":"manage.html","title":"Manage","text":""},{"location":"manage.html#managing-your-piku-apps","title":"Managing your Piku apps","text":"

To make life easier you can also install the piku helper into your path (e.g. ~/bin):

curl https://raw.githubusercontent.com/piku/piku/master/piku > ~/bin/piku && chmod 755 ~/bin/piku\n

This shell script simplifies working with multiple piku remotes and applications:

  • If you cd into a project folder that has a git remote called piku the helper will infer the remote server and app name and use them automatically:
$ piku logs\n$ piku config:set MYVAR=12\n$ piku stop\n$ piku deploy\n$ piku destroy\n$ piku # <- show available remote and local commands\n
  • If you are starting a new project, piku init will download example Procfile and ENV files into the current folder:
$ piku init\nWrote ./ENV file.\nWrote ./Procfile.\n
  • The piku helper also lets you pass settings to the underlying SSH command: -t to run interactive commands remotely, and -A to proxy authentication credentials in order to do remote git pulls.

For instance, here's how to use the -t flag to obtain a bash shell in the app directory of one of your piku apps:

$ piku -t run bash\nPiku remote operator.\nServer: piku@cloud.mccormickit.com\nApp: dashboard\n\npiku@piku:~/.piku/apps/dashboard$ ls\ndata  ENV  index.html  package.json  package-lock.json  Procfile  server.wisp\n
"},{"location":"manage.html#monitoring","title":"Monitoring","text":"

Besides using the logs command, there is a sample monitoring application to keep tabs on resource usage.

"},{"location":"community/index.html","title":"Community","text":"

There is an active discussion forum for piku where you can ask questions, share your deployments, and discuss new features, and we have a published roadmap.

"},{"location":"community/index.html#linuxconf-talk","title":"LinuxConf Talk","text":""},{"location":"community/index.html#references","title":"References","text":"
  • Fast Web App Tutorial

Contributing Examples

"},{"location":"community/contributing.html","title":"Contributing","text":"

piku is a stable project, but we welcome contributions that:

  • Help us move beyond Python 3.8+ (which is the current target due to Linux LTS distribution alignment)
  • Help us do better automated testing
  • Improve documentation (some docs are a bit old by now)
  • Help us deploy piku in various Linux distributions and environments (check the sister repositories in the project)
  • Provide sample deployments of common applications (again, check the sister repositories in the project)
  • Allow us to better support more language runtimes
  • Allow us to support different web servers or process supervisors (Caddy springs to mind as a popular alternative for small VPSes)
"},{"location":"community/contributing.html#code-size-style","title":"Code Size / Style","text":"

By its very nature, piku is a very small program. By today's standards of all-encompassing solutions this may seem strange, but it would benefit from being kept that way.

  • Small and focused PRs. Please don't include changes that don't address the subject of your PR.
  • Follow the style of importing functions directly e.g. from os.path import abspath
  • Follow PEP8.

So please keep that in mind when contributing.

For instance, if your runtime or framework needs additional setup, it might be better to contribute an utility script to run in a release entry in the Procfile rather than patching piku.py--but do hack at it if that is the best way to achieve it.

"},{"location":"community/examples.html","title":"Example Applications","text":"

Besides the bundled examples, there are a number of community-contributed examples that can be deployed using piku.

They are meant to be illustrative of the kinds of applications that can be deployed using piku, and are not meant to be exhaustive.

"},{"location":"community/examples.html#pre-built-apps-and-tools","title":"Pre-built Apps and Tools","text":"
  • avahi-aliases, a tool for announcing multiple hostnames on the same IP address via Avahi/mDNS/Bonjour.
  • Node-RED
  • Gitea
  • WebDAV, a simple WebDAV server
  • SnapDrop, a simple LAN file sharing application using Express.
"},{"location":"community/examples.html#phoenix","title":"Phoenix","text":"
  • Sample Phoenix App
"},{"location":"community/examples.html#python","title":"Python","text":"
  • Sample Python App
  • Sample Django App
"},{"location":"community/examples.html#ruby-on-rails","title":"Ruby on Rails","text":"
  • Sample Ruby on Rails App
"},{"location":"community/examples.html#nodejs","title":"NodeJS","text":"
  • Sample NodeJS App
  • Piku Monitor - a simple monitoring tool for piku apps, written in ClojureScript
"},{"location":"community/examples.html#java","title":"Java","text":"
  • Sample Java App
"},{"location":"community/examples.html#clojure","title":"Clojure","text":"
  • Sample Clojure App
"},{"location":"community/examples.html#bare-metal-c","title":"Bare Metal C","text":"
  • Sample C App
"},{"location":"configuration/index.html","title":"Configuring Applications","text":"

A minimal piku app has a root directory structure similar to this:

ENV\nProcfile\napp.py\nworker.py\nrequirements.txt\n

ENV Procfile

"},{"location":"configuration/index.html#configuration-files","title":"Configuration Files","text":"

piku relies on two configuration files shipped with your app to determine how to run it: ENV and Procfile.

  • The ENV file contains environment variables that allow you to configure both piku and your app, following the 12-factor app approach.
  • The Procfile tells piku what kind of workers to run
"},{"location":"configuration/index.html#runtime-detection","title":"Runtime Detection","text":"

Besides ENV and Procfile, piku also looks for runtime-specific files in the root of your app's directory:

  • If there's a requirements.txt file at the top level, then the app is assumed to require Python.
  • If there's a Gemfile at the top level, then the app is assumed to require Ruby.
  • If there's a package.json file at the top level, then the app is assumed to require Node.js.
  • If there's a pom.xml or a build.gradle file at the top level, then the app is assumed to require Java.
  • If there's a deps.edn or project.clj file at the top level, then the app is assumed to require Clojure.
  • If there's a Godeps file at the top level, then the app is assumed to require Go.

Info

go.mod support is currently in development.

These are not exclusive, however. There is also a sample Phoenix app that demonstrates how to add support for additional runtimes.

"},{"location":"configuration/env.html","title":"ENV Variables","text":"

You can configure deployment settings by placing special variables in an ENV file deployed with your app. This file should be placed in the root of your app's directory, and can look something like this:

# variables are global and can be replaced\nSETTING1=True\nSETTING2=${SETTING1}/Maybe\n\n# addr:port\nPORT=9080\nBIND_ADDRESS=0.0.0.0\n\n# the max number the worker will process\nRANGE=10\n\n# worker sleep interval between prints\nINTERVAL=1\n
"},{"location":"configuration/env.html#runtime-settings","title":"Runtime Settings","text":"
  • PIKU_AUTO_RESTART (boolean, defaults to true): Piku will restart all workers every time the app is deployed. You can set it to 0/false if you prefer to deploy first and then restart your workers separately.
"},{"location":"configuration/env.html#python","title":"Python","text":"
  • PYTHON_VERSION (int): Forces Python 3

Warning

This is mostly deprecated (since piku now runs solely on Python 3.x), but is kept around for legacy compatibility.

"},{"location":"configuration/env.html#node","title":"Node","text":"
  • NODE_VERSION: installs a particular version of node for your app if nodeenv is found on the path. Optional; if not specified, the system-wide node package is used.

Note

you will need to stop and re-deploy the app to change the node version in a running app.

"},{"location":"configuration/env.html#network-settings","title":"Network Settings","text":"
  • BIND_ADDRESS: IP address to which your app will bind (typically 127.0.0.1)
  • PORT: TCP port for your app to listen in (if deploying your own web listener).
  • DISABLE_IPV6 (boolean): if set to true, it will remove IPv6-specific items from the nginx config, which will accept only IPv4 connections
"},{"location":"configuration/env.html#uwsgi-settings","title":"uWSGI Settings","text":"
  • UWSGI_MAX_REQUESTS (integer): set the max-requests option to determine how many requests a worker will receive before it's recycled.
  • UWSGI_LISTEN (integer): set the listen queue size.
  • UWSGI_PROCESSES (integer): set the processes count.
  • UWSGI_ENABLE_THREADS (boolean): set the enable-threads option.
  • UWSGI_LOG_MAXSIZE (integer): set the log-maxsize.
  • UWSGI_LOG_X_FORWARDED_FOR (boolean): set the log-x-forwarded-for option.
  • UWSGI_GEVENT: enable the Python 2 gevent plugin
  • UWSGI_ASYNCIO (integer): enable the Python 2/3 asyncio plugin and set the number of tasks
  • UWSGI_INCLUDE_FILE: a uwsgi config file in the app's dir to include - useful for including custom uwsgi directives.
  • UWSGI_IDLE (integer): set the cheap, idle and die-on-idle options to have workers spawned on demand and killed after n seconds of inactivity.

Note

UWSGI_IDLE applies to all the workers, so if you have UWSGI_PROCESSES set to 4, they will all be killed simultaneously. Support for progressive scaling of workers via cheaper and similar uWSGI configurations will be added in the future.

"},{"location":"configuration/env.html#nginx-settings","title":"nginx Settings","text":"
  • NGINX_SERVER_NAME: set the virtual host name associated with your app
  • NGINX_STATIC_PATHS (string, comma separated list): set an array of /url:path values that will be served directly by nginx
  • NGINX_CLOUDFLARE_ACL (boolean, defaults to false): activate an ACL allowing access only from Cloudflare IPs
  • NGINX_HTTPS_ONLY (boolean, defaults to false): tell nginx to auto-redirect non-SSL traffic to SSL site.

Note

if used with Cloudflare, NGINX_HTTPS_ONLY will cause an infinite redirect loop - keep it set to false, use NGINX_CLOUDFLARE_ACL instead and add a Cloudflare Page Rule to \"Always Use HTTPS\" for your server (use domain.name/* to match all URLs).

"},{"location":"configuration/env.html#nginx-caching","title":"nginx Caching","text":"

When NGINX_CACHE_PREFIXES is set, nginx will cache requests for those URL prefixes to the running application (uwsgi-like or web workers) and reply on its own for NGINX_CACHE_TIME to the outside. This is meant to be used for compute-intensive operations like resizing images or providing large chunks of data that change infrequently (like a sitemap).

The behavior of the cache can be controlled with the following variables:

  • NGINX_CACHE_PREFIXES (string, comma separated list): set an array of /url values that will be cached by nginx
  • NGINX_CACHE_SIZE (integer, defaults to 1): set the maximum size of the nginx cache, in GB
  • NGINX_CACHE_TIME (integer, defaults to 3600): set the amount of time (in seconds) that valid backend replies (200 304) will be cached.
  • NGINX_CACHE_REDIRECTS (integer, defaults to 3600): set the amount of time (in seconds) that backend redirects (301 307) will be cached.
  • NGINX_CACHE_ANY (integer, defaults to 3600): set the amount of time (in seconds) that any other replies (other than errors) will be cached.
  • NGINX_CACHE_CONTROL (integer, defaults to 3600): set the amount of time (in seconds) for cache control headers (Cache-Control \"public, max-age=3600\")
  • NGINX_CACHE_EXPIRY (integer, defaults to 86400): set the amount of time (in seconds) that cache entries will be kept on disk.
  • NGINX_CACHE_PATH (string, detaults to ~piku/.piku/<appname>/cache): location for the nginx cache data.

Note

NGINX_CACHE_PATH will be completely managed by nginx and cannot be removed by Piku when the application is destroyed. This is because nginx sets the ownership for the cache to be exclusive to itself, and the piku user cannot remove that file tree. So you will either need to clean it up manually after destroying the app or store it in a temporary filesystem (or set the piku user to the same UID as www-data, which is not recommended).

Right now, there is no provision for cache revalidation (i.e., nginx asking your backend if the cache entries are still valid), since that requires active application logic that varies depending on the runtime--nginx will only ask your backend for new content when NGINX_CACHE_TIME elapses. If you require that kind of behavior, that is still possible via NGINX_INCLUDE_FILE.

Also, keep in mind that using nginx caching with a static website worker will not work (and there's no point to it either).

"},{"location":"configuration/env.html#nginx-overrides","title":"nginx Overrides","text":"
  • NGINX_INCLUDE_FILE: a file in the app's dir to include in nginx config server section - useful for including custom nginx directives.
  • NGINX_ALLOW_GIT_FOLDERS: (boolean) allow access to .git folders (default: false, blocked)
"},{"location":"configuration/env.html#acme-settings","title":"Acme Settings","text":"
  • ACME_ROOT_CA: set the certificate authority that Acme should use to generate public ssl certificates (string, default: letsencrypt.org)
"},{"location":"configuration/procfile.html","title":"Procfile format","text":"

piku supports a Heroku-like Procfile that you provide to indicate how to run one or more application processes (what Heroku calls \"dynos\"):

web: embedded_server --port $PORT\nworker: background_worker\n
"},{"location":"configuration/procfile.html#worker-types","title":"Worker Types","text":"

piku supports six different kinds of worker processes:

# A module to be loaded by uwsgi to serve HTTP requests\nwsgi: module.submodule:app\n# A background worker, using the default name\nworker: python long_running_script.py\n# Another worker with a different name\nfetcher: python fetcher.py\n# Simple cron expression: minute [0-59], hour [0-23], day [0-31], month [1-12], weekday [1-7] (starting Monday, no ranges allowed on any field)\ncron: 0 0 * * * python midnight_cleanup.py\nrelease: python initial_cleanup.py\n
Each of these has slightly different features:

"},{"location":"configuration/procfile.html#wsgi","title":"wsgi","text":"

wsgi workers are Python-specific and must be specified in the format dotted.module:entry_point. uwsgi will load the specified module and call the entry_point function to start the application, handling all the HTTP requests directly (your Python code will run the handlers, but will run as a part of the uwsgi process).

uwsgi will automatically spawn multiple workers for you, and you can control the number of workers via the UWSGI_PROCESSES environment variable.

Also, in this mode uwsgi will talk to nginx via a Unix socket, so you don't need to worry about the HTTP server at all.

"},{"location":"configuration/procfile.html#web","title":"web","text":"

web workers can be literally any executable that uwsgi can run and that will serve HTTP requests. They must (by convention) honor the PORT environment variable, so that the nginx reverse proxy can talk to them.

"},{"location":"configuration/procfile.html#worker","title":"worker","text":"

worker processes are just standard processes that run in the background. They can actually have arbitrary names, and the idea is that they would perform any tasks your app requires that isn't directly related to serving web pages.

"},{"location":"configuration/procfile.html#static","title":"static","text":"

static workers are simply a way to direct nginx to mount the first argument as a static path and serve it directly. This is useful for serving (and caching) static files directly from your app, without having to go through application code.

Note

See nginx caching for more information on how to configure nginx to serve static files.

"},{"location":"configuration/procfile.html#cron","title":"cron","text":"

A cron worker is a process that runs at a specific time (or intervals), using a simplified crontab expression preceding the command to be run (e.g. cron: */5 * * * * python batch.py to run a batch every 5 minutes)

Multiple crons can be scheduled by simply adding multiple entries with cron prefix.

...\ncron1: */5 * * * * python batch.py\ncron2: 0 * * * * python batch.py\n...\n

Warning

crontab expressions are simplified and do not support ranges or lists, only single values, splits and * (wildcard).

"},{"location":"configuration/procfile.html#alternatives","title":"alternatives","text":"

Python apscheduler - Provides it's own library for scheduling jobs, and honors the full regex of crontab.

"},{"location":"configuration/procfile.html#preflight","title":"preflight","text":"

preflight is a special \"worker\" that is run once before the app is deployed and dependencies are installed (can be useful for cleanups, like resetting caches, removing older versions of files, etc).

"},{"location":"configuration/procfile.html#release","title":"release","text":"

release which is a special worker that is run once when the app is deployed, after installing dependencies (can be useful for build steps).

Any worker will be automatically respawned upon failure ([uWSGI][uwsgi] will automatically shun/throttle crashy workers).

"},{"location":"design/index.html","title":"Design","text":"

The idea behind piku is that it provides the simplest possible way to deploy web apps or services. Simplicity comes at the expense of features, of course, and this document tries to capture the trade-offs.

"},{"location":"design/index.html#core-values","title":"Core values","text":"
  • Run on low end devices.
  • Accessible to hobbyists and K-12 schools.
  • ~1500 lines readable code.
  • Functional code style.
  • Few (single?) dependencies
  • 12 factor app.
  • Simplify user experience.
  • Cover 80% of common use cases.
  • Sensible defaults for all features.
  • Leverage distro packages in Raspbian/Debian/Ubuntu (Alpine and RHEL support is WIP)
  • Leverage standard tooling (git, ssh, uwsgi, nginx).
  • Preserve backwards compatibility where possible
"},{"location":"design/index.html#why-uwsgi","title":"Why uWSGI","text":"

Using uWSGI in emperor mode gives us the following features for free:

  • Painless Python WSGI and virtualenv integration
  • Process monitoring, restarting, basic resource limiting, etc.
  • Basic security scaffolding, beginning with the ability to define uid/gid on a per-app basis (if necessary)
"},{"location":"design/index.html#application-packaging","title":"Application packaging","text":"

An app is simply a git repository with some additional files on the top level, the most important of which is the Procfile.

"},{"location":"design/index.html#env-settings","title":"ENV settings","text":"

Since piku is targeted at 12 Factor apps, it allows you to set environment variables in a number of ways, the simplest of which is by adding an ENV file to your repository:

SETTING1=foo\n# piku supports comments and variable expansion\nSETTING2=${SETTING1}/bar\n# if this isn't defined, piku will assign a random TCP port\nPORT=9080\n

See configuration for a full list of environment variables that can also be set.

Environment variables can be changed after deployment using the config:set command.

"},{"location":"design/index.html#runtime-detection","title":"Runtime detection","text":"

piku follows a very simple set of rules to determine what kind of runtime is required, outlined in the configuration section

"},{"location":"design/index.html#application-isolation","title":"Application isolation","text":"

Application isolation can be tackled at several levels, the most relevant of which being:

  • OS/process isolation
  • Runtime/library isolation

For 1.0, all applications run under the same uid, under separate branches of the same filesystem, and without any resource limiting.

Ways to improve upon that (short of full containerisation) typically entail the use of a chroot jail environment (which is available under most POSIX systems in one form or another) or Linux kernel namespaces - both of which are supported by uWSGI (which can also handle resource limiting to a degree).

As to runtime isolation, piku only provides virtualenv support until 1.0. Python apps can run under Python 2 or 3 depending on the setting of PYTHON_VERSION, but will always use pre-installed interpreters (Go, Node and Java support will share these limitations in each major version).

"},{"location":"design/index.html#internals","title":"Internals","text":"

piku uses two git repositories for each app: a bare repository for client push, and a clone for deployment (which is efficient in terms of storage since git tries to use hardlinks on local clones whenever possible).

This separation makes it easier to cope with long/large deployments and restore apps to a pristine condition, since the app will only go live after the deployment clone is reset (via git checkout -f).

"},{"location":"design/index.html#components","title":"Components","text":"

This diagram outlines how its components interact:

graph TD\n    subgraph \"systemd\"\n        nginx([nginx])\n        sshd([sshd])\n        uwsgi([uwsgi])\n    end\n    uwsgi-->vassal([vassal])\n    vassal-.->uwsgi.ini\n    sshd-->piku([piku.py])-->repo[git repo]\n    Procfile-->uwsgi.ini\n    an-->app\n    repo---app\n    repo---ENV\n    repo---requirements.txt\n    repo---Procfile\n    requirements.txt-->virtualenv\n    uwsgi.ini-->virtualenv\n    ENV-->an\n    ENV-->uwsgi.ini\n    nginx-.-mn[master<br>nginx.conf]\n    mn-.-an[app<br>nginx.conf]
"},{"location":"design/plugins.html","title":"Plugins","text":"

Thanks to jsenin, piku currently has experimental support for external plugins via #129.

Plugins are inserted into the commands listing and can perform arbitrary actions. At this moment there are no official plugins, but here is an example file that should be placed at ~/.piku/plugins/postgres/__init__.py that could contain the commands to manage a Postgres database:

import click\n\n@click.group()\ndef postgres():\n    \"\"\"Postgres command plugin\"\"\"\n    pass\n\n@postgres.command(\"postgres:create\")\n@click.argument('name')\n@click.argument('user')\n@click.argument('password')\ndef postgres_create():\n    \"\"\"Postgres create a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:drop\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres drops a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:import\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres import a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:dump\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres dumps a database SQL\"\"\"\n    pass\n\ndef cli_commands():\n    return postgres\n
"},{"location":"install/index.html","title":"Installation","text":""},{"location":"install/index.html#tldr","title":"TL;DR:","text":"

If you are in a hurry to install it on your server and are OK with downloading random scripts off the Internet, ssh in as root and run this:

curl https://piku.github.io/get | sh\n

Warning

This installation method is not recommended for production servers, and was added after an incredible amount of requests for a one-liner. It is safe to use on a fresh server, but you MUST always read scripts before running them.

"},{"location":"install/index.html#recommended-guaranteed-safe-installation-methods","title":"Recommended, Guaranteed Safe Installation Methods","text":"

piku requires Python 3, uWSGI, ssh, and a Linux distribution that runs systemd, such as Raspbian Jessie/Debian 8+/Ubuntu/Fedora/CentOS.

There are 3 main ways to install piku on a server:

  1. Use piku-bootstrap to do it if your server is already provisioned (that is what the TL;DR command does)

  2. Use cloud-init to do it automatically at VPS build time (see the cloud-init repository, which has examples for most common cloud providers)

  3. Manually: Follow the guide below or one of the platform-specfic guides.

There is also an Ansible playbook.

Contributing

If you are running piku on specific Linux versions, feel free to contribute your own instructions.

"},{"location":"install/index.html#generic-installation-steps","title":"Generic Installation Steps","text":""},{"location":"install/index.html#set-up-the-piku-user","title":"Set up the piku user","text":"

piku requires a separate user account to run. To create a new user with the right group membership (we're using the built-in www-data group because it's generally thought of as a less-privileged group), enter the following command:

# pick a username\nexport PAAS_USERNAME=piku\n# create it\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data $PAAS_USERNAME\n# copy & setup piku.py\nsudo su - $PAAS_USERNAME -c \"wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup\"\n

The setup output should be something like this:

Creating '/home/piku/.piku/apps'.\nCreating '/home/piku/.piku/repos'.\nCreating '/home/piku/.piku/envs'.\nCreating '/home/piku/.piku/uwsgi'.\nCreating '/home/piku/.piku/uwsgi-available'.\nCreating '/home/piku/.piku/uwsgi-enabled'.\nCreating '/home/piku/.piku/logs'.\nSetting '/home/piku/piku.py' as executable.\n
"},{"location":"install/index.html#set-up-ssh-access","title":"Set up ssh access","text":"

If you don't have an ssh public key (or never used one before), you need to create one. The following instructions assume you're running some form of UNIX on your own machine (Windows users should check the documentation for their ssh client, unless you have Cygwin installed).

On your own machine, issue the ssh-keygen command and follow the prompts:

ssh-keygen \n\nGenerating public/private rsa key pair.\nEnter file in which to save the key (/home/youruser/.ssh/id_rsa): \nCreated directory '/home/youruser/.ssh'.\nEnter passphrase (empty for no passphrase): \nEnter same passphrase again: \nYour identification has been saved in /home/youruser/.ssh/id_rsa.\nYour public key has been saved in /home/youruser/.ssh/id_rsa.pub.\nThe key fingerprint is:\n85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff youruser@yourlaptop.lan\nThe key's randomart image is:\n+--[ RSA 2048]----+\n<...>\n+-----------------+\n

Copy the resulting id_rsa.pub (or equivalent, just make sure it's the public file) to your piku server and do the following:

sudo su - piku\npython3 piku.py setup:ssh /tmp/id_rsa.pub\n\nAdding key '85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff'.\n

Now if you look at .ssh/authorized_keys, you should see something like this:

sudo su - piku\ncat .ssh/authorized_keys\n\ncommand=\"FINGERPRINT=85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff NAME=default /home/piku/piku.py $SSH_ORIGINAL_COMMAND\",no-agent-forwarding,no-user-rc,no-X11-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhTYZi/qeJBKgU3naI8FNjQgeMYnMsEtqrOmUc4lJoPNH2qBUTNkzwThGqsBm2HNLPURWMiEifBqF+kRixMud67Co7Zs9ys7pwFXkJB9bbZasd2JCGfVZ4UYXHnvgejSWkLAV/4bObhsbP2vWOmbbm91Cwn+PGJgoiW08yrd45lsDmgv9cUAJS3e8LkgVELvIDg49yM5ArB88oxwMEoUgWU2OniHmH0o1zw5I8WXHRhHOjb8cGsdTYfXEizRKKRTM2Mu6dKRt1GNL0UbWi8iS3uJHGD3AcQ4ApdMl5X0gTixKHponStOrSMy19/ltuIy8Sjr7KKPxz07ikMYr7Vpcp youruser@yourlaptop.lan\n

This line is what enables you to ssh (and perform git over ssh operations) to the piku user without a password, verifying your identity via your public key, restricting what can be done remotely and passing on to piku itself the commands you'll be issuing.

"},{"location":"install/index.html#test","title":"Test","text":"

From your machine, do:

ssh piku@pi.lan\n\nUsage: piku.py [OPTIONS] COMMAND [ARGS]...\n\n  The smallest PaaS you've ever seen\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  apps              List applications\n  config            Show application configuration\n  config:get        Retrieve a configuration setting\n  config:live       Show live configuration settings\n  config:set        Set a configuration setting\n  deploy            Deploy an application\n  destroy           Destroy an application\n  disable           Disable an application\n  enable            Enable an application\n  logs              Tail an application log\n  ps                Show application worker count\n  ps:scale          Show application configuration\n  restart           Restart an application\n  setup             Initialize paths\n  setup:ssh         Set up a new SSH key\nConnection to pi.lan closed.\n
"},{"location":"install/INSTALL-centos-9.html","title":"Installation on CentOS 9","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

All steps done as root (or add sudo if you prefer).

"},{"location":"install/INSTALL-centos-9.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

dnf in -y ansible-core ansible-collection-ansible-posix ansible-collection-ansible-utils nginx nodejs npm openssl postgresql postgresql-server postgresql-contrib python3 python3-pip uwsgi uwsgi-logger-file uwsgi-logger-systemd\npip install click\n
"},{"location":"install/INSTALL-centos-9.html#set-up-the-piku-user","title":"Set up the piku user","text":"
adduser --groups nginx piku\n# copy & setup piku.py\nsu - piku -c \"wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup\"\n
"},{"location":"install/INSTALL-centos-9.html#set-up-ssh-access","title":"Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-centos-9.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

FYI The uWSGI Emperor \u2013 multi-app deployment

mv /home/piku/.piku/uwsgi/uwsgi.ini /etc/uwsgi.d/piku.ini # linking alone increases the host attack service if one can get inside the piku user or one of its apps, so moving is safer\nchown piku:piku /etc/uwsgi.d/piku.ini # In Tyrant mode (set by default in /etc/uwsgi.ini) the Emperor will run the vassal using the UID/GID of the vassal configuration file\nsystemctl restart uwsgi\njournalctl -feu uwsgi # see logs\n
"},{"location":"install/INSTALL-centos-9.html#nginx-configuration","title":"nginx Configuration","text":"

FYI Setting up and configuring NGINX

echo \"include /home/piku/.piku/nginx/*.conf;\" > /etc/nginx/conf.d/piku.conf\nsystemctl restart nginx\njournalctl -feu nginx # see logs\n
"},{"location":"install/INSTALL-centos-9.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsu -\ngit clone https://github.com/piku/piku.git # need a copy of some files\ncp -v piku/piku-nginx.{path,service} /etc/systemd/system/\nsystemctl enable piku-nginx.{path,service}\nsystemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `active: active (waiting)`\n
"},{"location":"install/INSTALL-centos-9.html#notes","title":"Notes","text":""},{"location":"install/INSTALL-other.html","title":"Installation on other platforms","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

"},{"location":"install/INSTALL-other.html#dependencies","title":"Dependencies","text":"

Before running piku for the first time, you need to install the following Python packages at the system level:

"},{"location":"install/INSTALL-other.html#raspbian-jessie-debian-8-ubuntu-1604","title":"Raspbian Jessie, Debian 8, Ubuntu 16.04","text":"
sudo apt-get install git python3-virtualenv python3-pip\nsudo pip3 install -U click\n
"},{"location":"install/INSTALL-other.html#raspbian-wheezy","title":"Raspbian Wheezy","text":"
sudo apt-get install git python3\nsudo easy_install3 -U pip3\nsudo pip3 install -U click virtualenv\n

These may or may not be installed already (click usually isn't). For Raspbian Wheezy this is the preferred approach, since current apt packages are fairly outdated.

"},{"location":"install/INSTALL-other.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-other.html#uwsgi-installation-debian-linux-variants-any-architecture","title":"uWSGI Installation (Debian Linux variants, any architecture)","text":"

uWSGI can be installed in a variety of fashions. These instructions cover both pre-packaged and source installs depending on your system.

"},{"location":"install/INSTALL-other.html#raspbian-jessie-debian-8","title":"Raspbian Jessie, Debian 8","text":"

Warning

These OS releases are no longer supported and these instructions are kept for reference purposes only.

In Raspbian Jessie, Debian 8 and other systemd distributions where uWSGI is already available pre-compiled (but split into a number of plugins), do the following:

# At the time of this writing, this installs uwsgi 2.0.7 on Raspbian Jessie.\n# You can also install uwsgi-plugins-all if you want to get runtime support for other languages\nsudo apt-get install uwsgi uwsgi-plugin-python3\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n# disable the standard uwsgi startup script\nsudo systemctl disable uwsgi\n\n# add our own startup script\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\nsudo systemctl enable uwsgi-piku\nsudo systemctl start uwsgi-piku\n\n# check it's running\nsudo systemctl status uwsgi-piku.service\n
Important Note: Make sure you run piku.py setup as outlined above before starting the service.

Also, please note that uwsgi-piku.service, as provided, creates a /run/uwsgi-piku directory for it to place socket files and sundry. This is not actually used at the moment, since the uwsgi socket file is placed inside the piku user directory for consistency across OS distributions. This will be cleaned up in a later release.

"},{"location":"install/INSTALL-other.html#raspbian-wheezy_1","title":"Raspbian Wheezy","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

Since Raspbian Wheezy is a fairly old distribution by now, its uwsgi-* packages are completely outdated (and depend on Python 2.6), so we have to compile and install our own version, as well as using an old-style init script to have it start automatically upon boot.

sudo apt-get install build-essential python-dev libpcre3-dev\n# At the time of this writing, this installs 2.0.12\nsudo pip install uwsgi\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n\n# set up our init script\nsudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku\nsudo chmod +x /etc/init.d/uwsgi-piku\nsudo update-rc.d uwsgi-piku defaults\nsudo service uwsgi-piku start\n
Important Note: Make sure you run python3 piku.py setup as outlined above before starting the service.

"},{"location":"install/INSTALL-other.html#ubuntu-1404-lts","title":"Ubuntu 14.04 LTS","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

This is a mix of both the above, and should change soon when we get 16.04. If you have trouble, install uWSGI via pip instead.

# At the time of this writing, this installs uwsgi 1.9.17 on Ubuntu 14.04 LTS.\n# You can also install uwsgi-plugins-all if you want to get runtime support for other languages\nsudo apt-get install uwsgi uwsgi-plugin-python3\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n\n# set up our init script\nsudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku\nsudo chmod +x /etc/init.d/uwsgi-piku\nsudo update-rc.d uwsgi-piku defaults\nsudo service uwsgi-piku start\n
"},{"location":"install/INSTALL-other.html#nginx-installation-raspbian-8-ubuntu-1604","title":"nginx Installation (Raspbian 8, Ubuntu 16.04)","text":"

Warning

These OS releases are no longer supported and these instructions are kept for reference purposes only.

Warning

There is a bug in nginx 1.6.2 under Raspbian 8 that causes it to try to allocate around a gigabyte of RAM when using SSL with SPDY. I seriously recommend using Ubuntu instead, if you can, or disabling SSL altogether.

sudo apt-get install nginx\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-other.html#java-8-installation-all-debian-linux-variants-on-raspberry-pi","title":"Java 8 Installation (All Debian Linux variants, on Raspberry Pi)","text":"

Warning

OpenJDK 8 is no longer shipping with most distributions and these instructions are kept for reference purposes only.

To be able to deploy Java apps, we're going to need to install Java (and, since we're going to be doing so on ARM, it's best to use Oracle's runtime). To do that, we're going to use the webupd8team PPA, which has a (cross-platform) Java installer.

First, get rid of OpenJDK and import the PPA key:

sudo apt-get remove openjdk*\nsudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com EEA14886\n
"},{"location":"install/INSTALL-other.html#raspbian-jessie","title":"Raspbian Jessie","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

For Jessie, we're going to use the trusty version of the installer:

sudo tee /etc/apt/sources.list.d/webupd8team.list\ndeb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main \ndeb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main\n^D\n
"},{"location":"install/INSTALL-other.html#ubuntu-1604-for-arm","title":"Ubuntu 16.04 for ARM","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

For Xenial, we're going to use its own version:

sudo tee /etc/apt/sources.list.d/webupd8team.list\ndeb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main \ndeb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main\n^D\n

Now perform the actual install:

sudo apt-get update\nsudo apt-get install oracle-java8-installer oracle-java8-set-default\n
"},{"location":"install/INSTALL-other.html#go-installation-all-debian-linux-variants-on-raspberry-pi","title":"Go Installation (All Debian Linux variants, on Raspberry Pi)","text":"

This is EXPERIMENTAL and may not work at all.

"},{"location":"install/INSTALL-other.html#raspbian-wheezyjessie","title":"Raspbian Wheezy/Jessie","text":"

Warning

Wheezy and Jessie are no longer supported and these instructions are kept for reference purposes only.

Since Raspbian's Go compiler is version 1.0.2, we need something more up-to-date.

  1. Get an ARM 6 binary tarball
  2. Unpack it under the piku user like such:
sudo su - piku\ntar -zxvf /tmp/go1.5.3.linux-arm.tar.gz\n# remove unnecessary files\nrm -rf go/api go/blog go/doc go/misc go/test\n
  1. Give it a temporary GOPATH and install godep:
sudo su - piku\nGOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get github.com/tools/godep\n# temporary workaround until this is fixed in godep or Go 1.7(?)\nGOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get golang.org/x/sys/unix\n

TODO: complete this.

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html","title":"Installation on Raspbian Stretch or Buster","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in modern Debian versions, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. However, Stretch still ships with Python 3.5, which means it's not an ideal environment for new deployments on both Intel and ARM devices (Buster, in turn, ships with Python 3.7).

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#setting-up-your-raspberry-pi","title":"Setting up your Raspberry Pi","text":"

Download and install Raspbian onto an SD card.

After you install it is recommended that you do the following to update your installation to the latest available software.

# update apt-get\nsudo apt-get update\n\n# upgrade all software\nsudo apt-get upgrade\n

Configure your installation. It is recommended that Change Password from the default and setup Locale Options (Locale and Timezone) and EXPAND FILESYSTEM. You will also want to Enable SSH.

# configure your installation\nsudo raspi-config\n

At this point it is a good idea to sudo shutdown -h now and make a backup image of the card.

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python-certbot-nginx python-dev python-pip python-virtualenv \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \\\n    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python \\\n    uwsgi-plugin-lua5.1 uwsgi-plugin-lua5.2 uwsgi-plugin-luajit\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI in Stretch and Buster requires very little configuration, since it is already properly packaged. All you need to do is create a symlink to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#notes","title":"Notes","text":"

This file was last updated on June 2019

"},{"location":"install/INSTALL-ubuntu-16.04.html","title":"Ubuntu 16.04","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

sudo apt-get update\nsudo apt-get -y dist-upgrade\nsudo apt-get -y autoremove\nsudo apt-get install -y tmux vim htop fail2ban uwsgi uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python uwsgi-plugin-tornado-python nginx libxml2-dev libxslt1-dev python-dev zlib1g-dev build-essential git python3-virtualenv python3-pip python3-click\nsudo pip3 install -U click pip\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku\n\n# move to /tmp and grab our distribution files\ncd /tmp\nwget https://raw.githubusercontent.com/piku/piku/master/piku.py\nwget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.path\nwget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.service\nwget https://raw.githubusercontent.com/piku/piku/master/nginx.default.dist\nwget https://raw.githubusercontent.com/piku/piku/master/uwsgi-piku.service\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Restart NGINX\nsudo systemctl restart nginx\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n# disable the standard uwsgi startup script\nsudo systemctl disable uwsgi\nsudo systemctl enable uwsgi-piku\nsudo su - piku\nmkdir ~/.ssh\nchmod 700 ~/.ssh\n# now copy the piku script to this user account\ncp /tmp/piku.py ~/piku.py\npython3 piku.py setup\n# Now import your SSH key using setup:ssh\n\nsudo systemctl start uwsgi-piku\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html","title":"Installation on Ubuntu 18.04 LTS (Bionic)","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in Bionic, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Bionic also ships with Python 3.6, this is an ideal environment for new deployments on both Intel and ARM devices.

"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get update\nsudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python-certbot-nginx python-dev python-pip python-virtualenv \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \\\n    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#notes","title":"Notes","text":"

This file was last updated on November 2018

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html","title":"Installation on Ubuntu 22.04 LTS (Jammy)","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in Jammy, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Jammy also ships with Python 3.10, this is an ideal environment for new deployments on both Intel and ARM devices.

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get update\nsudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python3-certbot-nginx \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python3 \\\n    uwsgi-plugin-python3 uwsgi-plugin-tornado-python3\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#notes","title":"Notes","text":"

This file was last updated on November 2018

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html","title":"Setting up a Raspberry Pi Piku Server from Scratch","text":"

Warning

These instructions are correct as of April 1st 2016. Quite a bit has changed since then in Raspberry Pi land, so you may need to adjust them accordingly.

Start by flashing a SD card with the latest Raspbian Jessie Lite image.

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#do-this-in-your-raspberry-pi-as-pi-user","title":"Do this in your Raspberry Pi as 'pi' user","text":"

Boot it, launch raspi-config to perform (at least) the following configuration:

# as 'pi' user\nsudo raspi-config\n
  • 1) expand filesystem
  • 2) change default user password
  • 3) set up memory split as you wish (for a headless server, 16MB for GPU)

Optionally:

  • 4) set up over-clocking.
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#secure-your-install","title":"Secure your install","text":"

Delete the existing SSH keys and recreate them (why? read this).

# as 'pi' user\nsudo rm -v /etc/ssh/ssh_host_*\nsudo dpkg-reconfigure openssh-server\nsudo reboot\n

This will recreate the server keys. Next, update your system:

# as 'pi' user\nsudo apt update\nsudo apt upgrade\n
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#install-required-packages","title":"Install required packages","text":"

As of April 2016, the shipping versions with Raspbian are recent enough to run piku:

# as 'pi' user\nsudo apt install -y python-virtualenv python-pip git uwsgi uwsgi-plugin-python nginx\nsudo pip install -U click\nsudo reboot\n
Meanwhile, go get the goodies while Raspberry Pi is rebooting

(We assume you know about ssh keys and have one \"at hand\", you'll need to copy it)

Clone the piku repo somewhere and copy files to your Raspberry Pi

# as yourself in your desktop/laptop computer\nscp piku.py uwsgi-piku.service nginx.default.dist pi@your_machine:/tmp\nscp your_public_ssh_key.pub pi@your_machine:/tmp\n
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#back-to-the-pi","title":"Back to the Pi","text":"

Prepare uWSGI (part one):

# as 'pi' user\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\nsudo systemctl disable uwsgi\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable uwsgi-piku\n

Prepare nginx:

sudo apt-get install nginx\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n

Create 'piku' user and set it up

# as 'pi' user\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku\nsudo su - piku\n# this is now done as 'piku' user\nmkdir ~/.ssh\nchmod 700 ~/.ssh\ncp /tmp/piku.py ~/piku.py\npython piku.py setup\npython piku.py setup:ssh /tmp/id_rsa.pub\n# return to 'pi' user\nexit\n

Prepare uWSGI (part two):

# as 'pi' user\nsudo systemctl start uwsgi-piku\nsudo systemctl status uwsgi-piku.service\n
If you're still here, odds are your Pi is ready for work

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#testing","title":"Testing","text":"

Go back to your machine and try these commands:

# as yourself in your desktop/laptop computer\nssh piku@your_machine\n\nUsage: piku.py [OPTIONS] COMMAND [ARGS]...\n\n  The smallest PaaS you've ever seen\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  apps              List applications\n  config            Show application configuration\n  config:get        Retrieve a configuration setting\n  config:live       Show live configuration settings\n  config:set        Set a configuration setting\n  deploy            Deploy an application\n  destroy           Destroy an application\n  disable           Disable an application\n  enable            Enable an application\n  logs              Tail an application log\n  ps                Show application worker count\n  ps:scale          Show application configuration\n  restart           Restart an application\n  setup             Initialize paths\n  setup:ssh         Set up a new SSH key\nConnection to your_machine closed.\n

If you find any bugs with this quickstart guide, please let Luis Correia know ;)

"}]} \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..9563d9e --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"Home","text":"

piku, inspired by dokku, allows you do git push deployments to your own servers, no matter how small they are.

Installing Using/Features Managing and Monitoring Examples Web App Tutorial

"},{"location":"index.html#demo","title":"Demo","text":""},{"location":"index.html#workflow","title":"Workflow","text":"

piku supports a Heroku-like workflow:

  • Create a git SSH remote pointing to your piku server with the app name as repo name: git remote add piku piku@yourserver:appname.
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • It then looks at a Procfile and starts matching worker processes.
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • You can also bake application and nginx settings into an ENV configuration file.

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

"},{"location":"index.html#project-activity","title":"Project Activity","text":"

piku is considered STABLE. It is actively maintained, but \"actively\" here means the feature set is pretty much done, so it is only updated when new language runtimes are added or reproducible bugs crop up.

It currently requires Python 3.7 or above, since even though 3.8+ is now the baseline Python 3 version in Ubuntu LTS 20.04 and Debian 11 has already moved on to 3.9, there are no substantial differences between those versions.

"},{"location":"index.html#deprecation-notices","title":"Deprecation Notices","text":"

Since most of its users run it on LTS distributions, there is no rush to introduce disruption. The current plan is to throw up a warning for older runtimes and do regression testing for 3.7-3.12 (replacing the current bracket of tests from 3.5 to 3.8), and make sure we also cover Ubuntu 22.04, Debian 11 and Fedora 37+.

"},{"location":"FAQ.html","title":"FAQ","text":"

Q: Why piku?

A: Partly because it's started out on the Raspberry Pi, because it's Japanese onomatopeia for 'twitch' or 'jolt', and because we knew the name would be cute and amusing.

Q: Why Python/why not Go?

A: We actually thought about doing this in Go right off the bat, but click is so cool and we needed to have uwsgi running anyway, so we caved in. But possible future directions are likely to take something like suture and port this across (or just use Caddy), doing away with uwsgi altogether.

Go also (at the time) did not have a way to vendor dependencies that we were comfortable with, and that is also why Go support fell behind. Hopefully that will change soon.

Q: Does it run under Python 3?

A: Right now, it only runs on Python 3, even though it can deploy apps written in both major versions. It began its development using 2.7 and usingclick for abstracting the simpler stuff, and we eventually switched over to 3.5 once it was supported in Debian Stretch and Raspbian since we wanted to make installing it on the Raspberry Pi as simple as possible.

Q: Why not just use dokku?

A: We used dokku daily for many projects. But it relied on a number of x64 containers that needed to be completely rebuilt for ARM, and when we decided we needed something like this (March 2016) that was barely possible - docker itself was not fully baked for ARM yet, and people were at the time just starting to get herokuish and buildstep to build on ARM.

"},{"location":"features.html","title":"Features","text":""},{"location":"features.html#workflow","title":"Workflow","text":"

piku supports a Heroku-like workflow:

  • Create a git SSH remote pointing to your piku server with the app name as repo name: git remote add piku piku@yourserver:appname.
  • Push your code: git push piku master (or if you want to push a different branch than the current one use git push piku release-branch-name).
  • piku determines the runtime and installs the dependencies for your app (building whatever's required).
  • For Python, it segregates each app's dependencies into a virtualenv.
  • For Go, it defines a separate GOPATH for each app.
  • For Node, it installs whatever is in package.json into node_modules.
  • For Java, it builds your app depending on either pom.xml or build.gradle file.
  • For Clojure, it can use either leiningen or the Clojure CLI and a deps.edn file.
  • For Ruby, it does bundle install of your gems in an isolated folder.
  • It then looks at a Procfile and starts the relevant workers using uwsgi as a generic process manager.
  • You can optionally also specify a release worker which is run once when the app is deployed.
  • You can then remotely change application settings (config:set) or scale up/down worker processes (ps:scale).
  • You can also bake application and nginx settings into an ENV configuration file.

You can also deploy a gh-pages style static site using a static worker type, with the root path as the argument, and run a release task to do some processing on the server after git push.

"},{"location":"features.html#virtual-hosts-and-ssl","title":"Virtual Hosts and SSL","text":"

piku has full virtual host support - i.e., you can host multiple apps on the same VPS and use DNS aliases to access them via different hostnames.

piku will also set up either a private certificate or obtain one via Let's Encrypt to enable SSL.

If you are on a LAN and are accessing piku from macOS/iOS/Linux clients, you can try using piku/avahi-aliases to announce different hosts for the same IP address via Avahi/mDNS/Bonjour.

"},{"location":"features.html#caching-and-static-paths","title":"Caching and Static Paths","text":"

Besides static sites, piku also supports directly mapping specific URL prefixes to filesystem paths (to serve static assets) or caching back-end responses (to remove load from applications).

These features are configured by setting appropriate values in the ENV file.

"},{"location":"features.html#supported-platforms","title":"Supported Platforms","text":"

piku is intended to work in any POSIX-like environment where you have Python, nginx, uwsgi and ssh: it has been deployed on Linux, FreeBSD, [Cygwin][cygwin] and the [Windows Subsystem for Linux][wsl].

As a baseline, it began its development on an original 256MB Rasbperry Pi Model B, and still runs reliably on it.

But its main use is as a micro-PaaS to run applications on cloud servers with both Intel and ARM CPUs, with either Debian or Ubuntu Linux as target platforms.

"},{"location":"features.html#supported-runtimes","title":"Supported Runtimes","text":"

piku currently supports apps written in Python, Node, Clojure, Java and a few other languages (like Go) in the works.

But as a general rule, if it can be invoked from a shell, it can be run inside piku.

"},{"location":"manage.html","title":"Manage","text":""},{"location":"manage.html#managing-your-piku-apps","title":"Managing your Piku apps","text":"

To make life easier you can also install the piku helper into your path (e.g. ~/bin):

curl https://raw.githubusercontent.com/piku/piku/master/piku > ~/bin/piku && chmod 755 ~/bin/piku\n

This shell script simplifies working with multiple piku remotes and applications:

  • If you cd into a project folder that has a git remote called piku the helper will infer the remote server and app name and use them automatically:
$ piku logs\n$ piku config:set MYVAR=12\n$ piku stop\n$ piku deploy\n$ piku destroy\n$ piku # <- show available remote and local commands\n
  • If you are starting a new project, piku init will download example Procfile and ENV files into the current folder:
$ piku init\nWrote ./ENV file.\nWrote ./Procfile.\n
  • The piku helper also lets you pass settings to the underlying SSH command: -t to run interactive commands remotely, and -A to proxy authentication credentials in order to do remote git pulls.

For instance, here's how to use the -t flag to obtain a bash shell in the app directory of one of your piku apps:

$ piku -t run bash\nPiku remote operator.\nServer: piku@cloud.mccormickit.com\nApp: dashboard\n\npiku@piku:~/.piku/apps/dashboard$ ls\ndata  ENV  index.html  package.json  package-lock.json  Procfile  server.wisp\n
"},{"location":"manage.html#monitoring","title":"Monitoring","text":"

Besides using the logs command, there is a sample monitoring application to keep tabs on resource usage.

"},{"location":"community/index.html","title":"Community","text":"

There is an active discussion forum for piku where you can ask questions, share your deployments, and discuss new features, and we have a published roadmap.

"},{"location":"community/index.html#linuxconf-talk","title":"LinuxConf Talk","text":""},{"location":"community/index.html#references","title":"References","text":"
  • Fast Web App Tutorial

Contributing Examples

"},{"location":"community/contributing.html","title":"Contributing","text":"

piku is a stable project, but we welcome contributions that:

  • Help us move beyond Python 3.8+ (which is the current target due to Linux LTS distribution alignment)
  • Help us do better automated testing
  • Improve documentation (some docs are a bit old by now)
  • Help us deploy piku in various Linux distributions and environments (check the sister repositories in the project)
  • Provide sample deployments of common applications (again, check the sister repositories in the project)
  • Allow us to better support more language runtimes
  • Allow us to support different web servers or process supervisors (Caddy springs to mind as a popular alternative for small VPSes)
"},{"location":"community/contributing.html#code-size-style","title":"Code Size / Style","text":"

By its very nature, piku is a very small program. By today's standards of all-encompassing solutions this may seem strange, but it would benefit from being kept that way.

  • Small and focused PRs. Please don't include changes that don't address the subject of your PR.
  • Follow the style of importing functions directly e.g. from os.path import abspath
  • Follow PEP8.

So please keep that in mind when contributing.

For instance, if your runtime or framework needs additional setup, it might be better to contribute an utility script to run in a release entry in the Procfile rather than patching piku.py--but do hack at it if that is the best way to achieve it.

"},{"location":"community/examples.html","title":"Example Applications","text":"

Besides the bundled examples, there are a number of community-contributed examples that can be deployed using piku.

They are meant to be illustrative of the kinds of applications that can be deployed using piku, and are not meant to be exhaustive.

"},{"location":"community/examples.html#pre-built-apps-and-tools","title":"Pre-built Apps and Tools","text":"
  • avahi-aliases, a tool for announcing multiple hostnames on the same IP address via Avahi/mDNS/Bonjour.
  • Node-RED
  • Gitea
  • WebDAV, a simple WebDAV server
  • SnapDrop, a simple LAN file sharing application using Express.
"},{"location":"community/examples.html#phoenix","title":"Phoenix","text":"
  • Sample Phoenix App
"},{"location":"community/examples.html#python","title":"Python","text":"
  • Sample Python App
  • Sample Django App
"},{"location":"community/examples.html#ruby-on-rails","title":"Ruby on Rails","text":"
  • Sample Ruby on Rails App
"},{"location":"community/examples.html#nodejs","title":"NodeJS","text":"
  • Sample NodeJS App
  • Piku Monitor - a simple monitoring tool for piku apps, written in ClojureScript
"},{"location":"community/examples.html#java","title":"Java","text":"
  • Sample Java App
"},{"location":"community/examples.html#clojure","title":"Clojure","text":"
  • Sample Clojure App
"},{"location":"community/examples.html#bare-metal-c","title":"Bare Metal C","text":"
  • Sample C App
"},{"location":"configuration/index.html","title":"Configuring Applications","text":"

A minimal piku app has a root directory structure similar to this:

ENV\nProcfile\napp.py\nworker.py\nrequirements.txt\n

ENV Procfile

"},{"location":"configuration/index.html#configuration-files","title":"Configuration Files","text":"

piku relies on two configuration files shipped with your app to determine how to run it: ENV and Procfile.

  • The ENV file contains environment variables that allow you to configure both piku and your app, following the 12-factor app approach.
  • The Procfile tells piku what kind of workers to run
"},{"location":"configuration/index.html#runtime-detection","title":"Runtime Detection","text":"

Besides ENV and Procfile, piku also looks for runtime-specific files in the root of your app's directory:

  • If there's a requirements.txt file at the top level, then the app is assumed to require Python.
  • If there's a Gemfile at the top level, then the app is assumed to require Ruby.
  • If there's a package.json file at the top level, then the app is assumed to require Node.js.
  • If there's a pom.xml or a build.gradle file at the top level, then the app is assumed to require Java.
  • If there's a deps.edn or project.clj file at the top level, then the app is assumed to require Clojure.
  • If there's a Godeps file at the top level, then the app is assumed to require Go.

Info

go.mod support is currently in development.

These are not exclusive, however. There is also a sample Phoenix app that demonstrates how to add support for additional runtimes.

"},{"location":"configuration/env.html","title":"ENV Variables","text":"

You can configure deployment settings by placing special variables in an ENV file deployed with your app. This file should be placed in the root of your app's directory, and can look something like this:

# variables are global and can be replaced\nSETTING1=True\nSETTING2=${SETTING1}/Maybe\n\n# addr:port\nPORT=9080\nBIND_ADDRESS=0.0.0.0\n\n# the max number the worker will process\nRANGE=10\n\n# worker sleep interval between prints\nINTERVAL=1\n
"},{"location":"configuration/env.html#runtime-settings","title":"Runtime Settings","text":"
  • PIKU_AUTO_RESTART (boolean, defaults to true): Piku will restart all workers every time the app is deployed. You can set it to 0/false if you prefer to deploy first and then restart your workers separately.
"},{"location":"configuration/env.html#python","title":"Python","text":"
  • PYTHON_VERSION (int): Forces Python 3

Warning

This is mostly deprecated (since piku now runs solely on Python 3.x), but is kept around for legacy compatibility.

"},{"location":"configuration/env.html#node","title":"Node","text":"
  • NODE_VERSION: installs a particular version of node for your app if nodeenv is found on the path. Optional; if not specified, the system-wide node package is used.

Note

you will need to stop and re-deploy the app to change the node version in a running app.

"},{"location":"configuration/env.html#network-settings","title":"Network Settings","text":"
  • BIND_ADDRESS: IP address to which your app will bind (typically 127.0.0.1)
  • PORT: TCP port for your app to listen in (if deploying your own web listener).
  • DISABLE_IPV6 (boolean): if set to true, it will remove IPv6-specific items from the nginx config, which will accept only IPv4 connections
"},{"location":"configuration/env.html#uwsgi-settings","title":"uWSGI Settings","text":"
  • UWSGI_MAX_REQUESTS (integer): set the max-requests option to determine how many requests a worker will receive before it's recycled.
  • UWSGI_LISTEN (integer): set the listen queue size.
  • UWSGI_PROCESSES (integer): set the processes count.
  • UWSGI_ENABLE_THREADS (boolean): set the enable-threads option.
  • UWSGI_LOG_MAXSIZE (integer): set the log-maxsize.
  • UWSGI_LOG_X_FORWARDED_FOR (boolean): set the log-x-forwarded-for option.
  • UWSGI_GEVENT: enable the Python 2 gevent plugin
  • UWSGI_ASYNCIO (integer): enable the Python 2/3 asyncio plugin and set the number of tasks
  • UWSGI_INCLUDE_FILE: a uwsgi config file in the app's dir to include - useful for including custom uwsgi directives.
  • UWSGI_IDLE (integer): set the cheap, idle and die-on-idle options to have workers spawned on demand and killed after n seconds of inactivity.

Note

UWSGI_IDLE applies to all the workers, so if you have UWSGI_PROCESSES set to 4, they will all be killed simultaneously. Support for progressive scaling of workers via cheaper and similar uWSGI configurations will be added in the future.

"},{"location":"configuration/env.html#nginx-settings","title":"nginx Settings","text":"
  • NGINX_SERVER_NAME: set the virtual host name associated with your app
  • NGINX_STATIC_PATHS (string, comma separated list): set an array of /url:path values that will be served directly by nginx
  • NGINX_CLOUDFLARE_ACL (boolean, defaults to false): activate an ACL allowing access only from Cloudflare IPs
  • NGINX_HTTPS_ONLY (boolean, defaults to false): tell nginx to auto-redirect non-SSL traffic to SSL site.

Note

if used with Cloudflare, NGINX_HTTPS_ONLY will cause an infinite redirect loop - keep it set to false, use NGINX_CLOUDFLARE_ACL instead and add a Cloudflare Page Rule to \"Always Use HTTPS\" for your server (use domain.name/* to match all URLs).

"},{"location":"configuration/env.html#nginx-caching","title":"nginx Caching","text":"

When NGINX_CACHE_PREFIXES is set, nginx will cache requests for those URL prefixes to the running application (uwsgi-like or web workers) and reply on its own for NGINX_CACHE_TIME to the outside. This is meant to be used for compute-intensive operations like resizing images or providing large chunks of data that change infrequently (like a sitemap).

The behavior of the cache can be controlled with the following variables:

  • NGINX_CACHE_PREFIXES (string, comma separated list): set an array of /url values that will be cached by nginx
  • NGINX_CACHE_SIZE (integer, defaults to 1): set the maximum size of the nginx cache, in GB
  • NGINX_CACHE_TIME (integer, defaults to 3600): set the amount of time (in seconds) that valid backend replies (200 304) will be cached.
  • NGINX_CACHE_REDIRECTS (integer, defaults to 3600): set the amount of time (in seconds) that backend redirects (301 307) will be cached.
  • NGINX_CACHE_ANY (integer, defaults to 3600): set the amount of time (in seconds) that any other replies (other than errors) will be cached.
  • NGINX_CACHE_CONTROL (integer, defaults to 3600): set the amount of time (in seconds) for cache control headers (Cache-Control \"public, max-age=3600\")
  • NGINX_CACHE_EXPIRY (integer, defaults to 86400): set the amount of time (in seconds) that cache entries will be kept on disk.
  • NGINX_CACHE_PATH (string, detaults to ~piku/.piku/<appname>/cache): location for the nginx cache data.

Note

NGINX_CACHE_PATH will be completely managed by nginx and cannot be removed by Piku when the application is destroyed. This is because nginx sets the ownership for the cache to be exclusive to itself, and the piku user cannot remove that file tree. So you will either need to clean it up manually after destroying the app or store it in a temporary filesystem (or set the piku user to the same UID as www-data, which is not recommended).

Right now, there is no provision for cache revalidation (i.e., nginx asking your backend if the cache entries are still valid), since that requires active application logic that varies depending on the runtime--nginx will only ask your backend for new content when NGINX_CACHE_TIME elapses. If you require that kind of behavior, that is still possible via NGINX_INCLUDE_FILE.

Also, keep in mind that using nginx caching with a static website worker will not work (and there's no point to it either).

"},{"location":"configuration/env.html#nginx-overrides","title":"nginx Overrides","text":"
  • NGINX_INCLUDE_FILE: a file in the app's dir to include in nginx config server section - useful for including custom nginx directives.
  • NGINX_ALLOW_GIT_FOLDERS: (boolean) allow access to .git folders (default: false, blocked)
"},{"location":"configuration/env.html#acme-settings","title":"Acme Settings","text":"
  • ACME_ROOT_CA: set the certificate authority that Acme should use to generate public ssl certificates (string, default: letsencrypt.org)
"},{"location":"configuration/procfile.html","title":"Procfile format","text":"

piku supports a Heroku-like Procfile that you provide to indicate how to run one or more application processes (what Heroku calls \"dynos\"):

web: embedded_server --port $PORT\nworker: background_worker\n
"},{"location":"configuration/procfile.html#worker-types","title":"Worker Types","text":"

piku supports six different kinds of worker processes:

# A module to be loaded by uwsgi to serve HTTP requests\nwsgi: module.submodule:app\n# A background worker, using the default name\nworker: python long_running_script.py\n# Another worker with a different name\nfetcher: python fetcher.py\n# Simple cron expression: minute [0-59], hour [0-23], day [0-31], month [1-12], weekday [1-7] (starting Monday, no ranges allowed on any field)\ncron: 0 0 * * * python midnight_cleanup.py\nrelease: python initial_cleanup.py\n
Each of these has slightly different features:

"},{"location":"configuration/procfile.html#wsgi","title":"wsgi","text":"

wsgi workers are Python-specific and must be specified in the format dotted.module:entry_point. uwsgi will load the specified module and call the entry_point function to start the application, handling all the HTTP requests directly (your Python code will run the handlers, but will run as a part of the uwsgi process).

uwsgi will automatically spawn multiple workers for you, and you can control the number of workers via the UWSGI_PROCESSES environment variable.

Also, in this mode uwsgi will talk to nginx via a Unix socket, so you don't need to worry about the HTTP server at all.

"},{"location":"configuration/procfile.html#web","title":"web","text":"

web workers can be literally any executable that uwsgi can run and that will serve HTTP requests. They must (by convention) honor the PORT environment variable, so that the nginx reverse proxy can talk to them.

"},{"location":"configuration/procfile.html#worker","title":"worker","text":"

worker processes are just standard processes that run in the background. They can actually have arbitrary names, and the idea is that they would perform any tasks your app requires that isn't directly related to serving web pages.

"},{"location":"configuration/procfile.html#static","title":"static","text":"

static workers are simply a way to direct nginx to mount the first argument as a static path and serve it directly. This is useful for serving (and caching) static files directly from your app, without having to go through application code.

Note

See nginx caching for more information on how to configure nginx to serve static files.

"},{"location":"configuration/procfile.html#cron","title":"cron","text":"

A cron worker is a process that runs at a specific time (or intervals), using a simplified crontab expression preceding the command to be run (e.g. cron: */5 * * * * python batch.py to run a batch every 5 minutes)

Multiple crons can be scheduled by simply adding multiple entries with cron prefix.

...\ncron1: */5 * * * * python batch.py\ncron2: 0 * * * * python batch.py\n...\n

Warning

crontab expressions are simplified and do not support ranges or lists, only single values, splits and * (wildcard).

"},{"location":"configuration/procfile.html#alternatives","title":"alternatives","text":"

Python apscheduler - Provides it's own library for scheduling jobs, and honors the full regex of crontab.

"},{"location":"configuration/procfile.html#preflight","title":"preflight","text":"

preflight is a special \"worker\" that is run once before the app is deployed and dependencies are installed (can be useful for cleanups, like resetting caches, removing older versions of files, etc).

"},{"location":"configuration/procfile.html#release","title":"release","text":"

release which is a special worker that is run once when the app is deployed, after installing dependencies (can be useful for build steps).

Any worker will be automatically respawned upon failure ([uWSGI][uwsgi] will automatically shun/throttle crashy workers).

"},{"location":"design/index.html","title":"Design","text":"

The idea behind piku is that it provides the simplest possible way to deploy web apps or services. Simplicity comes at the expense of features, of course, and this document tries to capture the trade-offs.

"},{"location":"design/index.html#core-values","title":"Core values","text":"
  • Run on low end devices.
  • Accessible to hobbyists and K-12 schools.
  • ~1500 lines readable code.
  • Functional code style.
  • Few (single?) dependencies
  • 12 factor app.
  • Simplify user experience.
  • Cover 80% of common use cases.
  • Sensible defaults for all features.
  • Leverage distro packages in Raspbian/Debian/Ubuntu (Alpine and RHEL support is WIP)
  • Leverage standard tooling (git, ssh, uwsgi, nginx).
  • Preserve backwards compatibility where possible
"},{"location":"design/index.html#why-uwsgi","title":"Why uWSGI","text":"

Using uWSGI in emperor mode gives us the following features for free:

  • Painless Python WSGI and virtualenv integration
  • Process monitoring, restarting, basic resource limiting, etc.
  • Basic security scaffolding, beginning with the ability to define uid/gid on a per-app basis (if necessary)
"},{"location":"design/index.html#application-packaging","title":"Application packaging","text":"

An app is simply a git repository with some additional files on the top level, the most important of which is the Procfile.

"},{"location":"design/index.html#env-settings","title":"ENV settings","text":"

Since piku is targeted at 12 Factor apps, it allows you to set environment variables in a number of ways, the simplest of which is by adding an ENV file to your repository:

SETTING1=foo\n# piku supports comments and variable expansion\nSETTING2=${SETTING1}/bar\n# if this isn't defined, piku will assign a random TCP port\nPORT=9080\n

See configuration for a full list of environment variables that can also be set.

Environment variables can be changed after deployment using the config:set command.

"},{"location":"design/index.html#runtime-detection","title":"Runtime detection","text":"

piku follows a very simple set of rules to determine what kind of runtime is required, outlined in the configuration section

"},{"location":"design/index.html#application-isolation","title":"Application isolation","text":"

Application isolation can be tackled at several levels, the most relevant of which being:

  • OS/process isolation
  • Runtime/library isolation

For 1.0, all applications run under the same uid, under separate branches of the same filesystem, and without any resource limiting.

Ways to improve upon that (short of full containerisation) typically entail the use of a chroot jail environment (which is available under most POSIX systems in one form or another) or Linux kernel namespaces - both of which are supported by uWSGI (which can also handle resource limiting to a degree).

As to runtime isolation, piku only provides virtualenv support until 1.0. Python apps can run under Python 2 or 3 depending on the setting of PYTHON_VERSION, but will always use pre-installed interpreters (Go, Node and Java support will share these limitations in each major version).

"},{"location":"design/index.html#internals","title":"Internals","text":"

piku uses two git repositories for each app: a bare repository for client push, and a clone for deployment (which is efficient in terms of storage since git tries to use hardlinks on local clones whenever possible).

This separation makes it easier to cope with long/large deployments and restore apps to a pristine condition, since the app will only go live after the deployment clone is reset (via git checkout -f).

"},{"location":"design/index.html#components","title":"Components","text":"

This diagram outlines how its components interact:

graph TD\n    subgraph \"systemd\"\n        nginx([nginx])\n        sshd([sshd])\n        uwsgi([uwsgi])\n    end\n    uwsgi-->vassal([vassal])\n    vassal-.->uwsgi.ini\n    sshd-->piku([piku.py])-->repo[git repo]\n    Procfile-->uwsgi.ini\n    an-->app\n    repo---app\n    repo---ENV\n    repo---requirements.txt\n    repo---Procfile\n    requirements.txt-->virtualenv\n    uwsgi.ini-->virtualenv\n    ENV-->an\n    ENV-->uwsgi.ini\n    nginx-.-mn[master<br>nginx.conf]\n    mn-.-an[app<br>nginx.conf]
"},{"location":"design/plugins.html","title":"Plugins","text":"

Thanks to jsenin, piku currently has experimental support for external plugins via #129.

Plugins are inserted into the commands listing and can perform arbitrary actions. At this moment there are no official plugins, but here is an example file that should be placed at ~/.piku/plugins/postgres/__init__.py that could contain the commands to manage a Postgres database:

import click\n\n@click.group()\ndef postgres():\n    \"\"\"Postgres command plugin\"\"\"\n    pass\n\n@postgres.command(\"postgres:create\")\n@click.argument('name')\n@click.argument('user')\n@click.argument('password')\ndef postgres_create():\n    \"\"\"Postgres create a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:drop\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres drops a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:import\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres import a database\"\"\"\n    pass\n\n@postgres.command(\"postgres:dump\")\n@click.argument('name')\ndef postgres_drop():\n    \"\"\"Postgres dumps a database SQL\"\"\"\n    pass\n\ndef cli_commands():\n    return postgres\n
"},{"location":"install/index.html","title":"Installation","text":""},{"location":"install/index.html#tldr","title":"TL;DR:","text":"

If you are in a hurry to install it on your server and are OK with downloading random scripts off the Internet, ssh in as root and run this:

curl https://piku.github.io/get | sh\n

Warning

This installation method is not recommended for production servers, and was added after an incredible amount of requests for a one-liner. It is safe to use on a fresh server, but you MUST always read scripts before running them.

"},{"location":"install/index.html#recommended-guaranteed-safe-installation-methods","title":"Recommended, Guaranteed Safe Installation Methods","text":"

piku requires Python 3, uWSGI, ssh, and a Linux distribution that runs systemd, such as Raspbian Jessie/Debian 8+/Ubuntu/Fedora/CentOS.

There are 3 main ways to install piku on a server:

  1. Use piku-bootstrap to do it if your server is already provisioned (that is what the TL;DR command does)

  2. Use cloud-init to do it automatically at VPS build time (see the cloud-init repository, which has examples for most common cloud providers)

  3. Manually: Follow the guide below or one of the platform-specfic guides.

There is also an Ansible playbook.

Contributing

If you are running piku on specific Linux versions, feel free to contribute your own instructions.

"},{"location":"install/index.html#generic-installation-steps","title":"Generic Installation Steps","text":""},{"location":"install/index.html#set-up-the-piku-user","title":"Set up the piku user","text":"

piku requires a separate user account to run. To create a new user with the right group membership (we're using the built-in www-data group because it's generally thought of as a less-privileged group), enter the following command:

# pick a username\nexport PAAS_USERNAME=piku\n# create it\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data $PAAS_USERNAME\n# copy & setup piku.py\nsudo su - $PAAS_USERNAME -c \"wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup\"\n

The setup output should be something like this:

Creating '/home/piku/.piku/apps'.\nCreating '/home/piku/.piku/repos'.\nCreating '/home/piku/.piku/envs'.\nCreating '/home/piku/.piku/uwsgi'.\nCreating '/home/piku/.piku/uwsgi-available'.\nCreating '/home/piku/.piku/uwsgi-enabled'.\nCreating '/home/piku/.piku/logs'.\nSetting '/home/piku/piku.py' as executable.\n
"},{"location":"install/index.html#set-up-ssh-access","title":"Set up ssh access","text":"

If you don't have an ssh public key (or never used one before), you need to create one. The following instructions assume you're running some form of UNIX on your own machine (Windows users should check the documentation for their ssh client, unless you have Cygwin installed).

On your own machine, issue the ssh-keygen command and follow the prompts:

ssh-keygen \n\nGenerating public/private rsa key pair.\nEnter file in which to save the key (/home/youruser/.ssh/id_rsa): \nCreated directory '/home/youruser/.ssh'.\nEnter passphrase (empty for no passphrase): \nEnter same passphrase again: \nYour identification has been saved in /home/youruser/.ssh/id_rsa.\nYour public key has been saved in /home/youruser/.ssh/id_rsa.pub.\nThe key fingerprint is:\n85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff youruser@yourlaptop.lan\nThe key's randomart image is:\n+--[ RSA 2048]----+\n<...>\n+-----------------+\n

Copy the resulting id_rsa.pub (or equivalent, just make sure it's the public file) to your piku server and do the following:

sudo su - piku\npython3 piku.py setup:ssh /tmp/id_rsa.pub\n\nAdding key '85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff'.\n

Now if you look at .ssh/authorized_keys, you should see something like this:

sudo su - piku\ncat .ssh/authorized_keys\n\ncommand=\"FINGERPRINT=85:29:07:cb:de:ad:be:ef:42:65:00:c8:d2:6b:9e:ff NAME=default /home/piku/piku.py $SSH_ORIGINAL_COMMAND\",no-agent-forwarding,no-user-rc,no-X11-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhTYZi/qeJBKgU3naI8FNjQgeMYnMsEtqrOmUc4lJoPNH2qBUTNkzwThGqsBm2HNLPURWMiEifBqF+kRixMud67Co7Zs9ys7pwFXkJB9bbZasd2JCGfVZ4UYXHnvgejSWkLAV/4bObhsbP2vWOmbbm91Cwn+PGJgoiW08yrd45lsDmgv9cUAJS3e8LkgVELvIDg49yM5ArB88oxwMEoUgWU2OniHmH0o1zw5I8WXHRhHOjb8cGsdTYfXEizRKKRTM2Mu6dKRt1GNL0UbWi8iS3uJHGD3AcQ4ApdMl5X0gTixKHponStOrSMy19/ltuIy8Sjr7KKPxz07ikMYr7Vpcp youruser@yourlaptop.lan\n

This line is what enables you to ssh (and perform git over ssh operations) to the piku user without a password, verifying your identity via your public key, restricting what can be done remotely and passing on to piku itself the commands you'll be issuing.

"},{"location":"install/index.html#test","title":"Test","text":"

From your machine, do:

ssh piku@pi.lan\n\nUsage: piku.py [OPTIONS] COMMAND [ARGS]...\n\n  The smallest PaaS you've ever seen\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  apps              List applications\n  config            Show application configuration\n  config:get        Retrieve a configuration setting\n  config:live       Show live configuration settings\n  config:set        Set a configuration setting\n  deploy            Deploy an application\n  destroy           Destroy an application\n  disable           Disable an application\n  enable            Enable an application\n  logs              Tail an application log\n  ps                Show application worker count\n  ps:scale          Show application configuration\n  restart           Restart an application\n  setup             Initialize paths\n  setup:ssh         Set up a new SSH key\nConnection to pi.lan closed.\n
"},{"location":"install/INSTALL-centos-9.html","title":"Installation on CentOS 9","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

All steps done as root (or add sudo if you prefer).

"},{"location":"install/INSTALL-centos-9.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

dnf in -y ansible-core ansible-collection-ansible-posix ansible-collection-ansible-utils nginx nodejs npm openssl postgresql postgresql-server postgresql-contrib python3 python3-pip uwsgi uwsgi-logger-file uwsgi-logger-systemd\npip install click\n
"},{"location":"install/INSTALL-centos-9.html#set-up-the-piku-user","title":"Set up the piku user","text":"
adduser --groups nginx piku\n# copy & setup piku.py\nsu - piku -c \"wget https://raw.githubusercontent.com/piku/piku/master/piku.py && python3 ~/piku.py setup\"\n
"},{"location":"install/INSTALL-centos-9.html#set-up-ssh-access","title":"Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-centos-9.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

FYI The uWSGI Emperor \u2013 multi-app deployment

mv /home/piku/.piku/uwsgi/uwsgi.ini /etc/uwsgi.d/piku.ini # linking alone increases the host attack service if one can get inside the piku user or one of its apps, so moving is safer\nchown piku:piku /etc/uwsgi.d/piku.ini # In Tyrant mode (set by default in /etc/uwsgi.ini) the Emperor will run the vassal using the UID/GID of the vassal configuration file\nsystemctl restart uwsgi\njournalctl -feu uwsgi # see logs\n
"},{"location":"install/INSTALL-centos-9.html#nginx-configuration","title":"nginx Configuration","text":"

FYI Setting up and configuring NGINX

echo \"include /home/piku/.piku/nginx/*.conf;\" > /etc/nginx/conf.d/piku.conf\nsystemctl restart nginx\njournalctl -feu nginx # see logs\n
"},{"location":"install/INSTALL-centos-9.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsu -\ngit clone https://github.com/piku/piku.git # need a copy of some files\ncp -v piku/piku-nginx.{path,service} /etc/systemd/system/\nsystemctl enable piku-nginx.{path,service}\nsystemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `active: active (waiting)`\n
"},{"location":"install/INSTALL-centos-9.html#notes","title":"Notes","text":""},{"location":"install/INSTALL-other.html","title":"Installation on other platforms","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

"},{"location":"install/INSTALL-other.html#dependencies","title":"Dependencies","text":"

Before running piku for the first time, you need to install the following Python packages at the system level:

"},{"location":"install/INSTALL-other.html#raspbian-jessie-debian-8-ubuntu-1604","title":"Raspbian Jessie, Debian 8, Ubuntu 16.04","text":"
sudo apt-get install git python3-virtualenv python3-pip\nsudo pip3 install -U click\n
"},{"location":"install/INSTALL-other.html#raspbian-wheezy","title":"Raspbian Wheezy","text":"
sudo apt-get install git python3\nsudo easy_install3 -U pip3\nsudo pip3 install -U click virtualenv\n

These may or may not be installed already (click usually isn't). For Raspbian Wheezy this is the preferred approach, since current apt packages are fairly outdated.

"},{"location":"install/INSTALL-other.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-other.html#uwsgi-installation-debian-linux-variants-any-architecture","title":"uWSGI Installation (Debian Linux variants, any architecture)","text":"

uWSGI can be installed in a variety of fashions. These instructions cover both pre-packaged and source installs depending on your system.

"},{"location":"install/INSTALL-other.html#raspbian-jessie-debian-8","title":"Raspbian Jessie, Debian 8","text":"

Warning

These OS releases are no longer supported and these instructions are kept for reference purposes only.

In Raspbian Jessie, Debian 8 and other systemd distributions where uWSGI is already available pre-compiled (but split into a number of plugins), do the following:

# At the time of this writing, this installs uwsgi 2.0.7 on Raspbian Jessie.\n# You can also install uwsgi-plugins-all if you want to get runtime support for other languages\nsudo apt-get install uwsgi uwsgi-plugin-python3\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n# disable the standard uwsgi startup script\nsudo systemctl disable uwsgi\n\n# add our own startup script\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\nsudo systemctl enable uwsgi-piku\nsudo systemctl start uwsgi-piku\n\n# check it's running\nsudo systemctl status uwsgi-piku.service\n
Important Note: Make sure you run piku.py setup as outlined above before starting the service.

Also, please note that uwsgi-piku.service, as provided, creates a /run/uwsgi-piku directory for it to place socket files and sundry. This is not actually used at the moment, since the uwsgi socket file is placed inside the piku user directory for consistency across OS distributions. This will be cleaned up in a later release.

"},{"location":"install/INSTALL-other.html#raspbian-wheezy_1","title":"Raspbian Wheezy","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

Since Raspbian Wheezy is a fairly old distribution by now, its uwsgi-* packages are completely outdated (and depend on Python 2.6), so we have to compile and install our own version, as well as using an old-style init script to have it start automatically upon boot.

sudo apt-get install build-essential python-dev libpcre3-dev\n# At the time of this writing, this installs 2.0.12\nsudo pip install uwsgi\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n\n# set up our init script\nsudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku\nsudo chmod +x /etc/init.d/uwsgi-piku\nsudo update-rc.d uwsgi-piku defaults\nsudo service uwsgi-piku start\n
Important Note: Make sure you run python3 piku.py setup as outlined above before starting the service.

"},{"location":"install/INSTALL-other.html#ubuntu-1404-lts","title":"Ubuntu 14.04 LTS","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

This is a mix of both the above, and should change soon when we get 16.04. If you have trouble, install uWSGI via pip instead.

# At the time of this writing, this installs uwsgi 1.9.17 on Ubuntu 14.04 LTS.\n# You can also install uwsgi-plugins-all if you want to get runtime support for other languages\nsudo apt-get install uwsgi uwsgi-plugin-python3\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n\n# set up our init script\nsudo cp /tmp/uwsgi-piku.dist /etc/init.d/uwsgi-piku\nsudo chmod +x /etc/init.d/uwsgi-piku\nsudo update-rc.d uwsgi-piku defaults\nsudo service uwsgi-piku start\n
"},{"location":"install/INSTALL-other.html#nginx-installation-raspbian-8-ubuntu-1604","title":"nginx Installation (Raspbian 8, Ubuntu 16.04)","text":"

Warning

These OS releases are no longer supported and these instructions are kept for reference purposes only.

Warning

There is a bug in nginx 1.6.2 under Raspbian 8 that causes it to try to allocate around a gigabyte of RAM when using SSL with SPDY. I seriously recommend using Ubuntu instead, if you can, or disabling SSL altogether.

sudo apt-get install nginx\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-other.html#java-8-installation-all-debian-linux-variants-on-raspberry-pi","title":"Java 8 Installation (All Debian Linux variants, on Raspberry Pi)","text":"

Warning

OpenJDK 8 is no longer shipping with most distributions and these instructions are kept for reference purposes only.

To be able to deploy Java apps, we're going to need to install Java (and, since we're going to be doing so on ARM, it's best to use Oracle's runtime). To do that, we're going to use the webupd8team PPA, which has a (cross-platform) Java installer.

First, get rid of OpenJDK and import the PPA key:

sudo apt-get remove openjdk*\nsudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com EEA14886\n
"},{"location":"install/INSTALL-other.html#raspbian-jessie","title":"Raspbian Jessie","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

For Jessie, we're going to use the trusty version of the installer:

sudo tee /etc/apt/sources.list.d/webupd8team.list\ndeb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main \ndeb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main\n^D\n
"},{"location":"install/INSTALL-other.html#ubuntu-1604-for-arm","title":"Ubuntu 16.04 for ARM","text":"

Warning

This OS release is no longer supported and these instructions are kept for reference purposes only.

For Xenial, we're going to use its own version:

sudo tee /etc/apt/sources.list.d/webupd8team.list\ndeb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main \ndeb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main\n^D\n

Now perform the actual install:

sudo apt-get update\nsudo apt-get install oracle-java8-installer oracle-java8-set-default\n
"},{"location":"install/INSTALL-other.html#go-installation-all-debian-linux-variants-on-raspberry-pi","title":"Go Installation (All Debian Linux variants, on Raspberry Pi)","text":"

This is EXPERIMENTAL and may not work at all.

"},{"location":"install/INSTALL-other.html#raspbian-wheezyjessie","title":"Raspbian Wheezy/Jessie","text":"

Warning

Wheezy and Jessie are no longer supported and these instructions are kept for reference purposes only.

Since Raspbian's Go compiler is version 1.0.2, we need something more up-to-date.

  1. Get an ARM 6 binary tarball
  2. Unpack it under the piku user like such:
sudo su - piku\ntar -zxvf /tmp/go1.5.3.linux-arm.tar.gz\n# remove unnecessary files\nrm -rf go/api go/blog go/doc go/misc go/test\n
  1. Give it a temporary GOPATH and install godep:
sudo su - piku\nGOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get github.com/tools/godep\n# temporary workaround until this is fixed in godep or Go 1.7(?)\nGOROOT=$HOME/go GOPATH=$HOME/gopath PATH=$PATH:$HOME/go/bin go get golang.org/x/sys/unix\n

TODO: complete this.

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html","title":"Installation on Raspbian Stretch or Buster","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in modern Debian versions, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. However, Stretch still ships with Python 3.5, which means it's not an ideal environment for new deployments on both Intel and ARM devices (Buster, in turn, ships with Python 3.7).

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#setting-up-your-raspberry-pi","title":"Setting up your Raspberry Pi","text":"

Download and install Raspbian onto an SD card.

After you install it is recommended that you do the following to update your installation to the latest available software.

# update apt-get\nsudo apt-get update\n\n# upgrade all software\nsudo apt-get upgrade\n

Configure your installation. It is recommended that Change Password from the default and setup Locale Options (Locale and Timezone) and EXPAND FILESYSTEM. You will also want to Enable SSH.

# configure your installation\nsudo raspi-config\n

At this point it is a good idea to sudo shutdown -h now and make a backup image of the card.

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python-certbot-nginx python-dev python-pip python-virtualenv \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \\\n    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python \\\n    uwsgi-plugin-lua5.1 uwsgi-plugin-lua5.2 uwsgi-plugin-luajit\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI in Stretch and Buster requires very little configuration, since it is already properly packaged. All you need to do is create a symlink to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-raspbian-9.4-stretch-10-buster.html#notes","title":"Notes","text":"

This file was last updated on June 2019

"},{"location":"install/INSTALL-ubuntu-16.04.html","title":"Ubuntu 16.04","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

sudo apt-get update\nsudo apt-get -y dist-upgrade\nsudo apt-get -y autoremove\nsudo apt-get install -y tmux vim htop fail2ban uwsgi uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python uwsgi-plugin-tornado-python nginx libxml2-dev libxslt1-dev python-dev zlib1g-dev build-essential git python3-virtualenv python3-pip python3-click\nsudo pip3 install -U click pip\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku\n\n# move to /tmp and grab our distribution files\ncd /tmp\nwget https://raw.githubusercontent.com/piku/piku/master/piku.py\nwget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.path\nwget https://raw.githubusercontent.com/piku/piku/master/piku-nginx.service\nwget https://raw.githubusercontent.com/piku/piku/master/nginx.default.dist\nwget https://raw.githubusercontent.com/piku/piku/master/uwsgi-piku.service\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Restart NGINX\nsudo systemctl restart nginx\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\n# refer to our executable using a link, in case there are more versions installed\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\n# disable the standard uwsgi startup script\nsudo systemctl disable uwsgi\nsudo systemctl enable uwsgi-piku\nsudo su - piku\nmkdir ~/.ssh\nchmod 700 ~/.ssh\n# now copy the piku script to this user account\ncp /tmp/piku.py ~/piku.py\npython3 piku.py setup\n# Now import your SSH key using setup:ssh\n\nsudo systemctl start uwsgi-piku\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html","title":"Installation on Ubuntu 18.04 LTS (Bionic)","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in Bionic, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Bionic also ships with Python 3.6, this is an ideal environment for new deployments on both Intel and ARM devices.

"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get update\nsudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python-certbot-nginx python-dev python-pip python-virtualenv \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python \\\n    uwsgi-plugin-python uwsgi-plugin-python3 uwsgi-plugin-tornado-python\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-ubuntu-18.04-bionic.html#notes","title":"Notes","text":"

This file was last updated on November 2018

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html","title":"Installation on Ubuntu 22.04 LTS (Jammy)","text":"

Note

This is a standalone, distribution-specific version of INSTALL.md. You do not need to read or follow the original file, but can refer to it for generic steps like setting up SSH keys (which are assumed to be common knowledge here)

piku setup is simplified in Jammy, since it can take advantage of some packaging improvements in uWSGI and does not require a custom systemd service. Since Jammy also ships with Python 3.10, this is an ideal environment for new deployments on both Intel and ARM devices.

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#dependencies","title":"Dependencies","text":"

Before installing piku, you need to install the following packages:

sudo apt-get update\nsudo apt-get install -y build-essential certbot git \\\n    libjpeg-dev libxml2-dev libxslt1-dev zlib1g-dev nginx \\\n    python3-certbot-nginx \\\n    python3-dev python3-pip python3-click python3-virtualenv \\\n    uwsgi uwsgi-plugin-asyncio-python3 uwsgi-plugin-gevent-python3 \\\n    uwsgi-plugin-python3 uwsgi-plugin-tornado-python3\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#set-up-the-piku-user-set-up-ssh-access","title":"Set up the piku user, Set up SSH access","text":"

See INSTALL.md

"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#uwsgi-configuration","title":"uWSGI Configuration","text":"

uWSGI requires very little configuration, since it is already properly packaged. All you need to do is place a link to the piku configuration file in /etc/uwsgi/apps-enabled:

sudo ln /home/$PAAS_USERNAME/.piku/uwsgi/uwsgi.ini /etc/uwsgi/apps-enabled/piku.ini\nsudo systemctl restart uwsgi\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#nginx-configuration","title":"nginx Configuration","text":"

piku requires you to edit /etc/nginx/sites-available/default to the following, so it can inject new site configurations into nginx:

server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root /var/www/html;\n    index index.html index.htm;\n    server_name _;\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n# replace `PAAS_USERNAME` with the username you created.\ninclude /home/PAAS_USERNAME/.piku/nginx/*.conf;\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#set-up-systemdpath-to-reload-nginx-upon-config-changes","title":"Set up systemd.path to reload nginx upon config changes","text":"
# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n
"},{"location":"install/INSTALL-ubuntu-22.04-jammy.html#notes","title":"Notes","text":"

This file was last updated on November 2018

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html","title":"Setting up a Raspberry Pi Piku Server from Scratch","text":"

Warning

These instructions are correct as of April 1st 2016. Quite a bit has changed since then in Raspberry Pi land, so you may need to adjust them accordingly.

Start by flashing a SD card with the latest Raspbian Jessie Lite image.

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#do-this-in-your-raspberry-pi-as-pi-user","title":"Do this in your Raspberry Pi as 'pi' user","text":"

Boot it, launch raspi-config to perform (at least) the following configuration:

# as 'pi' user\nsudo raspi-config\n
  • 1) expand filesystem
  • 2) change default user password
  • 3) set up memory split as you wish (for a headless server, 16MB for GPU)

Optionally:

  • 4) set up over-clocking.
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#secure-your-install","title":"Secure your install","text":"

Delete the existing SSH keys and recreate them (why? read this).

# as 'pi' user\nsudo rm -v /etc/ssh/ssh_host_*\nsudo dpkg-reconfigure openssh-server\nsudo reboot\n

This will recreate the server keys. Next, update your system:

# as 'pi' user\nsudo apt update\nsudo apt upgrade\n
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#install-required-packages","title":"Install required packages","text":"

As of April 2016, the shipping versions with Raspbian are recent enough to run piku:

# as 'pi' user\nsudo apt install -y python-virtualenv python-pip git uwsgi uwsgi-plugin-python nginx\nsudo pip install -U click\nsudo reboot\n
Meanwhile, go get the goodies while Raspberry Pi is rebooting

(We assume you know about ssh keys and have one \"at hand\", you'll need to copy it)

Clone the piku repo somewhere and copy files to your Raspberry Pi

# as yourself in your desktop/laptop computer\nscp piku.py uwsgi-piku.service nginx.default.dist pi@your_machine:/tmp\nscp your_public_ssh_key.pub pi@your_machine:/tmp\n
"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#back-to-the-pi","title":"Back to the Pi","text":"

Prepare uWSGI (part one):

# as 'pi' user\nsudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku\nsudo systemctl disable uwsgi\nsudo cp /tmp/uwsgi-piku.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable uwsgi-piku\n

Prepare nginx:

sudo apt-get install nginx\n# Set up nginx to pick up our config files\nsudo cp /tmp/nginx.default.dist /etc/nginx/sites-available/default\n# Set up systemd.path to reload nginx upon config changes\nsudo cp ./piku-nginx.{path, service} /etc/systemd/system/\nsudo systemctl enable piku-nginx.{path,service}\nsudo systemctl start piku-nginx.path\n# Check the status of piku-nginx.service\nsystemctl status piku-nginx.path # should return `Active: active (waiting)`\n# Restart NGINX\nsudo systemctl restart nginx\n

Create 'piku' user and set it up

# as 'pi' user\nsudo adduser --disabled-password --gecos 'PaaS access' --ingroup www-data piku\nsudo su - piku\n# this is now done as 'piku' user\nmkdir ~/.ssh\nchmod 700 ~/.ssh\ncp /tmp/piku.py ~/piku.py\npython piku.py setup\npython piku.py setup:ssh /tmp/id_rsa.pub\n# return to 'pi' user\nexit\n

Prepare uWSGI (part two):

# as 'pi' user\nsudo systemctl start uwsgi-piku\nsudo systemctl status uwsgi-piku.service\n
If you're still here, odds are your Pi is ready for work

"},{"location":"install/RASPBERRY_PI_QUICKSTART.html#testing","title":"Testing","text":"

Go back to your machine and try these commands:

# as yourself in your desktop/laptop computer\nssh piku@your_machine\n\nUsage: piku.py [OPTIONS] COMMAND [ARGS]...\n\n  The smallest PaaS you've ever seen\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  apps              List applications\n  config            Show application configuration\n  config:get        Retrieve a configuration setting\n  config:live       Show live configuration settings\n  config:set        Set a configuration setting\n  deploy            Deploy an application\n  destroy           Destroy an application\n  disable           Disable an application\n  enable            Enable an application\n  logs              Tail an application log\n  ps                Show application worker count\n  ps:scale          Show application configuration\n  restart           Restart an application\n  setup             Initialize paths\n  setup:ssh         Set up a new SSH key\nConnection to your_machine closed.\n

If you find any bugs with this quickstart guide, please let Luis Correia know ;)

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..0f8724e --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..39886567407c9dcb2d0a2a3f5a11804ff783b96b GIT binary patch literal 127 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 iel4LV?tK0001Q`*zR( literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a56a6edefa0446274a5cbc44620d9ae79eeb18e0 GIT binary patch literal 17032 zcmV)0K+eB+Pew8T0RR91078fW5&!@I0Fd|q074}I0RR9100000000000000000000 z0000QWE+|u9EDy6U;u+42ucZqJP`~Ef#EcP$4d)@3IGy<5CJv2CI=u4 zf-W1%fEDc6AmBU@Av*t@W1|Q*4$uPZ8yy)4HVy#A`|`p6UlOz!LwMVPnG;iz32WG) zilM;n*507Tg5nVi70BS%CGk;qY{AT6N++OrB#5vu?T8x@lLqz;fSOVY{HL>BATa)fAtBEn3pYZZl&jnwk!(`aBosKKUKsbn zyRKEsbvPuFsyJKd1&^LRVwxc)g)qqUB&GY@y>xHP|8F@H-||$zC8dMIruJ)Tr}Qs< zfyN#WLxR_AXWwJsr}+x!bhgw}+Nob_lSbHV4NkX8m+g+EMZp}5z>*Q$4*mZ@lyQ!g ze-PqSF5`cjk4k8!p;8h|w2lzsR73lAH%SU#wpUmGY^StKs|5$3PC$Y~!OYXjnC1U$ zrtSP4DJL+Ei8rhZs_24TrA?Y@_V1ph+0mZRu#$1lw5K!Z6cB{Y4(QJ3AeRJ{Un=W@ zatNVJmvkwUroj%VZUL**DatZ!?0Z$SeG4!gd4UGxbC~`@>!Jh63p|HZT~WKJzz2yR zA{6q>Q5UI8k>`{izhna+(hNzbq`6At(z(o`_qb}^x^z?6hCk~a!bYzL0RgjKd*!$J zHdH@PxTJqO#VS#-!q;)Sl#a0;!&&b%8ix+$aqXR7<(+-qOwu}WAlSm9+g2$sB0&6o zI|hbAl@-WQI4EB}s9ZTnKme*%4XRTIYS084u?yy+UmyqrECpB&1Qbv{2v|gg4%|V9 zcyNK*h56a3K<(1(xD=pvRTMuRsDW2roShCBAQ3D81yBK%xV^xc)pOiGzyS^$N~ZBU z{#L#n*KYEe5~uK?Z-{5S5M&@W`=#p`)Kug7n6<=bkMaZ4?kDSr*rI3$( zPSROOFR8bHl~j9P%JhDrtmeBy#O2;DQO{p9JueF*s>@fD%SH%ZCRYAKqxRdpRIxWZ z^u*@F0vSr`xxCK9JN78aIiF7%Bt|?Z^D2wzzuou5QYI3K6&K`a=AT-0>x+FT_{u(<|SJ4!xP#z$8FSYK^@bKE)8jw47kWVH#kI8=WIn#OW_;R8@v$lQ$dv--vv(|hnr#y1+ zWiCfmZ@y~@O-W*oVC-Su>3=;67dQk|G)$`0Y0#uap8-QgjF~WH#+)T9)?B&q;LVpG zjsQVI@PvubsY{Pu7frZi(q&g%b6`T_Y?aDEVy z^THO<6uI5=7kz+!bs}wCf=RdxSKzApET4G}FW@D-g4gO?e)I<3!aJCUFR%cMumsEM z*Zklce1{+E&z$!w5ApJRa$j%21QAg_KY(YN&za>M^ZdjzpLz;`3*nad9KfB&_6`zU zP6)_zczIV^rYg#GiqR70~+oO8}|0l0!Y_+t&xq}@&oT?9SQtIp-TH}DqT!Myq(hTrg~KGc<6sGRc? zmjztG9sHpQ=HLyyg?BK2)i`cgf~>_OR@EiqDsDhN6r|DX!nEA4C~r<( z^`PoJuP(=J&HH}J@r2ewD|16f+b)KMAQ-TiK@5fwZ;YtYgrma_t`RkKmEajF|k0Us1%h2Sq_F#V=~m4 z7!3w#GCVy-q0gucm?T3688H@9Mz@|(m@zhUCe4B|STY(bCd!c!I58q;DbXS&0nYV< z!vRCMCb8WhCXhLpxG+W*E=5`gqT5AEH>B)Y9`{(EK6C?Qc?*XoT!p!I+r(UV3*MB6 zphsp=JYB+Ro_UR6E?mMJ^GH4y<9x9Uogp%^|Kd`9QZXuKvxt!?>1q&563E7A6T|2+ zDTWMV%rNVuh=-Iy$y9DWl=H8vRN)bN`ew3<|oA{nNop>XRYWYMV!|8>IXa}#l>zUd827M zO{eLr&PKWDnv671{f&33K;uwn=69^;Anpn7 zp^|`tRNN2{k$(dwBh|SGc&B&@D48NG0+2fbM@@&e482#p&xXt)41NXn_i52TAXg;C zctj-R4E64~B@IA56AAz=6HQn(v=;=64#PXByfC|AcA^yo#{KWFe^wyyMu89mY;rI? zXwDiVOM)aR(qsgc@>nokaC7UKVyHti6lOpp9=`DwVA@gax6fV&2px3DVMiQ=DL`>d zfgF6top91Ar=0;on_*(5!ldHEU|8ekP5=t7DVp}C;Rm0ZM>;Y#DztHap9BLS9HV$fduoHOaR zw-&6x?F*-#smXd=vwx*HDK1uAY3H22x5Wlix@TxZ3#UB|tCvcA6hl0PzMbzUHm=bPZMCL4vs?6dxR<^QAqOFiGp#L-yVDi*)6Zp^~&*i%UyK; zit#63LEw?co|yGir7F)n_rgoByjHE|3iB^ytvX+Q^W6_W)%!)udprE&C9UMu-jLM26=ufERQCoo|qRB!KX%AzZnFQvn&x zXBJS0$Q>Cl(gM=~)G`)GhkPJazav?tr{dFf^HlWdu-pKrnrewU+h=f|0620~y~lFJ zz(x~Oomy#$O&tVI)PPHqJ%}qwnQgoo~8d0J0IGRqN9(mBS_IbZHo>+$@@Br_( zfinKint*awp!hfu^K#tmak>s{o*qx$NCFj)69rNUxd&$*7o*r=xpHH=SmJNh1pxd7 zEORoj=B5B*GobziY_~4p7g1e#=nx(P<5&u;iE8X60u6arI;Vua4JHB8V@ zgjvksG-cyC3P4aLHj2ZhMgnpe0Yj{K<%TLubkCG;-ACp@*AOHL|AfhpYkwhDkCyWh z?|SDw&dTv34_2YU!i(-SxTIV(*7iXliq^iil6fUJr>$Ns<}M4m@J1%@)hR3CtkM#t zK-^5UQ)QEGMpvSB*5Re}HrmSiqbY^6xt?%r(QfOQC&b6b*dZ@QofUbn&{~V>z|zdo-q(x^S5M9+a}SQF6KOUI@H)5)*cJ@Gf?Un1r{7!Kt>QvPL~_ z(MK;TDlBERx^_W3Dy_}5i!DYn%L9Jxm3J@z85Z+oNOTz5EJGfH+ysE3=rOje6Y^Z= z7y=>(@1YTN?%=TTPk3++fMK3v;=J;KZdxStrp*acT}`OsF+BE_tMvRDC5kG`Y*X+3 za$2=Rld=KPn*Mmyt(CQad^}J>3pPwW*0(uup5AnZh8XTZm>x@`c=A80t;oSxL0-=* zPq5K{#{nlAz2AWGsV!kEPcer)C`LR9 zf5Ue2xAI=yZ!_Ma^-*q&D@^%&YePvCuHf$b=NN&V5OkiLnw2oBn>$Gji6Oron@;e= zNQ5b2!^g5(6X17B*dmh5lK7T5o`a$ZeE3L)--c`H3v(cN*-PM~kW0=Z}1BObD5_QGZA zws)F7lA&3gi)3kcm+e7jTVXSA2c%2r+8Ar%PdSq6<->}$^vSfS;`X@-RjPSmVbh>$=_3T{?D3^AHhDSz6@wjmNO1W7(ucp*5op$1mL;n*s_6sj@Bw@&S`QG zph`Wsxqqt0`d>^zi+c2sp^~8N(SF%0s52E!31(?Pq9t!~BxZ+E8l5sZkN>H$fv^Hm zU}=FCAyXiuQY@wBtCi(FmAFZ^3+AcL*pmBuA~nRbqPG?b8)vK^rRFS%f{e7onw*o&S6$9ZmaAHV)1?o!$ zAKAwxz=36P`1`3%VUiV4T4Tbrcf-ll=2a_g;3&kE6Y(L(5e-;KbL)BFHKcx#Q|3xE zetEA)vWc~EXcoO};memjmuqepU@A zyg~#$?YsL1eoWWg4e{XvjCm%=JN5-M^~v3ZXY@+3NiCf;Bd!MMb}afXIM@yIs6Hnm zLq3TxtpgG${aMh+Zd_@~~& zop*C^m)qFqrxOgD1fPR2p%`Za+&H(5{@Cnl#|ASqfm~I~)fPBc3#Kv(qK9K-PCHln zSjcP<=VC2Ap&chNjDBzQum-Q*(w8kt2ONwB#>W`Jt{#)OxkW6IEyI6v1O?BugAJxA zc?!!~-s^09CfaJgL#L@+VD`?C5dWIxyG;huzx5Ran@a2Ka?q?hO-50tv9Ph2gAtT1 z#g9Q={x?suI1d<}5HS^a$CtiPHU+OXvq$$~x1Sp@z5aa)s_mm-$UI6Q@|rxQyAHMT zFsWE+m&c-QZIvM59W-l&;V%sG#!LMqwyiqWTB=!tdUI!aEwa@xna--smE)~7r@Fsk zVPR+gkIJV~WIBUze{3+A)*8=7rDtF^I?5D&IQALuD_;kRPGGX{L&)!XKO0~Owjy8vrl#{(6J(MP%C=d^{7wIQm))E_Sb{60j3~XAd zmjpb%<;)}HdZ59$MepN)?YP!=51yQqmYjrFRj04OkM) z+bN&T;^>Opz@Zy9x4GBy@3ys}iNodem)B=Vk&Y8chsp7|+PPQd$@_v_nfYeQx2siy z`V}oswM(0%a~;qO8~j?6^vOepBtKTJwE4jHJwiSMUodBk4$nlNQ9kP|b! zO7?!pQ*h%ot~ajD z!f0P<+Z-N32Y~@Yfh}w*yun%t4fq~|2Z6Q&+jW<-?0i)bz<>ydw1TQBH-pZVZ#vX< z(9m6F?FN>*jXl!J6M?g79GWwA<>+`KVS`0)EOi@wK=)?lk&sFSFvKsP!g6Y|mC^OP zf$TCl*q!rp3gpw34j+)ptw+gCyG@#Zdjn^y&gg^tQLkLpUkn3q}NNj ztE+UOZD5E!Tnh7pcGkV+IY6hNKz*s{_~`nf0F_Cl?&$hKf0avW(cOoex=$4`UhiZ1 zJwGF5pDFD7(=u?PdEm%GPAz>`e&0fr>`W%{wXyndd6whhDA^C_=_?CHwNVgK`zXT4pW?-tU^7zh^2TBdhO}qN>mQ}hVd0RJ4(}uJ=8L1J?A*& z6vg2Cy$}C@bioFxBx8Qa@w^t$x9@K;^!YrWTvcBi`De;T~p{r z3iCC!U2~Tg94qY~7AQCxpmtj--(5e}ZS8;Q`h)(s5L<#pi=4Il+O$(@2*aXn*$Rvo$4JHPn^!((`f!!)HBhO}T(naACwP^uL(?j5o= zS7zKfXi#)8p;+aqMEeFs9f5whE-uWelkU_Rsf&xSucpf?q_+FG@U4@@!c^{mkvpz| zNf-ZCQJ+^8zpQBo!vpM~EicsG4)QptDwrqdQS@xhi0*Ud9Pu98eF*7%AhIpMCg5U$ZoT#aIA0p{D-G#oc7 zS^G!CT^qCO*A(yK=K9+cPSS!{h51+nEUTku$N*8Z>FIJoBe;fMKA{~Gz4_{SORXj~ z7&@_If~rA6eHJBx?Bg4`9q~hHt}>8xK<>qLcoQu=r5vN*{+%187qS!g)ZvqA;o zFbM{G$6J0Mm-rGHAl8{sR4|Hi;kHuur<5vc^X5;VE9$UjbfYVbEZRp2*2}vx=I`^+ z1?ISi(1Ja1Fw8g04Y*?YaqIVxgGio!A-*mXD|)=LE~heiLgoECLr0u3ed=Q#*Nn4| z5Kp_GVWK{4NIOe;b`_mL_ixkoQgo9V6Vo#R`F8 zj?g~D*TZd4Vh>KYuDGQM%Y#K@#9n+)x8sMSP0$6F>4unBImS{Fxwv9n?;6H)CEQ@l z_XlNt*mg{<^_@&*D&Z9Ao?jFHk`y)wg^sdY%ltoGf#Pjj|6^^Je^L2SqpJ4GBTNP7 z7edp*@8o#~XV>h#7)%+6#r)C|r0q+de(){EjlNWQlx1>P=l?C*_6Ea3Q89m^_CbXR zUwLN<(P`l&@W1){n|gviyBHTBAF+dwLBFXsx6;#dsC^4kHzm_U=)oSbA!uQ05~jn( z7L^j)RDCahMiAW-}MP=|?T4@g2 zf*XIXIJ4>wO27$HiXyQp++eLtskx2U#t_(yeJI)VS)`p9Kn{u3w(hUcK(S{jZ8!44 zwQuTTTC1=ff&&%E+%h^(&%UZvbMdI?wD7Rja+5`ffv+XT(M#}C4M@-Hif@}|;O}O0 z!ZTVY`3%+$UY3ULG-v$(oBTp`ND3u#jpbzxtbe zwY^3)=l-S|r8)JhG$W6&8+IjB8Qd->!?{jryZ-z2CMy$jlhSrm#UqT_ip^G({U8re zw)1kX%ZN7&V4JZgmBqhETge9^a;}Ps)G(M*#BlP#?BjfN3_s&d*Ch+H#_~`f;U>1~ zlX)8m2H`8$U+{^JXWSE=c3AoU!`H8HLvOzP?a0D#!~|c=UqoEJbh+=}&sz8hQk6x1 zkP3|TivJ!v`aZk@+k`z4l>Q_Q-~z}2jBLA{8(xGH*~09a6|@NRO4gT9){pn{OR!wN z7P-dK*5cprVwg%H(j%AyJ2r|W&?AG>qR@XJz%Z(cwV}>x+{1edgFwjNbefpl1@9rW z46m!;q9fDdU<_;vr~8Sg?ywfDaaU5?Bu*riZ9esXOefZZEfrd2nkAxY72rPoKq+-$ zzP`A#Lb}RXRryQ3M{BuEpX)EA*pIJXbeH;$y0KSfDIXZ^6vOkX6vGP%KFp!L_(HU` zMY4)we_lT0IE9n0#Qhhk zm2)QGYoz3J-P;ahf5QL7Dt%PBXv5J!N*zr;>KBE9D_S!}@z>2p;Bo%)MX0%GqBv%f z^Zya3wXCXm%1KM&T)k+uVZG9`VdlG~VHNVQkjb3XWihE6`ZGKs8fyQ@G^nrsHt^%p z!r;u!?KAh)-@e?S{xX-XK6mXNc(zsvO6FdX&d={gP4Ltad?i81KJ!HY={7#PUK0#k z$aA3CutC-%GCm29quciw!+v;g=%k2!p3FxfX-cP}KreC#DT~Ox#kXC{mS6c}cp0}F z1yyPAA!7u{rfOsrY(ahS&@BFf{3lJfLitIW zvWyY%f0whdaS+9V&IG>;C{HgWRBE{P&t$%z3(;Mfd_aJ0zy_NgWFaq(E~4i_A= z2|TV%`9f_`7uniPTx#Bo?w}bhnK{vdPL!Bd91gotPC?m#1@BEfw!P33Zj93}t_%*e z@AkAw@+RlR_o>|P1@sh|y>BKC!t*?F=@);L-9WM@%~K@s?wh#t_I~7=%FF+zm|ny7 zBJM_&L<|^~gxmw;KXWJpUJtePY1k9Cp$Vm--U8VSQJdV{&1fq;`IdA-M@}i+E7J|j zMnQ3$t6E_>CCuLyCn14d`UpDoK zS+N|;T&lFZ;{@u$Ha%jFXB}YY9CFg9#bsmZC@{JD51Tq+=BYO4)eLVnNB*XFNkUVr zH>eTbY>fJk-XTL>XKuD1M);?D!gAF119t^QaI?K&G3xkcYOBO%?W!SOEiJ(MP)KI< z3Oi=}7=a>{FR&yYc!nR7UuA`lfRS!l&aeP^r}&&ziOolGSj~3-)f3*MC`h22^9L{- zAIru5%iOS~!@?#|t{#skHR^5%xJ*8{-9N-l^*yf^nTwLJy1mREa=gEuK)YMD0|oMn zF1GQrL;{^4uB$_<*g4lg)VoAEMA9yZ^a9s~8$S+@!Ix*@Rw+R08=zgJ?Wl-%jpD{S z#Z6qVVk{7gFX^7;f->ulgX?3kRNv9p;~AZx}PsA;-jG705ra`ri@dmzU^tHP&#- zK=Fu~2({fz!PL^W9vqO7y?dV&8o*T3YETJe62f; z?;r)v&0eFeX6o%v?VFEPZPX89v7SWLA?rlTY${7z#WMTDU#Kykq&ODR{1|GycVBhF z>1e`MBab|fjbeLbZ@4OxGm9wVw@wh{r&ql(a|lY%8y>Y${IY6p_4t_xhqcx{q$q`t zri3BBk=ix-UdG$8z09x)A$ha0b79T~)?23y<``Rj4jOM>6dRSj?xsY}p8qv=k}P+R zJ-IeAE=A4VP!^xdo9Io6g&uIDZC37pqPb5voqGpTPhNP_fqB3JyOwryD{c&pW4OEI zBkAj+&gv>H=)eoMeHqSycF^X(NxWJ4S3wnj-xDSUiMWy>rDN*Wh^)c;i8UX$t8QJz zx+(qrKb0%1^qx=Xy{=r1f$0bQx9T zcM0;hb{CnRU=GO4v<_tVwUwtf3v-0%1gy#0)mG5Iv)=L~b6DzHWnX$ndxgQaY>_nk z$Mg-)R~ijveDGWy4&U|$|dX9*c`ij8&ljT$;_5k*e7Kmp=uzZ zrLa$fm8~hi|J#|Xs(G?>(qY+ur0ueloGbqX-~UNFMZG7)rPl=LhNn}u6ZzG9en#|S zZ{W%cU6er~X}qK~fjixv8P#hVsqotI^aWBIS$H8eB9lBs9me0hD`E#9q2(87QW^`1 zisiw0tlm$=S%M!Hc_LJk8`0t(Y{Cea+Bj!!b&uPZw_L?lu@^O(^=jNIf#c@_}5celT~z^uSg$Fbp?$ zLYlB2g~Fm{xnCqU=HeP+gY6_JoIG1B(I2nyYF9fPL`plZs!Q+3cbam~M>^3E(%N-V zt9d)4vrhWiG$pMWJBDN@T0>altTU6IJ&ETl9-|Y8J=wymPCkn{2l-_t739Uj>=Q*h zli)E+%*_+aL+tpyG(y_`5&_%@Tegskj6%$)EnXFlJS*8+9}X60C5XFTxbEeK30;&V zzgtH(>+W_x(xx$qfrM4hhdWRoQrmu2<9~nGHq0COw39e~E1(J2RfEgYv<fNuqjA7b{4mZ% z<%5guo*tge7B70Z*V&x)Dp67y*CDZ3*i{NEU{@JT$JK4;dzzGUydhU&F3Z=~#h}4< zO2y~&Z9quckzWpLus%K(jpg>(w5<=J!t}9<7OV{RSHa8+fZ!WpGYzF+_`0PTv^$}&Lz_wOUo3A zp~M0aK_=#5lJpnKn89Gw2#EQdgZ?h|rX@*?v=&2-19XDXf#Lx&kTyn|y@pQ02iGY= z%HZgh){XvNl2t(_r&D-WSF1hqe=2s#gCIfMWAup!&pKB)r}@!AFM3|{<5Q!$AgA*@ zP3WRtC|w?D`qlJs&yq3Er0ru?yrJOa-d6^JI$d~D?-rG zYq?ryl^3^B-r1?x!uORg7MIJ&^>#8~E#p!fcWrr(lE8=`XEQE_uw8ur;t0HMqeG8~ z#T;Rh%?)WW;(*lgOXxZ-DzPKuFgk~BiAYUL4^@y;5{eU`58R~fyxL;Cns5H%eq^4v z>e+e_jR`mu`*uewlUF0V@!WS==^SxF?h|uI$$%bvbJju5YH6q7SGY3lT2aC?YB{Z~ z>f^(rT3CisT=5P5MfVCUO9z8|?7B5mo<1{bD>;{8UM6>AXN;z025cXsmr+v#YPnb} z*1AohN3z)4_LccN^*8eoY-k(IbF_mz4iba}+uK8)U-O6Dy|OV;WDfP>zSVWW5D=sg z)3Oh2na-*rotGi{B}R7t{n-!_064Po?JxPvh6>_@21D6!bBydCr4rcvatzatiWGk^ zo&wu;$PQ5418wctti84PDlDVNB^a-&6vp2i1V`>Ga~ zNLf#8Bb9o1F_<0-yRTl5J)o~cvI{3BFVWl|Ynr)3gHJ@8Y?bZrQ zKV+gv4G+NXbdV@?s&i<6+~ec~*QQ#hl!nW9=%<`W=?<4KX+2o%w!hJBf2DXzQ@W)c z*IDDEi?}m6Cw{By{mlZE>!Q!5pdaj4@{+JvtkdVin9^`@|E4FZ_it5A{?*i*l1(?; zqU2At4BOx@;zjeiY1Jxs9qb-ZLuC$py>Sr}+e*8(N>r0IyLd`>L^mrau zL$2+<=5`o|!+|^f>SXXaIzKbBY?uNzg+(n*?w>OmTk|j!Qq>o znDzr{H|_F*&7b6k?7+JE^$su{mX||5Dml?FfCX?{6)x@q)V$g1YiGmHIKC!}pQf^1 zoxTg7i5v1=8|!Ktk&xd2vr+Nct);LLb{!zLt`)z@`Z9m#q+_MOh6=&OTi4SriyjoQ zbJLzpbB9tpq5N=~VU;tME^vvqM42#Se@QK@#=7#bXsoE)gKGw(VA8hY%6!HgR64Y2#-{DK`FoA2h!>mS!ela-3>l^)_pcu7uZEt{L=)6_zuV9- zz5IaUvHfWq2EbD+Q+wcQQt#F8mSP0uyzBy&w?(qZEJr# zbZ`9?EJsvfGX&Ojz+mm=WcYU;AJ|~p?}zwHY$^si7o5(*#Rj^T8PZk4v*IJLn=JQ0 z#&l~}9VC>aY1j{4UZMA(_mKCn_lR<|pa_8dFX$uX04a&LI3m_oH=$Z(i9>NIChQ(_ z%db5)`@C*zfzXIJb#h@!)RxloY@zCEemRyEOS2LaE9ZY7Lp_6N(?64l$JtF85FwT5Ajx#jh+W)Jlc z^e=ANG=e%VaZnG05xK?eTmxv{HV$n)aD_Nl^2vp2i&+ttv)j}TT*;8R6_EaWmO3El z-@F#8DhI?G3a8$+#P!eJPWL#Y7S@3DK+Mmea)!leigtK8)XBq9_VjR+V?7+@d@ERo z_Irb=mnYadki$~taw|+sblnjps&{VI0W=N`aw-Ve`$@` zT)A<$Z6sE1f8RDvg>*3}46%s(ax7U-`Y!HJ+q8<)J|90h&{YNu#T#ZP4 zVEw^uBqZN2>K#mRN>gN)c2DCYKV|(=UtGBl&b=Q5MEtD9_3lPWkNiy?| z{rY8MK~nq!0CB2qALlGGYOWxc#%}J8CFi>d?^g*qo_1~p#k}eC^gapTgXW+h z(RAzdeoA>67o)8;wZ$c9(w zH8RvNg#!osL}G)0b5gn<*y(a~*qEMS^!ncYaBiNbjgX*o8Uu!4gM`#3rhN&x-Q0g> zV9(C`DR-Ou-MeW|I`KHN6OhVYhO?fn>c`u&?f8t$^&!Qh6o6qDfi_O-EFGGW(xmvg z(Rw0Cwl|w&`be)i3JHc)zdyso!ho!qAr~N?Ndo2i0ssKmAF4!VQU;6QDSZ4DjBXUd z3|xm6+R%W!V&3Z{*J3=a?ckg(@81j+F6Yppn*tR7|1Lm&hlRkB|AF-RE3^>pTfac* zE&BHZ{K&CItnphWo#HyC)PO=Qj07hU28o2w2B49NLo()WUtXD zN3?}UOMJZB;{Kr5DO;bCKkIE?Kl_n2KxH8C5;tp!GEZXtYgsV>0`f+29{O@XnJXci z5<2&8nE%LKbvZMH zQF3!_#uA^yqH{u~@UL)b*$7K-J+H~o<8_bW{yvM-8J>r95fGI=3u#!-XUMFqs7fZb zIQSpwyLyka3!>~MU-%cu>-n0z;_7;RSYrH40nWfCK zfj4^NW;-y{{;xFI0TMc$Ry6;@NfO5CvyB*OQPh zBlC6ynrmtB048g4*kK=Y$D11%oY1tE!zR>x2V`uisfu}(wn)HhYgU`8A(MF9#$>I0q0CzEK zG9CqCCeatU680+0UUsi&8n#L6f0#8ZPOW89QJyI8dmL0D!O+Va&qJ(>n~4931cvwqv!| z+TBv1!5LD528pd%yT6Jt8X>m0^d7O{AjcXXiI%Fk$hw3g8VB!@2dI*jSkauTSVWUI zI>!28(j^i6IMw|%!lGW|5$#wY7v{6!L8>Zs=dv2-cQnG zs?srmk_HDwNU!;8vX&C^!l zt9a=&hap!?M_f}X>rO!*4qFAYs|rL)tA7og={p09w=%;Fj+TC-n2RH9<3bW4;ep)8 z)#W*-w#Hlu%Lz|pub!!sNGlkB#~&~lws4DCLvZC1SmI^eRFvztaB-Q>%yEwzNZzZD zw;5gzUUiO#Rb4w^W5Bd1E;bqyla)5$(bh*3UPrHUs^aU(mosE2&V>{Ge0ziR?T{w@ zj!y{f$ zP06(85S$CG5j3aF8-7@GNltMdZH96EOzi>N8^G-jr5KSqf?M(RQ0+`A4*RoMOBs5OPE}76eJ8KMTuT(sTy)kUB_y# zDv)3=>{1#X)3fJWfb2hHnB^u|*@$cnS;cg7bcoBV9v{V+inG@mzy^m3M?w2@v#LYo z6m@KaMeRBy36tN~aYdBf!%RNti^%{$zpoN9NpuzWi!ag6>Xd%jxJZ3-i!oR27-IH|h9_hrE?rZOLFEsK1 z5=|*aCsjTcm#_`fIqkoV&5S@KT;s;OK0WPzVWLU;m))03gfHW8kZdA|6Yh-y5e3Q>a2@xtErGR?<9wiEr*!JV>dgB4nxQN`4 z%5=Mfr+egWc%TNn!Nh72SR5Tu(W7m*4c&0M{0~=4aptzCzTwDpmI><%*(cd)@yB{v;4Xy8V2L|<5yijT(76z23L*9zV) zqS~<(rny+G(KuILmD$Tug|Vs0rj%{rWXx}yZd|8&I_5&p>+Wi-B{4e@36hPA*mFDX zt>IqTS$^NeC)}~_tezF5lTE3T`89eu4faR66`d<7+#eWX0g59pj`|n4 zed7)_)im@ns3tkxvK#PzzN23`A}&=$u$GmnuJho~y}J0lo=m68c4bYon?$|UW8lvo zxF&zPA>;WHIlbE5XIWM0F0z3Rq`O*bNKwnE&@hJ+=O6K<*Zs0*`GNn>$3!*%T0aDs zVN`+xh%YCRRbR}T`e&VwdPcnhfPykojpM@Z50xO=QN(fK$pOhn=YN;~oL^4L?xUNR z9iJVP2{(18>78bGQ~H^fpf}U??c%UQqGlqBDf_}f{ zer)%t6f&<-a>@Ot{z9h8plIKh8`VpKfOO3fRdCm2fQX1KB}L5G4T0TW{XxH`nz=_g+XXciIojErRlPx=MLyj_vWV7ES#3lsH)xoRy3OCR50 zA#PRi`5e@uHlJdU<{3y)XHe5g>85PAs_a#+@)u}J+qJAer!-IJTM&!bMrM8~_s>-x zRC#1S^zHZ2^Hr~uIVr1D=PDN*T|Z1zM=-Fi+|LO|$dl7f3BZDsAygTw%=RSjdWtH@ zds141s8tNhoi)=`^$gCWk z-wugMrp2(W`0(3qE}|}6iPyMR#M~uPzUGbFTtkd>7BXjM6>-%80U!1?f+~oP6NZ5T znrw>-+@uRc3Z@NLo@Mnu*8lhWG-AZ!KRWet1_8jke~9S;;EUq-?QhTjr>E^F2SSDc zD8P8tOaov#x#XYy&kf+q!huSl4zXyimInBzK80apU3{XGUPE|QJ~?4c7S${9tTb&*0gvhr+ckr|u0j}&0mUi(l7EwxK# z+X|raI8Z785KC)b{wpnl21&O+88$fE@uUO`=B2K$;vTf*gEWN5YjT)brrV zo+B?DC3Ve6gLi;~Z}H?a`L5x9zOa<`3#9E(p<&vNmo=L$jR&MHUuT=$bk>52BiBqe z{fC+pF-jQZnUA|fEcx#l047~PRtI{0A zp{1!r?HB07%a%SQj3nnJpWR^oOJyW;PVP(Ab!0|BDJA-Y`7e1Z8A^+CKv^NH^g@!0 rP)d`cGUt;SGLBMeE)ZEYnEz6Q(xTi}R!nQTUw<$&;M3oDl-)=U0r4); literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..508baefbc1f609769c689c8883067a4a346bf7a4 GIT binary patch literal 1512 zcmV23I`wzfD`_NMZN zsD`poX_QD)PaIBPh#X2F)M9IGo*NYLX8G?+2uUAc3{naqB=n$1Akbxq6FO{c?*}8u zp^fdTS&@c0E#dCo?Nvy6xIMQL-Or{X>jI$eKl^x=Z=j2TrFg~W1H^pXmwkl?4Rj25 z?Z!?{SJNTg5k@)afa|iZrC&|>0ZEMN|yTq@Rv|MBw&0D&zx zI6|?<+wSSK!)cQS6{HGy*oB_PNM{n9={mp}4~D!9T=@lHEeJSEFSz1Pu$7NPU-Is?@2_+De#fyX%a3i5p8+(V7WvpPO zWmdtBcyVf$FsaO0e%G8L2Qh)ZEMWru;Ymmiy;Y2Cv;!{kVPfQ0J#YM#dp5!NN z`6|$8GEa`EnShckM=y^bc|QW_5gH|QYJ*N5>0Z}I+CYG-sB}yYG^f;yL?^WM4L8)! zRq*nxULffW91NJT%P2(C(HX4lI_-fFFz!Aryto8*Lwff8rW_#2t2+ojbH5c|b2gu8dli(TaKP-LiY|-H$#RdT-#J5A>S%-|v5W|9h~0dsI@tGw&?_%=g zhW?xRTWb2>eRnA1X(&ECP0x)2TiK2^?E1m5`>R`MG(R;hG^M;+fdYg)x#HRDK0~pdU#{iY$|Jx*Vo^8Kl z``C9?qt#}!my#h*;B~mD?{4j(jxP{BZyim#IA5GuenrZN~(Xe(?RB!xM zHNtF~C6qO4w(D|oRZntC2zZ|Ac?9)d^=fU@8g-+7RrWCde&E+x09(R&Ik`Z3gQ~@Z z#&Em2AVC!l4I3P~5=ovBS^oo&P^8PSgXbPGGtlvPV+ zRtvEX4&GwImS}Jt5lSohik0IlEask~kFAZ^R3=z?w~PM>EeI~mSr^7{ zg4*fYIt@DY^+6HCH|3ydf2CbEtK9jaC!0VvH7ry%Qmu%+;XZ3wPHMmk+HJTmn#(2L zIkVwDYPh*1LkPOJt{~MdnDLH^Y@c9@ge0Fua9d-Ic>$rhWcO%Uvd|t{=q~jOU4KJS znp5a^O|})qPa2NTcJ3C&4^(BQLYSOZqmC2iioEnV+n}Yp2GJo<2MwBR0{?+?)ovGx zsMS6cRwr6I3_&ZRcF_i1MCT|5iPlcFnkMLQ+!B8{z7apA!+{?dBw7)5f-a)hC>E&R OZGwsDTs{$n0RRA;cFpSm literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9213da013c15b7c14d8bad77594e99599bfcfbb7 GIT binary patch literal 16676 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ef920e5ae091a3c4cc6d740107b7146243273255 GIT binary patch literal 12704 zcmV;RF<;JiPew8T0RR9105PBd5&!@I0CPY905LoO0RR9100000000000000000000 z0000QKpTz>9Dy(fU;u*@2vP}yJP`~Efww4urE&{{dH@oF2mv+%Bm;+V1Rw>23I`wz zf2JxUffV*;Kl|B+7Y#abY@w1I0*f;z+7Cms;#5XW_o`=`7R94q&=d9?JX8aigdo% z&$|CMHa$o8*a)5XR5O->Q#Ml_I5hGFw-1pK*ZssK3x`%E(&!BW6L z;s4euZB_Sfu9o=#CoJ6U2FaP~-#yb+-7~vAuy5d~XW;+`4rV9VGkZYff-1rslMA6d zP(gN)QHhX|5jIAh(gBjdLb|+Ik;|!4#sBKcRCPU_S>&z(OK=#?*O~9{TFfE7OR*7krhfkJO7=1Nwa3p{42U*F%lp| z+WE;5lsaCX$_glv(U^lU4r>sm;Q+!8xFB4@KL~;XH7F6-a}_<&1v6uovp3M#o|78S zmAg};4ptrrOHUjPvVUhPBk~l~(E|y&aDKmw&(qJFATtBRmd!sfCV%6K@7<`|()|fHaLF~2hW$Ua*9kw_jU*Jm;%cRM zqa6*r!*v^I|2+;{>m+~%$X?|Fx2WD5z+-paRMhJmggzst>x@ufUe+{meafy8Wk#wi zUJ5>dN*B!Y`upsXIi4b}7%K)!9{OrdbvRlP0LQ@rapEQV0_*XV+v3E9dvA;Fe1QmJ zEmHIzk7a(4c>@2>f+WdOq)L-6L#8a*a^=Z)$YBKv6)9GtO0^ot)oaAnqD_Y`J^Bn7 zbizreoOZ@p=bSf$Z`de-370LnV##&OZn@*02OfFsiKm`4q+wTA()ms6X$1ZnBN^#Puynv>T-8)l1=s*X2seg?rWw5E(v)#? zQ8lHCI%*xzo1wCmq@WJqRnMW54;urm#Y{h0J(20Aid-6+(r)5fHPR9=AfT89Yp$aP z6;*J{WnxQ1)lt0)z#LRn6x zv0h~3%fx({n~SAX5(v&<$fLL3a|6{O;HcZ_erW+kIS~y1@Gt*u;I~#DX9fi88_*dJ z4DGNS2Mh7i7y+cqxFftn^pCXTr03Ouj^tJG49#Bb<^T|(TQd$6uq(HIpex8#0I+e9 z4-+PEE*!?S01+y}$f>W4Sy+Q5Nxd|Rx@gLFF%u{8kPwNH!%`r%RbM^DuW#bYP&4Ip z7RAYmM-+c5{>5Z6`edzr(jXMk5G^qjb8!}L36%qKMcp-2@}Hi3 zaTF&h7ApQw+$`y14i--_r?=|+0Db`A(MAo$p#~q>n=OWmp`y2FD*gc!_3b}>)*SEo z)rk9lue7}$&JBEgIyt3R59e%MGln5Bjl>-yiobDUdanHM7>@clb?DTkTaR9S`dQl9 zwU1{PE3@V-Saiiz(PFlVuiaN(Te0e*OD>!DhoGZFp$gd^h-3;^;17-o1-`&ocY zOn@Q5dVEBeIr)gSCuJIoMhep;WAFA82w{QuA6?R&m=$o=}VaNzuJw8F#Y1y!|Rmt=+ znyAaywCfQGYbA*44r?N1T`OXbampHCh?vBKvhbS%n&DkChrw6%^5ZkhCOxO`9XkP4CuR+*t>bU zv$^T*3{}S#SotdSaF#~WDwOiW8m7nWV4IqgC5S_Y&gv(C`EkJTW#%}m5Cm?6c!8Hf z*EPv=tu{@)=1vvf$(tw&sVH6ZHR@JOx}eHvL)Riib7@NBmDZG6PkN=Ex$1=)bV;eP zx=eOZQ|B8uB-1G=jn>-Nlxl6Yz9vcuS>-}0WsEt~4_$_NY~(0J^o6B_bAz8-@|KSm zu^ho-6#EIUZ$7sb`I}u^9(w_>XuwH#ne`);Wtqx|I#0`HN5ZapEz1#68)+;FE~oc* z5c5Y4Co+9XR%MxDFY>XQd(aDf%LPw9eNQr?(|IV3$x@;~0d6Hx=#bwBaS#)?1Y_Zj zl=URkMJbgH2ivJpd5)Sb6P;r% zEx1oPn|mu8gIeQ(emGf9Ev>RjJX)#u9+0)akV3lpds>(jh4)cIE(av3&3(&G0_;#9 zC)Ls@ZF#|!yoTg%$gWocO@#q*YRd{l5TDW1gT2IFG3wov#84FexvsgqN%o=GRpL4^ zjXhw5S7wGQ#uBNv{_~jXHOF$CbCY>Ng;4kK6$E43@kYy7BoK!QL#|0(XqXzO%h@hX z?ImvrqBn)flQ)0USs$|5-bD&{742chR0kjOGQ$vGpR_fsKNsyoDSrHK;le-qKl?u? zTC1NFefVlh9A5tabw>LuAN;p=KVuVG6SWNp^)jYqomtZ!myMuIw0^3_8Z{3WBy2l2 z`WIl)m6q(RoTx{&133L;bo%BotDsZalzZ#JKMpy@0L+#V29be4h|Y{yM*4PuLy3!l zM0jZG*jPjtCO%EpmvaZU6PkQYjmgzVie4=nopq3p-FI8(3S^JBX07_9rFfr34a5sZ z+$mYI>NVo-(5pQ-w2g@TrW@DaAq2{m9*RajG{$DDBj>klagRy{GqjD&3F%7ql~qe2 z<*2i)y*^Vg={rl)UYz5mKX!fg!T22@i5Q!RgoEM(Q=vBbRk*0x?d!wNz&|={0;>zz<47fb^jceEQqQtoqQ;PI7^N`KzqX+B zd&*c!#x+8QK``g1_h7+Jnk(=Vv^SK_0&4Jwg?`(K^3s!jufLS%f!28%7cY31dtV%l z*{4yf`0P5A(r{eHq(?TKb@y9@vuiJ}b?rgmY`j#t6|`}+AWO}^i}Kqeq{LXN3}2Zs zh6_p|cC85}8mK|BOY*wcb<9~#Kc10ntw>E_jX>MD@UK;A=PqYmbQv{XkvBJCLdaH` z+40+7zrC`;V$)B}uS+SdXtHV-sC;T3A^eQ5itd@r4jz#^QjB_mj8^%7UDVPz?fZ zYEccz9o7G(BY{E@h(ub!6nPY{P*tAn1zg0cXHmQ_!muEyx487g)P|rR4-LIhz~$G6 z2-z46AiO-8sY(Leh(%ORi957bTdQBrsAoAfQtWAZoDj9MHn)xSk|jzC4`s?>G)tgY z6L6y+Hc6%nh2&@L73$#?OSLg^iHKU8P+%2Hfyj1rutT8G!aJ0o;jt0KT6>Mo)5v1t zSfS)R+PlC#sGz&5*X>&$Ln3F4liDy_x~~*Cv}`+FZwIBaL}FT>3SM(SV{7J#od3?t zvj313@sO%O7!gD8Y^p%8o*LDifE{#H_C{VrrC>TmVjQ!&L;rOQ!}e8_zhs2szod0Q;#=|_kVR}Yb^jQe*s1X z0<4H+v0dg@Qr21zM1snYAedr)H{bP2-Zg^^{s0BbpV}?=DtpkuQSy%Vimk{h_9%Mo zaMBm-ap*yGA!o515_55wW%w1~)`X%4t1`$m=3f=He`s9ne(XfelPbu=Txl~p>uxFW zke>raz;Kee^c-RDwp~rRMo1GyG%{lnJkSu?wxKdXEEI1YI^O{8cA-6y9Js`2FS&Rx zjE))i`;i`&sU_}7#nTRoKdJaW-#zv?@Mrf%ODB#XHR!{FoG*ADE^}{_K$F}ygkFc= z-jVNJAePrQ9EL*NzYI+>r4n^o?0Hm&+{5I>TiWksw1M>8>GbZa5?VK><5R96JmZTI zs!yFz!F+>1P23cbze(M^2`|CBuSoMkVpdX35|Rr~^-v1+m3kjs^jhoSDDoCI7Jl?s z%6qBZO{cVXGTQy!ZO&+``0yn*d$kvO|LAyM5xX-TwQVbolWluAX`#9;Y=x6M&Mb`+ zwT+umX*n$$lSI9fgwF2N3Us+3<4?|{$F={Pn@i{B%Bze$t65gRsVaz<*J>;ugf++r zU!;_9Ms{{%8jySlp~1<)NFY)ZEa4&m_~4@Y8}9MQNhn+p@7*thah85azF+B!wECJk zYy4IQ&Ik^Y!tqXik@;_nLXoy~nc&kvJgW4>wV+t^C~~1}|E5^84W+I2*W0p6cnaQl ze(EGZVpEDkVHJAevGkmF2xQ~ZGmg1fW5MwML4}t+oT0x}{Ho@Ul z+(jJ$4XruY5reeja{7IKS~hgRIJEbu_mAiw)N61}S#o6`xx1aPa$%Szmgy1a`q=4Ke%KVUH3K>dho{uw#3h7vxHUU|R*x?(U7h4IcY(NKK)-XN-BOs3h!M?RI(t^d9 zM#bIh+r`fW!6_uD!%!~LLiB-<+T7n&irCmlN;K@fTO`*ax+zp-h*y8VyUY?7uFMIo zdVf?O-ksLo7aFC^B<5^cl69cotkdrW?1K%JcAT3yA%SKwtmDP1k!Dd)@ zV=h&_Xf7YlKK;BkOI?p4bG3p0iZ{_H9Zmm#uC9hhk;}E5KSUeFPw+@z>R&k|;@E_Y z?8-=#gYtr7E{Ug$1h|s2b1EZYB|5(%J#ME9o4oPoBiiv^Nb6s1=K=jtDz^ejgu1`jF)duxS(^?y*t(ksySv|B0|yG^jwwUv^5rtp%Hcjm&Dg z>Y9w6L0&Du)-e!}mJk(=)cQs%J+#)tF3Q#{BzJ4ma4xROv0_|nN%leHU@NIOq2rQl z%_Ti-*v+`Z#q+QgHa?_Grd<%E&p2sg9GpDZ=o~h-7hfVZ(x2jzusk;YVKtlx7( z>D)cC$928PCX8lznM!-H0ghPv_dD0cS;Cdqr@D2;I##}2kkG%da_5?&xt(;ibWOD! z<9G1XK)p-#gngkrJc34@OKC#k!2zs9B*{L8^iZ$V;$Sl1utMcAq3`U}`Mq>rr`01X zI@ipea?Vvbdo1K`o{Q7~On1v`vvO_xe+L-Hnz7Dbnl1ct} zM~<)Ms7V5Ps@=GQ7;-d>=oS^Qthw$Ujri+CHI{(dTM0$DMQITqN?RxH>#=IY4+&H` z;moR9&d9?p%Lgc_;!F&O8VMza{@17Czqi9X6kiJJsAzk2RJy1VU3#u~K{WV)Tl(Dz zG4Hzrl(fRCDQpEiKTjEEX^8Bnbk-1Vl^hCKiAGq2&fTK(1oEI0Hq>FXE}<4KTP zK0lD^2ugi^)_Seil*m>WlhnX;diNFZ8G{#3A`Fyg43)3YHm0q9q%Nw=T}fE8v@QaL z?&UzoOaqsH}H z$`tqREZi7R?`SfSE^ag}cqwr5rSZv`Q1;BMkPA)rP!*b!wM*5e$w5lCsiKjoLWxDb zK&doY)H^vqR?3prS~+|X_QK{>scDh>kT!5}stMUXM#VNaR+Z91-k(1DVqJZhPMBPV zU(*}s?-+qbqGM-hrx)it5dCl(vqm_)KRuBgCHmm3t}FE%^65l4OKygmw+p~+QsMXz z@wVwn9y)+t^HDj@X5BX_L?;lSWE;6fv2ew!HyxO#+PnHOe{b4>f*n^qg(Jmw#k@_&-W9$IQ{^Dw(?pO{BDCI7fYLv~+=lH@+P zk8q{hmo(iEkHL%8`~Q$=R8#)X$mB#&J`WEcTL!+jAE=5ZVI|Z<4htdBa=3<2w<4Z?6nLp^#0o5&yzN z9M9A=AH=UPkK>)166U=tcpJ;r-XqA&Mu+9LSCfWXvvN3izeH=~+a5WX&DQa94UR-S zP(H25*ka=)DKY0rkoqmb%kAE%Vtfvcl#pK;h%jEqS|i=QO3Bu&sIB~a)~FHdCZ5%0 zDgCEoOq9JXCz$OJ9&T?Jm%gJ;V$c!gg_Esb+_V>%LfHj-=*ha7Aq9ZTpaO3bWU0O7_0iHH0! zkcEy0_zz-|Y5@x?(8De|4JQtPETlDd&pauPa#AR=0IGJ5K3F~Rd~Wo4p&YN|I>d)l5tOKx*Tq)@`V zK!URH|3tZJkiZmfC0ck*>;5g0!W80CWNW_vrJ5S5coFkMO6{vy+;IbTQik+kz4xa| zCxU~*lz?%Hnum=hRvzF5G76Ukg*Uiri(48`ly3?YCs{fsvF}whmju3NDYp6)p+4mr zqhm?7>^h@;>F|?(!GE~-AIUS4cXfVz^9M3zc9QD0pyhHKxk4i6XwxCc0m=ax#)WSDcFaFj*4vXy!znH-*Ohgr1v!a~T79pK0Ogx+)-+M>P&;9>C zz3qPkUavQkw>94TWy}!Ukz$ee7U#bOss~mQsA63RQHFSQ_m->4HgN?6?a!xW%e1}h zY`LDIub+{%_7MI!shessVV;~OvdQt&2aXgP-jY&tzR)wX)cAC|FX5VZQc6-_9$~c1 z=Pj`!?^?WEo$pJy{KbSnSE?(s1`ahhi|z5$)I39DR8BlwSGp0LC$MNBscVEs_plKomf=m5yg z5o|XhS0OiFo)d;}&|t2}iC?gpI|IpZROha+VTCOG7UPAAA~E-5A1X%cQDmEciCoL6 zBONz8Upi_Jd4mREaC3RyP3Z5SjF4ZE|4=DfE`*A)VGg1MC=)^yxgVT*540H+^IN3) z@%(l%#7~ITWaU(anS${a8z#Xo@}p%hJG{XdlrvxP^4d3FaWinU^L(_}g!3=}o{?Di zak*s5K6&PY60hSWdjL|e20dVc@>zHJBqX9_2FnEPV>k3CB9^i7FaF9@DdtJ>hQ;BB z5+w$r1`{h>5f3-&#c5RA_E~hWY>T$eW%?lKMk?0K7w7gx{Cuvpk7wjav1*E`Xjm8m zg&Y@-qDGM~LN+Sfv_+-?btLr>-`GVONcxJXi#2G5$__kZcAmJ&4x&&4GR!X)ZkhYV zJOl_ORUS_qwTet@3Mimf(WjA8WP21TvI#a@w$b6yJIkQ?J2q0<`*X07m85623o z!7t)p83)_KqMaDVe1$E<%2oE@XXlBwn2|!NzB9}(kQ}j@U%)D)v&E7O0;va2LE6rd z7ozKB1~M7!G0!RJsg&#aWQXvd$STCsq**}?KyJP?69gcwlX^r*D<4e~qbA@#`iq!& zO&W+cHd<1Mro*x$E7z*dO$U2j9q3ttrwmdk;Lp$yHWOppbMEZwg|A;u+qUm+lD^tLzw)f zvk~DG3Oq8%_y~ioZu<%nYg{NXb|GUT!ZBJ9wc_v=I9Vsq=3A3}{4M|f3*-F#eF)zn zfL(D782P)ANSpljs$H{^@!aIuC-JZJr#vOy-^^cmHTM3#-z?Z+$8r{N?XQb69$+7w zEl&O}gS(gR*{|67hyFd@u`3>9>UExK5xoeuPaBJJe0(*yyc$fg*t8M=R?6|I?udpK zN&D})@g+}cl6^?=Xx@VoAbfr{I0C|mtcN5(Kg)ac>Y2X6DtS73KM4ATeVAiJd!P{WNGBM|-6vR*=$-_#urqoB=?oI?IRo^A z_4&eBAtBsz0s9_7e#*)4u<;2cf$!DZ0r?1~9#cmO0*QP&c81T#lLYgQ@ORR@Phc?| z^|ujAUt;I)Mk$`7yxb^0E%DA~w{6H4;{f(-ysWSdjU)Cfv8z+xA8%5C*No}o@24*@ z*0_0pUI1a76iy^pNx>%Lp4+~a)Bd{>CR&VMU6h++5m-XJ8+J0$##pD^!ihow0gycA z1pRYYZw@j3Hq5L{fWI5X_;Ht))-ulJWr@tE8TC0Su!NOOj)#{mo&)5m*_1*+ED~|q zFkHX~o?ZCVCH?0g0rsZf^D`j4sUUa%Y0V-p)BKZ<`k8=yEboEp?=~zUboKtUUm-g@ zcXSenpWaa@SYmuBJ=uPRSM!X5q=yDU5s>yJ4!t<53?HM>47bN)pA=nLk&n>Uv5?E0 za+UZql)L03pm-xnV(eppUEfz)pPQ`c*3+`!*svSBgkC57DJD(TYVC$T1n^$uq6``i zE^KFm(KlQlFIO=TNMTWh8+>Ay8JQ?1Gd2E~z9E{?U@}|(*Xh-}Fwuhg&)JrU7u-mr zKY@gS{Qc~E`q$rdm3qw8wW{r@Qi_t%h6s_{1<^>udL6->Rm!bHbSFLTYAZW$Pk+aj zz}e56nGJYRbykoGhx;$gNtxW(HTl=_LZD~k>)?(!*`jfs_A67)+~)b+GVjjoMS8H_ z>Bnq@9xDpv3{$O>zj=j!tlbo)yPff+`E}>(rPx#sQdw0~S*RK?-?Jt3S;~`M-Rsk^ zc>3=6Ndy{*5o7l@j7&=s(~Pp&nK3CZas$fx%g@!TZuF=(4XCM5GM$sp-p{oyksxt`&YbWKNYK_SFQLlTIf{mXFM=0K z|Cye=vrMstJ6Z11G<%Cp8slv>F!dW1S#4hc=`y#AExX^JiV-zq1ewAt_yOMJf-)2q z*GG$!og6LAVQwsLbN4I4@x?xn0^{<(tYZ_dqC*yhCEzEg;PcPsW3!hAb5r+1c!+#i-=~ z;;bEV{j-f7gq@jJf2$a#Ssgo5rdGMxC0H2GXzzMV{hWiBbO+DxmhfpmgEHbbRLkir*SW?Ukep?G=GM zZ*uClYNELX%>eH&L@P{o@^rN;=<7DGg4gSQi`+RnEz#WYJ@sp!f@SAb+dC0O(l)fb zlbRQ7lKawBOct$U%XI_d4k3n1!s+1&G?34EVq~nFr0qLK5*S3HRgxqde-_WLLt>2M zN!#`fQ_CEhxUUgIVfF4m+Q>DfF^+h(yJoHm6VM#TOLVHKmXk3$2M@M?(IKP}l~uWu z><*h4X#pDmW!}i3u)=mh5JRD_qiEVB-sT2MJ1rGd^n%UwIxNPMPP-iCIwz7RiG+cX zF%{cXibMBqs(KWVgb{M1>>Z9kG2~z=^?mxekLCM*Vp)FNDv4^?tl<8;jWyQg{m_&? z`kFPRJAT<+9; z6-bavv8VF|t8UNvaW`}R8rHlE@WU=qw1+6FV=&+Zv-o1!(FW{Gb`EIZ;R1S%iR$BC zi;!{~b+_<|Oc%Ess+wAH^8pH`145f;3hQ`1v-_b3aJGj2x(v+&CFG}j?)Lz=EvNa9 z5JnJ;Dao?qv0?JDA7J2Kd}QL6EPdgW8eD4m3mp2)CH;eUDb&kJNB?&W)jW1fTO{#P z@eFM>j%da}i!rZihGI8FkPdKwoc&x$byW*^?&b0uf2qc-O~@elz~uy&fGX38Y-XP} z#oIe%CaIOIP69>B!M!Z-%h;BwQ{Ao-=M{VEIwiKGY?)12fMPzPlVKu$MHq+_{G6c| z7F8UK>#?V1w34P|sFIw;D3pOA9K|MriPq+wP8z>?Ikgte2Q)0IA1F5goFlC%pLH7C zfJyCa*)rUKeyf|prEx;clpaqHq1X=qFYJIl^Z6Ov`6aCc>jZFzuY@Ub z=vq)tDKF*o&cT437Me7}4}Z$IBN4xpN6Kc&Z--fQT{s=70PHQs^l6N}CJ_&HQ06uKDl<21?2~Y(y9^;i4(t!hXz-U$-~@;5?=sU95zaKy;2~ZE(zX z!|Lg&QQz%rDYFqQ){h(b^^)cD;BGo@L@daSj~UuYtMML6U)r2`;*qdB(q=-OIbH@( z(6;9XCdP1Mw%c`H6f}3sWzcg_Qy8YYQ`c;&neUO_VrD~;oWnOks=ZU|yis45(~l`m zd&?2jk*s}O-Q$4?kGO5ALp{~kGrzf+Ay=7v;jK_%CDvyJQp1=tf?a~GmDa>~3T5Qz zxk*VQ0V6c;qr_94Y8eDeP9ahvFl{waYo_V%`KbCjFM?v?puel?eVo8bvJ4kUrZlOq7~4!D?%0FLo^1;G{@ z&-XH@+4SwMNXHZsTiC_|@iIm6dy_NS!uDEFnk+TTOvw}}$t@3SS|1iHLJp0tj6>0& z=J(+Q+!EDTpTQjG*+v(~fI0mQn(V#Ho(Uk8w4SW^ju9a2j}1^_!1&X0X!qF{n2yHBhymi#F|Fp&YP^s z7lK6y{rgybCh|uwCttha`& z*?d>B*8L%I4<$Yuc{Xgh!YeQ3231>NTCHwdct6Y5N}nfw$(1YxU5*AG{>C;pCAcj4 zn|@a3n|dV?qL{o7PM7Yb43T7LdeLjBGDlah5tw+?sMT+Nm>yibbzNJ4pT_0sysgvg z>T4kblsyBVpcYUanr13a>PHh;BNxNE(Xs35wg`2rdSx2b|jQn1oiRNj* zv}ut*av@ul1URN@=UVNt?iSZxT+tPwj{qe^xtQu67N-UD#WHOko7HpX0snY(dz7|Z z8qX)Oeg<4%D-Ty42-Oa=dK}Rw{nU@@%N^Ukj`tbhBvJV)lk`>+3Qe^EUG@sY&YY}!=o9V+>dxahF)mbC>YPyLFAN2cRPWlr^ zgG$uzAN%@w6)$T&Ty}Uw-;3)L{o(Taq}+4x{QDqRVx%!yhFg7fa5%ab&FXv5xI)n= zV^^}ZFaT)=3(9rFJMGQ}aMh_eSd z-$pP{~SA0&vHP?L%EfyKE6^lSzN6P+0(+ z5qg^uNn%C-dbMk%s(0v77e!AI3Pu3Ja(WEqvVo?QVoXV6ilreCQ>i5u;3=$Xs`G%t zY-R+F@|=;nHOXK|vF9<6pg}DJ$bp>8NtWg|c^^geA}7{ksTw$%Cq(<&M`lL41Hfq&L&>tcSl9rXc7~IYLQML^yp3|whWywS z7JbRwF*Zg<$KK*_G7ao33XCm5Nj{-3>q>>c=<54Vs`MB|^F+zAu+!5h8Ii%-0NXqW zh_5IN;|}zipL;LQLNkBpaURO=zI0ArnoyXD2i20;VP|oQIhe>V23r7nW{!%gpc>;a zu_V;w4~EAWJoLPd2`0vJ*b|e8vB&t!|4zVk!zv7yOvo3_;4dQbLy7CPg=h~S>QP?m zS1zlkzX!DciMGeggDk7^XBrGK?O{i0Hx_XTLP~Ur6R=H`xfTd9_VXXH;u|f*N&fe> zE~PV80pS!2V!WXaTURqZPomDaQb?ELazuL&7q) zNJ1^4^`K20Hn7CAj;AdH*b0Blx045?`ESJqNaG9EyFI7_MO(o=AFRYKAYx@;6TsI` zs9_V<%zga=tz-^v{UW_N&Xb=x9$&`_?!f-P2slTN{YC7q=`b;5I|fZJCJrRgR1{Ct zppGOG0gKx>IKIU*SWolvsBugbsbrR5BrGR7iExrgC+`~W6o@A$#WQd-bUIOCTD{+)m4#`u)(DS*&8x!MC!5vEmUprhhyA#&}|6b zcBUFqHpI+OCsTzEQc0vM-$wN5NJYd>8!;)eC;?|9zSB@sUUH~}yG=^B0V9$mk!^hN zd*0g|ai<~aBfI60w2_btp#bR@r;oS^NkXkKBy1t2;*62qLWoe{mQc9vPEs(00`03q aO2z3TAwsQiTiDWe^Mm?I$Yw|hNdo}Y-(hY5 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9a378af0cf3ea1a86da4840efddb917cec5b758c GIT binary patch literal 5928 zcmV+@7uV=_Pew8T0RR9102e3#5&!@I05yC702asq0RR9100000000000000000000 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 KcS|UGTSCS6y=Wl- literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzI.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1b7a79f91f29f10e58c3a255fe0f2804a9c19b9 GIT binary patch literal 17368 zcmV)6K*+y$Pew8T0RR9107KXS5&!@I0Fz(<07G*C0RR9100000000000000000000 z0000QWE+`e9EDy6U;u+42vP}yJP`~Ef#z6&&Ls23I`wz zfaIR>@3TIHj9>;Tr4h-qhxobu-MdAzpkjbcqzJSSL+mx4NQ9*ie+8Umqf6?^f`^82No`WzzuH zEcNs<{V;leDx{)NtqQ4A0j%fea9TDheN-&Duf6t`dY4`SdcYphAeKig0OtSCwkoaa znjT$aI5T#g?1D@*d=lf~@$1(xrp)<%0?pf=ZNt%9VpERf7&X z0yF6+2*LnI0geL!MThQ=Il?NMaM!%HgF9GrkMzV?u;xCAVKHFM1A~NdU=8?ydnLvZ zoEanm!iJv6b{zNuRd@Xn4j{;ukV7ufw;`d3&_b3ZtC4wRT|yVppBPH!5u=GhVg<2_ zc$PRvHX}YKE|W7z7*HU~|pF9D`wRHm{Z#7hOnF=hgG)@*)fFzdlG`M)N+sSlGFo z=UG7q$Xl#vrK_|2>p{BnGL7`tdo!5YoB|w&nW{{!?(-)}WQ}-1HcVjOQ`2)#-<7XVFJODe6;oUbv3gfh@|^_43z1#V z>+1f)tr$PFS{p3Rsm@)T&oXm$|KSe{%KNvMlTeS#K9`tRGI>>&8}yQBT9r5Xjae2S zGM}f|<(Nu}U!A&6zx2FyC9+z!i@UO9xAQV$_nzK@w2={GJf^nTY8yND95`{|$_<|- zPsSu!k^og{Ot2gP$iI6wl;y9J~0^;ZbA z^O4EofrlP>oRmSpL>=WhWwXgLTd=c(#~^R4_E{^YHqxOpyv(v!UVCFX{DbLV|0Stx z@}4a_J9wz}(krjMvHUe+Pl6|XK3E9c()bZRS@GGIBpx$G*xGgJ={=>*!~+jK^7xd> z0hbdvpLa{1U8&=P>SKtXV8v%&zK^J9l4m~g$x{eDubJnYpd`cC=OdT>1?b(dT5)pOveXb zc=+3Yd|-?a5XhjSlEK8JfQ?PTYO7(^SVPWQYq6}e4z%8Sc-pj4=+Hr>OP4eQ1|UO* zBpEYCXTk&p505-kretll8PgV9&}_Ap1S?hutXU(nVMB@?J0uPq;J9#wgfB6L0ndwW0O zH;_N^QamCOazIK?+@1tRr%g!0s4BEz<Lw1Pd(v4&l^rd$vQge;OnwC%Nb z)SHRdSu zs4)dNX&(s5(TO`%QTwW-x*BtdNN%#E>LAv39%K6f0>Im8-atflzU?4{&%NC#_^0^o zpGt#dbeB78iJ<1WxmHn@A{clH5vKWexZylnBBXh4YY|#~ZC6iqFKz|5!Y;IeYt4-e z3Kij2TbgYUR^g??6#=)~M!D(TZ>uUY^HO+I9OmW4(-PqxL2$teFLZIEXOn0uhx(-@ z!fW23K3a2APZv*7-lu}d%u>`-RpnZV&O49jyk*b^O$G@3s2`afCCd~MgMn>}JO#n_KxPRMT74}O&bw*U$XkVi(l*Tmy%gp; zmRcgR<_+9Dtt_KfRj({X^X+S`1ft?~Gte~Ou@;t{yP{NY%naa!yq^ThZW-1M*3RXJ zu7XJ2%~QlJJ5>fDEHFXWe7jjQ;~03~c5ofAJd;K1jB9H4Wn(-EmOsA^w^!eyaRB%i zaLki|GoK7VUltg@1}^(6_>CMdM<2pNU@c}bCQyEjya9lTyb}QxJERa}UgPa5s3)0r zT9Adrc&WJRsb*RR2zm`cwQwPBg`)%O5PN;E0N!N(;!-J9^_I~%7Q~-mY@5Hz{zFOLC^KqPgj!3L2}q zR-Er#!Cl5)cUvsndh~o(s$8%_f9Y!FG1)Djd+rYFHg%l842V;xwpOMz8jgs(Kk*td zs1OEB3`c8&dGf^B8M$+#wi$UB4wW^Ct=>HLf>QkKHShRvT;)gabE z#aIPbgA^l~nSCboi?i9VPyxZ{+LI6de4LqkWSe5hQ_6s+PJ@dABlXXFXt0AI1S3p6 zacQbkc8*!+l7zs;IZHNK)!o)om*q5Nlu4C1si@*wB!-+bK%YgJC)b>f6Fz{-9nqq^ z6DuK9PECe}olcPg?S%XDV+l`xsPPFVR=viKms4n1G2mg~x;<95^^clsD@r?_O6^q0hTaPJ=41QFHs_rJ!Lb`1?&|i8 z8Q0nnr%g>6tJ;<~DuRsiaqKH`HA(Ns3FNH5-egf!d`Yg?8sNWJ@qtvIpbl&C^#*zc z7L4-2t3gntf^jNoliirssWH*z6n`rOc7-}HlWRpOcYFDnY6Q(awBS@CkOKFKK8PUv z2Qz$;O?u2Kb}T+P1?7fPGq*NIfzhq&wbB$xSGbV8mV`&?6bng-`+Pll zLa*sj8sMRQ*>`_y*3v6!ZQ)cjxo8MN%*zSc7x<5tOm`8M=!Z81ct^?jK)C@ewq1TW>6BE9mI=(-w`o z|3TDRZ4Yl*P9hce*aftq6#OEUq>l=w=uG$kK?F5cxBJ6VunV<}=wNWMm*e7A2p%-> zV>H0L)eMi)y(1*WRWdhpJ+uwZ{hZ*m{(3F`nlyE4?5C7k zC1@CQCtG!ri(tv{R*C!z;ME8;1>!`A>$ft#YUE@HF=muW! z)-+2~xEY+oi~X)xWNftD#6uo;d_&@qjD~n<*Fw)105lO`1W({>d`a11hU+DEEbZ{Y zn)z22&Kt_|`rPuPJ6(zbjH6+46)XDV^9D14kRXz1GAzQHYfxRSiIDUt1;O$Gg8>vA zb^Y?6k29Aa*`|9Uk$p4k4b8v57qfU7)}Fa6D=AhSaRnz2!{cEg6Dy?&yD^>8^A^%1 zB=+X6&_J#VKOEpSE%FTp$n9O^_hyO#&o_!MrH>W_RX?3}!#?#*31Xrf9YCu|@n@%< zCVzc+#JzOuND`-hlv%lnOEV6#sMvL$R#t#Mev znZr2a476S_yFmDM#$bSucGAjbJ1Y zpjhIG8Wuup;H2Qao{IldYIR&wf^mOms8K5jUpui22{^JH5q8vXNCZK2U^7S+(DJvMX0_G=mSO#kKm<1sT>yIc2#JI~b@w55$?+ylkh z2wx*(hU(D5LKD?*cMt4>s|R_g{2Hna4lR3N%t%p`>lTZJs98hTrW+NLhIQ6T+*d7d z#qqV~`>E|`y7Z5f7fIPBGzhGMCVh=(ajp@L@k=H_d^-SComggTXaiCVJ}NGHJK!#b^z~Gq@ z!Ms5mMZY0{cqrz}yU@_`m~Y5pHZf4f1CG{__K+4sSUHfE^j=%1c$$(Z?p+@Il$N$3 zI`Vajm#IdF;H;?er#XV>EnTPPgFDtX{pGDGBS%J5#Euc`Kp zxjSPb3b_KPiN>^LjT7m!Dw#I5S7qW)x)5#|+f<87bzyFFz`4#;A^xWMGcyUtDPR zkfH1}5)g2%aOcr`(eu1#+`Vu=l-4TYys8X4x5l+~ zPWz!FX0pw3u0Feg(~nZp$GW{c&gr{cf4Ph8|2DVRHMPH%Df^Rqx1TZF6RCAb^hj(BU4aqC^I`xLLXh z(mG_qDt1KXIXr1#7TI%O4~dcCo}KcUUBYK+=>+)S&1hbzx2E7=lIRj~6%3&AnQFFb zUq^?)hE7L?L_SR9X}yAXamTNYX$u679hfa2jbedR52h@7BQD;2Nr(_*ztJBHoE z^KM}0?kZ4Slt~EUZrDe!P#!3Ex;8Sy`oGwAhes4hY7zEHH40U7ErXIJ>Mvx!DnF8M zdBom#3;d#>{{zs&;4NnA`dRyp2wM9%_c^0z^nc<9Xh*V9|Dt0=*L#c`LnA*3e_{3{ z8@0a-ZK*m`w_Cn90IiBiW|@4im+jH_cr4Y^W3#NKE8J*&hh1u zekv#$uArsRk_1K3Fah?Iv66-W^Ca`x1ROzgkLkmt@X8~Zn}XK{9VaG9Ov!$lL8sB; zQ=(`X;038=2`CpGX{Y853;kFGsn6*^PnQ(F>HCOpwg&!Hxz zRmQ<=bfSZxu1X1wEDuBi*xo=(qC`X&2f|p`QI}|tm}lpBz`+G3!oF<#N7Q^;ZRw|n z1%;>|UHVF##iA8@%#({Ubn#jeovZI5_VWBsZ*(YbqaV>0b4DG}heA*$ZeWJq63fay zu`w``$t2_&{?9%AAVaQx!dOq5L+P;^EC~w4)J}45>&{1_d{}`Mg%xR$%@uGZfmj1x z>_MRuPDZg_S02V5qx4_jUQwlq!@Cup*6js{(GeGUVFmxySs-_?-Rw48=(#A*j}%Q~ z7cl8V4d$~;1p$wT2e;sk3bAOMZ__tQ(Lbhv6}a;`h$<%0}xMne^n{g~>>xg8^~} z@)-%VsMwfnoDzt!W6iB!vLrsomta?N1RwEr$c5s_Ox3oD%OK!p(I-H7F;3HaE(0fU z|EsO~PpSpK3qM-3P=#7?mpcuPJ8Qll(!mfI6c|fiAlqteY0fZ!&1_m|@+ok44N>Ej z+9)ND(Q#s+5m{})_J(?)8HKLG7AsKbKI42R)WtNh&{fBiy2Bnq~Bvo~9p$!Ma6jeO z{VCbDUM9gN9Xu9Zfu*k>nU`2|>pp$m+HC>aC)=525*fv9xyTbZ8H*ei<|^WUeX*0U zF9SCV5`W-3@!4j+-Le9YJ?Ym`6?QW}A$+Zv8`+iWzGWaXi!j|fU$1i`QR0^Al87K| zl<=?2`rnc{w#OZu!yNka|5Gt|2|m4IU!s(WZZ;S$h0|uhTMnqZ)W*zZWaU>EAvF+U zbSqVA&$!+3t!?T>>=kla{n$!qDOQNx5X8*jvnK$#xUwN1mch|NdIG2EszZ~Zy^37E za>2P#o3eoiF6hf?@>%NDTe+ljk6c+o+2vgnfWne*s` z#W4kguX~7wfP7%W5kzQC}e$-5>DwDakXgFYyG~$!skA6ONM+) zhN9Z=!xkf z<_HkSZpp75L!GF95qD7{rr!;#kLZX-hmo+~`JU3i)_#9eR*80d}xk zx04RGNo2<#j7_Cj96KaibC8uQ*B9aw8PEp}9GOxr|3H7CkRB)z{YwBEuP}?l^^7VZ$u@RPvNKW!l+}S=opkK&gYI z5S*Af0>t(&hN)A$;WZVvuIe(5`JplB*R3xX%A?&K=d|tLQv}V;SrU!5xANuMY2U_` z6&Tf@Z_R2m#+NRPZ|(b1owF@T#z!FqwZsW>1KzF7dcV|(2MdP1Inv=7H%3yYX>q=(LGUmN=_WPGh^bS& zG}%y7xw85_W2g<)Uo(IAJ}g574?F|h*B0$8g%@gl|7SEyvAdgpf2giTCGcXc*Wa`z z#-Uc~$A+giaRdu;a$035=7qKTN1S5_i9S22Y3Y@rs1lo8k{+?zrZ3CcUrxMMkco|> zkc>dGm}&KJAK;`F*Pe#vZQvuuxi!RfM4~Q~(B@6pT-%LGu!)7JRZUJKC?JQs`%wD* zHyniWGmoKGC|)9*!)IEtD`wAx-LS#AVRdo65wHy zZqSX-wgDiYo!HWeRCn4;tYQetwZ@G;xDd|}YJQ9yg!|y^Y1DiYKvp_WANz|>KFz-NxQ>>VJ$ygW!_8+e@V7xD!zBU6v1() zY81W2jAao6V>+k>ySvZH)|}JA2VIZODVRhZsA-;kD(SRXcxK0XoXrjw3+w_us*hAC zY1}X9#~cs+FB`JuoSG!Bf^NwhGTyouNHy}tmGANziAY~IM8A>f&g;jiuaQM-8UjC^ zSY7^PP=zRWX{b@Raq+CiAAi}ck15MpKeKMt$6~@Q%*=)<(frZ_Wx4D4n`Kgm)z6r{ zZ3&cb*)ChB>Biis(55I;X}uWRZP@sceN5qovmLXvfhbY8Kvwxn`329_KU7|L$4Zl; z`iVO|=ojuluGZiwe}UG@%${OHogsPy^Yz&VPSU>%)*G10OUgGd`o>$*8cZCNze8(m zw8=y>zSFSwBm1cQO&42*;E-dE1W2-K;R)(6IxQCdsq%-<@>215m$~#L=a>E323D17TO9 zeBd!4Sv)tfM@eg0to<%UscxKJMUB&-q}>`TN|DrD5^FvyP-(c@d^B267>HW&m;U${ zWUM-=%YAgW!W~ZAuJEgvV%Iyx&h0RMo#JEp>%H<_UCRH0Q}P}o(Klh8PnE=J?9 zEM=fIuKsv~3ZLr9s&$qNPEBmC$#&-J(PWJ<;}hcUlZeM)$L8 zADOEa%6BzCe0KAvR2ENhzo}FvZzgwPBsyuI%*gIbg;F>( zQuuvD*5dOh>+J1-@Nn8;dcVrGMYw=IzoJ|o26*?a+4+{cfGcd==o3t`q&h^$NqRc1 z{+!5pM<2Zv9vnqGK#VCqo}!(hQw49JXD_LjhKbpQ&6%hKjtCi%6z70ghMToAE$JPh z-Qb|MR0}=CezPoeHk0i)kZPdV`U_Ilr_v92(dX2k0!z=1^lH+(msUOpTAJJ^Kk(4PDBgXAF2#Epktuo`vr;TvlJ-rX|D3;M&HI>p~~Ho;-1mj!l&pmz4Q zoYW0OI0H{3hbJRhoHJ6hf5>^<1af#PPW4_bb@@ez-_;9f5GqVodrMAAUwsj@YkC|| zMv%-~Pq&ifv&hcJBQYv90|nv|$1)Gaf#MA^gq`kKJYV-sCxsGwBBuamprR&n=0L&9-_*?oPV`HtjSt;=Ajuf58uuX$dsz-fz~OBHNN| z*0ql)`Bg)vRl{~~hczcDczv)N)lOiwVh)__7ux|v*x!^3Q(;9mE{vGblJ#Y>F4I{` z814wnq3`A}=Q;g&Mc*z;Xir*pHddXC3nZkpnkR2SdAPXYydszan=)ft_05fVX5QOE zX<=13J`gJW0B`hG?@^a~$qN^d-PV&w>ah`gU>E76>Iij;*T+tbE8h!Co$Nj5hnZFn zy(PVgE4Q&{zd1AX>c$73gmscY;*x09{&}$3jP?1KKKM-+%y`U0)_IDk7z^u9XvR>? z0lY*g)jEPYuT{i**U=H-{%Dg-Nl3hu`KtL#Rj7B0)<&>q9+;bHM%Acyn$}FPVjj9Z zZ9hs5ut{`)J2625BZA~i46}>1fi6&xL=V}>WHN0IQ)69wBSQkcQxa*3v>?AEUl;_7 z;#qzt0sG+Bt0Ht9ow>p|z!*6@kQC05I%wlVR*OFK{z7r1P- zTGS`s+OzfER{54q*6jYBs%gUkw=&ndWbDK_JXyXTB?N`BSU zhv<4~U}QWZF)xao@K*((@!2WEz$INn8@>!BaEiF1PD*|}IE>k;g!?NP@oq;+vk_xEnjtW!Oy#C<&rCh55{yyyA$~=q1v;We#?cpB3d}?62ZGd`%bbci^^GNwL z%|CM6MOn^)O7hjbOl%B=W(JbQQk!~*ql^m5hEX><{sNnzjcviX)eAZ!;2tDs^&)Jp z>B5y^6AuGkh^bRNu~GyVXfCiUK`VOL9mtaG(cZ9u`fD7-ql#eD{TWM_YsJNN^+Tr0op%K44_I!f1f;hff@8!SF(W|jku1`Ruup1{Z&5lrEZezeC9EYp?$<8Yh{d?F5(w)=dwggvd z$hT-H`cMpx9h9v(0O%p|BdH;Y{sYh&7O7duXmrQx$HA9K^#zT8U$*96iZG_{)sDoN zd=JZ$G7U+MWB9WYm!7x$;+L|m$dNmEf9wE^g`?{OI1;ZG#Qslg_YX5o`p}(od!UQG zgjDN4&`TJ_^kb(L(nIA$uV;p#4J=!2A*0=qs2>MkK-DE0e?hk9zFewtp%lP3+>vT5 zbW*M;PWKCQtcK>&Ho9}2k8rm{I5Vb*5iNUi{`?W>0pq34uGQZyu`yIU*Uhs~^*P;t zNv`Ip#Nul65?9l&H~-uRlQ+#)KJy-IvRmU*VxM=grMYfT1Z0Io;g`rMSJ%?R7OD)$xg_@7@PEy-w>FoaFqh&!eX!t`HJ&%3l z=t%=zlo^Z_VTzNSAp*(?#R~C?Gis{s884u0h?LHcP&(Y9bU214IQ!rJvv222 z)cmZiij!;Z$P_yBj{diOcU}=n#Ao(*6hI-Y%f$sZ0#axkH1}{JTKJe*i7eiRs86cU z3aGy@k7q89VK6$m0Uv`;Khg6asy{}lw2`_-`f&Ghy)WGCtVggm3CQ8|eIrfnJbOh` zqW-CdA?bW?gG75me5q{=4<%!feYsf}GaIW-!37cWJ8iv7C$IbZ{wmEF`j!Cb^$Kx{w4&}ofSR|s<>Py`M z&+h8da!Nb=cI|aWo9(kTHFrj6ZE^P@nEUW{xN|s64pWX}5w=CoW6L?c)v_1mTeEpy ziS6U^E#q-H?|$BRcl*~}|JQ|2fZMZg@tk&i5-m;R9CAL>t-itJ5r?$1@|1l&G_3e2 zYq0+T;0{~uOtRLaw1OgF9tDQo_Wb9!+@9j)_sQ0KG-%vg0e}nXw{x`7!uJ*nsdhx; zJaBFGnvEel%I$P~5<05NA)0c)%1+ofI$1mLL*Vcgv*_|qxA1$Lm9(`U07q+?0PSr@ z#oKD57h^Zz7^>qyyX@QwOz#j$8l89mx2Ym^P#scFs>6!7U=Yav2k6}t0hZL;9b%=& z1+C^e$+Du#=<1qWUtMebGo-FyUG*`qa@USx7z^&-2Py!>}UAdptmFNG)*zt-qGr#4iE5J(%5CNe}8$sz6XClSSV zC0tV2n0mYTCIM`hJvTu6w`J3|;M)BcpcwwN8u9>-l93G0$=vtrogGVAL&2q3R9rpvD=P?WOl$f9TaWzZ1B}z z^1~7`eaWoH>{O-Z&7$wFj7{g;eGB**4(`rqrtO!*z`87o4YE9MZUEYvTH)JO*Sk?a z)^u#uzO46;51Sb$3@>~Dm$a@z02IwQ!ug3%rcp&DWZd35e z6uS|~`+j;T!*qIr4xIcXoydEgP#O|$FI~VEB5aG#*$aFKx_j95yMP31_bj()wG7#K z6UNPWkS-5$Rp~`T?H|xcK1;xeWl$z>O3!-Wse0{mJJg%?H<%Rim81~6CL{Ox`?wXP5& zTLc8M3tARW$JQT-PD6&*h21U=XJHjo8`<3K_ONnRtvPhxKp9qcRHaobnNELA$fup` zDtu6HwiqyIa#ldM_-g|27fgPGYtZ;~s;5HiaSOV9ieUAeCspj)kEJ@c zpU_71t97QHnC93h$506cC)$=p?-(N36uk@Em+>`CkRU0M=*0*Cl5Q4~t~MkIo8i?m zY`iA%G=(;N($2sWX)}QxdKj?LI~vimI|HGKTyipaUREXz-Jq*EEM5_;nIkd?LAP%z zB+#Df=npejBja7G{%$6^Z&)ulm>fx@LTXUKkA(}^=+>tT@*!g8a>@N z^fiwR*#yX>gw=JoJBm5f>`9dfofe_j!qngr_Xb6p8S|8$#zJQtoD3zLaIGDqo-!sh z3{9n6nk`*Y3u~FCYe|TLlu|m_#XB4k2D>}%yhHf2`#-@l#K~wWzD<5uT+BW|>$G9y z-pK{?;9oT0w~=3-MU>j0&^#a<3t+&Oo$-q{&cYHb=9~_@0BU&SF~)6<`q)eZ1JkxpN>*!0aq* zFmVw~RgTde0bxgI6FBUnicnM?5ZF#ZjOaaINiC9aLMbbwttw`k!iGzKS%h?y?b}&B zc~QVa+zn>YyV{muyFM;3~h4dY<)u{q0- zVASa7qTsPJ!PvVAL`mt%trNm!uMJV{qny{9@cq%$*wB8KVITBvn@A|A5}~US;GmyP zy^|J}ZXCjK1?M;nfsGx?ngCeHvvA9d7+c4c0jblXgdygkcJ)Le0##4yS`vAh9>3<(fIAD6- z%08eUI(2J=wC%0W)(9pnr+u{NCfzR)@>JxYh!50nw3=|+T_(rnI7ELXqiQ)53e7E& z*zG)T5vD5dz;=bLSvY!CYsrU1w-!bSHkc;UL(zun^LdM6u)@Q_K7DC}b0M6t<7y2} z?x6st-ACwJq-19pF=^PovlN7U$p+8vkNz@>UD;%~T>F-U7Ph?d5bZqTs$o`5+c90n ziGf>h8pfQlSdaNubPf@Qr$tnN|QMVC#IZ=z#D zr>f;=OqvU4HCvFSL3$(Hg3@ff0wyyg=xC@C1)4xH zvb$fD?m^OOptPl=87E&txDaHVgU4qP*VXS)*g_CGtvi+jv6ij)U#FVXGVH&oNFx4W)G%fHY|z;ukdHhK1>|zkOMjs8bYd2< zZi96m4};;+(1U5Y?PDu<$AxX4?B1&CKtBU+7u3ZXY6h`|UPor?nSJ0XA?h7P==xY+ z*=COUi14&dsw^;2VAJfN$p)qm_nGu1s_~>cZJ;(`ZX_n2#?6h2Tsk2H4(3hIH2V)T zrKonEWFFNR3^WIu^bJ16r|~y@r`|!Wx?bj;8A8gv$@ef!KCfbjCw+jW-|*iowT{tF$b3CD75}I4PF|H4%6Y-@bTuZ6TKLdaD*T*B#>0k{e|GXb;8p#u`vjDL;Dim zsl-)aOAu#ub8}ZPQ1{lhWTJkt3%Yi03*!jz!NdQa*$PR~_EIW0A`k+&_+S)3%}$VS z>;~w{w#u6x6ID3dk&g{g>@AuEbI*4~3~ieA_8MV6m`be5swO(%T7+BzhcMpFv}-2Y zRzSROUfa^~m;iD%*{YCa{uD{B{1fOCS$M!8k`dz(%N;0AW43cb^({_$x6lh|Vpf|R zOn%~8U1tY6aK4Mi>@4$J-bdSKsmD})N#zxId(QavxPBQOFf~N>v63WTGHGh|z(!}` zx)y@OO7`GQf>EZm0|7a?7F|OIn611jz43J5fx4IFoQquNR4jODAsQsTWSo%g5GLD( zWEt$Qw|atzHZeZAO-`UJ%9R6HJ63y%^>FOmS|jwVr+tL;Cq>mZ{WwcYinT(A^w9^< z>;<_%LCb4Hi|0Y_68qAAYSkmjn2d5 z<5@z=kE8yQWUsM5@|Wrr!3HiWz6?YmJc@#UYz=S%zsQB~a!nlF^nR_GoSU9Vp(tZF z0SwKYF}iJ@Wm@mY;qg|OGZZsYZElE#M>=gF9uD_jUKmJEcvbd}li&IwzzuG;xJ6#+ zc{%Tk+w~r9&j_uRgzoNF8SG7l2T88{T)lQ$N9G0YJ;6aKk0hzT zRm@dWX%%0cKE(D2w>M(x`5@@!85&q2m+#qJ>KE}~3Cdu(otyv>1?rxBvpAz={Xh0i zED1h})DJvV#msXQtR|<+L>*(P6&!HjiqFYi%0`iDlG=Vr3B-yQl}W{1=W^DhNB>AjfW+d#PQVq zc>U4Ce{jONp~mmwrAo&e$aC{_%;W8}*hrvP3GfQQ4PD7<{)w9Lkx_f|Y(C!JTrFor z8ac_oa}?G@8tB2Xf%9JZh#msSB$O#mOTdqgmV4E`Vt%X3Uy6!1x}H zh6nDi4gYKdw^*Yexu5Rm+vg6y?q~Pt=X8d3d%BH&>oA6HBTu2PwzeLjqVh0u_;A`d z`Ego=$sx6791BpXrt+mpAFclU#Fj}zi1BW~L9uXW8aJ!nuJ}iu2k?a_4n>hJOtT^f z5j{dgxlJ!GX6atfGfm0gmFsJjTva*SGH#KJk`3v6o?>U8|cDq58 z@9Xu|6CLJQyLo3_)$!ldwTCn?^atl_geEwIVSVjddBQrEIWD6{EgY@NpsNjV8`al- zu1U}db#1WWrhtlC6&TE7=Efpw5mL{{mO)m-%{!_P8%Ee+%VR5HWmQR&atw1gYNA>+ zpJs7>F!Q5Ul(?A5nMKtL@j%$hlVTBCJV@Yx4;{JJLf&Z@f0?MFknOF^jtz5*AJ8zj z*jQDTzUTLP-{8j^Tg?he!==*dWvKYl?`WDv?XTQdb_aa_}IywgJ9%oWJ zgT-__hpJ2M&?YyeY@7k1177@FQu~xg0{??$up!3dL>!O1v3aAWdPk!M(mDS>a|eFM zWbx*(13Qf6lFx~L%5=#PE>)(TMBJVBbCbRr8jLmU+7+dLM`%;)HV3hi6)3eo+1pmo zxA6LawSCOt#TL>3+P}Rw*>7^UPdeNu@@~lG54v;C-+vj?meZ_A{)ji%77RL!O3SnE zXghiht1&^?VQ_s@D)pXDy^Q4i2iFyB_bIpQ)7vtYRfpw%C$SqxsWgT5Xk^hYeCDjU z^;F(`k*PV71H?a+v&Qw2D!Nm(U_^x$xu<32=rYsKjnzMaOh1x&gy&+0qvT|D=lG@ChCGNZ5He3!-f z2cTXD)Bs?e*P%^Ld$k&4wlQO5+|)cq(lid~U8YQizkuNnn=iU77N&$AN=x1+iU;NS{N3+64_#2}@%{D)TBNMmKJgQ?gE*WnOcj_YwB&KY;4!$sF% zF-7ob6AmBha1ok1|&VU;P z(fDIbjUI%^OF1BJ5Z)SfoWQ9gJIdg0js<~u=@LbW5J`wjpDw-0!DU0B!4@lQSUYh- zXmj%f#|B&pGRfm%J{KlYijIcTPND+AEf#V+;z1uS9VH~zle?FEYBWg{WE>ByJ;}f( zrmT8yQU}%oEEI~zqcf3Iu3fOl3yOx(ra_4!=)}XsG3H4Lcc4NGDp-M?z|Bdm!czBl zC*p5c6)hCBD-_W*L_h-!K?zI)4l$wFfKet-ceMf&kTk$3v^CXMl{`vDF;83Lb&V5p zwJ=;Q?S%7p+^iwzgg4Sulap{FB=}kDD>xDBQ+;{rPNbX&XA^lRvb&Yh8c8QgO5hG7 zr3|$&bZ3ea?ZHq*$Yv+HB$GxaI59TsuT^A?lyElZF&h|SQHdHN@cRK5I^-+`g+trq zVA4>)tCEX!I)y_{ia@DVPAGqnN@w!WHYGsG4M`}yF$AD7bm9{rm6&iSKq23I`wzfJ0XIYh-=KEeML|e~Va>E+n~UyP96jo8&@*a1 zGeX^Ci^a%Z4Heo7QBek^y~PjXuifb3vyNcBS0gkI*7+a(ADxXTz8rgt5$9j3-gw7H z@gubK5ibw_j`?_#_mcMi5r9MhN31|2`L@I3cP4@KCYhVz`MLGpukEi&*ocvWl#v6a zbI6d4IfRY0h;mdJVCH86MxWStg4Gy#cV1Z6|2wVxwo12Uxyn9!rhB&P4zQ(1KtrG+ zc7V$1ECDQfd;tvLnObWh5+a07{{$YoY1Bw1Y8I=eviG_wcZq=ty{1Wl3g~YS$hVie z^3!Fc2jCP9bDfpe|Mmm0&l{@mQX@{!6#z)ugAfG30^V+CFVPJvYjCm!Vr6M1EP(9a ztE%gJ{3ec&>!;i&r`H+O>Wp<+vjGpX{{H|efdqLLDEkg}r{vyXq!4gVuN+hQB&L%L>ExF8QB zr0tdFp!@qhq{}*@ws<|(R3JD8b=E0hl94k))@(rb9CF~06NhGSXpU+4JoCANC-)Z5 z6Qq&!0I=q1Cj``L`8FM4M;#Lq18lD>FH!^BYl|}Tf$dGHIt{P|Z@jul19%_~5fJRu zY8?V8z{lz(`%6)`055-+8l%%RxU z-1^Ck82DP(b)&5PO6}^krRqjk|K%M)E^Z!PJ^?`?5ixN|86YdKsHCQ)r*C9xVQph; zXYc6Y<%bijQM@5{6=gT)+V|qvE0Vi=-tOh|t?rGwhXN8*Da9@l5GyC1mIzA~(g~TEY&I8B2q*@W zDkvAJ^q|_CTE9*Km%^>cqYtlgzD0h0_!p5yvax`45|HKM3fW?|)R}TdCE}F5WxN8u z8UGAUtaIr!pvWbaDpAhea<9&PbN?JE5&>j|h@z}RlAVIb1J&^jC5M+HRa6uRPQLMo zdsX#YSH{GOU-aV;f+3-v0ad9hm|(Z6L8H#O_G=JdA&`X+Y2e}|5TxY`Jpj0X*D#>h z4ug8FFp;Y(SI?a4FbaHIYSXECRaS@u5!b|}PonXh9dRK^M7HsVTvWatH8Q-#pMgsR z7SG`wo;GP?C%Z9x8Dz`=yAY0X;J6ttMsVYa#z!=^Si()kb2ACtT*@JpgJk@0As|FE zYGP6X)9b8{VEF8Uq!kB|Ih!dXU}K1om0S_W=$lYa4l?0~fXtXI>?p(TvBkh%zoOI0 zRq$>^m$VR;LJX5lR6F(IKa{L3Gh>#_vS=wOK1$9obF-kd_gl1Q+AN@KV?UVqSXKpK z)iV!deM`rl8txBZ)W+Qo{sXR=tgk>0z6g*9G>V)Y8VkeSP(7+SX8gl%j0Z)8KANL5 zwgeT&;!6A&H{UA-9#><+ztVq0|E&U`bo42@|LgcK6C^R5YikO? z8D4Hv#@t9Pw1_)d=H9-)0Hy*3F%v9=xlnRpEIy{n62A^B)}lm+(w|9>+d(?NkIU*be%j@!z8bA2e7vKN&*&a!FS zIZ?=QTR#f5IVLL3N+s9t_3tzEazA-aY6gYb*wzbeGW9AKIR(+@ToM%D3sAR5H zGgT^u6NTe3%)Bz8CeMq+@+^0}f1N1ec;XvHwx`8K#!;0%GU~-gC9|-Q`%-6j9+jih za+S)7qNvt7Yh|txG%$}&b44yB&-Bv6%?H(^dNQ=Kpnmv8GW|(qy7=ctk7l4P@CYf? z=4kXQPh-f+$&uA&HPKVa#$kM%DB*ZwbeylxHfNz)EFEX7uLXs-4YcEYg^k7enf)9Zt&@$R-Z8Fh+|qvVZ$@qmw#4UOaMC2uGP@#hWN0iP`dU?-3AK7cRv zQOHQiuEh7-p9{2ofR(R+@&JY7{Pq6Xq1FloPY@9l)xr#*qaIN}g_T73si;V_x^9ti zG)Xq}jNfP(jtU{P#=4ZXRf20FE622Mw82;@iV?0WhB4-*V{BZ#X*zKz@8;S`QI4T+ z%&{(AH;LupqNcuEszR5P7t-+P^06RqblF%g<$8i-Of2SfO6o~iFkn;oLv#kmbr{*{ z-h)TEx6>e>3LwlY5?x@ugUJM4GH0zXfmcsnlJhYcLmA3s7cEDDR2Fp=N~|}%2{*jB zc9{&avMFVgNif7snvMAcR@oQi*d@WxLUx$HKRXokLt+t)$@vj6IxLn(<*PfuR%e+UnN!Eq5^QIdTHye0z=;x5bJ`KCie`c92qoyvLGmgdlnR3G_ z3-E2kqP~KNvN0!gY3(w|zt=#5D<^-T^^8w?X256CtBt?{$frEWrPVJIf??6peBL&| zrBR8WJCd;JhJFAD99QJuh;rUMl2|XsMTX4FEiq%449p+!gzwT6t;-f9r#OR%`cv&e zcJR_ZdYRvWbbHfDFo2Lv;f0Eet7MsavD;~*U0Un?SF#+=(`q?>BkDt=Kp-G?a@3tnL{ZU zuhQC#cgTr2gc)pyIfQR*y~%@mKQ~>*uln3NsKbUNf)f>1-l|qYb-EsP5Kfndc0T-z za8J+Iff!qbK3@5vcGb(1Jqh=;E39^Dtm9#bx-AqdOPZ}*#{cC+c;vmr^YAQ&vV-a) zGO<)k7{me!;8HKs?mVqF_0*r<3+fXtty57wE>2heDC6FrZZF4p>m$~KCqN+w*SgJJ zH{O??M*tPbnnL+p{YD~G ztnzV1)DZht68qqqaAyq%qN~&GKDJW7meb!}SVv}|M+nQF8+?M$ICp^ zx0q^`{o2duZS;#7{WF>~)4N)nk$7ku?`0o8+H=1PtwV42)jRXwA|Ckpz9;SIN$k7S z?*DpafNDY7g4w>L*I+Ve-Ua@+-KRfN1KwcW`E|TTZbjYN)o2_D54$6{z!3{h(0^1H zWCOk~_SuLx!tV|38E9p_M+(eu^I3CEoJ?< zbe&s9*=O0nL*rh*skLDZ@LXHMKb#)1V4&x}pIchcdiX<|>Km(@v#XE!OXo9x4dG1| zmo;S|Dx@zd`wT}%TN1`BD{sm`n~?L9k`dos{}`n&JYy+R=-ECB!+iD*6}$hp@v9u? z6O+&PY<6T1O#ZsVbvZsce#OlAl_INvjJ797I*<`OrJsJ-VuU%W*eWQ}tl0t^!h_=O z4Doy)#&5p^+&uWd{aXP4q31jlyv<{p@UeiOcqHOV#Q2qWQnA+RcCN9+o!S?nGqu~< zc)FdYUoe%^pNO7tb~!OQc)zWG@S_Xo#Khz=m^k1X&?DH*5estn>&fmWBsvUpWl=la>le=->-&0z4pf*QOZGA1; z)plVkoBon{2!DNRp2s%Pj?T-QnCE}(57Q>^B>hL*U^I5qWa|>6lL^+-KDe3vBJs{W z<&%HI^zIz#>29ImTmsL7O^%2YHT?rs%m=r0%Q8|DR8!(%(Swd`ft8&j}eAnnaLB{n{9 zeb%y;6@Gm<<^%KPr@{H6&p#6_liT;ea@aOkxVdW4N~qL@ZsH`gdiW0oZI=qqS*zX<%}X&4MpLZU=MY$now;s$h0|Cuspi!4&%epU zp04OlB;)9T%a`OLd2m-AFLnrU2bjmtV|ti9XPc7TPab&_>1h$7MZIwSgZ(GSvj?!- zhmht$0E3DW(hzlDJTpSjaRa{vq+QFsFHn-o@n`)P?i$@7gY0qwrDHz&8DtIFcVX?4 zIALfs>0O>=u92^qwsJ4GO~&*LR0gL@`&^BzT}6#8n~tM9(B7M(v&7G`S`l~g%PPrbKQzi<6Go}m5w*-8M)J9StYaOukb}m z`bryBvmu8S&q;69bOAk(_N@Zv$U)wEX8y7be|W{2|77W7iTUSjNDfGk-M`R#)w;z~ zb~<{?KWimoX6x}E56(}p&+NvOjG=9btr4S0HLS2z26S!d)3n)(iQsV0kMy;kd{3Z; z>ON*|ese8DxMkS>zihj7t$k9R2d^OZvR}ZOwhLGhvORzC7_y2wP+(UGA7`A5x>`aMvxwW}wyB$%oQY zZl;`BX-bpsd1M3Tm$xawZ;49p7ex0{he{s(IR7Fc7*+6kdj7{pLjtX~2#~hjl24@R z&$DdD@TFj1X66}sG3H5lnVbJ^Z~tgEP#EgliZS1riV3jTX<8FDBLU>YtR7ZJUUQ_hM-wa+Db$@LN!gE~--`Mri&(Th(C}wQfGVQF{PeS|@(Nel2jdqytkvexs!H6EdWBrRKUF5{9 zvaT3{wiUEWlZUhi+v@5o>@0IMk5SYX8H8uXQSFYsR# zR2`4Qjf~Y{wSmY@mTTC|MI+7*NhHjRTon$7h~TNSt_iQRsvTF1KE-GbE0~>Q=E@y`0uYU4%qs9v1o1Fq9B+a zYn~jGrrlCWEQud4EdSwHEvkXN)%?7bUmp`GNLAsyhxiJj+xv~XMh9hU<5NILD57G- z&m4#0`hfSuI&76&izjxUJulnl>k-?(aUY^4Qm=%&QP)tD&1w@CizG=>z?vnSjLkTVhg=&FN<%b`7O&$7-W31BxyUEf<=%9$&D4n(H$dZy06bWz9H>?|BsB zvc+I-dWg!2AP4+81`GioP&JTx1Y>-SLCN~OSkuGIVk+m&i&))vhA?6pwx`MRk;qU^ zV#o_n!etI{w(4-6#eG@KGR7*?XBY;##bwR_OV;jNWMQn_B{I zTHHP0NN5x>2g~P~7y+sogaB*KYasT7M@B}fgpW??Qy@FTk}iv%BrICEkTB85h{w)> zK{P^KBS_mdO9e7BiUXv*VGn)~h?l2=-goipA| z%oWcp0l6T6o#qah&ra6swbKaf;ssH4hBbX%-_wuvItmEjMhYT!N~9GsF^lLJ&$_6> zeGKUS;*2*ZH%j8Pd}TR;(U2#P0>w^W3U?eBv*T9K3pS;C&ddUW-;o>bhsXr&%0$@M zCT$odnWjb10J+Aos#SF%7O92qOg4%E&F`TQ>CJR5C>Kb_PZh6bUvBO%O2aQdmwou} z{X0GssB-_G9bo3NBQq-DdR&MAkSoCt+328;C=882L*CPrCh}3bYmM4&6t9wgc?2T0 z(WgToiRm40BZ5Chd;rY}iYDD~lIPeQ>=$_$e*26q1KEBnW4EaoaO!DA@v@GP$mY#x zgo+ehYUa@fX@OuNzs3 zH5=xpWK#$#mM968YT+Cm((K}1x&$7*Ki0iZW(M@%va z);NxZW46MJa{bP#D>FvMd z1%}zv?vqC=mm5%$FmQ=#CFF%2=X^jKiPHeFEy-x-MREiqsOPSo|ii@AvQ^f;u>a26ASqyUN?v| zgpdTBlQn0pl4pn!dPy@j_m?Xv%K?1}VxmYFr^5pd1Uleaqp;hs@D#_tt{@U}@uU_j z>n+5c46W^NES<72MTWg!fCd1JZKY2e^~2j?VJI%I_~<<1-kgt=7mvfmMcCBs7rRxB z`9%o|ZoMBO5{_ypa%WY~s< zc0r(U${{Dwu182ha=P-7(de>p^!ai>Q;H9LdhU>F6d?mCW=$|S=IcsT`tO{VU9o(@ zF1=e@${QyLI~(UkF;UvBRo}?r;qfc}=)j$}!*k|b!1W!h8D09wchoLk{THs;2A3;c z=97PZTUcwng{{Avm#0hv%D1t0Zq`D2NY7;F-sHe$S6vQMA=wL}vf%;*QFS5-PtYv*+4D?Q`lGRRBdt4@ZL|VGXQ*EqQ3a6 z_U|1LGSxzm5WyQvZd$ScSlL*l|EInKfNwZD#g)-3!wZx@Xq%5i`HX97W3F{RL$wu{ zZ@Kny`gkoxX?_ZGpWXbNaXSyMU(cZ-vXpO((L{iUSujxL*^x^)RT{L2uYN`N)gRxx z)r{p9DYwbTXqI8MEA(G8I1|?Nu#E!w)YF7lG9r>^vF~)f-uuQok zxw7TZk(+6{8DyHAzXHo}wagO+(n#m5JQ-B?MFqQBGRUN*L6H&+GB`6qfiys!3WOk) zTA57uC*{2xDuVU zNdvF6j0%C3z4;0gy|_*gD^G_4<2QO&H)I%Ibhf6$3>+8=7jYa)T1RPu!bHc!mRJM)3~U?ulbrN<{%h|4 zTS-oL@&_0s5~{CCwwwD*C;D=J7uAxcQagrs7mrgB^76CZCj zU8WnRyLZ3uog|Yk;)W9dASDBa^fUR(qV;pTf25~5J z-!(nZJ$sp&KA2tZ?aJ6nFK zBRA?}WM~66a;bnA!S&m<-+t*=?WRd7t+LF{pPbc5?j7auuvTGc7|SuBfvTO}EZ_?+ z2);emgbC)xk#__!C%&UY{tQ8TlWB%>sP`tnAqLh$`*KM1* z?T$p#o_N4nP1TH)fNNE{Nv2qaa4NS7(H<%>dvqFAXYS1uZ~igvxC-zq93 zV6*+v2poD7krEN7pK0j;qHjADc8pKBE6n%k3HN(N1dl`a-4VvjbqZ&mfUU;9!QBOT z&FWgm2;jtO>4%Q4ZPOCcj9c7tt=%w8P$=pRY0LeP8GP}UJ-PSvTeIS_IB%QvXZPjR zTsmKxf1zop7ueq)F(vW|l$D#xOX`xpTwCrfD~kZD%O@QyqRn8-3k1NK8#?*& zFbLb|jWBc6)_dR0x_9QaIPZ~|&m_I0>zbjl)i^5?<6cguL6JPoJ>x0p;9cvp!Y#8* zxaLRngx~Nqc#>C^e63a9CCHaW`I=2Yi45J_%hYzm-&tyZlbO8DJY4q^QrOt)LlJ_h z);6R&A0n-faLVt_V0A62&0I?8om@#ldbn~;F38o~P69|A2wgc`NV79TOx>jGpD=qv zgf6b}0o@s5JNwr}WtEFu-ezay=3b^uk1l z6eU`WSaISdNJOGBk|ax!Dowf!nX+VKaf}33Ir0@KQmjOUN;PUVYSyAnJCRL?ZasSS zlQ;|-GGf%YNmCXq3l)}!qViB&R*?CK$&9oJu$iFC5`#93nP3JUEQXMAIh2Qx4@FQy zm5?vyBPkC#vSJuubj$I)F_9%x7R^gquxSPJR`ZBLSO!Jm=4lxxWSRtKQY={@rx3i6 zlpmKb$b7>vaNL==5V9aQiz>JfY1p_pGPAU*2`h9ntnP==Dio1x%KLT97G$#vlOgJ zDhC)!NAlj7rb&S1EuC;_W6I?)U>Z|lsX-QC@K|bNoW>+9z_OC7Vg4i}C|4$>w2uSQ z1RxuHQz0vD=;-gtwXY#4VA26z{p0N^CAk z<1YIV_>{RwpT`O_tuzl+duwYm3xDkBv` zN4=ZCCxJm~9Ko0nvZ^v)+2nEkaj$6WSvuC&FLw(YYPl82&gD+H_5jcrhZ8`HjGyV! z2qG_0fN*nM*b#)=?+aiX*s?Dv0CC`T#~dL6Xa!CKK&@s@q@7un#{%yY;w#Us6hxW< zppe31iIH-fSc_OicIqWpj5!8C>bRHM3~P2005MrW)F_Vdlwci zxg-gRNAiGc1tUz$&W1!QLcZYtRQr_}e7ulEqR1mfU0sIGW=Ug>{Q0O&49ow+32!)3uAZj~XurCPz)Ha}f z8dx2bW*L=Dc~ntd*;{IDjY1qyT4h|UDlBZS`X5;`Xq$gWfB%@~4MBLuwZLQhdsKrk zjlwmN-LCx99&Hyzvx%WS#j<@3Sl^{hA`8O4=LU)5f_D{oWkYoI42Bt*nDItfSV97m zm1&u&jJGW}ZN{uQ-hEH2%v-UbTD)5ewoLdAHpS|#YgH|E-0QtP9{_B(?g^e_wa`h4 zrrzaMd0ZRDvrF?DTDbLVocnKXzfUWP=V8pc`ig*lx~500rL7F*t}yb=jT)Fx-%HUb z&=3=zhhtKGCARFXfhqO9j4`Eprk#rlTQPf?{TU~FX{;FF#lcXuZ%*X+W`Cinh(X2G zfn{dp)k@e6n>jSmm(AAGz)&1Vc}ZfwVvrynWNv5rtAT0t^In`%yV%9n1-mt5VmF3t zrjnAP5q3Y4QkEG?Y_tfhoOtmHKd}jz_wtlnVKeJ4h8h^FpJ(r4WZ0dn#2$C*s}mz) z9!@t4>T4%Z=3d#c57>JH2;vtOY+UZr3o+B;!w)95v3J3inZMA%99r9q>Z_aK=8B;H z>MN(fvTK0F`llZ;Kn!1rWi89V)55R?d-e^?Ux6)0fZ;(fTn_d+B1fo^M;(Pbz&Kh4 z^A;H#4}1NZI8EWevFpQyvU%C^0|b=n(lX>qGEt){rW79jt;(2}rGR-URkb49fU9Dk zqKlzuG)pI?yc7^4*>T;^s;nyW0hT9~XF(=u8ulBiNv)Nk6cI5k%(G$$yVw@kjp zHW>M~JPYj6Y0hwV7)FMmK7tH246A4twF)NZ~k=^*#V?#8%D%7S8Fe$a^sv=tR=_OKTLw!ax6-nDj%k~!`2vwDK54Vv)h_tphXfx;xz9=qYWi_K6z13)$)^8f}aQ0oQNTfR7&@iqn%(c zRuzMR6lQ@(a2QiGNE5|dZAz#;n}e>7O;sMLXDcI3C?&2XVQ<*8l{*u&|cdvz_q8?LK+l5=|}D+`uuc6 zeh7cxqTn&yW!l#afi4d_(3@L~hUWh9%=vh*jHnHx6t1th1CEL%@61xsxlFbQxctOW zp6_vT(n$|*2r`~&FI%|lyHni|a6!#I9P0A*=L73)_w9z!q>xw`gB zGz2+MOB3y!%z~^LZ#X%B!@Uu^E+6I01`sI?<@e?<%Ugq6bh$;!M8PNFGkoQ_Nw)R! zyi}e$`D#DG#gT`HVQ-DAi5y;Mdc66kdih0qQCo((IKjY@uLlAOi#I4L5)G3`{FsmVG@bfyXvqsg?)FxU#+$Ct;WFEMOMbVB0bG#$xcV~*X_l0es1{dmwoyhh=Sm2us zEskLyhv((|x5CZ1i4X7?AMrf`@Iqo^fHw6Gq5+%h3IB=o zJs>lEvc+T%Z4zq((=SIwJH#HW1bV4@c9Vjse7QHm(Nr#j5@+%0@OZ+BPxwN_7PX>BZ!-ywA>i&HOMoEciEN); z2leCrC~x>Jc?R!{@6LaciPHk$&6{*-dMVcvH5nx31uiXdcXb{X`!Yd$4Kg>;75;P1Z0x~N<<4jMcU14HaF4CuRGQU- zob9!A3c_uv>Zb1enNnNl$K_9idDOQ|%Hw8J1 zWR&$F<~c#uh*%TJ#kBm+U|z*LTv0v@BH z>1--=@Sqs2#B?G_rcz{uC(oqjeV(|pjmn$3&fC8+)j9*ZUU1|OwMygVcw zx>3OXE>cQ8S5Ems%;CUnxZK@;h#EmWY)v_NDu;vQz&B^4x{MC&kY+Sx z5pO5Q!aT$$#*@sY8$D|TjFV{veMmKO@g?pC?JyT-UmRQ&fYczN6|RK61+_>z-2Wu7 ze*^VImIhDzqb+fOkpHc#1!{!u^dV(e0mKUQb%xv^1I-U)QxUh*TU@1kHLEM}p?FSo z*{F30+zw6ik*ZE`IQ+P;H&o!{w{%%G>(vznqRendiB`$W!L4heBlZn+X~yQUO&dO? z5hh@L6FRMI&Jl@o&~(?2rF5zc=!-V9MQc7kxJBK@n|Xb{PF=KiX1R~1**EiGT%P$2 zENoXjt0Lr5_m7}z>c^i@pD#9OJ7;sdlv%vU|U zzenAG2>e(zb*-Dle>#pfY>$K|p`~T|U9m?>AHN`I`5CCEmYOe`mRXnz#lkHbr&{*U zEMeA~am+&F`BjW1gnYyo;ZIn0&l{f8KeiLw zca1iGm-;{cb45)-&QLKufqFbHJq}5;85RdDta?)`^a^?SPHMt@WWZvSXc$Rh1=|I| zIq;3m2{-zws^WRfT2nS-73-%;GPwe)1s$k>cn#NEcrm$#3zvfr2I0tZ3&S~>9ytCF)eR8>ar zp+uwu7U4v`IKHwz^oWzQnO#LqSb2YVc_m!_O)Ul0Yn~uSHy@AY(Ql%7KKiY8kL|Y? z8ETJqmG-BKMvH`%CY^@jp}tH;a4!(!Zk?Whp5c~W&^qal&~QI>_jY11nsSCu2&#bY zBVQIs{k?z~QBoX>7(!_(4#zEM38E26NhP=ofLZHfK8)SScuf%rCmo=hJ?I~Ib8^IJ z0Sx~Ciyvq>sxLCL(uQ{ytIlZ?whZSKMLC_`ZE-(}W3hgYdp@YV(u1B;t z-^Db9N>bfbbM=%7^4CCl9t{31`bHK8%JstFZ|PCV!A4;V;TU5+G*a)8Ru;JSq0SxM z>tKZG{}BWq#l4L$Gsj$M9n&C?JZ%mB5xAuW_?MJ*5p}PK~XoA@Nol74c0NNzBq45hXHnk=W zkp@2d{(`FEN}o-S{+xoac*kiy1 zm)fCL=voswn_PX}#az)a4#&d#N0r^SiGo`pK`*`>1Bh*SkUQiD75kv}5_NY#4`5aw z*Wv5&D11FGDTSE$6%4R(H^7vbb?z-vmNrO_o(I?V{s?>8> zp^`^;eIB@53R{cSdwJqx>l7}E`FTCHssEei+2KWR~M4cp5uh^T;vtzid zyEC<=AfF|8Z7bmB#Bx!U`dPxsBZsB#USX3bs?yYnGMd;jWx+d?BUrYOzMRv2uFIsQ zG7AV`{dY`1D4ZCrp!8#z*$q2E7K%3QTvn^;dSg)dzX0w*ohY{IYwt>}WCPR(Hl}@P zCMew`3B`u$6QI@+8Lp1LsKb5*@xdCxOc6=Q*uEtWs=K3bFOk}*$3+>9GpI@c5r07gGSG{bqfKANc(+kTgHC(6 z@tHNy1Eq(ExS>vtLC%PmJO2ZOf$M!}#qwxi9L!s}Qf}Lvf}D^dbvNGxM|S;gY*emx zdqd^X47WBw_DOCVb3Y1>!j0bEeWWOyK3;#*`d?dg@8g<~@#n;IZ2->+%Je|OahEZz zi-oe~sl>vt%SUa3R}Ri8uMH6y$Y8$HPii?y3E8=O3KtJuOF1%)rU790_`>$itu@U= z@}ldGBiXoHLfNrkoFOSXGS?T$!Hv$!bSEBI!Pzguw27$Sbl;utu-T>>e*~@i+1*35 zCtEr?TOmqdzuz|y0Ok4mZ0+oo+zsbd^&*u>;XUzA5<_0{+)!^RqG8UEFQRVGQGQ5b zNV0V4Ii+wj5`Bf_gX4;B=shb_epdbxw?6zyr7S0TLN#Hsp6!6jNj-PhBM2VHJ=iGq zVT&B3uJst#ij2R2&b1v4Np?q0;jXl3UC5U$Pob7Yb_N{e=$Tai1x>ht3#39))$-ur zEmWo6h!wgna>tvY2bI87yxx`@Z^wA&fsi$JDCZdJf|@zAU2*X)bu-2lT$7sc4-H); z6$opNyOL+f3Szi(>j_y$Mc99q6Z)=0ne>FM6}wenSZq4NkjZB)vwQ~QqtZ*_pexO9b7 zvO(tNhHDBwmj*eo8Xy9Ih+qOi&>@p6h$%Fh5.IQi(wS`Rph{L7HS(io&gTqB)B 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 G!T|u%&BW^f literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9d7fb7f8780e829b48b20ace4398ea1729aa055d GIT binary patch literal 9576 zcmV-uC70TFPew8T0RR9103~Pu5&!@I09W(?03`(g0RR9100000000000000000000 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 SjT2?6sU{iFd1eU30{{SY&x$?( literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..60681387e7bf93c19f6b2fcfac98037032e63531 GIT binary patch literal 15740 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 literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b289f0029261f2a06af8b7c6a4efebf7b1ec788a GIT binary patch literal 7120 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 Gr~m*%Pl@pW literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..87711c048c61236049707439fd024faf9733391d GIT binary patch literal 1480 zcmV;(1vmP4Pew8T0RR9100qbZ5&!@I015B_00nCR0RR9100000000000000000000 z0000QCL16eHU?k-GzeG;gFF!o3WI!uTMG~X5)=V80we<*1Rw>1d*t`LpnVh+j>pXi^n9(OlJ>((j@Habx2kf~6Rv zRsVCk4q=dE{Tw=n2A!0-ewa%k403FxUtN(7W4KyVySo>%9~Da|{3ll3eE_ilFg_Kw zPW@B?D?k<1@in5(RR~*Gb0fwzn_x&fPj7DkeG3GQ2mnwH!9)-Q4F~}t1P~xVf-*?Y z-UCMx0zd(H-Wh9c>Y~)D%~&+Mh?=>xvkSYaXxiKo4*+~I<@LHsO9}&w!$u2`>iv-Z zGC2We26mORug?wXL)RVT?=s0Crw?n`$O!<|-f*z7(bJ&5R0bU}NnxV`;jQd>(O>$} z-3R~;$ur(mqn%{15?gtS!KUi%F`!IlDrK}I#Jnuw%mEU54T7pYWz;rehC>;%0%gsI zh-ni@SPH{@8xtS^q{{FQWnbiD0`bmJ3E!_zClZn((t8D&Dxswy4TXfBA`f~Uuf=IY z5Bt$?^{_qK%~w!$USji6>&LhZff2kXFp>qjn%Hvl+L)Y#O2t(EF%A_vBw+_pT>cV9 zs;sWpZE%yZQpM0!*?J*Jiomz;S|5w}nK@QuOBn+;3amnGizc-Jy!++#D- zPYbN{x!9wY=|LVkH4xqbUHj1M=vrFY*p06Yk}>0**Sv{MDoVniDz{lH!XV6iAccn7 zAc)EPg;IV!`$mru{OxKf%fQENWSgg<`#WaHqt@OY*tfev7O(u$emI4$pZ#PF*iTw2 zwhPI)@~Kz_LBogUc|-xQ0Ehs7pc62Y!;txN3}}L;D=2sPSHvQwKOR{UUAQE#z*jgi zS|EjyB`e?hD6shpT~@vO>9&vG9yM~!JAut_X{>%bxaD1a$%G(dXMB*?M-6@B4XOVa zhVz)7JrTo-ukJPf$KZlbPw6sgqfFA%gCE)S^yVgV=91U0sP+CQw>FovLpimjp7zM% zsP%n=7oYv9Vd$X#W8)WI{<>kXZ`s#&uj{n3>;oK~$*Dae}d%S>gneV{5!s`8R-) zRcbVChIHPsUUIAm1cYnyjxtc2jh8AqMw1FP5m-V%D1JF0K*(<@&`jL~5J0PySU32> zj49EMzxyis0C?=Dcw>OqW%#H6*#E!oujHEp_|X6mu!=Gv@VEKL&h+wELKyrkeJe9v zDZjudU|H^9N;#P|n6AYR$}x_C01yEUZ8jzX_{gCn$`4G&+AdUJvRxy>{7HRpQo(Le zm$eBK+RM+4Fw!IRkXCAu+4AMeGnY+sn$m1E+w_s!7JG5=F>hq@#Xl+$% zW)5!OH2Soc33!;h7EEkkD`)9Fe8al8tW(~@->ymRO0itvY%ZA7Ep%#aZvWIV+(^Vq zI{bmJcb$aHafb%Rx$a6R9n5pPRN|9UKr5h$ajrXr(zJtakO$R6Dw>D$1Pak=(s&wz iQdY?y0o9vx-6=*p=tc4pUCv5w6FZRxw`P5r0{{S2D6;JU literal 0 HcmV?d00001 diff --git a/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0f6e60b8eaadfa0df7c314807d6f9159390d896f GIT binary patch literal 15000 zcmV;JI%maqPew8T0RR9106Lfe5&!@I0E+wo06H=N0RR9100000000000000000000 z0000QfleEeLL4>*U;u(x2v`Y&JP`~Ef#Xzx%pnVdS^yG(cmXy7Bm;*q1Rw>1d22i?|&i@jIP$L{YCdD{>^lZct7>!T%oweJ*v;ML_O83@WBfsuoHBOaAeaWM4y}v+^6OK1 z+f*Pfg`Ypy!b=@w{vn}@I;NCFF|I$x*?d&U>Ey!$GTynq7?U`Y37 z`@c2+wKJPXMRJHjvI26|6{>FL&SqzKCi$C%_uua3VfNGJ5hwXQ*?a_50tM)RlM;gJ zQ)SoVD@=v2tab<%|Ic()`hOc{nwB2?+H-6)Y_v&OtuZb;8>LMNQLQdDM$#Ij@m90W zP+c$&74RNvj@)G`cf znInc6`|jU&jPw8V=XwLLB0}qOM;Rj(2&@i2_D@3)a2WtdAXaWcvSkP2 z%mu`a8;A!_5MKcx!3ZGtkw79ufJBQ2NkIn5kO7h<3nWh-$ODBS#fm{nm4Z~O1!>R> zLa_ky)mM-et03#PKp+UfVt^GOK&;#W6nGOBAxR$1&bt~~0_l@N{JntmY5s1WK>BQ_ zKyM%oI_ngFZ@>=1iVHv&96R7d0{Y^;uFs+YtRMVwC#I4$zKo(|&DVE!T%(Af6pW;O zpp(9N;`!iCL|s_aU-^=CVhXKmp);4usBtS@MgAE?UQ_VW+Awa87pDhCRk4|+%Q&bm z5;R|7C6ZeqS~-6c!6IX|Rc~-jZ zmT9}O3sc%Y9Y&-{CC#;}nTxR9i3l!hb|!df9$9l6EzHA$>&4e&8?PSub32|Z`dvHy z33JIIcvrOd@cwC!PMcbtLA3W*5tFZx=Z_8@x;rCD>R zUU}~`6)#w}VhtV48D>7fGZms(rhVBC6)^-M*+C1oEW`?;Wf_)a`Kr(|MtG%QWw@KEVwcKF>!QVgt#0sruzxP#6aXBL_Hbhm)Vr zEJj9gWE2XoZ5)?HBt!*Y@#wt7Tb0UFrcBu$%12Zfn<5z&nXbQ!j&AM+*cze*8D?b> ziMIvH)NE1Yz$@5<+{lU^sE5pOJ=g&Z1>3{3=zxrfLgmk%#|X2PkvV3j;4O=_t1k~C zetcGc27HQp*<~NCO@FUy_RscEv!8xFJ$m&U@KyG8e;z@F+Jn%p5rQ5e=@TadV&Fh@ zoQZ`Cv2i6vSYqT(jQoj30I`WDNHTFqAr@p}Q$w6;i9r*wdPwY=iOC~k&_XO)iA_5p zbP%mhLg*q|J%rM$=;u36ZxF;{h}cXLWQvfU5z-5yGebOH5`$UdF-Huj#N!n)cu&ke z6SoE8@RevR6PFd@wx$?scDWV;fbXBcy$3W{(fyd8fv^pP<&~mEFu9e@07(lC!4r8} z61(x^!|D zPpzOi&D39{d}&wM6?eszc<^VW_s_3!UXh0a@~%_?%F6g;eFt{oteS0}&^NPlQBVq(y1e$D`