# Homer
## Descrizione [Repo (Github)](https://github.com/bastienwirtz/homer) - [Demo](https://homer-demo.netlify.app/) Homer è una semplice pagina per tutti i vostri servizi (locali e non): - **1** solo file di configurazione in formato yaml - Scorciatoie da tastiera - Supporto alla divisione in gruppi e per una ricerca più veloce - Personalizzazione dei colori, font, etc... ## Struttura file e cartelle ``` /home/ └── docker/ └── homer/ ├── assets/ │ └── tools/ ├── .env ├── config.yml └── docker-compose.yml ``` * `assets/` - cartella dove risiedono i dati che servono a homer * `.env` - file contenenti le variabili environment per il docker-compose * `config.yml` - file di configurazione base, da usare come esempio * `docker-compose.yml` - file usato per creare il container **N.B. Tutti i file e le cartelle devono essere creati a mano.** ## Esempi Semplice esempio per iniziare ad usare subito il container ### docker-compose `docker-compose.yml` ```yml version: "3.5" services: homer: container_name: homer image: b4bz/homer security_opt: - no-new-privileges:true networks: - custom-bridge restart: unless-stopped ports: - ${HOMER_WEBUI_PORT:-8080}:8080 env_file: .env volumes: - ${HOMER_ASSETS:-/home/docker/homer/assets}:/www/assets:ro - ${HOMER_CONFIG:-/home/docker/homer/config.yml}:/www/config.yml:ro networks: custom-bridge: name: custom-bridge driver: bridge ``` `.env` ```bash # Generale HOMER_WEBUI_PORT=8080 HOMER_ASSETS=/home/docker/homer/assets HOMER_CONFIG=/home/docker/homer/config.yml # Homer TZ=Europe/Amsterdam ``` ### config.yml `config.yml` ```yml title: "Homepage" subtitle: "Homer" logo: "assets/logo.png" icon: "fas fa-skull-crossbones" footer: '

un piè di pagina meno brutto

' links: - name: "Font Awesome Icons Gallery" icon: "fab fa-fort-awesome" url: "https://fontawesome.com/icons?d=gallery" - name: "Libredd.it /r/SelfHosted" icon: "fab fa-reddit" url: "https://libredd.it/r/selfhosted/" services: - name: "Main" icon: "fab fa-docker" items: - name: "Bookstack" logo: "/assets/tools/bookstack.png" subtitle: "Appunti e altro" url: "https://book.example.com" - name: "Bitwarden" logo: "/assets/tools/bitwarden.png" subtitle: "Password Manager" url: "https://passwd.example.com" - name: "Nextcloud" logo: "/assets/tools/nextcloud.png" subtitle: "File Sync & Share" url: "https://nextcloud.example.com" - name: "Monitor" icon: "fas fa-heartbeat" items: - name: "Prometheus + Grafana" logo: "/assets/tools/grafana.png" subtitle: "Analytiche & Dashboard" url: "https://grafana.example.com" - name: "Portainer" logo: "/assets/tools/portainer.png" subtitle: "Docker Manager" url: "https://portainer.example.com" ``` ## Aggiornamento ### Automatico Se usate [watchtower](../watchtower) il container si aggiorna automaticamente ### Manuale 1. `docker-compose pull` 2. `docker-compose up -d` 3. `docker image prune` ## Backup e ripristino ### Backup Usate [borg](../borg_backup) per fare i backup giornalieri dell'intera cartella `homer` ### Ripristino Per una maggiore spiegazione sui passaggi da fare, controllate [qua](../borg_backup#user-content-controllare-la-cartella-dei-backup) 1. fermare il container `docker-compose down` 2. cancellare l'intera cartella `homer` 3. dal backup copiare la cartella `homer` 4. far ripartire il container `docker-compose up -d` ## Todo Implementare: - reverse proxy: **[caddy](https://caddyserver.com/)** o **[traefik](https://doc.traefik.io/traefik/)**