merge
This commit is contained in:
commit
53dad3f872
72 changed files with 1607 additions and 104 deletions
BIN
assets/image_1728737830339_0.png
Normal file
BIN
assets/image_1728737830339_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
BIN
assets/image_1729780747017_0.png
Normal file
BIN
assets/image_1729780747017_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
BIN
assets/image_1729780942325_0.png
Normal file
BIN
assets/image_1729780942325_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
BIN
assets/image_1729782020246_0.png
Normal file
BIN
assets/image_1729782020246_0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
10
draws/2024-10-24-13-13-29.excalidraw
Normal file
10
draws/2024-10-24-13-13-29.excalidraw
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://logseq.com",
|
||||
"elements": [],
|
||||
"appState": {
|
||||
"viewBackgroundColor": "#FFF",
|
||||
"gridSize": null
|
||||
}
|
||||
}
|
10
draws/2024-10-24-13-13-31.excalidraw
Normal file
10
draws/2024-10-24-13-13-31.excalidraw
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://logseq.com",
|
||||
"elements": [],
|
||||
"appState": {
|
||||
"viewBackgroundColor": "#FFF",
|
||||
"gridSize": null
|
||||
}
|
||||
}
|
599
draws/2024-10-24-13-16-13.excalidraw
Normal file
599
draws/2024-10-24-13-16-13.excalidraw
Normal 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": {}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
- Per inviare una richiesta http da dentro un container verso il reverse proxy ospitato all'interno dello stesso host è a volte necessario impostare una regola di firewall per consentire il traffico dalla subnet interna di [[Docker]]. #linuxcommandline
|
||||
- Per inviare una richiesta http da dentro un container verso il reverse proxy ospitato all'interno dello stesso host è a volte necessario impostare una regola di firewall per consentire il traffico dalla subnet interna di [[docker]]. #linuxcommandline
|
||||
- ```bash
|
||||
sudo ufw allow from 192.168.128.0/24
|
||||
```
|
|
@ -4,7 +4,7 @@
|
|||
- https://news.ycombinator.com/item?id=29082526
|
||||
- Articolo interessante sui flow di #kratos
|
||||
- https://dev.to/peteole/how-we-built-a-student-project-platform-using-graphql-react-golang-ory-kratos-and-kubernetes-part-3-authentication-2603
|
||||
- Dockerfile di [writefreely](https://github.com/writefreely) che costruisce l'immagine #Docker in due step (primo step FROM golang, secondo step FROM alpine). In questo modo l'immagine finale è molto piccola.
|
||||
- Dockerfile di [writefreely](https://github.com/writefreely) che costruisce l'immagine #docker in due step (primo step FROM golang, secondo step FROM alpine). In questo modo l'immagine finale è molto piccola.
|
||||
- ```Dockerfile
|
||||
# Build image
|
||||
FROM golang:1.15-alpine as build
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- # Biografia #toot #fediverse #mastodon
|
||||
# Biografia #toot #fediverse #mastodon
|
||||
- Programmatore full-stack e docente di Matematica e Fisica nella scuola pubblica italiana. In fissa, tra le altre cose, con il #retrogaming, l'#AI e il #gamedev. Quando ho scritto il mio primo videogioco avevo cinque anni e pigiavo i tasti di una tastiera gommosa. Ho adottato #golang quando era ancora nella culla sviluppandoci il primo emulatore di #zxspectrum concorrente. Quando non sono impegnato a smontare giocattoli per vedere come sono fatti dentro oppure a costruirmene di nuovi giusto per il gusto di, mi occupo di sviluppare piattaforme web per le istituzioni scolastiche italiane. Sono in un percorso esistenziale che mi porterà presto alla totale #indipendenzadigitale dato che ho deciso di andare di #selfhosting infrattando un rack fatto in casa nell'armadio della cameretta dei miei bimbi. Insomma il mio piccolo #homelab alla faccia del monopolio dei #GAFAM dal quale vorrei rendere indipendenti chi è disposto ad accettare che nulla di ciò che conta è facile da ottenere senza sforzo. Allo stesso modo cerco di sfuggire in tutti i modi al purgatorio dei web framework #javascript.
|
||||
- Full-stack dev and high school Mathematics and Physics teacher in an italian public school. I'm obsessed, among other things, with #retrogaming, #AI and #gamedev. When I wrote my first computer game I was a five years old pressing a rubbish keyboard. I adopted #golang in its early stage developing the first concurrent #zxspectrum emulator. When I'm not busy with #hacking new toys just for fun I'm a web developer for italian school institutions. I'm on an existential path that will bring me soon to total #digitalindependence given that I'm #selfhosting my services placing an homemade rack into my children room wardrobe: my little cute #homelab in the face of #GAFAM oligopoly from which I'd like to make independent those who accept that nothing valuable can be obtained effortless. Moreover, I'm trying to escape from the #Javascript web framework purgatory.
|
||||
-
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- **07:50** [[quick capture]]: CSS Tip: Style your Radio Buttons and Checkboxes for Printing - DEV Community 👩💻👨💻 [CSS Tip: Style your Radio Buttons and Checkboxes for Printing - DEV Community 👩💻👨💻](https://alvaromontoro.com/blog/68024/css-tip-style-checkboxes-radio-buttons-for-printing) #css
|
||||
- **11:47** [[quick capture]]: Docker networking: Network Namespaces, Docker and DNS - DEV Community 👩💻👨💻 [Docker networking: Network Namespaces, Docker and DNS - DEV Community 👩💻👨💻](https://dev.to/pemcconnell/docker-networking-network-namespaces-docker-and-dns-19f1) #Docker
|
||||
- **11:47** [[quick capture]]: Docker networking: Network Namespaces, Docker and DNS - DEV Community 👩💻👨💻 [Docker networking: Network Namespaces, Docker and DNS - DEV Community 👩💻👨💻](https://dev.to/pemcconnell/docker-networking-network-namespaces-docker-and-dns-19f1) #docker
|
||||
-
|
||||
- @kenobit@livellosegreto
|
||||
- Aggiungi che non possediamo alcun contenuto, affittiamo soltanto, destinati a rimanere eterni noleggiatori in una effimera videoteca. E se il servizio decide di rimuovere il nostro film preferito, lo abbiamo perso, anche se lo avevamo pagato. Personalmente acquisto i DVD/BR che mi interessano, li archivio e li fruisco in streaming mediante un istanza self-hosted di Jellyfin.
|
|
@ -3,7 +3,7 @@
|
|||
- A lightweight blog written in #golang because I'm proficient with that language
|
||||
- A quick deploying procedure because I want to modify pages templates in local and push them to the server #entr
|
||||
- A revision system based on #git
|
||||
- A self-hostable solution based on #Docker containers
|
||||
- A self-hostable solution based on #docker containers
|
||||
- Put my instance in the #fediverse
|
||||
-
|
||||
- ### Technologies involved
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- [Documentazione](https://writefreely.org/docs/latest/writer/css) per la personalizzazione del #css di #WriteFreely
|
||||
- Mail del dott. Fabio Traunero [fabio.traunero@asugi.sanita.fvg.it](mailto: fabio.traunero@asugi.sanita.fvg.it)
|
||||
- **07:46** [[quick capture]]: From Commit to Registry: A Guide to Automate Docker Image Builds with Github Actions - DEV Community 👩💻👨💻 [From Commit to Registry: A Guide to Automate Docker Image Builds with Github Actions - DEV Community 👩💻👨💻](https://dev.to/dhanushreddy29/from-commit-to-registry-a-guide-to-automate-docker-image-builds-with-github-actions-4c6i) #Docker #Github #CDCI
|
||||
- **07:46** [[quick capture]]: From Commit to Registry: A Guide to Automate Docker Image Builds with Github Actions - DEV Community 👩💻👨💻 [From Commit to Registry: A Guide to Automate Docker Image Builds with Github Actions - DEV Community 👩💻👨💻](https://dev.to/dhanushreddy29/from-commit-to-registry-a-guide-to-automate-docker-image-builds-with-github-actions-4c6i) #docker #Github #CDCI
|
||||
- **18:51** [[quick capture]]: I’m now a full-time professional open source maintainer [I’m now a full-time professional open source maintainer](https://news.ycombinator.com/item?id=34633713) #freelance
|
||||
-
|
||||
- **20:08** [[quick capture]]: Linux from A to Z (Part 3) - DEV Community 👩💻👨💻 [Linux from A to Z (Part 3) - DEV Community 👩💻👨💻](https://dev.to/k1lgor/linux-from-a-to-z-part-3-3dob) #linuxcommandline #[[Amministrazione Sistemi Linux]]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- **11:16** [[quick capture]]: Path to a free, self-taught education in Computer Science [Path to a free, self-taught education in Computer Science](https://news.ycombinator.com/item?id=34673581) #giulia
|
||||
- **20:08** [[quick capture]]: How much can you get out of a $4 VPS? [How much can you get out of a $4 VPS?](https://news.ycombinator.com/item?id=34676186) #vps #infrastructure
|
||||
Per copiare negli appunti (clipboard )da terminale attraverso una pipe utilizzare il comando `xclip` #linuxcommandline
|
||||
- Per copiare negli appunti (clipboard) da terminale attraverso una pipe utilizzare il comando `xclip` #linuxcommandline
|
||||
- ```bash
|
||||
cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
|
||||
```
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
- ```bash
|
||||
kill `pidof mosh-server`
|
||||
```
|
||||
- Per mostrare la politica di restart in #Docker
|
||||
- Per mostrare la politica di restart in #docker
|
||||
- ```bash
|
||||
docker ps | grep -v CON | awk '{print $1}' | while read line; do docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" $line | xargs echo $line ;done
|
||||
```
|
|
@ -4,7 +4,7 @@
|
|||
sudo dpkg -i imager_latest_amd64.deb
|
||||
sudo rpi-imager
|
||||
```
|
||||
- Eseguire il build di un'immagine #Docker ed effettuare il `push` sul registry locale
|
||||
- Eseguire il build di un'immagine #docker ed effettuare il `push` sul registry locale
|
||||
- ```bash
|
||||
docker build -t andrea/oef_prod .
|
||||
docker tag andrea/oef_prod localhost:5000/andrea/oef_prod
|
||||
|
@ -23,5 +23,4 @@
|
|||
#retrogaming
|
||||
-
|
||||
- **14:05** [[quick capture]]: Configuring GlusterFS in Linux Server - DEV Community 👩💻👨💻 [Configuring GlusterFS in Linux Server - DEV Community 👩💻👨💻](https://dev.to/waji97/configuring-gluster-in-linux-server-2n6a) #sysadmim
|
||||
- **14:16** [[quick capture]]: Optimizing Bitbucket Pipelines with Custom Docker Images - DEV Community 👩💻👨💻 [Optimizing Bitbucket Pipelines with Custom Docker Images - DEV Community 👩💻👨💻](https://medium.com/@ibrarturi/optimizing-bitbucket-pipelines-with-custom-docker-images-ecbae7a84a26) #Docker
|
||||
|
||||
- **14:16** [[quick capture]]: Optimizing Bitbucket Pipelines with Custom Docker Images - DEV Community 👩💻👨💻 [Optimizing Bitbucket Pipelines with Custom Docker Images - DEV Community 👩💻👨💻](https://medium.com/@ibrarturi/optimizing-bitbucket-pipelines-with-custom-docker-images-ecbae7a84a26) #docker
|
|
@ -2,5 +2,5 @@
|
|||
- ```bash
|
||||
ip --brief address | grep -o eth0 # => "eth0"
|
||||
```
|
||||
- **10:13** [[quick capture]]: ![IMG_20230223_101312](../assets/IMG_20230223_101312.jpg) Flusso di #deploy per sviluppo su #homelab #git #webhook #selfhosting #Docker
|
||||
- **10:13** [[quick capture]]: ![IMG_20230223_101312](../assets/IMG_20230223_101312.jpg) Flusso di #deploy per sviluppo su #homelab #git #webhook #selfhosting #docker
|
||||
- **10:41** [[quick capture]]: Mermaid Cheat Sheet [Mermaid Cheat Sheet](https://news.ycombinator.com/item?id=34906378) #pandoc #documentation
|
|
@ -8,7 +8,7 @@
|
|||
[ "sha1=$signature" != "$x_hub_signature" ] && die "bad hook signature: expecting $x_hub_signature and got $signature"
|
||||
```
|
||||
- Codice [sorgente](https://github.com/gogs/gogs/blob/c53a1998c589a544b25d53f6e6fdf0f24a4df25b/internal/db/webhook.go#L628) di #Gogs che gestisce i #webhook
|
||||
- Per effettuare il build di un'immagine #Docker con `docker-compose` quando si verificano problemi di rete (CDN di Alpine Linux) si può
|
||||
- Per effettuare il build di un'immagine #docker con `docker-compose` quando si verificano problemi di rete (CDN di Alpine Linux) si può
|
||||
- ```docker-compose
|
||||
version: "3.5"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- [Articolo](https://www.experts-exchange.com/articles/33412/Setup-a-Docker-Wordpress-LAMP-Stack.html) su come creare un'immagine #Docker utile per creare un container #LAMP #[[Migrazione sito LES]]
|
||||
- Repository #Github per la costruzione dell'immagine #Docker di #wordpress
|
||||
- [Articolo](https://www.experts-exchange.com/articles/33412/Setup-a-Docker-Wordpress-LAMP-Stack.html) su come creare un'immagine #docker utile per creare un container #LAMP #[[Migrazione sito LES]]
|
||||
- Repository #Github per la costruzione dell'immagine #docker di #wordpress
|
||||
- [Archivio](https://wordpress.org/download/releases/) con le release di #wordpress #[[Migrazione sito LES]]
|
||||
- Per creare e rimuovere con una sola linea di comando n file in #linuxcommandline #[[Amministrazione Sistemi Linux]]
|
||||
- ```bash
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
- ```php
|
||||
$table_prefix = 'asds4w65t63x_';
|
||||
```
|
||||
- `Dockerfile` per costruire un'immagine #Docker per eseguire un container #LAMP utile, ad esempio, per ricostruire un'ambiente #wordpress #[[Migrazione sito LES]]
|
||||
- `Dockerfile` per costruire un'immagine #docker per eseguire un container #LAMP utile, ad esempio, per ricostruire un'ambiente #wordpress #[[Migrazione sito LES]]
|
||||
- ```dockerfile
|
||||
FROM nimmis/apache-php5
|
||||
RUN a2enmod rewrite
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
curl -s https://api.github.com/repos/jgm/pandoc/releases/latest | jq '.assets[] | select(.name|match(".*x64.*")) | .browser_download_url'
|
||||
```
|
||||
- [Pagina](https://gist.github.com/steinwaywhw/a4cd19cda655b8249d908261a62687f8) di riferimento
|
||||
- **16:15** [[quick capture]]: Docker is deleting Open Source organisations - what you need to know [Docker is deleting Open Source organisations - what you need to know](https://news.ycombinator.com/item?id=35166317) #Docker #podman #CEF
|
||||
- **16:15** [[quick capture]]: Docker is deleting Open Source organisations - what you need to know [Docker is deleting Open Source organisations - what you need to know](https://news.ycombinator.com/item?id=35166317) #docker #podman #CEF
|
||||
- Matematica: BELLIA (8), KARIS (8), STALLONE (3), TATALOVIC (8), CRASNICH (8)
|
||||
- Fisica: DI CANDIA (3), KUHAR (8), PADOVAN (3), DI VITTO (7)
|
||||
- Matematica: COSLOVICH (8), SINDICI (9), RAO (9), GRISELLI (7,5), D'ARIENZO (6,5), WEINBERG (8-)
|
||||
- Fisica: LOSER (5), ZOTTI (8), BERTOLINI (7,5)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- **06:08** [[quick capture]]: https://httptoolkit.com/blog/docker-image-registry-facade/ #Docker
|
||||
- **06:08** [[quick capture]]: https://httptoolkit.com/blog/docker-image-registry-facade/ #docker
|
||||
- **12:09** [[quick capture]]: concurrency - Goroutines with ListenAndServe increases performance? - Stack Overflow [concurrency - Goroutines with ListenAndServe increases performance? - Stack Overflow](https://stackoverflow.com/questions/30487703/goroutines-with-listenandserve-increases-performance) #golang
|
||||
- **12:12** [[quick capture]]: Running multiple HTTP servers in Go | by Uday Hiwarale | RunGo | Medium [Running multiple HTTP servers in Go | by Uday Hiwarale | RunGo | Medium](https://medium.com/rungo/running-multiple-http-servers-in-go-d15300f4e59f) #golang
|
||||
- **15:18** [[quick capture]]: Introducing react.dev [Introducing react.dev](https://news.ycombinator.com/item?id=35186812) #react #Javascript
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- Per resettare una password di #nextcloud tramite #linuxcommandline se il servizio è all'interno di un container #Docker
|
||||
- Per resettare una password di #nextcloud tramite #linuxcommandline se il servizio è all'interno di un container #docker
|
||||
- ```bash
|
||||
docker exec -it -u www-data nextcloud_app_1 ./occ user:resetpassword admin
|
||||
```
|
||||
|
|
|
@ -19,3 +19,15 @@
|
|||
- ```sql
|
||||
DELETE FROM activities
|
||||
```
|
||||
- Preparazione dei file CSV da EDT
|
||||
- Occorre esportare le attività
|
||||
- Le colonne necessarie sono
|
||||
- ```
|
||||
NUMERO,DURATA,FREQUENZA,MAT_COD,MAT_NOME,DOC_COGN,DOC_NOME,CLASSE,AULA,PERIODICITÀ,SPECIFICA,CO-DOC.,COEFF.,GIORNO,O.INIZIO,SEDE,ALUNNI
|
||||
```
|
||||
- Importazione degli studenti
|
||||
- Occorre cancellare i record della cartella `students`
|
||||
- ```sql
|
||||
DELTE FROM students;
|
||||
```
|
||||
- Occorre preparare un file csv contenente
|
|
@ -2,7 +2,7 @@
|
|||
- **20:54** [[quick capture]]: [Show HN: E-Ink Day Schedule](https://news.ycombinator.com/item?id=37642671) #eink #thinkering
|
||||
- Player multimediale con possibilità di recepire uno stream da #jellyfin mediante un [proxy](https://wiki.archlinux.org/title/Jellyfin#Clients) #htpc
|
||||
- https://github.com/mpv-player/mpv
|
||||
- Per svuotare il cestino di un istanza #nextcloud all'interno di un container #Docker da #linuxcommandline
|
||||
- Per svuotare il cestino di un istanza #nextcloud all'interno di un container #docker da #linuxcommandline
|
||||
- ```bash
|
||||
docker exec -it -u www-data nextcloud_app_1 ./occ trashbin:cleanup --all-users
|
||||
```
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- Per effettuare il debug di una mancata partenza del demone #Docker tramite #systemd
|
||||
- Per effettuare il debug di una mancata partenza del demone #docker tramite #systemd
|
||||
- ```bash
|
||||
sudo journalctl -u docker -n 100 --no-pager
|
||||
```
|
|
@ -1,3 +1,3 @@
|
|||
- Per installare #Docker su una distro Kali Linux con package manger `apt` occorre modificare il file `docker.list` inserendo come nome della release `bookworm` o comunque la release `Debian` da cui quella distribuzione di Kali deriva
|
||||
- Per installare #docker su una distro Kali Linux con package manger `apt` occorre modificare il file `docker.list` inserendo come nome della release `bookworm` o comunque la release `Debian` da cui quella distribuzione di Kali deriva
|
||||
- **07:46** [[quick capture]]: [Show HN: Sqinn-Go is a Golang library for accessing SQLite databases in pure Go](https://news.ycombinator.com/item?id=37769633) #sqlite #Golang #Probo
|
||||
- **18:52** [[quick capture]]: [Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search](https://news.ycombinator.com/item?id=37777347) #htpc #torrent
|
|
@ -8,7 +8,6 @@
|
|||
- Il parametro `id` identifica in maniera univoca il test da svolgere
|
||||
- Si potrebbe pensare di scrivere il db sqlite all'interno di un file locale e di trasferire tutto il file sul backend in modo da ricrearlo in remoto.
|
||||
- **10:36** [[quick capture]]: [FAQ - Docker Mailserver](https://docker-mailserver.github.io/docker-mailserver/latest/faq/) #docker #mailserver
|
||||
- **10:39** [[quick capture]]: [VPS Hosting » Server virtuali | Da 1 €/mese | IONOS](https://www.ionos.it/server/vps) #vpn #vps #selfhosting
|
||||
- **10:43** [[quick capture]]: [Configuring NGINX as a Mail Proxy Server | NGINX Documentation](https://docs.nginx.com/nginx/admin-guide/mail-proxy/mail-proxy/) #nginx #selfhosting
|
||||
- Conversazione con #GPT-4 su configurazione #openvpn #wireguard
|
||||
- guard e deve servire solo per raggiungere i servizi della mia infrastruttura homelab sulla rete 10.6.0.0/24 e il DNS server all'indirizzo 10.2.0.100. L'altra VPN è basata sul servizio ExpressVPN e funziona attraverso OpenVPN. Per quest'ultima possiedo il file di configurazione ovpn. La VPN basata su ExpressVPN mi serve per "uscire" su internet. Di conseguenza, l'IP pubblico associato alla mia macchina dev'essere quello fornito da Express VPN. Mostrami la configurazione necessaria e rilevante per configurare la mia distribuzione Arch Linux in modo da gestire contemporaneamente le due VPN.
|
||||
|
@ -99,7 +98,7 @@
|
|||
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
|
||||
link/none
|
||||
```
|
||||
- **10:36** [[quick capture]]: [FAQ - Docker Mailserver](https://docker-mailserver.github.io/docker-mailserver/latest/faq/) #docker #mailserver
|
||||
- **10:36*
|
||||
- **10:39** [[quick capture]]: [VPS Hosting » Server virtuali | Da 1 €/mese | IONOS](https://www.ionos.it/server/vps) #vpn #vps #selfhosting
|
||||
- **10:43** [[quick capture]]: [Configuring NGINX as a Mail Proxy Server | NGINX Documentation](https://docs.nginx.com/nginx/admin-guide/mail-proxy/mail-proxy/) #nginx #selfhosting
|
||||
- **13:56** [[quick capture]]: [FAQ - Docker Mailserver](https://docker-mailserver.github.io/docker-mailserver/latest/faq/)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- Per aggiungere un nuovo utente in #HedgeDoc utilizzando #Docker da #linuxcommandline
|
||||
- Per aggiungere un nuovo utente in #HedgeDoc utilizzando #docker da #linuxcommandline
|
||||
- ```bash
|
||||
docker exec -it -e NODE_ENV=production hedgedoc-app-1 bin/manage_users --add posta@andreafazzi.eu --pass Phae3kie
|
||||
```
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
- Servizi #homelab #mittelab
|
||||
- L'infrastruttura è basata su macchine virtuali su cui girano container #Docker
|
||||
- L'infrastruttura è basata su macchine virtuali su cui girano container #docker
|
||||
- Nodo compute
|
||||
- Nodo storage
|
||||
- [Go Pass](https://github.com/gopasspw/gopass) (come pass)
|
||||
|
|
|
@ -2,5 +2,4 @@
|
|||
- ```lisp
|
||||
(set-face-attribute 'default nil :height 100)
|
||||
```
|
||||
=======
|
||||
- **15:16** [[quick capture]]: [A Bunch of Programming Advice I'd Give to Myself 15 Years Ago](https://news.ycombinator.com/item?id=40829607) #programming
|
|
@ -1,3 +1,5 @@
|
|||
- Documentazione per l'installazione di #synapse, un'implementazione libera di #matrix
|
||||
- https://github.com/element-hq/synapse
|
||||
- **12:16** [[quick capture]]: [SSH forwarding with reverse proxy (Traefik) - Traefik / Traefik v3 (latest) - Traefik Labs Community Forum](https://community.traefik.io/t/ssh-forwarding-with-reverse-proxy-traefik/24246) #traefik #ssh #homelab
|
||||
- **13:35** [[quick capture]]: [Traefik Docker Documentation - Traefik](https://doc.traefik.io/traefik/providers/docker/)
|
||||
- **15:32** [[quick capture]]: [synapse/contrib/docker/docker-compose.yml at develop · matrix-org/synapse](https://github.com/matrix-org/synapse/blob/develop/contrib/docker/docker-compose.yml) #synapse #traefik
|
||||
|
|
1
journals/2024_10_02.md
Normal file
1
journals/2024_10_02.md
Normal file
|
@ -0,0 +1 @@
|
|||
- Tunneling #wireguard con #traefik
|
30
journals/2024_10_03.md
Normal file
30
journals/2024_10_03.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
- Colloquio con Apollonio
|
||||
- La metà degli intervenuti che rappresenti la metà
|
||||
- Fare l'assemblea prima che scada l'anno
|
||||
- Bilancio consuntivo
|
||||
- Chiedere all'amministratore revoca e nomna nuovo amministratore
|
||||
- Non abbiamo l'anagrafe del condominio
|
||||
- Nomina dell'amministratore
|
||||
- Chiedere un certificato di anagrafe
|
||||
- Nominare d'ufficio un nuovo amministratore tramite tribunale
|
||||
- Bilancio consuntivo
|
||||
- studio@aesse
|
||||
- g.apollonio@inwind.it
|
||||
- La delega dev'essere scritta , lei può avere la delega
|
||||
- Mi faccia vedere la delega
|
||||
- Vediamo quando scade il mandato
|
||||
- Pulizie
|
||||
- Colloquio con tirocinante #teaching
|
||||
- 24+24+12 in classe
|
||||
- 12 ore programmazione delle lezioni
|
||||
- 6 ore per inclusione
|
||||
- Progetto musica e fisica, musica e matematica
|
||||
- Esperienza a scuola solo alle medie
|
||||
- Occorre matematica e fisica
|
||||
- Martedì, mercoledì 8, 9 non può
|
||||
- 3403025458
|
||||
- s260605@ds.units.
|
||||
- Inviare l'orario
|
||||
- 10 ore a settimana
|
||||
- Inizio tirocinio 21.10
|
||||
- Inviare l'orario
|
|
@ -1,2 +1,21 @@
|
|||
- **15:55** [[quick capture]]: [i-am-shodan/USBArmyKnife: USB Army Knife – the ultimate close access tool for penetration testers and red teamers.](https://github.com/i-am-shodan/USBArmyKnife)
|
||||
- **20:07** [[quick capture]]: [nginx - Adding Traefik StripPrefix middleware to docker-compose labels results in 504 - Stack Overflow](https://stackoverflow.com/questions/58492175/adding-traefik-stripprefix-middleware-to-docker-compose-labels-results-in-504#71377580) #traefik #homelab
|
||||
- Autorizzazioni alle uscite 2 C LIN #scuola #teaching
|
||||
- Mancano Ceci e Lanzilotti
|
||||
- Patto di corresponsabilità
|
||||
- Karim
|
||||
- Bernardi
|
||||
- Ceci
|
||||
- Fabris
|
||||
- Grazio
|
||||
- Hong
|
||||
- Wang
|
||||
- Ma
|
||||
- Pavesi
|
||||
- Redic
|
||||
- Sbrizzai
|
||||
- Zavattin
|
||||
- Zhou1
|
||||
- Verri assenza del 01.10 è un ritardo. Lo studente entra alle 09.00.
|
||||
- Bernardi assenza del 04.10 è un ritardo. Lo studente entra alle 09.50.
|
||||
- Riunione con Oliva #meti
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
- **22:01** [[quick capture]]: [HealthyPi Move | Crowd Supply](https://www.crowdsupply.com/protocentral/healthypi-move)
|
||||
- Per troncare/rimuovere tutti i log da un sistema #docker #podman
|
||||
- ```bash
|
||||
truncate -s 0 /var/lib/docker/containers/**/*-json.log
|
||||
```
|
||||
|
|
9
journals/2024_10_06.md
Normal file
9
journals/2024_10_06.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
- Importazione #Karmen a. s. 2024/2025
|
||||
- ~~Inserire i nomi dei docenti "Senza nome"~~
|
||||
- Inserire coordinatori e verbalizzanti
|
||||
- ~~Inserire attività di sostegno~~
|
||||
- Inserire attività del musicale
|
||||
- Inserire operatori sostegno
|
||||
- Inserire attività di Scienze motorie "condivise"
|
||||
- Eliminare docenti non in servizio
|
||||
- ~~Esportare elenco degli studenti~~
|
4
journals/2024_10_07.md
Normal file
4
journals/2024_10_07.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
- Se si è attivata per sbaglio l'opzione `force_ssl` in una configurazione #LimeSurvey nel caso in cui l'host non supporti SSL, occorre operare direttamente sul database per disattivarla
|
||||
- ```mysql
|
||||
UPDATE settings_global SET stg_value='off' where stg_name='force_ssl';
|
||||
```
|
|
@ -1,2 +1,5 @@
|
|||
- **19:17** [[quick capture]]: [all-in-one/reverse-proxy.md at main · nextcloud/all-in-one](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
|
||||
- Tergeste amministrazione
|
||||
- Configurare #nextcloud dietro a #traefik
|
||||
- https://www.smarthomebeginner.com/traefik-docker-nextcloud/
|
||||
id:: 670547eb-adc4-41b7-9aeb-b16db4e06a93
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
- **14:44** [[quick capture]]: [The Static Site Paradox | Loris Cro's Blog](https://kristoff.it/blog/static-site-paradox/)
|
||||
- **15:28** [[quick capture]]: [PsyChip/machina: OpenCV+YOLO+LLAVA powered video surveillance system](https://github.com/PsyChip/machina)
|
||||
- Configurazione di #nginx per #nextcloud
|
||||
- https://docs.nextcloud.com/server/30/admin_manual/installation/nginx.html
|
||||
|
|
|
@ -1 +1,10 @@
|
|||
- **08:05** [[quick capture]]: [linux - How to switch to system wide dark theme in i3 or sway? - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/655790/how-to-switch-to-system-wide-dark-theme-in-i3-or-sway) #sway
|
||||
- Per eseguire un upgrade completo di una distribuzione #ubuntu server
|
||||
- ```bash
|
||||
sudo apt install ubuntu-release-upgrader-core
|
||||
sudo do-release-upgrade -d
|
||||
```
|
||||
- Abstract per intervento al #linux day di Ferrara il 26.10.2024
|
||||
- «The cloud is someone else's computer», si dice. Esiste una strada percorribile verso l'autosufficienza digitale? E' possibile riprendere possesso di una propria dimensione personale nella rete? E se sì, a che prezzo? Internet nasce come strumento libero per lo scambio di informazioni e la ricerca. Sussistono ancora i presupposti per uno spazio realmente democratico in essa? Si proverà a dare qualche risposta (parziale) a queste domande presentando una possibile infrastruttura per un #homelab.
|
||||
- Un'applicazione web per creare mascotte #golang #Probo
|
||||
- https://gopherize.me/
|
||||
|
|
3
journals/2024_10_12.md
Normal file
3
journals/2024_10_12.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
- Messaggio di cui tenere conto durante aggiornamento del ThinkCentre #homelab
|
||||
- ![image.png](../assets/image_1728737830339_0.png)
|
||||
-
|
|
@ -1,2 +1,3 @@
|
|||
- **20:11** [[quick capture]]: [Exploring Typst, a new typesetting system similar to LaTeX](https://news.ycombinator.com/item?id=41821361)
|
||||
-
|
||||
- Presentazione di se stessi per il #linux day del 26.10.2024 a Ferrara
|
||||
- Sono un docente di Matematica e Fisica nella scuola pubblica italiana e programmatore full-stack, fissato con il retrogaming e con il ritorno ad uno sviluppo web "senza fronzoli". Quando ho scritto la mia prima accozzaglia di istruzioni BASIC avevo sei anni e pigiavo la tastiera di gomma del giocattolo di Sir Clive Sinclair. Quando poso il gesso, mi occupo di sviluppare piattaforme web per le istituzioni scolastiche italiane. Infrattando un vecchio ThinkCentre nell'armadio della cameretta dei bimbi, ho iniziato il percorso esistenziale che mi porterà all'autosufficienza digitale, alla faccia degli oligopoli GAFAM dai quali vorrei rendere indipendenti tutti coloro i quali sono disposti ad accettare che nulla di ciò che conta è facile da ottenere.
|
||||
|
|
2
journals/2024_10_15.md
Normal file
2
journals/2024_10_15.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
-
|
||||
-
|
|
@ -1 +1,7 @@
|
|||
- Myanonamause.net
|
||||
- Sostituto di `waybar` per #sway
|
||||
- https://github.com/enkore/i3pystatus/
|
||||
- Per collegarsi ad un processo lanciato su #linuxcommandline e che sta impiegando molto tempo per terminare la sua esecuzione si può utilizzare il comando `strace` passando come argomento il PID del processo.
|
||||
- ```bash
|
||||
sudo strace -pPID
|
||||
```
|
||||
|
|
9
journals/2024_10_17.md
Normal file
9
journals/2024_10_17.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
- Uso del comando `podman unshare` per mappare i UID e GID all'interno di un container #podman
|
||||
id:: 6712155b-8c8b-4b6e-b956-efc3e8254474
|
||||
- https://www.redhat.com/en/blog/rootless-podman-makes-sense
|
||||
- Per ottenere l'ID di un gruppo in #linuxcommandline
|
||||
- ```bash
|
||||
getent group GROUPNAME
|
||||
```
|
||||
- Una discussione sui permessi delle cartelle da montare con #nextcloud
|
||||
- https://help.nextcloud.com/t/next-cloud-docker-cannot-create-or-write-into-the-data-directory-eurror/176432/
|
|
@ -1,2 +1,28 @@
|
|||
- **07:44** [[quick capture]]: [FAQ - HedgeDoc 2 Docs](https://docs.hedgedoc.dev/faq/) #mermaid
|
||||
- **07:46** [[quick capture]]: [podman-auto-update — Podman documentation](https://docs.podman.io/en/latest/markdown/podman-auto-update.1.html) #podman #homelab
|
||||
- Problema di autenticazione #HedgeDoc
|
||||
- https://community.hedgedoc.org/t/cant-login-by-email-with-using-a-reverse-proxy/1991/3
|
||||
- Fare auto-update di container #podman con #systemd
|
||||
- https://www.redhat.com/en/blog/podman-auto-updates-rollbacks
|
||||
- Articolo interessante su come configurare #traefik con #podman utilizzando #systemd
|
||||
- https://gerov.eu/posts/traefik-for-podman/
|
||||
- Studenti che non hanno consegnato il Patto Educativo di Corresponsabilità 2 C LIN #teaching
|
||||
- ABDELMAGYD
|
||||
- BERNARDI
|
||||
- FABRIS
|
||||
- HONG
|
||||
- WANG
|
||||
- REDIC
|
||||
- SBRIZZAI
|
||||
- Per configurare correttamente il container #wireguard con #podman occorre sistemare dei permessi sul `docker-compose.yml`
|
||||
- https://github.com/containers/podman/issues/8784#issuecomment-749167726
|
||||
- ```yaml
|
||||
wireguard:
|
||||
depends_on: [unbound, pihole]
|
||||
image: linuxserver/wireguard
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- NET_RAW # <-- podman needs that!
|
||||
- SYS_MODULE
|
||||
```
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
- **13:36** [[quick capture]]: [Using nginx as a reverse proxy - Support - HedgeDoc Community](https://community.hedgedoc.org/t/using-nginx-as-a-reverse-proxy/244)
|
||||
- **13:42** [[quick capture]]: [How to Self-Host a HedgeDoc Instance Using Docker: Installation, HTTPS, Backups, Updates, User Management - David Augustat](https://davidaugustat.com/web/hedgedoc-on-docker-compose)
|
||||
- https://www.eigenmagic.com/2021/09/21/connecting-nginx-reverse-stream-proxy-to-docker-with-traefik/ #nginx #traefik
|
||||
|
|
9
journals/2024_10_20.md
Normal file
9
journals/2024_10_20.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
- Considerazioni di Enzo sulla casa in montagna
|
||||
- Mancanza di manodopera
|
||||
- Gestione del riscaldamento
|
||||
- Impianti elettrici
|
||||
- Separazione delle linee
|
||||
- Salvavita
|
||||
- Impianto di riscaldamento
|
||||
- Minimo € 40000 per renderle vivibili
|
||||
- Tetto dev'essere perfetto
|
|
@ -1 +1,21 @@
|
|||
- **14:13** [[quick capture]]: [Replace Docker Compose with Quadlet for Servers](https://matduggan.com/replace-compose-with-quadlet/)
|
||||
- Rivedere n. 448 dopo equazioni #teaching
|
||||
- Utilizzo di #traefik con #podman e `quadlets`
|
||||
- https://github.com/eriksjolund/podman-traefik-socket-activation/blob/main/examples/example1/mytraefik.container
|
||||
- Blog post sui `quadlet`, una tecnologia di #podman per una migliore integrazione con #systemd
|
||||
- https://mo8it.com/blog/quadlet/
|
||||
- Aggiornare un'istanza #nextcloud da #linuxcommandline con #podman
|
||||
- ```bash
|
||||
podman exec -it -u www-data nextcloud-app-1 php occ maintenance:mode --off
|
||||
podman exec -it -u www-data nextcloud-app-1 php occ upgrade
|
||||
```
|
||||
- Riferimento
|
||||
- https://help.nextcloud.com/t/how-to-easily-fix-this-nextcloud-instance-is-currently-in-maintenance-mode/181001
|
||||
- Telefonata con agenzia Alpe Adria SAS
|
||||
- Telefono 0433 197 0127
|
||||
- Casa costruita negli anni '60
|
||||
- Non c'è impianto di riscaldamento (solo stufe)
|
||||
- Impianto elettrico risalente all'epoca di costruzione della casa
|
||||
- Condizioni del tetto buone (è stata fatta sempre la manutenzione)
|
||||
- Infissi risalenti agli anni '60 mai sostituiti
|
||||
- Non si effettuano visite di sabato ma il venerdì si può fare una visita anche in tardo pomeriggio (da quello che ho capito dalle stringate parole del tipo)
|
||||
|
|
|
@ -1,4 +1,45 @@
|
|||
- **13:59** [[quick capture]]: [Replace Docker Compose with Quadlet for Servers](https://matduggan.com/replace-compose-with-quadlet/)
|
||||
- **15:13** [[quick capture]]: [stormrider](https://billwear.github.io/art-of-attention.html) #mindfulness
|
||||
-
|
||||
- Shampoo con PH acido
|
||||
- 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
2
journals/2024_10_24.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
- Software per la somministrazione di test
|
||||
- https://stack-assessment.org/
|
3
journals/2024_10_25.md
Normal file
3
journals/2024_10_25.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
- Verifiche orali
|
||||
- Ussai
|
||||
- 9
|
|
@ -2,3 +2,9 @@
|
|||
- **17:31** [[quick capture]]: [Forgejo Runner installation guide | Forgejo – Beyond coding. We forge.](https://forgejo.org/docs/latest/admin/runner-installation/)
|
||||
- **17:56** [[quick capture]]: [Routing SSH traffic with Traefik v2 - Traefik / Traefik v2 - Traefik Labs Community Forum](https://community.traefik.io/t/routing-ssh-traffic-with-traefik-v2/717)
|
||||
- **20:25** [[quick capture]]: https://news.ycombinator.com/item?id=41971118
|
||||
- Attenzione, se si utilizza una versione di #podman inferiore alla 5 e se il container va configurato utilizzando la chiave `Entrypoint`, occorre sostituire con `PodmanArgs` nei file di configurazione dei #quadlets
|
||||
- ```toml
|
||||
[Container]
|
||||
# Entrypoint=/cron.sh │3f61e6fe providerName=docker serviceName=paperless
|
||||
PodmanArgs=--entrypoint=/cron.sh
|
||||
```
|
||||
|
|
18
journals/2024_10_30.md
Normal file
18
journals/2024_10_30.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
- Token #Gogs per #forgejo
|
||||
- 68623ddb94edf3d93b31ac280acc03762e5bd631
|
||||
- Presenze corso "Il meraviglioso mondo delle TIC"
|
||||
- Rosalba LUSSI
|
||||
- Paola APICELLA
|
||||
- Luca MARTORELLI
|
||||
- Barbara FERRO
|
||||
- Manuela BANDEL
|
||||
- Raffaele ZAGARIA
|
||||
- Manuela ABRAM
|
||||
- Carmela MAIOLO
|
||||
- Marisa INTEMPERANTE
|
||||
- Chiara GALATI RANDO
|
||||
- Stefano FAZIO
|
||||
- Giada DI CHIARA
|
||||
- Antonino DE LUCA
|
||||
- Carmela TESTA
|
||||
- Michele MARASSI
|
|
@ -762,7 +762,7 @@
|
|||
sudo apt-get -y install podman
|
||||
```
|
||||
- Consultare la [documentazione](https://podman.io/getting-started/) per familiarizzare con i comandi principali
|
||||
- Creare un `alias` per #Docker
|
||||
- Creare un `alias` per #docker
|
||||
- ```bash
|
||||
alias docker='podman'
|
||||
```
|
||||
|
|
53
pages/Il meraviglioso mondo delle TIC.md
Normal file
53
pages/Il meraviglioso mondo delle TIC.md
Normal file
|
@ -0,0 +1,53 @@
|
|||
## Introduzione al corso
|
||||
- Prerequisiti
|
||||
- Modalità di fruizione
|
||||
- Strumenti utilizzati
|
||||
- ## Obiettivi del corso
|
||||
- Conoscere i principi alla base delle TIC
|
||||
- Acquisire gli strumenti per un utilizzo consapevole degli strumenti di lavoro
|
||||
- Proporre strategie per lavorare meglio in meno tempo
|
||||
- ## Hardware
|
||||
- Processore (CPU)
|
||||
- Memoria di sistema (RAM)
|
||||
- Memoria di archiviazione (Dischi)
|
||||
- Periferiche di Input/Output
|
||||
- Schede di rete
|
||||
- Permette alle macchine di connettersi ad una rete di computer
|
||||
- Connessione Wireless (WiFi)
|
||||
- Connessione via cavo (Ethernet)
|
||||
- ## Software
|
||||
- Il Sistema Operativo (SO)
|
||||
- Windows
|
||||
- Linux
|
||||
- Android -> Linux
|
||||
- E' il software più importante installato all'interno della macchina utilizzata
|
||||
- Il browser web
|
||||
- Firefox
|
||||
- Chrome
|
||||
- Edge
|
||||
- Safari (Apple)
|
||||
- Le applicazioni predefinite di sistema
|
||||
- Aprire i file PDF
|
||||
- Esplorare file e cartelle
|
||||
- Leggere e inviare posta elettronica
|
||||
- Le applicazioni per ufficio
|
||||
- Suite per ufficio più utilizzata è MS OFFICE
|
||||
- Word
|
||||
- Excel
|
||||
- PowerPoint
|
||||
- ...
|
||||
- ## La rete
|
||||
- Le reti di computer
|
||||
- I protocolli di rete
|
||||
- https://www.google.it/
|
||||
- HTTPS <- secure => sicuro
|
||||
- Form
|
||||
- Internet
|
||||
- ARPANET intorno agli anni '60
|
||||
- World Wide Web (WWW) negli anni '90
|
||||
- L'idea di cloud
|
||||
- Nuvola -> Cloud
|
||||
- Locale VS Cloud
|
||||
- Il cloud è il computer di qualcun altro!
|
||||
-
|
||||
-
|
66
pages/Linux Day 2024.md
Normal file
66
pages/Linux Day 2024.md
Normal 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
|
||||
-
|
||||
-
|
|
@ -1,8 +1,8 @@
|
|||
- Da fine febbraio 2023 alla metà di marzo 2023 ho effettuato la migrazione del sito #wordpress della Rete dei Licei Economici Sociali italiani
|
||||
- Il passaggio è avvenuto da un server dedicato configurato con container LXC verso un #vps Hetzner modello CX21 configurato con #ubuntu 22 e #Docker
|
||||
- Il passaggio è avvenuto da un server dedicato configurato con container LXC verso un #vps Hetzner modello CX21 configurato con #ubuntu 22 e #docker
|
||||
- ## Tentativo di migrazione preservando #wordpress
|
||||
- Le criticità affrontate ~~e risolte~~ durante la migrazione hanno riguardato principalmente la risoluzione di problemi di versione tra #wordpress #php
|
||||
- L'immagine #Docker ufficiale di #wordpress prevede di montare la cartella wp-content da host a container. Insieme alla migrazione del database ~~consente~~ consentirebbe di effettuare un passaggio pulito
|
||||
- L'immagine #docker ufficiale di #wordpress prevede di montare la cartella wp-content da host a container. Insieme alla migrazione del database ~~consente~~ consentirebbe di effettuare un passaggio pulito
|
||||
- Per modificare la password di admin occorre modificare il database e calcolare una stringa mediante #Hashing
|
||||
- Il tema attuale del portale non era più disponibile per il download e quindi non era più aggiornabile. Questo avrebbe esposto il sito a **gravi problemi di sicurezza** poiché si sarebbe rimasti vincolati a determinate versioni di #wordpress e #php . Utilizzando la [Wayback Machine](https://web.archive.org) dell'Internet Archive si è riusciti a recuperare un [riferimento](https://web.archive.org/web/20160319160922/http://themnific.com/theme/decoblog-theme/) al tema non più mantenuto avendo conferma della sua vetustità e non aggiornabilità.
|
||||
- ### Immagine ufficiale #wordpress
|
||||
|
|
3
pages/docker.md
Normal file
3
pages/docker.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
- `docker` è un gestore di container
|
||||
title:: docker
|
||||
- nel mio #homelab è stato sostituito da #podman
|
5
pages/emacs.md
Normal file
5
pages/emacs.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
- E' un editor di testi e ambiente di sviluppo creato da Richard Matthew Stallman
|
||||
- ## Installare la versione TUI su macchine #ubuntu server
|
||||
- ```bash
|
||||
sudo apt install emacs-nox
|
||||
```
|
9
pages/excalidraw-2024-10-24-13-15-45.md
Normal file
9
pages/excalidraw-2024-10-24-13-15-45.md
Normal 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}}
|
||||
```
|
8
pages/excalidraw-library-items-storage.md
Normal file
8
pages/excalidraw-library-items-storage.md
Normal 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
|
||||
[]
|
||||
```
|
|
@ -1,7 +1,7 @@
|
|||
- E' un sistema di revisione basato su #git
|
||||
- E' presente tra i servizi del mio #homelab
|
||||
- Si integra con #podman e #traefik
|
||||
- Consente un #CDCI alla #Github
|
||||
- Consente un #CDCI alla #Github actions
|
||||
- Configurazione #homelab
|
||||
- `docker-compose.yml` implementato per poter funzionare con #traefik
|
||||
- ```yaml
|
||||
|
|
68
pages/grocy.md
Normal file
68
pages/grocy.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
- Grocy è un'applicazione web per gestire la dispensa della propria casa
|
||||
- ## Backup
|
||||
- Il database è all'interno di un file #sqlite, ancora non esiste una funzione per fare import/export del db.
|
||||
- https://github.com/grocy/grocy/issues/129
|
||||
- Il database si trova all'interno di `/app/www/data/`
|
||||
- ## Installazione e configurazione nell' #homelab
|
||||
- Se si vuole installare Grocy sul VPS dietro ad un reverse proxy #traefik si può utilizzare il seguente file di configurazione
|
||||
- ```yaml
|
||||
services:
|
||||
grocy:
|
||||
image: lscr.io/linuxserver/grocy:latest
|
||||
container_name: grocy
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Rome
|
||||
volumes:
|
||||
- ./data/:/config/data/
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- traefik.http.routers.grocy.entrypoints=websecure
|
||||
- traefik.http.routers.grocy.tls=true
|
||||
- traefik.http.routers.grocy.rule=Host(`grocy.hackersgarage.dev`)
|
||||
- traefik.http.routers.grocy.tls.certresolver=letsencrypt
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
networks:
|
||||
- proxy
|
||||
- default
|
||||
```
|
||||
- Se si vuole installare Grocy dietro ad una #vpn #wireguard e usare il VPS come nodo di accesso pubblico
|
||||
- ```yaml
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
services:
|
||||
wireguard:
|
||||
image: lscr.io/linuxserver/wireguard
|
||||
privileged: true
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Rome
|
||||
volumes:
|
||||
- ./wg0.conf:/config/wg0.conf
|
||||
- /lib/modules:/lib/modules
|
||||
networks:
|
||||
- proxy
|
||||
- default
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
grocy:
|
||||
container_name: grocy
|
||||
build: ./web
|
||||
restart: unless-stopped
|
||||
network_mode: "service:wireguard"
|
||||
labels:
|
||||
- traefik.http.routers.grocy.entrypoints=websecure
|
||||
- traefik.http.routers.grocy.tls=true
|
||||
- traefik.http.routers.grocy.rule=Host(`grocy.hackersgarage.dev`)
|
||||
- traefik.http.routers.grocy.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.grocy.loadbalancer.server.port=80
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
205
pages/homelab.md
Normal file
205
pages/homelab.md
Normal file
|
@ -0,0 +1,205 @@
|
|||
- Nel corso degli anni ho implementato un'infrastruttura di servizi informatici personale, ospitata per quanto possibile su macchine in mio completo controllo.
|
||||
- I servizi attualmente installati sono
|
||||
- #traefik Un reverse proxy
|
||||
- #grocy Un'applicazione web per la gestione della propria dispensa
|
||||
- #serverarr Una suite di applicazione web per lo streaming audio e video
|
||||
- #invidious Un proxy per lo streaming di contenuti #youtube
|
||||
- #LimeSurvey Un sistema di sondaggi
|
||||
- L'architettura hardware presenta una parte pubblica costituita attualmente da un #vps #hetzner e da una parte privata dislocata nella mia abitazione.
|
||||
- Sul #vps è installato un servizio #wireguard + #pihole che funge da punto di entrata pubblico. Il traffico viene incanalato mediante un reverse-proxy #traefik verso i container #docker in esecuzione sul #vps che a loro volta eseguono un tunneling verso la sezione privata dell'infrastruttura mediante un proxy #nginx opportunamente configurato utilizzando la direttiva `proxy_pass`. I certificati SSL vengono gestiti automaticamente da #traefik.
|
||||
- Sul lato privato dell'infrastruttura girano i servizi veri e propri (cloud storage, git server, CI/CD pipeline, servarr, ecc.). Questi servizi non sono direttamente esposti alla rete pubblica ma dialogano attraverso il tunnel #vpn #wireguard.
|
||||
- Esempio di configurazione #traefik su #vps
|
||||
- ```yaml
|
||||
## docker-compose.yml
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./config/traefik.yml:/traefik.yml
|
||||
- ./certificates/acme.json:/acme.json
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
- ```yaml
|
||||
## traefik.yml
|
||||
|
||||
log:
|
||||
level: INFO
|
||||
|
||||
api:
|
||||
dashboard: true
|
||||
insecure: true
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
websecure:
|
||||
address: ":443"
|
||||
|
||||
providers:
|
||||
docker:
|
||||
network: proxy
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: postmaster@andreafazzi.eu
|
||||
storage: acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
```
|
||||
- Esempio di configurazione di un punto di accesso pubblico sul #vps con tunneling verso la sezione private dall'infrastruttura.
|
||||
- ```yaml
|
||||
## docker-compose.yml
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
services:
|
||||
wireguard:
|
||||
image: lscr.io/linuxserver/wireguard
|
||||
privileged: true
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Rome
|
||||
volumes:
|
||||
- ./wg0.conf:/config/wg0.conf
|
||||
- /lib/modules:/lib/modules
|
||||
networks:
|
||||
- proxy
|
||||
- default
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
limesurvey:
|
||||
build: ./web
|
||||
restart: unless-stopped
|
||||
network_mode: "service:wireguard"
|
||||
labels:
|
||||
- traefik.http.routers.limesurvey.entrypoints=websecure
|
||||
- traefik.http.routers.limesurvey.tls=true
|
||||
- traefik.http.routers.limesurvey.rule=Host(`sondaggi.hackersgarage.dev`)
|
||||
- traefik.http.routers.limesurvey.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.limesurvey.loadbalancer.server.port=80
|
||||
```
|
||||
- ```nginx
|
||||
## nginx.conf
|
||||
|
||||
user nginx;
|
||||
worker_processes auto;
|
||||
|
||||
error_log /var/log/nginx/error.log notice;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
# The domain is registerd in the pihole's local DNS
|
||||
proxy_pass http://limesurvey.homeserver.vpn/;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
- Esempio di servizio attivo sulla #vpn e raggiungibile mediante tunneling
|
||||
- Configurazione di #traefik sul lato privato
|
||||
- ```yaml
|
||||
## docker-compose.yml
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./config/traefik.yml:/traefik.yml
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
- ```yaml
|
||||
## traefik.yml
|
||||
|
||||
log:
|
||||
level: INFO
|
||||
|
||||
api:
|
||||
dashboard: true
|
||||
insecure: true
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
|
||||
providers:
|
||||
docker:
|
||||
network: proxy
|
||||
```
|
||||
- Esempio di servizio su lato privato raggiungibile da IP pubblico tramite tunneling #wireguard #LimeSurvey
|
||||
- ```yaml
|
||||
## docker-compose.yml
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
services:
|
||||
limesurvey:
|
||||
image: acspri/limesurvey
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- LIMESURVEY_DB_HOST=db
|
||||
- LIMESURVEY_DB_USER=limesurvey
|
||||
- LIMESURVEY_DB_PASSWORD=PASSWORD
|
||||
- LIMESURVEY_ADMIN_USER=admin
|
||||
- LIMESURVEY_ADMIN_PASSWORD=PASSWORD
|
||||
- LIMESURVEY_ADMIN_NAME=Lime Administrator
|
||||
- LIMESURVEY_ADMIN_EMAIL=email@foo.org
|
||||
volumes:
|
||||
- ./plugins:/var/www/html/plugins
|
||||
- ./upload:/var/www/html/upload
|
||||
- ./config:/var/www/html/application/config
|
||||
networks:
|
||||
- default
|
||||
- proxy
|
||||
labels:
|
||||
- traefik.http.routers.limesurvey.entrypoints=web
|
||||
- traefik.http.routers.limesurvey.rule=Host(`limesurvey.homeserver.vpn`)
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
db:
|
||||
image: mariadb
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- db:/var/lib/mysql
|
||||
env_file:
|
||||
- db.env
|
||||
|
||||
volumes:
|
||||
db:
|
||||
```
|
1
pages/mailserver.md
Normal file
1
pages/mailserver.md
Normal file
|
@ -0,0 +1 @@
|
|||
- All'interno del mio #homelab è configurato un server di posta basato su [docker-mailserver](https://docker-mailserver.github.io/docker-mailserver/latest/).
|
113
pages/nextcloud.md
Normal file
113
pages/nextcloud.md
Normal file
|
@ -0,0 +1,113 @@
|
|||
- E' una delle componenti fondamentali dell'#homelab. Si tratta di un'applicazione web che integra al suo interno diversi servizi tra cui
|
||||
- Calendario compatibile con CalDAV
|
||||
- Contatti compatibile con CardDAV
|
||||
- File storage
|
||||
- Mail client
|
||||
- Kanban
|
||||
- Organizzatore di contenuti multimediali
|
||||
- ...
|
||||
- Permette di gestire gran parte dei propri dati in maniera efficace, sicura e privata.
|
||||
- Nell'#homelab il servizio `nextcloud` è effettivamente attivo sul lato privato dell'infrastruttura
|
||||
- Esso consiste principalmente in un `docker-compose.yml` con il seguente contenuto
|
||||
- ```yaml
|
||||
## docker-compose.yml
|
||||
|
||||
networks:
|
||||
cherry:
|
||||
driver: bridge
|
||||
driver_opts:
|
||||
com.docker.network.driver.mtu: 1400
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.20.4.0/24
|
||||
gateway: 172.20.4.1
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mariadb:10.5
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
restart: always
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
networks:
|
||||
- cherry
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
networks:
|
||||
- cherry
|
||||
app:
|
||||
image: nextcloud:fpm-alpine
|
||||
restart: always
|
||||
ports:
|
||||
- 9100:9000
|
||||
volumes:
|
||||
- ${ROOT}:/var/www/html
|
||||
- /media/penta/backup/nextcloud:/backup
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Rome
|
||||
- MYSQL_HOST=db
|
||||
- REDIS_HOST=redis
|
||||
- OVERWRITEHOST=housecloud.andreafazzi.eu
|
||||
- OVERWRITEPROTOCOL=https
|
||||
- DEFAULT_LANGUAGE=it
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
- cherry
|
||||
web:
|
||||
build: ./web
|
||||
restart: always
|
||||
volumes:
|
||||
- ${ROOT}:/var/www/html:ro
|
||||
ports:
|
||||
- 8080:80
|
||||
depends_on:
|
||||
- app
|
||||
networks:
|
||||
- cherry
|
||||
cron:
|
||||
image: nextcloud:fpm-alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- ${ROOT}:/var/www/html
|
||||
entrypoint: /cron.sh
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
networks:
|
||||
- cherry
|
||||
```
|
||||
- Per il configurare il servizio è necessario anche compilare un file `.env`
|
||||
- ```
|
||||
# Your timezone, https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
TZ=Europe/Rome
|
||||
|
||||
# UNIX PUID and PGID, find with: id $USER
|
||||
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
|
||||
# The directory where data and configuration will be stored.
|
||||
|
||||
ROOT=/media/penta/nextcloud
|
||||
|
||||
# DB params
|
||||
|
||||
MYSQL_ROOT_PASSWORD=nextcloud
|
||||
MYSQL_PASSWORD=nextcloud
|
||||
MYSQL_DATABASE=nextcloud
|
||||
MYSQL_USER=nextcloud
|
||||
```
|
||||
- Durante un eventuale processo di migrazione da #docker a #podman è necessario modificare i permessi della volume con *bind* su `/var/www/html`.
|
||||
- ```bash
|
||||
sudo chown -R 100081:100081 /media/penta/nextcloud/
|
||||
```
|
||||
- ((6712155b-8c8b-4b6e-b956-efc3e8254474))
|
3
pages/paperless.md
Normal file
3
pages/paperless.md
Normal 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
|
117
pages/podman.md
117
pages/podman.md
|
@ -1,6 +1,35 @@
|
|||
## Introduzione
|
||||
- Podman è un gestore di container come docker che funziona in modalità serverless
|
||||
- ## Installazione su un sistema #archlinux
|
||||
- `podman` è un gestore di container come #docker che funziona anche in modalità serverless
|
||||
- Nel mese di ottobre 2024 ho iniziato a migrare i servizi del mio #homelab su #podman
|
||||
- Rimozione di una precedente installazione di #docker preliminare all'installazione di #podman
|
||||
- ```bash
|
||||
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin
|
||||
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin
|
||||
```
|
||||
- Qualora si vogliano rimuovere anche i file e le cartelle relativi alla precedente installazione di #docker
|
||||
- ```bash
|
||||
sudo rm -rf /var/lib/docker /etc/docker
|
||||
sudo rm /etc/apparmor.d/docker
|
||||
sudo groupdel docker
|
||||
sudo rm -rf /var/run/docker.sock
|
||||
sudo rm -rf /var/lib/containerd
|
||||
sudo rm -r ~/.docker
|
||||
```
|
||||
- Rimuovere eventuali interfacce di rete `bridge` create da `docker` (script creato con l'ausilio del #llm `phind` )
|
||||
- ```bash
|
||||
#!/bin/bash
|
||||
|
||||
# Check if we're running with root privileges
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "This script must be run with sudo"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find all interfaces starting with 'br-' and delete them
|
||||
for interface in $(ip link show | grep -oP '^(.*br-\S+)' | cut -d':' -f2- | sed 's/.$//'); do
|
||||
ip link delete $interface
|
||||
done
|
||||
```
|
||||
- Installazione su un sistema #archlinux
|
||||
id:: 66f12589-34d7-4a14-b226-d59679c70d28
|
||||
- Per installare `podman` su un sistema Arch Linux in modo che funzioni come `docker`
|
||||
- ```bash
|
||||
|
@ -11,33 +40,71 @@
|
|||
docker ps
|
||||
```
|
||||
- Se si vuole mimare il comportamento di `docker` con `podman`
|
||||
- ```bash
|
||||
sudo pacman -S podman-docker
|
||||
sudo pacman -S docker-compose
|
||||
systemctl --user enable podman.sock
|
||||
systemctl --user start podman.sock
|
||||
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
|
||||
sudo rm /var/run/docker.sock
|
||||
ln -s /run/user/$(id -u)/podman/podman.sock docker.sock
|
||||
docker ps # test the aliasing
|
||||
```
|
||||
- ## Installazione su un sistema #debian
|
||||
- ```bash
|
||||
sudo pacman -S podman-docker
|
||||
sudo pacman -S docker-compose
|
||||
systemctl --user enable podman.sock
|
||||
systemctl --user start podman.sock
|
||||
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
|
||||
sudo rm /var/run/docker.sock
|
||||
ln -s /run/user/$(id -u)/podman/podman.sock docker.sock
|
||||
docker ps # test the aliasing
|
||||
```
|
||||
- Installazione su un sistema #debian
|
||||
- Per installare `podman` su un sistema Debian/Ubuntu in modo che funzioni come `docker`
|
||||
- ```bash
|
||||
sudo apt remove
|
||||
sudo apt install podman podman-docker
|
||||
```
|
||||
- Per emulare le funzionalità di `docker compose`
|
||||
- Migrazione da #docker a #podman
|
||||
- Assicurarsi di avere a disposizione i dati all'interno dei volumi docker, eventualmente esportando e reimportando i database
|
||||
- Nel caso di #mariadb
|
||||
- ```bash
|
||||
systemctl enable podman.socket
|
||||
systemctl start podman.socket
|
||||
wget https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64
|
||||
chmod +x ...
|
||||
mv docker-compose /usr/bin/
|
||||
docker exec -i gogs-db-1 mariadb-dump -ugogs -pgogs gogs > sql/gogs-14_10_2024.sql
|
||||
docker exec -i gogs-db-1 mariadb -ugogs -pgogs gogs < sql/gogs-14_10_2024.sql
|
||||
```
|
||||
- **Attenzione** per un bug di podman su Ubuntu 24.04 è necessario utilizzare un repository sperimentale
|
||||
- Nel caso di #postgres
|
||||
- ```bash
|
||||
sudo add-apt-repository ppa:brightbox/experimental
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
# Esportazione
|
||||
docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
|
||||
|
||||
# Importazione
|
||||
cat sql/mastodon_14_10_2024.sql | docker exec -i mastodon-db-1 psql -U mastodon
|
||||
```
|
||||
- Riferimento: https://www.monotux.tech/posts/2024/09/ubuntu-2404-podman/
|
||||
- Rimuovere #docker dal sistema
|
||||
- ```bash
|
||||
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin
|
||||
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin
|
||||
```
|
||||
- Per emulare le funzionalità di `docker compose`
|
||||
- ```bash
|
||||
## Installare i pacchetti podman-compose e docker-compose
|
||||
## es: sudo pacman -S podman-docker && sudo pacman -S docker-compose
|
||||
|
||||
## rootful mode
|
||||
sudo systemctl enable podman.socket
|
||||
sudo systemctl start podman.socket
|
||||
|
||||
## rootless mode
|
||||
systemctl --user enable --now podman.socket
|
||||
|
||||
wget https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64
|
||||
|
||||
## rootful mode
|
||||
chmod +x ...
|
||||
mv docker-compose /usr/bin/
|
||||
```
|
||||
- Per disabilitare il messaggio di avviso di utilizzo di un provider esterno per compose
|
||||
- https://docs.podman.io/en/latest/markdown/podman-compose.1.html
|
||||
- ~~**Attenzione** per un bug di podman su Ubuntu 24.04 è necessario utilizzare un repository sperimentale~~ (potrebbe non essere più necessario alla data del 16.10.2024)
|
||||
- ```bash
|
||||
sudo add-apt-repository ppa:brightbox/experimental
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
```
|
||||
- Riferimento: https://www.monotux.tech/posts/2024/09/ubuntu-2404-podman/
|
||||
- Gestire i container #podman con #systemd
|
||||
- Creare la cartella `~./config/systemd`
|
||||
- ```bash
|
||||
mkdir ~/.config/systemd
|
||||
```
|
7
pages/quadlets.md
Normal file
7
pages/quadlets.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
- 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
|
||||
- Per monitorare i log di un servizio configurato tramite #quadlets
|
||||
- ```bash
|
||||
journalctl --user -fxeu traefik
|
||||
```
|
|
@ -1,35 +1,37 @@
|
|||
- Traefik è un reverse proxy utilizzato nella mia infrastruttura #homelab
|
||||
- ## Configurazione mediante #Docker
|
||||
- [Traefik](https://doc.traefik.io/traefik/) è un *reverse proxy* utilizzato nella mia infrastruttura #homelab
|
||||
- La documentazione *quick start* relativa è raggiungibile qui
|
||||
- https://doc.traefik.io/traefik/getting-started/quick-start/
|
||||
- ```bash
|
||||
mkdir -p traefik/config traefik/certificates
|
||||
touch traefik/certificates/acme.json
|
||||
```
|
||||
- ```yaml
|
||||
# docker-compose.yml
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./config/traefik.yml:/traefik.yml
|
||||
- ./certificates/acme.json:/acme.json
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
- Ricordarsi poi di creare la rete
|
||||
- Esiste sotto forma di servizio #docker tramite cui è possibile attivare con pochi passaggi un'instanza su un server
|
||||
- Creare le cartelle necessarie (configurazione e certificati SSL gestiti da #letsencrypt)
|
||||
- ```bash
|
||||
mkdir -p traefik/config traefik/certificates
|
||||
touch traefik/certificates/acme.json
|
||||
```
|
||||
- Creare il `docker-compose.yml`
|
||||
- ```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./config/traefik.yml:/traefik.yml
|
||||
- ./certificates/acme.json:/acme.json
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- proxy
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
- Creare la rete che sarà condivisa tra i servizi che vorranno usufruire del *reverse proxy*.
|
||||
- ```bash
|
||||
docker network create proxy
|
||||
```
|
||||
<<<<<<< HEAD
|
||||
- ```yaml
|
||||
# traefik.yml
|
||||
|
||||
|
@ -60,3 +62,39 @@
|
|||
```
|
||||
-
|
||||
-
|
||||
=======
|
||||
- Creare un file di configurazione
|
||||
- ```yaml
|
||||
# traefik.yml
|
||||
log:
|
||||
level: INFO
|
||||
api:
|
||||
dashboard: true
|
||||
insecure: true
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
websecure:
|
||||
address: ":443"
|
||||
providers:
|
||||
docker:
|
||||
network: proxy
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: postmaster@andreafazzi.eu
|
||||
storage: acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
```
|
||||
- Se si sta utilizzando #traefik con #podman rootless occorre modificare il file `/etc/sysctl.conf` in modo da consentire l'apertura di una porta con numero minore di 1024 e ricaricare la configurazione
|
||||
- ```conf
|
||||
### /etc/sysctl.conf
|
||||
|
||||
## Append to the end of the file
|
||||
net.ipv4.ip_unprivileged_port_start=80
|
||||
```
|
||||
- ```bash
|
||||
sudo sysctl --system
|
||||
```
|
||||
>>>>>>> d03938438b1166bd25533239648dc47b2ece4a05
|
||||
|
|
Loading…
Reference in a new issue