Skip to content

Commit

Permalink
Merge branch 'gethomepage:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
devedse authored Aug 14, 2024
2 parents 655be04 + 2ee14eb commit 2227232
Show file tree
Hide file tree
Showing 185 changed files with 8,641 additions and 4,036 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false
7 changes: 7 additions & 0 deletions .github/DISCUSSION_TEMPLATE/support.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
body:
- type: markdown
attributes:
value: |
### ⚠️ Before opening a discussion:
- [Check the troubleshooting guide](https://gethomepage.dev/latest/troubleshooting/).
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions).
- type: textarea
id: description
attributes:
Expand Down
3 changes: 2 additions & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
github: [gethomepage, benphelps, shamoon]
github: [gethomepage]
open_collective: homepage
patreon: gethomepage
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ body:
attributes:
label: Before submitting, please confirm the following
options:
- label: I confirm this was discussed, and the maintainers suggest I open an issue (note that AI bots are not maintainers).
- label: I confirm this was discussed, and the maintainers asked that I open an issue.
required: true
- label: I am aware that if I create this issue without a discussion, it will be removed without a response.
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: ${{ github.event_name != 'pull_request' && !(github.event_name == 'push' && startsWith(github.ref, 'refs/heads/feature')) }}
Expand Down
24 changes: 11 additions & 13 deletions .github/workflows/docs-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ name: Docs

on:
push:
tags: [ 'v*.*.*' ]
branches: ['main']
tags: ["v*.*.*"]
branches: ["main"]
paths:
- 'docs/**'
- 'mkdocs.yml'
- "docs/**"
- "mkdocs.yml"
pull_request:
paths:
- 'docs/**'
- 'mkdocs.yml'
- "docs/**"
- "mkdocs.yml"
merge_group:
workflow_dispatch:

Expand All @@ -22,16 +22,13 @@ jobs:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
-
name: Checkout repository
- name: Checkout repository
uses: actions/checkout@v4
-
name: Install python
- name: Install python
uses: actions/setup-python@v5
with:
python-version: 3.x
-
name: Check files
- name: Check files
uses: pre-commit/[email protected]

test:
Expand All @@ -54,7 +51,7 @@ jobs:
mkdocs-material-
- run: sudo apt-get install pngquant
- run: pip install mike
- run: pip install mkdocs-material
- run: pip install mkdocs-material mkdocs-redirects "mkdocs-material[imaging]"
- name: Test Docs Build
run: MKINSIDERS=false mkdocs build
deploy:
Expand All @@ -80,6 +77,7 @@ jobs:
- run: sudo apt-get install pngquant
- run: pip install mike==2.0.0
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
- run: pip install mkdocs-redirects "mkdocs-material[imaging]"
- name: Set Git config
run: |
git config --global user.name "GitHub Action"
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
</p>

<p align="center">
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%203.svg" alt="DigitalOcean Referral Badge" /></a>
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>
</p>
<p align="center">
<em>Homepage builds are kindly powered by DigitalOcean.</em>
Expand Down Expand Up @@ -66,6 +66,10 @@ Homepage is highly customizable, with support for custom themes, custom CSS & JS

