From a7ba289efa228613b18abc853c22fb3b5d99b9a7 Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Tue, 23 Jun 2020 22:56:33 -0700 Subject: [PATCH] Regroup all editable files in one place --- Dockerfile | 3 ++- Dockerfile.arm32v7 | 3 ++- Dockerfile.arm64v8 | 3 ++- README.md | 16 ++++------------ docs/configuration.md | 2 +- docs/tips-and-tricks.md | 2 +- entrypoint.sh | 8 ++++++-- public/{ => assets}/config.yml.dist | 0 public/{ => assets}/config.yml.dist.sample-sui | 0 src/App.vue | 2 +- 10 files changed, 19 insertions(+), 20 deletions(-) rename public/{ => assets}/config.yml.dist (100%) rename public/{ => assets}/config.yml.dist.sample-sui (100%) diff --git a/Dockerfile b/Dockerfile index cd3ab11..c760fec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,8 +23,9 @@ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} & COPY --from=build-stage --chown=${USER}:${GROUP} /app/dist /www/ COPY --chown=${USER}:${GROUP} entrypoint.sh /entrypoint.sh +RUN mv /www/assets /www/default-assets USER ${USER} EXPOSE ${PORT} -VOLUME [ "/www/config.yml", "/www/assets" ] +VOLUME [ "/www/assets" ] ENTRYPOINT ["/bin/sh", "/entrypoint.sh"] diff --git a/Dockerfile.arm32v7 b/Dockerfile.arm32v7 index ef01d1f..8dc3b1c 100644 --- a/Dockerfile.arm32v7 +++ b/Dockerfile.arm32v7 @@ -33,8 +33,9 @@ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} & COPY --from=build-stage --chown=${USER}:${GROUP} /app/dist /www/ COPY --chown=${USER}:${GROUP} entrypoint.sh /entrypoint.sh +RUN mv /www/assets /www/default-assets USER ${USER} EXPOSE ${PORT} -VOLUME [ "/www/config.yml", "/www/assets" ] +VOLUME [ "/www/assets" ] ENTRYPOINT ["/bin/sh", "/entrypoint.sh"] diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8 index 7899027..8a7e99f 100644 --- a/Dockerfile.arm64v8 +++ b/Dockerfile.arm64v8 @@ -33,8 +33,9 @@ RUN addgroup -S ${GROUP} -g ${GID} && adduser -D -S -u ${UID} ${USER} ${GROUP} & COPY --from=build-stage --chown=${USER}:${GROUP} /app/dist /www/ COPY --chown=${USER}:${GROUP} entrypoint.sh /entrypoint.sh +RUN mv /www/assets /www/default-assets USER ${USER} EXPOSE ${PORT} -VOLUME [ "/www/config.yml", "/www/assets" ] +VOLUME [ "/www/assets" ] ENTRYPOINT ["/bin/sh", "/entrypoint.sh"] diff --git a/README.md b/README.md index 65ef9ab..f65b417 100644 --- a/README.md +++ b/README.md @@ -38,31 +38,23 @@ ervices on hand, from a simple `yaml` configuration file. Homer is a full static html/js dashboard, generated from the source in `/src` using webpack. It's meant to be served by an HTTP server, **it will not work if you open dist/index.html directly over file:// protocol**. -For more information about the `config.yml` file see [configuration](docs/configuration.md) the section. +See [documentation](docs/configuration.md) for information about the configuration (`assets/config.yml`) options. ### Using docker ```sh -docker run -p 8080:8080 -v /your/local/config.yml:/www/config.yml -v /your/local/assets/:/www/assets b4bz/homer:latest +docker run -p 8080:8080 -v /your/local/assets/:/www/assets b4bz/homer:latest ``` -As a bind mount is used here, docker will not copy the initial content of the `assets` directory to the mounted directory. -You can initialise your assets directory with the content provided in this repository -```sh -cp -r /public/assets/* /your/local/assets/ -``` - -**Alternatively** if you just want to provide images/icons without customizing the other files (app manifest & pwa icons), you can mount a custom directory in the `www` directory and use it in your `config.yml` for icons path. - ### Using the release tarball (prebuilt, ready to use) -Download and extract the latest the latest release (`homer.zip`) from the [release page](https://github.com/bastienwirtz/homer/releases), rename the `config.yml.dist` file to `config.yml`, and put it behind a webserver. +Download and extract the latest the latest release (`homer.zip`) from the [release page](https://github.com/bastienwirtz/homer/releases), rename the `assets/config.yml.dist` file to `assets/config.yml`, and put it behind a webserver. ```sh wget https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip unzip homer.zip cd homer -cp config.yml.dist config.yml +cp assets/config.yml.dist assets/config.yml npx serve # or python -m http.server 8010 or apache, nginx ... ``` diff --git a/docs/configuration.md b/docs/configuration.md index a2469ed..409db34 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ ## Configuration -Title, icons, links, colors, and services can be configured in the `config.yml` file (located in project root directory once built, or in the `public/` directory in developement mode), using [yaml](http://yaml.org/) format. +Title, icons, links, colors, and services can be configured in the `config.yml` file (located in `/assets` directory once built, or in the `public/assets` directory in developement mode), using [yaml](http://yaml.org/) format. ```yaml --- diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index 632b62d..fda670d 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -74,7 +74,7 @@ Great if you have a lot of services or a lot of tags! Homer doesn't yet provide a way to edit your configuration from inside Homer itself, but that doesnt mean it cant be done! -You can setup and use [Code-Server](https://github.com/cdr/code-server) to edit your config.yml file from anywhere! +You can setup and use [Code-Server](https://github.com/cdr/code-server) to edit your `config.yml` file from anywhere! If you're running Homer in docker, you can setup a Code-Server container and pass your homer config directory into it. Simply pass your homer config directory as and extra -v parameter to your code-server container: diff --git a/entrypoint.sh b/entrypoint.sh index 7623322..0b7cd24 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,6 +1,10 @@ #!/bin/sh -yes n | cp -i /www/config.yml.dist /www/config.yml -while true; do echo n; done | cp -Ri /app/dist/www/assets /www/assets 2>/dev/null +while true; do echo n; done | cp -Ri /www/default-assets/* /www/assets/ + +# Ensure compatibility with previous version (config.yml was in the root directory) +if [ -f "/www/config.yml" ]; then + yes n | cp -i /www/config.yml /www/assets +fi darkhttpd /www/ --no-listing --port $PORT diff --git a/public/config.yml.dist b/public/assets/config.yml.dist similarity index 100% rename from public/config.yml.dist rename to public/assets/config.yml.dist diff --git a/public/config.yml.dist.sample-sui b/public/assets/config.yml.dist.sample-sui similarity index 100% rename from public/config.yml.dist.sample-sui rename to public/assets/config.yml.dist.sample-sui diff --git a/src/App.vue b/src/App.vue index 17c3214..613c743 100644 --- a/src/App.vue +++ b/src/App.vue @@ -156,7 +156,7 @@ export default { document.title = `${this.config.title} | ${this.config.subtitle}`; }, methods: { - getConfig: function (path = "config.yml") { + getConfig: function (path = "assets/config.yml") { return fetch(path).then((response) => { if (!response.ok) { throw Error(response.statusText); -- 2.41.0