From 207762135e0ccb87cd823683eafa1be686fb05ea Mon Sep 17 00:00:00 2001
From: Evan Steinkerchner
Homer
@@ -36,18 +36,18 @@
- +
## Table of Contents - [Features](#features) - [Getting started](#getting-started) -- [Configuration](docs/configuration.md) -- [Custom services](docs/customservices.md) -- [Tips & tricks](docs/tips-and-tricks.md) -- [Development](docs/development.md) -- [Troubleshooting](docs/troubleshooting.md) +- [Configuration](https://bastienwirtz.github.io/homer/configuration) +- [Custom services](https://bastienwirtz.github.io/homer/custom_services) +- [Tips & tricks](https://bastienwirtz.github.io/homer/tips_and_tricks) +- [Development](https://bastienwirtz.github.io/homer/development) +- [Troubleshooting](https://bastienwirtz.github.io/homer/troubleshooting) ## Features @@ -65,34 +65,58 @@ ## Getting started -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**. +### Using Docker -See [documentation](docs/configuration.md) for information about the configuration (`assets/config.yml`) options. +The fastest and recommended way to get your Homer instance up and running is +with Docker. The Docker image comes with a web server built-in so that all you +need to worry about is your config file. -### Using docker +Internally, the Docker image looks for the assets in the `/www/assets` directory +so you can bind a volume from your host machine to that directory in order to +modify and persist the configuration files. The web server serves the dashboard +on port 8080, but using a port binding will let you expose that to whatever +external port you like. + +#### docker To launch container: ```sh docker run -d \ -p 8080:8080 \ - -v :/www/assets \ + -v :/www/assets \ --restart=always \ b4bz/homer:latest ``` -Default assets will be automatically installed in the `/www/assets` directory. Use `UID` and/or `GID` env var to change the assets owner (`docker run -e "UID=1000" -e "GID=1000" [...]`). +Use `UID` and/or `GID` env var to change the assets owner: -### Using docker-compose +```sh +docker run -d \ + -p 8080:8080 \ + -v :/www/assets \ + -e "UID=1000" -e "GID=1000" \ + --restart=always \ + b4bz/homer:latest +``` -The `docker-compose.yml` file must be edited to match your needs. -Set the port and volume (equivalent to `-p` and `-v` arguments): +#### docker-compose + +It is recommended to use docker-compose to manage your Docker containers, and +below you can find a simple compose yaml file. Copy the contents into a +`docker-compose.yaml` and modify the volume binding to your desired directory to +get started: ```yaml -volumes: - - /your/local/assets/:/www/assets -ports: - - 8080:8080 +version: '3.3' +services: + homer: + restart: always + volumes: + - /your/local/assets:/www/assets + ports: + - 8080:8080 + image: b4bz/homer ``` To launch container: @@ -102,17 +126,31 @@ cd /path/to/docker-compose.yml docker-compose up -d ``` -Default assets will be automatically installed in the `/www/assets` directory. Use `UID` and/or `GID` env var to change the assets owner, also in `docker-compose.yml`: +Use `UID` and/or `GID` env var to change the assets owner: ```yaml -environment: - - UID=1000 - - GID=1000 +version: '3.3' +services: + homer: + restart: always + volumes: + - /your/local/assets:/www/assets + ports: + - 8080:8080 + environment: + - UID=1000 + - GID=1000 + image: b4bz/homer ``` -### Using the release tarball (prebuilt, ready to use) +### Shipping your own web server + +#### Prebuilt release tarball -Download and extract 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 web server. +Download and extract 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 web +server. ```sh wget https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip @@ -122,7 +160,7 @@ cp assets/config.yml.dist assets/config.yml npx serve # or python -m http.server 8010 or apache, nginx ... ``` -### Build manually +#### Building from source ```sh # Using yarn (recommended) -- cgit v1.2.3