Skip to main content

HomePage dashboard

J'ai déjà en tête un certain nombres de services que je vais déployer dans ce HomeLab alors pour ne pas me perdre dans tout les services, je vais commencer par déployer Homepage.

Homepage est un dashboard qui permet d'avoir en un coup d'oeil un aperçu de certaines informations sur votre Lab mais aussi les liens pour ouvrir chaque application.

Installation

Le rôle ansible est très basique, il permet de déployer Homepage et de le transformer en service :

roles/Homepage/tasks/main.yml
---
# tasks file for Homepage
- name: Clone repository
git:
repo: https://github.com/gethomepage/homepage.git
dest: "{{ Homepage_WorkingDirectory }}"

- name: Prevent git directory ownership error
command: git config --global --add safe.directory /opt/Homepage

- name: Install npm package
apt:
name: npm
state: present

- name: Ajout user Homepage
user:
name: "{{ Homepage_user }}"

- name: Change ownership of Homepage dir
file:
path: "{{ Homepage_WorkingDirectory }}"
state: directory
recurse: yes
owner: "{{ Homepage_user }}"
group: "{{ Homepage_user }}"

- name: Run npm install
community.general.npm:
path: "{{ Homepage_WorkingDirectory }}"

- name: Build npm package
command: npm run build
args:
chdir: "{{ Homepage_WorkingDirectory }}"

- name: Create Homepage.service
template:
src: homepage.service.j2
dest: /lib/systemd/system/homepage.service
mode: 644

- name: Enable and start Homepage.service
systemd_service:
name: homepage
state: started
daemon_reload: true
enabled: true
roles/Homepage/templates/homepage.service.j2
[Unit]
Description=Homepage service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User={{ Homepage_user }}
WorkingDirectory= {{ Homepage_WorkingDirectory }}
ExecStart=/usr/bin/npm start

[Install]
WantedBy=multi-user.target

Une fois déployé, le service est disponible sur le port 3000

Configuration