Créer une page d’accueil pour ses applications avec Homepage

Image d'ensemble d'un exemple de page Homepage

Installer Homepage

Pour créer une page pour ses applications avec Homepage, on va devoir rajouter à notre stack le conteneur officiel de gethomepage:

  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    ports:
      - 3000:3000
    volumes:
      - /chemin/vers/config:/app/config 
      - /var/run/docker.sock:/var/run/docker.sock 
    environment:
      - HOMEPAGE_ALLOWED_HOSTS=*

Faites bien attention à modifier /chemin/vers/config par l’emplacement où vous souhaitez conserver les fichiers. Si vous avez suivi le guide de Création d’un média-center avec Jellyfin, Sonarr, Radarr et Prowlarr, cela devrait ressembler à /home/votre-user/server/configs/homepage

Configurer Homepage

Pour configurer Homepage, on va devoir modifier directement ses fichiers de configuration, services.yaml, settings.yaml, bookmarks.yaml et widgets.yaml. Ces fichiers se trouve dans le dossier config que vous avez spécifié précédement.

Pour plus de simplicité, vous pouvez utiliser Visual Studio Code avec l’extension Remote – SSH, comme ca vous pourrez directement modifier les fichiers.

Avant toute chose, nous allons aussi modifier le fichier docker.yaml afin de faire fonctionner les intégrations Docker avec Homepage. Rajoutez ceci dans le fichier:

my-docker:
   socket: /var/run/docker.sock

Configurer widgets.yaml

widgets.yaml est là où vous pouvez mettre en place des widgets d’information, qui seront toujours au-dessus des icones des widgets de vos autres services, comme par exemple un titre, la météo, les ressources sytème, etc…

- logo:

- openweathermap:
    label: Current
    units: metric 
    apiKey: votre-clé-API 
    cache: 5 

- greeting:
    text_size: xl
    text: Bienvenue sur mon serveur
- resources: 
    expanded: true 
    cpu: true 
    memory: true 
    uptime: true 
- resources: 
    label: Média Disque 
    expanded: true 
    disk: /dev/sda1    #à modifier
- resources: 
    label: OS Disque 
    expanded: true 
    disk: /dev/sdb1    #à modifier

Attention ! Si vous voulez afficher vos disques, vous devez les liés à votre conteneur, pour cela ajouter, comme par exemple, /:/mnt/os:ro pour le disque de votre sytème, et /mnt/data:/mnt/media:ro pour le disque de vos médias. Utilisez la commande df pour voir les ponts de montage de vos disques.

Image montrant un exemple de widgets sur votre page Homepage

Configurer services.yaml

services.yaml est le fichier où vous pourrez créer vos icones de services pour de vrai, comme Radarr, Sonarr, etc… Le fichier suit le format suivant:

- nom de la catégorie:
    - nom du service:
        href: le lien externe ouvert lors du clique sur celui-ci
        description: la description
        icon: le lien vers l'icone
        ping: le lien pour avoir le ping à votre service
        server: my-docker
        container: le nom du conteneur du service, généralement le même
        widget:
            type: le type du service
            url: le lien entre conteneur
            key: une clée API si nécessaire

Par exemple, avec l’image d’introduction, le fichier ressemblerait à ça pour la catégorie média:

- Media:
    - Jellyfin:
        href: https://jellyfin.domain.com/sso/OID/p/authentik #ici, le lien diffère car j'utilise le plugin SSO 
        description: Media Server
        icon: jellyfin.png
        ping: https://jellyfin.domain.com
        server: my-docker
        container: jellyfin
        widget:
            type: jellyfin
            url: http://jellyfin:8096
            key: clé API
            enableBlocks: true 
            enableNowPlaying: false 
    - Ombi:
        href: https://ombi.domain.com
        description: Media Requests
        icon: ombi.png
        ping: https://ombi.domain.com
        server: my-docker
        container: ombi
        widget:
            type: ombi
            url: http://ombi:3579
            key: clé API
    - Jellystat:
        href: https://jellystat.domain.com
        description: Jellyfin Stats
        icon: jellystat.png
        ping: https://jellystat.domain.com
        server: my-docker
        container: main-jellystat-1

Les icones sont incluses et proviennent soit de Dashboard Icons, en utilisant nom-de-l’icone.png, soit de Material Design Icons, en utilisant mdi-nom-de-l’icone.png ou encore de  Simple Icons, en utilisant si-nom-de-l’icone.png

Certain widget inclu des options supplémentaires donc allez voir la liste de tous les types de widgets présent. Ici, Jellystat n’a pas de widget car il n’en existe pas.

Configurer bookmarks.yaml

Les bookmarks fonctionnent principalement comme les services, mais ils sont bien plus simple, plus petits, et ne contiennent seulement un lien. Vous pouvez utiliser des abréviations ou des icones. Par exemple:

- Developer:
    - Github:
        - abbr: GH
          href: https://github.com/

- Social:
    - Reddit:
        - icon: reddit.png
          href: https://reddit.com/
          description: The front page of the internet

- Entertainment:
    - YouTube:
        - abbr: YT
          href: https://youtube.com/
Image montrant un exemple de bookmarks sur votre page Homepage

Configurer settings.yaml

Dans settings.yaml vous allez pouvoir modifier la mise en page et l’esthétique générale. Vous pourrez modifier le nombre de colonne par ligne, rajouter un arrière plan, le style de l’entête, etc… Par exemple:

background:
  image: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80
  brightness: 75
  
layout:
  home:
    style: row
    columns: 4
    header: false
  Media:
    style: row
    columns: 3
    icon: mdi-play
  Media Management:
    style: row
    columns: 3
    icon: mdi-multimedia
  File Management:
    style: row
    columns: 3
    icon: mdi-folder
  Network Management:
    style: row
    columns: 2
    icon: mdi-wifi
  Calendar:
    icon: mdi-calendar-month
  Other:
    style: row
    columns: 2
    icon: mdi-dots-horizontal

headerStyle: clean
useEqualHeights: true
hideVersion: true

La liste de toutes les options disponibles se trouve sur le site de homepage.

Bravo ! Vous savez maintenant comment créer une page pour ses applications avec Homepage. IL ne vous reste plus qu’à exploré toutes les options et libérez votre créativité.

Maintenant, si vous avez déjà suivi le guide pour Accéder à son serveur depuis internet avec NPM et Cloudflare, il est recommandé d’aller voir Comment sécurisez vos services grâce au Fournisseur d’Identité Authentik, par souci de sécurité de votre page d’accueil.

Laisser un commentaire