This commit is contained in:
andrea 2024-10-28 08:11:40 +01:00
commit 26ac7da378
13 changed files with 753 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -0,0 +1,10 @@
{
"type": "excalidraw",
"version": 2,
"source": "https://logseq.com",
"elements": [],
"appState": {
"viewBackgroundColor": "#FFF",
"gridSize": null
}
}

View file

@ -0,0 +1,10 @@
{
"type": "excalidraw",
"version": 2,
"source": "https://logseq.com",
"elements": [],
"appState": {
"viewBackgroundColor": "#FFF",
"gridSize": null
}
}

View file

@ -0,0 +1,599 @@
{
"type": "excalidraw",
"version": 2,
"source": "file://",
"elements": [
{
"id": "lvARJB4q2mylMGTGdcS9R",
"type": "freedraw",
"x": 146,
"y": 187,
"width": 296,
"height": 162,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 438944882,
"version": 139,
"versionNonce": 1952817134,
"isDeleted": false,
"boundElements": null,
"updated": 1729768588393,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-1,
3
],
[
-2,
5
],
[
-3,
8
],
[
-4,
14
],
[
-4,
20
],
[
-2,
30
],
[
3,
43
],
[
14,
58
],
[
22,
66
],
[
33,
72
],
[
45,
76
],
[
57,
78
],
[
72,
77
],
[
87,
74
],
[
97,
69
],
[
104,
65
],
[
110,
61
],
[
114,
55
],
[
116,
52
],
[
116,
51
],
[
116,
48
],
[
116,
46
],
[
116,
45
],
[
115,
43
],
[
114,
41
],
[
111,
40
],
[
107,
39
],
[
101,
39
],
[
95,
40
],
[
90,
42
],
[
83,
46
],
[
79,
49
],
[
76,
53
],
[
73,
58
],
[
71,
64
],
[
70,
72
],
[
71,
80
],
[
75,
90
],
[
79,
97
],
[
82,
101
],
[
92,
110
],
[
98,
114
],
[
104,
116
],
[
112,
117
],
[
121,
117
],
[
130,
115
],
[
138,
111
],
[
146,
106
],
[
152,
99
],
[
155,
93
],
[
156,
87
],
[
156,
80
],
[
155,
78
],
[
155,
77
],
[
153,
75
],
[
151,
74
],
[
149,
74
],
[
147,
74
],
[
145,
74
],
[
141,
78
],
[
138,
85
],
[
138,
93
],
[
138,
101
],
[
140,
116
],
[
142,
121
],
[
143,
125
],
[
146,
128
],
[
150,
132
],
[
159,
135
],
[
169,
139
],
[
180,
142
],
[
188,
143
],
[
197,
144
],
[
203,
143
],
[
210,
140
],
[
213,
137
],
[
215,
132
],
[
217,
127
],
[
217,
120
],
[
216,
115
],
[
214,
110
],
[
213,
107
],
[
212,
106
],
[
210,
104
],
[
209,
103
],
[
206,
103
],
[
200,
104
],
[
196,
107
],
[
193,
110
],
[
192,
112
],
[
189,
118
],
[
188,
121
],
[
188,
125
],
[
188,
128
],
[
189,
132
],
[
192,
137
],
[
198,
144
],
[
205,
149
],
[
212,
153
],
[
221,
158
],
[
227,
161
],
[
231,
162
],
[
235,
162
],
[
239,
162
],
[
242,
159
],
[
247,
155
],
[
252,
148
],
[
255,
138
],
[
258,
124
],
[
258,
117
],
[
258,
111
],
[
257,
107
],
[
255,
104
],
[
252,
102
],
[
249,
100
],
[
245,
99
],
[
242,
99
],
[
239,
100
],
[
236,
101
],
[
234,
104
],
[
234,
107
],
[
234,
112
],
[
236,
115
],
[
241,
119
],
[
247,
121
],
[
253,
123
],
[
262,
124
],
[
265,
124
],
[
271,
123
],
[
275,
121
],
[
282,
116
],
[
286,
114
],
[
288,
111
],
[
290,
109
],
[
291,
108
],
[
292,
107
],
[
292,
107
]
],
"pressures": [],
"simulatePressure": true,
"lastCommittedPoint": [
292,
107
]
}
],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#FFF"
},
"files": {}
}

