diff options
-rw-r--r-- | Dockerfile | 2 | ||||
-rw-r--r-- | Dockerfile.arm32v7 | 23 | ||||
-rw-r--r-- | Dockerfile.arm64v8 | 23 | ||||
-rw-r--r-- | README.md | 19 | ||||
-rw-r--r-- | app.js | 2 | ||||
-rw-r--r-- | config.yml | 4 | ||||
-rw-r--r-- | hooks/post_push | 7 | ||||
-rw-r--r-- | hooks/pre_build | 8 |
8 files changed, 74 insertions, 14 deletions
@@ -12,4 +12,4 @@ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} & | |||
12 | 12 | ||
13 | USER darkhttpd | 13 | USER darkhttpd |
14 | 14 | ||
15 | ENTRYPOINT ["darkhttpd","/www/"] | 15 | ENTRYPOINT ["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 @@ | |||
1 | FROM alpine as qemu | ||
2 | |||
3 | ARG QEMU_VERSION="v4.2.0-7" | ||
4 | |||
5 | RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-arm-static && chmod +x qemu-arm-static | ||
6 | |||
7 | FROM arm32v7/alpine:3.11 | ||
8 | |||
9 | COPY --from=qemu qemu-arm-static /usr/bin/ | ||
10 | COPY ./ /www/ | ||
11 | |||
12 | ENV USER darkhttpd | ||
13 | ENV GROUP darkhttpd | ||
14 | ENV GID 911 | ||
15 | ENV UID 911 | ||
16 | |||
17 | RUN 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 | |||
21 | USER darkhttpd | ||
22 | |||
23 | ENTRYPOINT ["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 @@ | |||
1 | FROM alpine as qemu | ||
2 | |||
3 | ARG QEMU_VERSION="v4.2.0-7" | ||
4 | |||
5 | RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-aarch64-static && chmod +x qemu-aarch64-static | ||
6 | |||
7 | FROM arm64v8/alpine:3.11 | ||
8 | |||
9 | COPY --from=qemu qemu-aarch64-static /usr/bin/ | ||
10 | COPY ./ /www/ | ||
11 | |||
12 | ENV USER darkhttpd | ||
13 | ENV GROUP darkhttpd | ||
14 | ENV GID 911 | ||
15 | ENV UID 911 | ||
16 | |||
17 | RUN 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 | |||
21 | USER darkhttpd | ||
22 | |||
23 | ENTRYPOINT ["darkhttpd","/www/","--no-listing"] | ||
@@ -1,4 +1,5 @@ | |||
1 | # Homer | 1 | # Homer |
2 | |||
2 | A dead simple static **HOM**epage for your serv**ER** to keep your services on hand, from a simple `yaml` configuration file. | 3 | A 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 | ||
38 | Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format. | 38 | Title, 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 | ||
@@ -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 | } |
@@ -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 | |||
3 | docker manifest push --purge b4bz/homer:latest | ||
4 | docker manifest create b4bz/homer:latest b4bz/homer:latest-amd64 b4bz/homer:latest-arm32v7 b4bz/homer:latest-arm64v8 | ||
5 | docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm32v7 --os linux --arch arm | ||
6 | docker manifest annotate b4bz/homer:latest b4bz/homer:latest-arm64v8 --os linux --arch arm64 --variant v8 | ||
7 | docker 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 | ||
4 | apt-get -y update | ||
5 | apt-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 | ||
8 | docker run --rm --privileged multiarch/qemu-user-static:register --reset \ No newline at end of file | ||