MasterpieceDockerCompose/homer/README.md

152 lines
4.2 KiB
Markdown
Raw Normal View History

2021-06-03 11:10:44 +02:00
# Homer
<div align="center">
<img src="https://camo.githubusercontent.com/a6fa77187477b033cecca67ab4b2477009051578322e9df8df6aa5c5982a3a5c/68747470733a2f2f692e696d6775722e636f6d2f6872676774635a2e706e67" />
</div>
## 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...
2021-06-03 11:10:44 +02:00
## 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
2021-06-03 11:10:44 +02:00
* `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
### network
```bash
docker network create custom-bridge
```
oppure
```bash
podman network create custom-bridge
```
2021-06-03 11:10:44 +02:00
### docker-compose
`docker-compose.yml`
```yml
version: "3.5"
services:
homer:
container_name: homer
image: b4bz/homer
security_opt:
- no-new-privileges:true
2021-06-03 11:10:44 +02:00
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: '<p>un piè di pagina meno brutto</p>'
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"
2021-06-03 11:10:44 +02:00
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/)**