43
journals/2024_10_22.md Normal file
View file

@ -0,0 +1,43 @@
- Tutorial su #quadlets
- https://linuxconfig.org/how-to-run-podman-containers-under-systemd-with-quadlet
- Passi base per utilizzare #quadlets di #podman con #systemd
- Creare la cartella
- ```bash
mkdir -p ~/.config/containers/systemd
```
- Creare un file di configurazione `proxy.network`per una rete
- ```toml
[Unit]
Description=Proxy
```
- Creare un file di configurazione per un container #traefik `traefik.container`
- ```toml
[Unit]
Description=Traefik container
[Container]
Image=traefik:latest
Network=proxy.network
PublishPort=80:80
PublishPort=443:443
Volume=%h/srv/volumes/traefik/traefik.yml:/traefik.yml
Volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock
[Install]
WantedBy=multi-user.target
```
- Generare i servizi #systemd
- ```bash
systemctl --user daemon-reload
```
- Verificare che i servizi siano stati generati
- ```bash
systemctl --user cat proxy-network.service
systemctl --user cat traefik.service
```
- Avviare i servizi #systemd
- ```bash
systemctl --user start proxy-network.service
systemctl --user start traefik.service
```
-

2
journals/2024_10_24.md Normal file
View file

@ -0,0 +1,2 @@
- Software per la somministrazione di test
- https://stack-assessment.org/

66
pages/Linux Day 2024.md Normal file
View file

