aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.md21
-rw-r--r--docs/troubleshooting.md26
-rw-r--r--entrypoint.sh2
-rw-r--r--lighttpd.conf17
-rw-r--r--package.json8
-rw-r--r--yarn.lock96
6 files changed, 94 insertions, 76 deletions
diff --git a/README.md b/README.md
index 5a08483..ea93f4f 100644
--- a/README.md
+++ b/README.md
@@ -65,9 +65,9 @@
65 65
66## Getting started 66## Getting started
67 67
68Homer 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**. 68Homer is a full static html/js dashboard, based on a simple yaml configuration file. See [documentation](docs/configuration.md) for information about the configuration (`assets/config.yml`) options.
69 69
70See [documentation](docs/configuration.md) for information about the configuration (`assets/config.yml`) options. 70It's meant to be served by an HTTP server, **it will not work if you open the index.html directly over file:// protocol**.
71 71
72### Using docker 72### Using docker
73 73
@@ -79,7 +79,9 @@ docker run -d \
79 b4bz/homer:latest 79 b4bz/homer:latest
80``` 80```
81 81
82Environment variables: 82The container will run using a user uid and gid 1000. Add `--user <your-UID>:<your-GID>` to the docker command to adjust it. Make sure this match the ownership of your assets directory.
83
84**Environment variables:**
83 85
84* **`INIT_ASSETS`** (default: `1`) 86* **`INIT_ASSETS`** (default: `1`)
85Install example configuration file & assets (favicons, ...) to help you get started. 87Install example configuration file & assets (favicons, ...) to help you get started.
@@ -87,18 +89,9 @@ Install example configuration file & assets (favicons, ...) to help you get star
87* **`SUBFOLDER`** (default: `null`) 89* **`SUBFOLDER`** (default: `null`)
88If you would like to host Homer in a subfolder, (ex: *http://my-domain/**homer***), set this to the subfolder path (ex `/homer`). 90If you would like to host Homer in a subfolder, (ex: *http://my-domain/**homer***), set this to the subfolder path (ex `/homer`).
89 91
92#### With docker-compose
90 93
91### Using docker-compose 94A [`docker-compose.yml`](docker-compose.yml) file is available as an example. It must be edited to match your needs. You probably want to adjust the port mapping and volume binding (equivalent to `-p` and `-v` arguments).
92
93The `docker-compose.yml` file must be edited to match your needs.
94You probably want to set the port mapping and volume binding (equivalent to `-p` and `-v` arguments):
95
96```yaml
97volumes:
98 - /your/local/assets/:/www/assets
99ports:
100 - 8080:8080
101```
102 95
103Then launch the container: 96Then launch the container:
104 97
diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md
index 10d6c2d..33b8fb7 100644
--- a/docs/troubleshooting.md
+++ b/docs/troubleshooting.md
@@ -1,8 +1,32 @@
1# Troubleshooting 1# Troubleshooting
2 2
3## My docker container refuse to start / is stuck at restarting.
4
5You might be facing a permission issue. First of all, check your container logs (adjust the container name if necessary):
6
7```sh
8$ docker logs homer
9[...]
10Assets directory not writable. Check assets directory permissions & docker user or skip default assets install by setting the INIT_ASSETS env var to 0
11```
12
13In this case you need to make sure your mounted assests directory have the same GID / UID the container user have (default 1000:1000), and that the read and write permission is granted for the user or the group.
14
15You can either:
16- Update your assets directory permissions (ex: `chown -R 1000:1000 /your/assets/folder/`, `chmod -R u+rw /your/assets/folder/`)
17- Change the docker user by using the `--user` arguments with docker cli or `user: 1000:1000` with docker compose.
18
19⚠️ Notes:
20
21- **Do not** use env var to set the GID / UID of the user running container. Use the Docker `user` option.
22- **Do not** use 0:0 as a user value, it would be a security risk, and it's not guaranty to work.
23
24Check this [thread](https://github.com/bastienwirtz/homer/issues/459) for more information about debugging
25permission issues.
26
3## My custom service card doesn't work, nothing appears or offline status is displayed (pi-hole, sonarr, ping, ...) 27## My custom service card doesn't work, nothing appears or offline status is displayed (pi-hole, sonarr, ping, ...)
4 28
5You might by facing a [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross Origin Request Sharing) issue. 29You might be facing a [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross Origin Request Sharing) issue.
6It happens when the targeted service is hosted on a different domain or port. 30It happens when the targeted service is hosted on a different domain or port.
7Web browsers will not allow to fetch information from a different site without explicit permissions (the targeted service 31Web browsers will not allow to fetch information from a different site without explicit permissions (the targeted service
8must include a special `Access-Control-Allow-Origin: *` HTTP headers). 32must include a special `Access-Control-Allow-Origin: *` HTTP headers).
diff --git a/entrypoint.sh b/entrypoint.sh
index eba1cb2..48df1e6 100644
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -3,7 +3,7 @@
3PERMISSION_ERROR="Check assets directory permissions & docker user or skip default assets install by setting the INIT_ASSETS env var to 0" 3PERMISSION_ERROR="Check assets directory permissions & docker user or skip default assets install by setting the INIT_ASSETS env var to 0"
4 4
5# Default assets & exemple configuration installation if possible. 5# Default assets & exemple configuration installation if possible.
6if [[ "${INIT_ASSETS}" == "1" ]] && [[ ! -f "/www/config.yml" ]]; then 6if [[ "${INIT_ASSETS}" == "1" ]] && [[ ! -f "/www/assets/config.yml" ]]; then
7 echo "No configuration found, installing default config & assets" 7 echo "No configuration found, installing default config & assets"
8 if [[ ! -w "/www/assets/" ]]; then echo "Assets directory not writable. $PERMISSION_ERROR" && exit 1; fi 8 if [[ ! -w "/www/assets/" ]]; then echo "Assets directory not writable. $PERMISSION_ERROR" && exit 1; fi
9 9
diff --git a/lighttpd.conf b/lighttpd.conf
index 32e14da..f62657a 100644
--- a/lighttpd.conf
+++ b/lighttpd.conf
@@ -1,10 +1,11 @@
1include "/etc/lighttpd/mime-types.conf" 1include "/etc/lighttpd/mime-types.conf"
2 2
3server.port = env.PORT 3server.port = env.PORT
4server.modules = ( "mod_alias" ) 4server.modules = ( "mod_alias" )
5server.username = "lighttpd" 5server.username = "lighttpd"
6server.groupname = "lighttpd" 6server.groupname = "lighttpd"
7server.document-root = "/www" 7server.document-root = "/www"
8alias.url = ( env.SUBFOLDER => "/www" ) 8alias.url = ( env.SUBFOLDER => "/www" )
9server.indexfiles = ("index.html") 9server.indexfiles = ("index.html")
10server.follow-symlink = "enable" 10server.follow-symlink = "enable"
11server.feature-flags += ( "server.clock-jump-restart" => 0 ) \ No newline at end of file
diff --git a/package.json b/package.json
index a6d5fbf..8af02e9 100644
--- a/package.json
+++ b/package.json
@@ -16,10 +16,10 @@
16 "vue": "^2.6.14" 16 "vue": "^2.6.14"
17 }, 17 },
18 "devDependencies": { 18 "devDependencies": {
19 "@vue/cli-plugin-babel": "~4.5.17", 19 "@vue/cli-plugin-babel": "~4.5.19",
20 "@vue/cli-plugin-eslint": "~4.5.17", 20 "@vue/cli-plugin-eslint": "~4.5.19",
21 "@vue/cli-plugin-pwa": "~4.5.17", 21 "@vue/cli-plugin-pwa": "~4.5.19",
22 "@vue/cli-service": "~4.5.17", 22 "@vue/cli-service": "~4.5.19",
23 "@vue/eslint-config-prettier": "^6.0.0", 23 "@vue/eslint-config-prettier": "^6.0.0",
24 "babel-eslint": "^10.1.0", 24 "babel-eslint": "^10.1.0",
25 "eslint": "^6.7.2", 25 "eslint": "^6.7.2",
diff --git a/yarn.lock b/yarn.lock
index 5b8ab11..3342547 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1189,10 +1189,10 @@
1189 lodash.kebabcase "^4.1.1" 1189 lodash.kebabcase "^4.1.1"
1190 svg-tags "^1.0.0" 1190 svg-tags "^1.0.0"
1191 1191
1192"@vue/babel-preset-app@^4.5.17": 1192"@vue/babel-preset-app@^4.5.19":
1193 version "4.5.17" 1193 version "4.5.19"
1194 resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.17.tgz#09c64eedfe868bfa3121fc12a59138518f830bde" 1194 resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz#baee457da0065c016f74fac4149f7c97631ba5a7"
1195 integrity sha512-iFv9J3F5VKUPcbx+TqW5qhGmAVyXQxPRpKpPOuTLFIVTzg+iwJnrqVbL4kJU5ECGDxPESW2oCVgxv9bTlDPu7w== 1195 integrity sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q==
1196 dependencies: 1196 dependencies:
1197 "@babel/core" "^7.11.0" 1197 "@babel/core" "^7.11.0"
1198 "@babel/helper-compilation-targets" "^7.9.6" 1198 "@babel/helper-compilation-targets" "^7.9.6"
@@ -1274,61 +1274,61 @@
1274 "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" 1274 "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
1275 camelcase "^5.0.0" 1275 camelcase "^5.0.0"
1276 1276
1277"@vue/cli-overlay@^4.5.17": 1277"@vue/cli-overlay@^4.5.19":
1278 version "4.5.17" 1278 version "4.5.19"
1279 resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.17.tgz#4e0e24b7c3b71ff86de86f532821fd3abb48d10c" 1279 resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz#d1206f7802bcba1d9c307695b54091df996db804"
1280 integrity sha512-QKKp66VbMg+X8Qh0wgXSwgxLfxY7EIkZkV6bZ6nFqBx8xtaJQVDbTL+4zcUPPA6nygbIcQ6gvTinNEqIqX6FUQ== 1280 integrity sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g==
1281 1281
1282"@vue/cli-plugin-babel@~4.5.17": 1282"@vue/cli-plugin-babel@~4.5.19":
1283 version "4.5.17" 1283 version "4.5.19"
1284 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.17.tgz#8c468e32ef6546f843201770a294bf599689e004" 1284 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.19.tgz#288b32e69f0191a77369e88f071c0cd8036edfa7"
1285 integrity sha512-6kZuc3PdoUvGAnndUq6+GqjIXn3bqdTR8lOcAb1BH2b4N7IKGlmzcipALGS23HLVMAvDgNuUS7vf0unin9j2cg== 1285 integrity sha512-8ebXzaMW9KNTMAN6+DzkhFsjty1ieqT7hIW5Lbk4v30Qhfjkms7lBWyXPGkoq+wAikXFa1Gnam2xmWOBqDDvWg==
1286 dependencies: 1286 dependencies:
1287 "@babel/core" "^7.11.0" 1287 "@babel/core" "^7.11.0"
1288 "@vue/babel-preset-app" "^4.5.17" 1288 "@vue/babel-preset-app" "^4.5.19"
1289 "@vue/cli-shared-utils" "^4.5.17" 1289 "@vue/cli-shared-utils" "^4.5.19"
1290 babel-loader "^8.1.0" 1290 babel-loader "^8.1.0"
1291 cache-loader "^4.1.0" 1291 cache-loader "^4.1.0"
1292 thread-loader "^2.1.3" 1292 thread-loader "^2.1.3"
1293 webpack "^4.0.0" 1293 webpack "^4.0.0"
1294 1294
1295"@vue/cli-plugin-eslint@~4.5.17": 1295"@vue/cli-plugin-eslint@~4.5.19":
1296 version "4.5.17" 1296 version "4.5.19"
1297 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.17.tgz#7667bf87bdfdb39faeb3baed58657622354a17bc" 1297 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.19.tgz#d1f908b5d079f2902dc23301290e4dd8176f204c"
1298 integrity sha512-bVNDP+SuWcuJrBMc+JLaKvlxx25XKIlZBa+zzFnxhHZlwPZ7CeBD3e2wnsygJyPoKgDZcZwDgmEz1BZzMEjsNw== 1298 integrity sha512-53sa4Pu9j5KajesFlj494CcO8vVo3e3nnZ1CCKjGGnrF90id1rUeepcFfz5XjwfEtbJZp2x/NoX/EZE6zCzSFQ==
1299 dependencies: 1299 dependencies:
1300 "@vue/cli-shared-utils" "^4.5.17" 1300 "@vue/cli-shared-utils" "^4.5.19"
1301 eslint-loader "^2.2.1" 1301 eslint-loader "^2.2.1"
1302 globby "^9.2.0" 1302 globby "^9.2.0"
1303 inquirer "^7.1.0" 1303 inquirer "^7.1.0"
1304 webpack "^4.0.0" 1304 webpack "^4.0.0"
1305 yorkie "^2.0.0" 1305 yorkie "^2.0.0"
1306 1306
1307"@vue/cli-plugin-pwa@~4.5.17": 1307"@vue/cli-plugin-pwa@~4.5.19":
1308 version "4.5.17" 1308 version "4.5.19"
1309 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.5.17.tgz#73b2f9dd1203de46761a9843e972966e2717fe87" 1309 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.5.19.tgz#6b18c62746d3893af5338f62a2ee7b726b2ff4bb"
1310 integrity sha512-IaODWmj5eQjv97ne0CTOgPZA8QmVS7zYX64C+SivWPw0uevJAhNUdDHgyrUODP7fEfyufKliStLMQJTowohGNQ== 1310 integrity sha512-3WLmI+ky1xejrvBK6mPiu3du16iZDOF/OHV0EDgdwuBPmmg6w4TvV0Ho4iWMK+BWY68qxIadhqX23JvFfFLvOg==
1311 dependencies: 1311 dependencies:
1312 "@vue/cli-shared-utils" "^4.5.17" 1312 "@vue/cli-shared-utils" "^4.5.19"
1313 webpack "^4.0.0" 1313 webpack "^4.0.0"
1314 workbox-webpack-plugin "^4.3.1" 1314 workbox-webpack-plugin "^4.3.1"
1315 1315
1316"@vue/cli-plugin-router@^4.5.17": 1316"@vue/cli-plugin-router@^4.5.19":
1317 version "4.5.17" 1317 version "4.5.19"
1318 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.17.tgz#9de189a7a8740817cde2a4e57aade14552ff68c3" 1318 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz#a7feea7024b83a0af77fc940d1637d3ce2f92e1f"
1319 integrity sha512-9r9CSwqv2+39XHQPDZJ0uaTtTP7oe0Gx17m7kBhHG3FA7R7AOSk2aVzhHZmDRhzlOxjx9kQSvrOSMfUG0kV4dQ== 1319 integrity sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A==
1320 dependencies: 1320 dependencies:
1321 "@vue/cli-shared-utils" "^4.5.17" 1321 "@vue/cli-shared-utils" "^4.5.19"
1322 1322
1323"@vue/cli-plugin-vuex@^4.5.17": 1323"@vue/cli-plugin-vuex@^4.5.19":
1324 version "4.5.17" 1324 version "4.5.19"
1325 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.17.tgz#eb6f597c775f3c847bf5a638ad65a0d03c11dcbf" 1325 resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz#2452de58eb66ed873852bea45e6e06b57d842b47"
1326 integrity sha512-ck/ju2T2dmPKLWK/5QctNJs9SCb+eSZbbmr8neFkMc7GlbXw6qLWw5v3Vpd4KevdQA8QuQOA1pjUmzpCiU/mYQ== 1326 integrity sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==
1327 1327
1328"@vue/cli-service@~4.5.17": 1328"@vue/cli-service@~4.5.19":
1329 version "4.5.17" 1329 version "4.5.19"
1330 resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.17.tgz#6f796056363b70b69065d95815ac170b7772d0c6" 1330 resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.19.tgz#5f6513128f426be0ee9a7d03155c23a6f23f8d42"
1331 integrity sha512-MqfkRYIcIUACe3nYlzNrYstJTWRXHlIqh6JCkbWbdnXWN+IfaVdlG8zw5Q0DVcSdGvkevUW7zB4UhtZB4uyAcA== 1331 integrity sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA==
1332 dependencies: 1332 dependencies:
1333 "@intervolga/optimize-cssnano-plugin" "^1.0.5" 1333 "@intervolga/optimize-cssnano-plugin" "^1.0.5"
1334 "@soda/friendly-errors-webpack-plugin" "^1.7.1" 1334 "@soda/friendly-errors-webpack-plugin" "^1.7.1"
@@ -1336,10 +1336,10 @@
1336 "@types/minimist" "^1.2.0" 1336 "@types/minimist" "^1.2.0"
1337 "@types/webpack" "^4.0.0" 1337 "@types/webpack" "^4.0.0"
1338 "@types/webpack-dev-server" "^3.11.0" 1338 "@types/webpack-dev-server" "^3.11.0"
1339 "@vue/cli-overlay" "^4.5.17" 1339 "@vue/cli-overlay" "^4.5.19"
1340 "@vue/cli-plugin-router" "^4.5.17" 1340 "@vue/cli-plugin-router" "^4.5.19"
1341 "@vue/cli-plugin-vuex" "^4.5.17" 1341 "@vue/cli-plugin-vuex" "^4.5.19"
1342 "@vue/cli-shared-utils" "^4.5.17" 1342 "@vue/cli-shared-utils" "^4.5.19"
1343 "@vue/component-compiler-utils" "^3.1.2" 1343 "@vue/component-compiler-utils" "^3.1.2"
1344 "@vue/preload-webpack-plugin" "^1.1.0" 1344 "@vue/preload-webpack-plugin" "^1.1.0"
1345 "@vue/web-component-wrapper" "^1.2.0" 1345 "@vue/web-component-wrapper" "^1.2.0"
@@ -1388,10 +1388,10 @@
1388 optionalDependencies: 1388 optionalDependencies:
1389 vue-loader-v16 "npm:vue-loader@^16.1.0" 1389 vue-loader-v16 "npm:vue-loader@^16.1.0"
1390 1390
1391"@vue/cli-shared-utils@^4.5.17": 1391"@vue/cli-shared-utils@^4.5.19":
1392 version "4.5.17" 1392 version "4.5.19"
1393 resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.17.tgz#bb4aac8b816036cf5c0adf3af3cc1cb9c425501e" 1393 resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz#cc389b1de1b05073804c0fe9b4b083b928ef6130"
1394 integrity sha512-VoFNdxvTW4vZu3ne+j1Mf7mU99J2SAoRVn9XPrsouTUUJablglM8DASk7Ixhsh6ymyL/W9EADQFR6Pgj8Ujjuw== 1394 integrity sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==
1395 dependencies: 1395 dependencies:
1396 "@achrinza/node-ipc" "9.2.2" 1396 "@achrinza/node-ipc" "9.2.2"
1397 "@hapi/joi" "^15.0.1" 1397 "@hapi/joi" "^15.0.1"
@@ -7404,9 +7404,9 @@ shebang-regex@^3.0.0:
7404 integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 7404 integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
7405 7405
7406shell-quote@^1.6.1: 7406shell-quote@^1.6.1:
7407 version "1.7.2" 7407 version "1.7.3"
7408 resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" 7408 resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
7409 integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== 7409 integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
7410 7410
7411signal-exit@^3.0.0, signal-exit@^3.0.2: 7411signal-exit@^3.0.0, signal-exit@^3.0.2:
7412 version "3.0.3" 7412 version "3.0.3"