For configuration options, examples and more, [please check out the homepage documentation](http://gethomepage.dev).

## Security Notice 🔒

Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.

## With Docker

Using docker compose:
Expand Down
Binary file added docs/assets/[email protected]
Binary file not shown.
Binary file added docs/assets/[email protected]
Binary file not shown.
Binary file added docs/assets/blossom_valley.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/blossom_valley_blur.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/homepage_demo.webp
Binary file not shown.
Binary file added docs/assets/homepage_demo_clip.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/homepage_demo_clip.webp
Binary file not shown.
Binary file added docs/assets/[email protected]
Binary file not shown.
Binary file added docs/assets/sections.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/sections.webp
Binary file not shown.
Binary file added docs/assets/widget_stocks_demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/configs/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ In order to detect every service within the Docker swarm it is necessary that se

## Multiple Homepage Instances

The optional field `instanceName` can be configured in [settings.md](settings.md#instance-name) to differentiate between multiple homepage instances.
The optional field `instanceName` can be configured in [settings.yaml](settings.md#instance-name) to differentiate between multiple homepage instances.

To limit a label to an instance, insert `.instance.{{instanceName}}` after the `homepage` prefix.

Expand Down
1 change: 1 addition & 0 deletions docs/configs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: Configuration
description: Homepage Configuration
icon: material/cog
---

Homepage uses YAML for configuration, YAML stands for "YAML Ain't Markup Language.". It's a human-readable data serialization format that's a superset of JSON. Great for config files, easy to read and write. Supports complex data types like lists and objects. **Indentation matters.** If you already use Docker Compose, you already use YAML.
Expand Down
8 changes: 5 additions & 3 deletions docs/configs/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Inside of the service you'd like to connect to a pod:
The `app` field is used to create a label selector, in this example case it would match pods with the label: `app.kubernetes.io/name=emby`.

Sometimes this is insufficient for complex or atypical application deployments. In these cases, the `pod-selector` field can be used. Any field selector can be used with it, so it allows for some very powerful selection capabilities.
Sometimes this is insufficient for complex or atypical application deployments. In these cases, the `podSelector` field can be used. Any field selector can be used with it, so it allows for some very powerful selection capabilities.

For instance, it can be utilized to roll multiple underlying deployments under one application to see a high-level aggregate:

Expand All @@ -47,7 +47,7 @@ For instance, it can be utilized to roll multiple underlying deployments under o
description: Matrix Synapse Powered Chat
app: matrix-element
namespace: comms
pod-selector: >-
podSelector: >-
app.kubernetes.io/instance in (
matrix-element,
matrix-media-repo,
Expand All @@ -58,7 +58,7 @@ For instance, it can be utilized to roll multiple underlying deployments under o

!!! note

A blank string as a pod-selector does not deactivate it, but will actually select all pods in the namespace. This is a useful way to capture the resource usage of a complex application siloed to a single namespace, like Longhorn.
A blank string as a podSelector does not deactivate it, but will actually select all pods in the namespace. This is a useful way to capture the resource usage of a complex application siloed to a single namespace, like Longhorn.

## Automatic Service Discovery

Expand Down Expand Up @@ -98,6 +98,8 @@ When the Kubernetes cluster connection has been properly configured, this servic

If you are using multiple instances of homepage, an `instance` annotation can be specified to limit services to a specific instance. If no instance is provided, the service will be visible on all instances.

If you have a single service that needs to be shown on multiple specific instances of homepage (but not on all of them), the service can be annotated by multiple `instance.name` annotations, where `name` can be the names of your specific multiple homepage instances. For example, a service that is annotated with `gethomepage.dev/instance.public: ""` and `gethomepage.dev/instance.internal: ""` will be shown on `public` and `internal` homepage instances.

### Traefik IngressRoute support

Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set:
Expand Down
16 changes: 14 additions & 2 deletions docs/configs/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -377,9 +377,10 @@ You can use the 'Quick Launch' feature to search services, perform a web search

There are a few optional settings for the Quick Launch feature:

- `searchDescriptions`: which lets you control whether item descriptions are included in searches. This is off by default. When enabled, results that match the item name will be placed above those that only match the description.
- `searchDescriptions`: which lets you control whether item descriptions are included in searches. This is false by default. When enabled, results that match the item name will be placed above those that only match the description.
- `hideInternetSearch`: disable automatically including the currently-selected web search (e.g. from the widget) as a Quick Launch option. This is false by default, enabling the feature.
- `showSearchSuggestions`: shows search suggestions for the internet search. This value will be inherited from the search widget if it is not specified. If it is not specified there either, it will default to false.
- `showSearchSuggestions`: show search suggestions for the internet search. If this is not specified then the setting will be inherited from the search widget. If it is not specified there either, it will default to false. For custom providers the `suggestionUrl` needs to be set in order for this to work.
- `provider`: search engine provider. If none is specified it will try to use the provider set for the Search Widget, if neither are present then internet search will be disabled.
- `hideVisitURL`: disable detecting and offering an option to open URLs. This is false by default, enabling the feature.

```yaml
Expand All @@ -388,6 +389,17 @@ quicklaunch:
hideInternetSearch: true
showSearchSuggestions: true
hideVisitURL: true
provider: google # google, duckduckgo, bing, baidu, brave or custom
```

or for a custom search:

```yaml
quicklaunch:
provider: custom
url: https://www.ecosia.org/search?q=
target: _blank
suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q=
```

## Homepage Version
Expand Down
28 changes: 17 additions & 11 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
title: Home
description: A modern, fully static, fast, secure, fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages.
icon: material/home
hide:
- navigation
- toc
Expand All @@ -10,17 +12,21 @@ hide:

<div style="margin-top: -100px;"></div>

<p align="center" style="max-width: 75%; margin: 0 auto; display: block;" markdown>
![Alt text](assets/[email protected]#only-light)
![Alt text](assets/[email protected]#only-dark)
<div style="max-width: 70%; margin: 0 auto; display: block;">

A modern, <em>fully static, fast</em>, secure <em>fully proxied</em>, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.
<img src="assets/[email protected]" alt="homepage" style="max-width: 100%; max-height: 175px; margin: 0 auto; display: block;" />

![Alt text](assets/homepage_demo.png)
<img src="assets/homepage_demo_clip.webp" alt="homepage" style="max-width: 100%; margin: 0 auto; display: block;" />

<p align="center">
<a href="https://www.digitalocean.com/?refcode=df14bcb7c016&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%203.svg" alt="DigitalOcean Referral Badge" /></a>
</p>
<p align="center">
<em>Homepage builds are kindly powered by DigitalOcean.</em>
</p>
<p style="margin: 0 0 30px;">A modern, <em>fully static, fast</em>, secure <em>fully proxied</em>, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.</p>

</div>

<style>
.md-header__source {
display: none;
}
.md-typeset img, .md-typeset svg, .md-typeset video {
box-shadow: none;
}
</style>
5 changes: 5 additions & 0 deletions docs/installation/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
---
title: Installation
description: Docs intro
icon: simple/docker
---

<p>
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
</p>

!!! danger

Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.

<br>

<div class="grid cards" style="margin: 0 auto;" markdown>
Expand Down
Loading

0 comments on commit 2227232

Please sign in to comment.