@ -0,0 +1,66 @@
## #selfhosting : la via per l'indipendenza digitale
- ### Chi sono
- Andrea Fazzi
- Docente di Matematica e Fisica
- Programmatore full-stack
- Utente GNU/Linux da circa 30 anni :)
- ### Il problema
- Vorrei avere uno spazio di archiviazione remoto per ma...
- non voglio utilizzare [Amazon S3](https://aws.amazon.com/it/s3/) perché non **voglio sorprese sulla fattura**
- le foto digitali dei miei figli devono rimanere nell'**armadio della loro cameretta**
- Vorrei provare #grocy, un ERP per gestire la mia dispensa ma...
- non voglio che le informazioni sulle mie abitudini alimentari siano memorizzate su uno storage **che non controllo**
- affitto un piccolo #vps spendendo ~5 € al mese, ha poca RAM e non ho intenzione di passare ad un **piano tariffario superiore** per provare un software che forse non continuerò ad usare
- Vorrei poter scansionare dei documenti tramite applicazione mobile e archiviarli su uno spazio condiviso però...
- le diagnosi cliniche della mia famiglia **devono rimanere tra le mura domestiche**
- Vorrei un calendario condiviso, compatibile con `caldav` ma...
- non vorrei che le IA di #Google o qualche dipendente affetto da manie di grandezze (`god mode`) sappiano quand'è la mia prossima pulizia dentale
- Vorrei che i miei contatti venissero sincronizzati con il mio smartphone tramite `carddav` ma non vorrei che #Google venga a conoscere
- la data di nascita di mia zia
- il numero di cellulare di mia moglie
- Vorrei un server #git su cui mettere in revisione i miei progetti ma non voglio
- pagare #Github per uno o più repository privati
- dare il mio codice in pasto alle IA
- Vorrei gestire un **mio nodo VPN** che a monte funga anche da *ad-blocker*.
- Vorrei un DNS locale che risolva i nomi delle macchine all'interno della VPN
- Vorrei che alcuni servizi fossero raggiungibili da rete pubblica e altri fossero confinati all'interno di una #vpn
- In definitiva
- I miei dati sono miei!
- Il cloud è il computer di qualcun altro (molti altri)
- Vorrei una possibilità di storage (quasi) senza limiti a costi accessibili
- Oggi tutto si affitta e nulla si possiede!
- ### La soluzione
- Un #vps da quattro soldi (5 €) su #hetzner
- Un #thinkcentre nell'armadio dei bimbi
- Un tunnel #vpn
- Due reverse-proxy #traefik che si parlano da un capo all'altro
- Una manciata di servizi
- Uno storage remoto con calendario e contatti #nextcloud
- Un servizio per l'achiviazione di documenti #paperless
- Un server #git con interfaccia web #gogs
- Un servizio per gestire la dispensa #grocy
- Una #vpn integrata con #pihole per l'*ad-blocking*
- ### L'infrastruttura
- #### Hardware
- Una linea xDSL a 100/50 Mbit/s
- Un #vps #hetzner
- ![image.png](../assets/image_1729780747017_0.png)
- Un #thinkcentre di qualche anno fa (~100 € sul mercato dell'usato)
- ![image.png](../assets/image_1729780942325_0.png)
- Due harddisk esterni Western Digital Elements a 5 TB ciascuno (!!!)
- ![image.png](../assets/image_1729782020246_0.png)
- #### Software
- #ubuntu server 24.04
- #podman
- #restic + #cron per i #backup
- #### Pagina wiki
- https://hedgedoc.andreafazzi.eu/s/HYQca5cyY#
- ### Sviluppi futuri
- Migrare da #docker `compose` ai #quadlets
- Migrare da #ubuntu a una distro #redhat compatibile tipo [Rocky Linux](https://rockylinux.org/it) per via del supporto "nativo" di #podman
- Disaccoppiare i servizi attualmente riuniti in `wirehole` (#wireguard e #pihole )
- Migrare a #kubernetes...?
- ### Grazie!
- posta@andreafazzi.eu
-
-

View file

@ -0,0 +1,9 @@
excalidraw-plugin:: true
- #+BEGIN_IMPORTANT
This file is used to store excalidraw information, Please do not manually edit this file.
#+END_IMPORTANT
- {{renderer excalidraw-menu, excalidraw-2024-10-24-13-15-45}}
- ```json
{"elements":[{"id":"-jCE-1F6f9qP_9znmynzd","type":"freedraw","x":879,"y":213,"width":107,"height":150,"angle":0,"strokeColor":"#1e1e1e","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":2,"strokeStyle":"solid","roughness":1,"opacity":100,"groupIds":[],"frameId":null,"roundness":null,"seed":1260146870,"version":38,"versionNonce":363753642,"isDeleted":false,"boundElements":null,"updated":1729768554121,"link":null,"locked":false,"points":[[0,0],[-1,2],[-5,7],[-13,18],[-18,32],[-23,50],[-24,67],[-23,80],[-20,92],[-17,101],[-12,111],[-5,120],[4,129],[14,138],[24,144],[32,148],[39,150],[53,150],[62,147],[71,142],[77,136],[81,128],[83,121],[83,118],[83,114],[76,107],[66,104],[58,103],[52,104],[47,108],[43,112],[39,120],[38,121],[38,122],[37,122],[37,123],[37,123]],"pressures":[],"simulatePressure":true,"lastCommittedPoint":[37,123]}],"files":{},"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff","zoom":{"value":1},"offsetTop":20,"offsetLeft":0,"scrollX":0,"scrollY":0,"viewModeEnabled":false,"zenModeEnabled":false}}
```

View file

@ -0,0 +1,8 @@
excalidraw-plugin-library:: true
- #+BEGIN_IMPORTANT
This file is used to store excalidraw information, Please do not manually edit this file.
#+END_IMPORTANT
- ```json
[]
```

3
pages/paperless.md Normal file
View file

@ -0,0 +1,3 @@
- E' un software per l'achiviazione e la gestione di documenti
- https://docs.paperless-ngx.com/
- Fa parte del mio #homelab

3
pages/quadlets.md Normal file
View file

@ -0,0 +1,3 @@
- Si tratta di file di configurazione che permettono di gestire container nel contesto di #systemd
- Per i #quadlets si utilizzi l'API di #systemd
- Di fatto sostituiscono i file `docker-compose.yml` #docker