From c7dabda1453ce9e21ace9c27fe29c6da91e8a094 Mon Sep 17 00:00:00 2001 From: djpbessems Date: Thu, 20 Jan 2022 14:49:37 +0100 Subject: [PATCH] Delete commit history --- .dockerignore | 3 + .drone.yml | 35 +++++ Dockerfile | 26 ++++ README.md | 2 + deploy.yaml | 210 ++++++++++++++++++++++++++++++ lowdefy.yaml | 23 ++++ public/logo-dark-theme.png | Bin 0 -> 20150 bytes public/logo-square-dark-theme.png | Bin 0 -> 2089 bytes stage.yaml | 120 +++++++++++++++++ 9 files changed, 419 insertions(+) create mode 100644 .dockerignore create mode 100644 .drone.yml create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 deploy.yaml create mode 100644 lowdefy.yaml create mode 100644 public/logo-dark-theme.png create mode 100644 public/logo-square-dark-theme.png create mode 100644 stage.yaml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3f804aa --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.lowdefy/** +.env +.drone.yml \ No newline at end of file diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..c788d67 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,35 @@ +kind: pipeline +type: kubernetes +name: Harbor + +steps: +- name: build & publish + image: plugins/docker + context: . + settings: + repo: bv11-cr01.bessems.eu/library/lowdefy + registry: bv11-cr01.bessems.eu + mtu: 1450 + tags: latest + username: + from_secret: harbor_username + password: + from_secret: harbor_password + +--- +kind: pipeline +type: kubernetes +name: Dockerhub + +steps: +- name: build & publish + image: plugins/docker + context: . + settings: + repo: djpbessems/lowdefy + mtu: 1450 + tags: latest + username: + from_secret: docker_username + password: + from_secret: docker_password diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..70188ce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM node:14-buster AS build + +# Set working directory and node user +WORKDIR /home/node/lowdefy + +RUN chown node:node /home/node/lowdefy + +USER node + +# Copy app config and change ownership of files to "node" user +COPY --chown=node:node . . + +# Build the Lowdefy config using the Lowdefy CLI +RUN npx lowdefy@3.23.2 build + +# Use the correct Lowdefy base image +FROM lowdefy/lowdefy:3.23.2 + +# Copy build output from build stage +COPY --from=build --chown=node:node /home/node/lowdefy/.lowdefy/build ./build + +# Copy contents of public directory into image +COPY --chown=node:node ./public ./public + +# Run the server on start +CMD ["node", "./dist/server.js"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..10f3f7d --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Docker.Containers.Lowdefy + diff --git a/deploy.yaml b/deploy.yaml new file mode 100644 index 0000000..e8e1856 --- /dev/null +++ b/deploy.yaml @@ -0,0 +1,210 @@ +id: deploy +type: PageHeaderMenu +properties: + title: Deploy + +layout: + contentJustify: center + +areas: + content: + blocks: + - id: content + type: Card + layout: + size: 1000 + contentGutter: 10 + blocks: + - id: title + type: Title + layout: + span: 24 + properties: + content: Deploy + - id: leftcolumn + type: Box + layout: + span: 12 + contentGutter: 10 + blocks: + - id: macaddress + required: true + type: TextInput + properties: + title: MAC Address + placeholder: 00:00:00:00:00:00 + validate: + - status: error + message: Enter a valid MAC address + pass: + _regex: ^(?!(?:00[:-]){5}00)((?:[0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2})$ + - id: projectname + type: TextInput + properties: + title: Project name + - id: hostname + required: true + type: TextInput + properties: + title: Hostname + label: + extra: Can only contain alphanumeric characters and hyphens; must be between 1 and 15 characters long + extraStyle: + font-size: smaller + font-style: italic + validate: + - status: error + message: Enter a valid hostname + pass: + _regex: ^([a-zA-Z0-9]{1,15}|[a-zA-Z0-9][a-zA-Z0-9\-]{0,13}[a-zA-Z0-9])$ + - id: ipaddress + required: true + type: TextInput + properties: + title: IP address + placeholder: 0.0.0.0 + validate: + - status: error + message: Enter a valid IP address + pass: + _regex: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + - id: subnetmask + required: true + type: TextInput + properties: + title: Subnet mask + placeholder: 255.255.255.0 + validate: + - status: error + message: Enter a valid subnet mask + pass: + _regex: ^(?:(255|254|252|248|240|224|192|128|0+)(?:\.(?!$)|$)){4}$ + - id: gateway + required: true + type: TextInput + properties: + title: Gateway + placeholder: 0.0.0.0 + validate: + - status: error + message: Enter a valid IP address + pass: + _regex: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + - id: dnsserver + required: true + type: TextInput + properties: + title: DNS server + placeholder: 1.1.1.1, 1.0.0.1 + label: + extra: (comma-separated list of IP addresses) + extraStyle: + font-size: smaller + font-style: italic + validate: + - status: error + message: Enter one or more valid IP addresses, separated by a comma + pass: + _regex: ^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?))(?:,\s*(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)))*$ + - id: dnssuffix + required: true + type: TextInput + properties: + title: DNS suffix + placeholder: example.org + validate: + - status: error + message: Enter a valid domain name + pass: + _regex: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?H!=rHN8j1O);K#e@(IYMnnOzP^3v! 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 literal 0 HcmV?d00001 diff --git a/public/logo-square-dark-theme.png b/public/logo-square-dark-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..4af72c8fb68274643eed71bf1bea54f68f62223b GIT binary patch literal 2089 zcmZ`)YdD){82)-t7D60S(W z4gvxKf(2vNAPC@dup z|8ys}1eAd+q6PvEqAxFjm!5gj=0o)+(e}<<(^3CJvr^;be$~joZf&|4rChUOt^H_R=lRd+ zo-Pu7mEXHihV$3xLHtE?h5N5G^`>emaH@U7gznZq9&A~<5X}@U5YWASZ@>4AD6mp` zjNO@%(I|fX!RMFb1BGUo!6A)LLgTKklAq$;v$ClzIGc*_9}m79+5i5hGo?^_x?-?+&mo{d#ssa_c=;+MHh@gI#j0{7O%n7qK$uVHGFX?oe^*JJ8gI zKxYTL_J!I5W8gtC*2$HuIJQAcX{YIzcJ*2iv}xAK&c-MH`OJ%PnzxOX!mE;uFO@DD zpf+yw4E)aEY;qsAnaArRH}SBIN~It3&{*TG)AttrtDpGls3@g=l&~7(<~Joad`~ko zZm4*SwawPEhNW+ohDMsvQ8@QcBEL#bc^~`j&&&q(!jWEAO8;Qfld8;LJP#Oh2fB70 zDXwk9wYna^_zKg1xl`{&{x2U)84YwB=NCN7nN{ll>|TTQk9PK=tc;aM6#6Y$$Hj=N}eKd&7*y8v==V2wqF}5_vNyNGFolW;~uV?i>MJeT(W#-l# z#?>IdP^HYtj+k?T{BO*@H#?_+kHJ|Rhg$@T)OSxXuh|Fn;$S{5lM$_(5^fb5;$D30 z^&f$~txi&*$h#_>aL8yMdX4hX3g+i$G4AU~O83m?I5T|dCZBe z@Zofw#-8q)R?=g$m983-scONw5-mzUm#Myef?1GL6>e_re4^Q;A+M-BqUGlFj8r(k zqmSz8Bzd0k9N+U%m{dqe8?DPM!k-GFz10Ki{?qMh6>-0}2537N)w&P6Cwy-0{2M`c zWs}q-J0-u(6SafVCd|=?dxyiONwyst8&D4fSw$fhJjV4PsjzCakJ{mZDzwO8R^TWl zq_okKmy7UE1Nd_$*2XrhWv`y%niH1e{G%i6wB0)$g=?GA_E}W(xu5NcZ8tCVp@5(ehOr-@-_pq04 z3^v^;khUf1(e~Eb`z%-7c}P`24UP?Lt80%^6o~n`r|Dfo0&tn8Qdry?_7b+=@4yc3P*&?c?d)1^-qM=>M`A02!#QOohe>AX!$J#+Fk620f!@mr~ zwj?zlyctM$$!>jwQwd)sMEIt=UR|WWJ>&m6o2sH6rnM#gQjv5gt;L}%u;C`2*J-t^ z`Az!~`^Kcz(Y~ZQ{7bT^JubrQY=_%;!1dtI@-RnBuT+g#Qf*TYCRzO1F1Y=dg5_P4 z$EOE<>6b~BFNULk!cgBaBhy#RvowCIHV7YiS8LFHr*Lw6i*0FcS>2#R+_j4^J@dT8 zlyC=DpbQ8YNl}NU7iyLgvAS^-o1~E2FPhRaj6>^h-NY<%y7FW{%dUlvB{adbQZ1B$ z1OK)VK9)?64Q9oLkb