aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Dockerfile2
-rw-r--r--Dockerfile.arm32v723
-rw-r--r--Dockerfile.arm64v823
-rw-r--r--README.md19
-rw-r--r--app.js2
-rw-r--r--config.yml4
-rw-r--r--hooks/post_push7
-rw-r--r--hooks/pre_build8
8 files changed, 74 insertions, 14 deletions
diff --git a/Dockerfile b/Dockerfile
index 66788b4..7621639 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,4 +12,4 @@ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} &
12 12
13USER darkhttpd 13USER darkhttpd
14 14
15ENTRYPOINT ["darkhttpd","/www/"] 15ENTRYPOINT ["darkhttpd","/www/", "--no-listing"]
diff --git a/Dockerfile.arm32v7 b/Dockerfile.arm32v7
new file mode 100644
index 0000000..98c6294
--- /dev/null
+++ b/Dockerfile.arm32v7
@@ -0,0 +1,23 @@
1FROM alpine as qemu
2
3ARG QEMU_VERSION="v4.2.0-7"
4
5RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-arm-static && chmod +x qemu-arm-static
6
7FROM arm32v7/alpine:3.11
8
9COPY --from=qemu qemu-arm-static /usr/bin/
10COPY ./ /www/
11
12ENV USER darkhttpd
13ENV GROUP darkhttpd
14ENV GID 911
15ENV UID 911
16
17RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \
18 apk add -U darkhttpd && \
19 rm /usr/bin/qemu-arm-static
20
21USER darkhttpd
22
23ENTRYPOINT ["darkhttpd","/www/","--no-listing"]
diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8
new file mode 100644
index 0000000..48ce48e
--- /dev/null
+++ b/Dockerfile.arm64v8
@@ -0,0 +1,23 @@
1FROM alpine as qemu
2
3ARG QEMU_VERSION="v4.2.0-7"
4
5RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-aarch64-static && chmod +x qemu-aarch64-static
6
7FROM arm64v8/alpine:3.11
8
9COPY --from=qemu qemu-aarch64-static /usr/bin/
10COPY ./ /www/
11
12ENV USER darkhttpd
13ENV GROUP darkhttpd
14ENV GID 911
15ENV UID 911
16
17RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} && \
18 apk add -U darkhttpd && \
19 rm /usr/bin/qemu-aarch64-static
20
21USER darkhttpd
22
23ENTRYPOINT ["darkhttpd","/www/","--no-listing"]
diff --git a/README.md b/README.md
index 827226b..f03152b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
1# Homer 1# Homer
2
2A dead simple static **HOM**epage for your serv**ER** to keep your services on hand, from a simple `yaml` configuration file. 3A dead simple static **HOM**epage for your serv**ER** to keep your services on hand, from a simple `yaml` configuration file.
3 4
4**Check out the live demo [here](https://homer-demo.netlify.app).** 5**Check out the live demo [here](https://homer-demo.netlify.app).**
@@ -16,9 +17,9 @@ If you need authentication support, you're on your own (it can be secured using
16 17
17## Roadmap 18## Roadmap
18 19
19- [ ] Colors / theme customization 20* [ ] Colors / theme customization
20- [ ] Enable PWA support (making possible to "install" - add to homescreen - it) 21* [ ] Enable PWA support (making possible to "install" - add to homescreen - it)
21- [ ] Improve maintenability (external library import & service workers cached file list.) 22* [ ] Improve maintainability (external library import & service workers cached file list.)
22 23
23## Installation 24## Installation
24 25
@@ -32,12 +33,10 @@ sudo docker run -p 8080:8080 -v /your/local/config.yml:/www/config.yml -v /your/
32 33
33**How to build / install it?** There is no build system (😱), use it like that! It's meant to be stupid simple & zero maintenance required. Just copy the static files somewhere, and visit the `index.html`. 34**How to build / install it?** There is no build system (😱), use it like that! It's meant to be stupid simple & zero maintenance required. Just copy the static files somewhere, and visit the `index.html`.
34 35
35
36## Configuration 36## Configuration
37 37
38Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format. 38Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format.
39 39
40
41```yaml 40```yaml
42--- 41---
43# Homepage configuration 42# Homepage configuration
@@ -63,7 +62,7 @@ links:
63 - name: "ansible" 62 - name: "ansible"
64 icon: "fab fa-github" 63 icon: "fab fa-github"
65 url: "https://github.com/xxxxx/ansible/" 64 url: "https://github.com/xxxxx/ansible/"
66 target: '_blank' # optionnal html a tag target attribute 65 target: '_blank' # optional html a tag target attribute
67 - name: "Wiki" 66 - name: "Wiki"
68 icon: "fas fa-book" 67 icon: "fas fa-book"
69 url: "https://wiki.xxxxxx.com/" 68 url: "https://wiki.xxxxxx.com/"
@@ -82,7 +81,7 @@ services:
82 subtitle: "Continuous integration server" 81 subtitle: "Continuous integration server"
83 tag: "CI" 82 tag: "CI"
84 url: "#" 83 url: "#"
85 target: '_blank' # optionnal html a tag target attribute 84 target: '_blank' # optional html a tag target attribute
86 - name: "RabbitMQ Management" 85 - name: "RabbitMQ Management"
87 logo: "/assets/tools/rabbitmq.png" 86 logo: "/assets/tools/rabbitmq.png"
88 subtitle: "Manage & monitor RabbitMQ server" 87 subtitle: "Manage & monitor RabbitMQ server"
@@ -119,9 +118,9 @@ If you choose to fetch message information from an endpoint, the output format s
119 118
120```json 119```json
121{ 120{
122 "style": null, 121 "style": null,
123 "title": "Lorem ipsum 42", 122 "title": "Lorem ipsum 42",
124 "content": "LA LA LA Lorem ipsum dolor sit amet, ....." 123 "content": "LA LA LA Lorem ipsum dolor sit amet, ....."
125} 124}
126``` 125```
127 126
diff --git a/app.js b/app.js
index e796110..9e6bdd9 100644
--- a/app.js
+++ b/app.js
@@ -21,7 +21,7 @@ const app = new Vue({
21 this.checkOffline(); 21 this.checkOffline();
22 try { 22 try {
23 this.config = await this.getConfig(); 23 this.config = await this.getConfig();
24 document.title = this.config.title + ' | Homer'; 24 document.title = this.config.title + ' | ' + this.config.subtitle;
25 } catch (error) { 25 } catch (error) {
26 this.offline = true; 26 this.offline = true;
27 } 27 }
diff --git a/config.yml b/config.yml
index 71915ce..c5231c4 100644
--- a/config.yml
+++ b/config.yml
@@ -21,7 +21,7 @@ links:
21 - name: "ansible" 21 - name: "ansible"
22 icon: "fab fa-github" 22 icon: "fab fa-github"
23 url: "https://github.com/bastienwirtz/homer" 23 url: "https://github.com/bastienwirtz/homer"
24 target: '_blank' # optionnal html a tag target attribute 24 target: '_blank' # optional html a tag target attribute
25 - name: "Wiki" 25 - name: "Wiki"
26 icon: "fas fa-book" 26 icon: "fas fa-book"
27 url: "https://www.wikipedia.org/" 27 url: "https://www.wikipedia.org/"
@@ -38,7 +38,7 @@ services:
38 subtitle: "Continuous integration server" 38 subtitle: "Continuous integration server"
39 tag: "CI" 39 tag: "CI"
40 url: "https://jenkins.io/" 40 url: "https://jenkins.io/"
41 target: '_blank' # optionnal html a tag target attribute 41 target: '_blank' # optional html a tag target attribute
42 - name: "RabbitMQ Management" 42 - name: "RabbitMQ Management"
43 logo: "assets/tools/rabbitmq.png" 43 logo: "assets/tools/rabbitmq.png"
44 subtitle: "Manage & monitor RabbitMQ server" 44 subtitle: "Manage & monitor RabbitMQ server"
diff --git a/hooks/post_push b/hooks/post_push
new file mode 100644
index 0000000..d721b68
--- /dev/null
+++ b/hooks/post_push
@@ -0,0 +1,7 @@
1#!/bin/bash
2
3docker manifest push --purge b4bz/homer:latest
4docker manifest create b4bz/homer:latest b4bz/homer:latest-amd64 b4bz/homer:latest-arm32v7 b4bz/homer:latest-arm64v8
5docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm32v7 --os linux --arch arm
6docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm64v8 --os linux --arch arm64 --variant v8
7docker manifest push --purge b4bz/homer:latest \ No newline at end of file
diff --git a/hooks/pre_build b/hooks/pre_build
new file mode 100644
index 0000000..bc1b6fe
--- /dev/null
+++ b/hooks/pre_build
@@ -0,0 +1,8 @@
1#!/bin/bash
2
3# Update to docker-ee 18.x for manifests
4apt-get -y update
5apt-get -y --only-upgrade install docker-ee
6# Register qemu-*-static for all supported processors except the
7# current one, but also remove all registered binfmt_misc before
8docker run --rm --privileged multiarch/qemu-user-static:register --reset \ No newline at end of file