diff --git a/assets/image_1728737830339_0.png b/assets/image_1728737830339_0.png new file mode 100644 index 00000000..72793168 Binary files /dev/null and b/assets/image_1728737830339_0.png differ diff --git a/assets/image_1729780747017_0.png b/assets/image_1729780747017_0.png new file mode 100644 index 00000000..67842580 Binary files /dev/null and b/assets/image_1729780747017_0.png differ diff --git a/assets/image_1729780942325_0.png b/assets/image_1729780942325_0.png new file mode 100644 index 00000000..4ef9c4b8 Binary files /dev/null and b/assets/image_1729780942325_0.png differ diff --git a/assets/image_1729782020246_0.png b/assets/image_1729782020246_0.png new file mode 100644 index 00000000..fc22b6fc Binary files /dev/null and b/assets/image_1729782020246_0.png differ diff --git a/draws/2024-10-24-13-13-29.excalidraw b/draws/2024-10-24-13-13-29.excalidraw new file mode 100644 index 00000000..4289982b --- /dev/null +++ b/draws/2024-10-24-13-13-29.excalidraw @@ -0,0 +1,10 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://logseq.com", + "elements": [], + "appState": { + "viewBackgroundColor": "#FFF", + "gridSize": null + } +} \ No newline at end of file diff --git a/draws/2024-10-24-13-13-31.excalidraw b/draws/2024-10-24-13-13-31.excalidraw new file mode 100644 index 00000000..4289982b --- /dev/null +++ b/draws/2024-10-24-13-13-31.excalidraw @@ -0,0 +1,10 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://logseq.com", + "elements": [], + "appState": { + "viewBackgroundColor": "#FFF", + "gridSize": null + } +} \ No newline at end of file diff --git a/draws/2024-10-24-13-16-13.excalidraw b/draws/2024-10-24-13-16-13.excalidraw new file mode 100644 index 00000000..09d63762 --- /dev/null +++ b/draws/2024-10-24-13-16-13.excalidraw @@ -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": {} +} \ No newline at end of file diff --git a/journals/2022_06_04.md b/journals/2022_06_04.md index 03a5b368..1c597cfb 100644 --- a/journals/2022_06_04.md +++ b/journals/2022_06_04.md @@ -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 ``` \ No newline at end of file diff --git a/journals/2022_11_30.md b/journals/2022_11_30.md index f610ea18..8c8e127a 100644 --- a/journals/2022_11_30.md +++ b/journals/2022_11_30.md @@ -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 diff --git a/journals/2023_01_10.md b/journals/2023_01_10.md index 42da754d..9df057df 100644 --- a/journals/2023_01_10.md +++ b/journals/2023_01_10.md @@ -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. - diff --git a/journals/2023_01_22.md b/journals/2023_01_22.md index 9b78efe4..6fc6bfbe 100644 --- a/journals/2023_01_22.md +++ b/journals/2023_01_22.md @@ -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. \ No newline at end of file diff --git a/journals/2023_01_28.md b/journals/2023_01_28.md index 57aecdf0..6758422c 100644 --- a/journals/2023_01_28.md +++ b/journals/2023_01_28.md @@ -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 diff --git a/journals/2023_02_03.md b/journals/2023_02_03.md index db482a13..af9a7b23 100644 --- a/journals/2023_02_03.md +++ b/journals/2023_02_03.md @@ -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]] diff --git a/journals/2023_02_06.md b/journals/2023_02_06.md index f9b883d2..e0200cc0 100644 --- a/journals/2023_02_06.md +++ b/journals/2023_02_06.md @@ -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 ``` diff --git a/journals/2023_02_08.md b/journals/2023_02_08.md index e11d62c4..bd34c267 100644 --- a/journals/2023_02_08.md +++ b/journals/2023_02_08.md @@ -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 ``` \ No newline at end of file diff --git a/journals/2023_02_18.md b/journals/2023_02_18.md index ea40e813..9cec64df 100644 --- a/journals/2023_02_18.md +++ b/journals/2023_02_18.md @@ -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 \ No newline at end of file diff --git a/journals/2023_02_23.md b/journals/2023_02_23.md index 16bc9235..e14acfbc 100644 --- a/journals/2023_02_23.md +++ b/journals/2023_02_23.md @@ -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 \ No newline at end of file diff --git a/journals/2023_02_27.md b/journals/2023_02_27.md index 4eec0a45..e2651652 100644 --- a/journals/2023_02_27.md +++ b/journals/2023_02_27.md @@ -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" diff --git a/journals/2023_03_07.md b/journals/2023_03_07.md index badc4f28..4b8b5e14 100644 --- a/journals/2023_03_07.md +++ b/journals/2023_03_07.md @@ -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 diff --git a/journals/2023_03_13.md b/journals/2023_03_13.md index 7de2a14b..4d4e9a55 100644 --- a/journals/2023_03_13.md +++ b/journals/2023_03_13.md @@ -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 diff --git a/journals/2023_03_15.md b/journals/2023_03_15.md index 64e27d19..8c083df3 100644 --- a/journals/2023_03_15.md +++ b/journals/2023_03_15.md @@ -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) - +- Fisica: LOSER (5), ZOTTI (8), BERTOLINI (7,5) \ No newline at end of file diff --git a/journals/2023_03_18.md b/journals/2023_03_18.md index 12475461..b265bfac 100644 --- a/journals/2023_03_18.md +++ b/journals/2023_03_18.md @@ -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 diff --git a/journals/2023_09_01.md b/journals/2023_09_01.md index 10522611..12706065 100644 --- a/journals/2023_09_01.md +++ b/journals/2023_09_01.md @@ -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 ``` @@ -43,4 +43,4 @@ - **14:19** [[quick capture]]: [The technical merits of Wayland are mostly irrelevant](https://news.ycombinator.com/item?id=37349270) #wayland - **18:10** [[quick capture]]: [Ask HN: Freelancer? Seeking freelancer? (September 2023)](https://news.ycombinator.com/item?id=37351666) #freelance - **18:14** [[quick capture]]: [Unlocking view transitions in SvelteKit 1.24](https://news.ycombinator.com/item?id=37343814) -- **21:02** [[quick capture]]: [The algorithm that blew up Italy’s school system](https://news.ycombinator.com/item?id=37351656) #teaching +- **21:02** [[quick capture]]: [The algorithm that blew up Italy’s school system](https://news.ycombinator.com/item?id=37351656) #teaching \ No newline at end of file diff --git a/journals/2023_09_08.md b/journals/2023_09_08.md index 519d676c..a26bb14b 100644 --- a/journals/2023_09_08.md +++ b/journals/2023_09_08.md @@ -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 \ No newline at end of file diff --git a/journals/2023_09_25.md b/journals/2023_09_25.md index 0a5f68df..9f04afb3 100644 --- a/journals/2023_09_25.md +++ b/journals/2023_09_25.md @@ -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 ``` diff --git a/journals/2023_09_28.md b/journals/2023_09_28.md index 56f72910..112d3ad3 100644 --- a/journals/2023_09_28.md +++ b/journals/2023_09_28.md @@ -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 ``` \ No newline at end of file diff --git a/journals/2023_10_05.md b/journals/2023_10_05.md index 15a8297d..99d0c040 100644 --- a/journals/2023_10_05.md +++ b/journals/2023_10_05.md @@ -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 +- **18:52** [[quick capture]]: [Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search](https://news.ycombinator.com/item?id=37777347) #htpc #torrent \ No newline at end of file diff --git a/journals/2023_10_17.md b/journals/2023_10_17.md index 201d8936..50ea2e6b 100644 --- a/journals/2023_10_17.md +++ b/journals/2023_10_17.md @@ -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,10 +98,10 @@ 3: wg0: 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/) - **18:25** [[quick capture]]: [Interviews in the Age of AI: Ditch Leetcode – Try Code Reviews Instead](https://news.ycombinator.com/item?id=37913506) #freelance - **20:19** [[quick capture]]: [Making CRDTs 98% More Efficient](https://news.ycombinator.com/item?id=37915934) @ -- **20:23** [[quick capture]]: [Llemma: An Open Language Model for Mathematics](https://news.ycombinator.com/item?id=37918327) #llm +- **20:23** [[quick capture]]: [Llemma: An Open Language Model for Mathematics](https://news.ycombinator.com/item?id=37918327) #llm \ No newline at end of file diff --git a/journals/2024_02_20.md b/journals/2024_02_20.md index bc46ea8b..88ebd715 100644 --- a/journals/2024_02_20.md +++ b/journals/2024_02_20.md @@ -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 ``` diff --git a/journals/2024_03_06.md b/journals/2024_03_06.md index a6073098..b94d58dc 100644 --- a/journals/2024_03_06.md +++ b/journals/2024_03_06.md @@ -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) diff --git a/journals/2024_06_29.md b/journals/2024_06_29.md index eda936be..70f43639 100644 --- a/journals/2024_06_29.md +++ b/journals/2024_06_29.md @@ -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 \ No newline at end of file diff --git a/journals/2024_10_01.md b/journals/2024_10_01.md index 3ba4650e..643b6727 100644 --- a/journals/2024_10_01.md +++ b/journals/2024_10_01.md @@ -1,5 +1,7 @@ +- 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 - Documentazione per l'installazione di #synapse -- **21:22** [[quick capture]]: [Web Components vs. State-Based UI | Go Make Things](https://gomakethings.com/web-components-vs.-state-based-ui/) #webcomponents #leanwebclub \ No newline at end of file +- **21:22** [[quick capture]]: [Web Components vs. State-Based UI | Go Make Things](https://gomakethings.com/web-components-vs.-state-based-ui/) #webcomponents #leanwebclub diff --git a/journals/2024_10_02.md b/journals/2024_10_02.md new file mode 100644 index 00000000..b7dc16d3 --- /dev/null +++ b/journals/2024_10_02.md @@ -0,0 +1 @@ +- Tunneling #wireguard con #traefik \ No newline at end of file diff --git a/journals/2024_10_03.md b/journals/2024_10_03.md new file mode 100644 index 00000000..b73b298d --- /dev/null +++ b/journals/2024_10_03.md @@ -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 \ No newline at end of file diff --git a/journals/2024_10_04.md b/journals/2024_10_04.md index 3c6873ce..d067f908 100644 --- a/journals/2024_10_04.md +++ b/journals/2024_10_04.md @@ -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 \ No newline at end of file +- **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 diff --git a/journals/2024_10_05.md b/journals/2024_10_05.md index b0e7085b..c9888dcc 100644 --- a/journals/2024_10_05.md +++ b/journals/2024_10_05.md @@ -1 +1,5 @@ -- **22:01** [[quick capture]]: [HealthyPi Move | Crowd Supply](https://www.crowdsupply.com/protocentral/healthypi-move) \ No newline at end of file +- **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 + ``` diff --git a/journals/2024_10_06.md b/journals/2024_10_06.md new file mode 100644 index 00000000..4090f43d --- /dev/null +++ b/journals/2024_10_06.md @@ -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~~ \ No newline at end of file diff --git a/journals/2024_10_07.md b/journals/2024_10_07.md new file mode 100644 index 00000000..e9dfc455 --- /dev/null +++ b/journals/2024_10_07.md @@ -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'; + ``` \ No newline at end of file diff --git a/journals/2024_10_08.md b/journals/2024_10_08.md index 9758cda1..edb463b7 100644 --- a/journals/2024_10_08.md +++ b/journals/2024_10_08.md @@ -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 \ No newline at end of file +- Tergeste amministrazione +- Configurare #nextcloud dietro a #traefik + - https://www.smarthomebeginner.com/traefik-docker-nextcloud/ + id:: 670547eb-adc4-41b7-9aeb-b16db4e06a93 diff --git a/journals/2024_10_09.md b/journals/2024_10_09.md index ea524975..0ab4ae23 100644 --- a/journals/2024_10_09.md +++ b/journals/2024_10_09.md @@ -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) \ No newline at end of file +- **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 diff --git a/journals/2024_10_11.md b/journals/2024_10_11.md index 29749548..6f2f62b9 100644 --- a/journals/2024_10_11.md +++ b/journals/2024_10_11.md @@ -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 \ No newline at end of file +- **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/ diff --git a/journals/2024_10_12.md b/journals/2024_10_12.md new file mode 100644 index 00000000..a46bc7c8 --- /dev/null +++ b/journals/2024_10_12.md @@ -0,0 +1,3 @@ +- Messaggio di cui tenere conto durante aggiornamento del ThinkCentre #homelab + - ![image.png](../assets/image_1728737830339_0.png) + - \ No newline at end of file diff --git a/journals/2024_10_13.md b/journals/2024_10_13.md index 816c8c9b..707439ed 100644 --- a/journals/2024_10_13.md +++ b/journals/2024_10_13.md @@ -1,2 +1,3 @@ - **20:11** [[quick capture]]: [Exploring Typst, a new typesetting system similar to LaTeX](https://news.ycombinator.com/item?id=41821361) -- \ No newline at end of file +- 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. diff --git a/journals/2024_10_15.md b/journals/2024_10_15.md new file mode 100644 index 00000000..eed84881 --- /dev/null +++ b/journals/2024_10_15.md @@ -0,0 +1,2 @@ +- + - \ No newline at end of file diff --git a/journals/2024_10_16.md b/journals/2024_10_16.md index 15d1ca6c..e550d5a9 100644 --- a/journals/2024_10_16.md +++ b/journals/2024_10_16.md @@ -1 +1,7 @@ -- Myanonamause.net \ No newline at end of file +- 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 + ``` diff --git a/journals/2024_10_17.md b/journals/2024_10_17.md new file mode 100644 index 00000000..c1f4a75d --- /dev/null +++ b/journals/2024_10_17.md @@ -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/ \ No newline at end of file diff --git a/journals/2024_10_18.md b/journals/2024_10_18.md index 11290bcf..c33dee9d 100644 --- a/journals/2024_10_18.md +++ b/journals/2024_10_18.md @@ -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 \ No newline at end of file +- **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 + ``` diff --git a/journals/2024_10_19.md b/journals/2024_10_19.md index 15073a27..40fac355 100644 --- a/journals/2024_10_19.md +++ b/journals/2024_10_19.md @@ -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) \ No newline at end of file +- **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 diff --git a/journals/2024_10_20.md b/journals/2024_10_20.md new file mode 100644 index 00000000..5e03911f --- /dev/null +++ b/journals/2024_10_20.md @@ -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 \ No newline at end of file diff --git a/journals/2024_10_21.md b/journals/2024_10_21.md index 22a3f30d..72a833a7 100644 --- a/journals/2024_10_21.md +++ b/journals/2024_10_21.md @@ -1 +1,21 @@ -- **14:13** [[quick capture]]: [Replace Docker Compose with Quadlet for Servers](https://matduggan.com/replace-compose-with-quadlet/) \ No newline at end of file +- **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) diff --git a/journals/2024_10_22.md b/journals/2024_10_22.md index c1a2334e..be863564 100644 --- a/journals/2024_10_22.md +++ b/journals/2024_10_22.md @@ -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 \ No newline at end of file +- 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 + ``` diff --git a/journals/2024_10_24.md b/journals/2024_10_24.md new file mode 100644 index 00000000..be1701df --- /dev/null +++ b/journals/2024_10_24.md @@ -0,0 +1,2 @@ +- Software per la somministrazione di test + - https://stack-assessment.org/ \ No newline at end of file diff --git a/journals/2024_10_25.md b/journals/2024_10_25.md new file mode 100644 index 00000000..b4a97eda --- /dev/null +++ b/journals/2024_10_25.md @@ -0,0 +1,3 @@ +- Verifiche orali + - Ussai + - 9 \ No newline at end of file diff --git a/journals/2024_10_29.md b/journals/2024_10_29.md index b1c38731..68d45fbf 100644 --- a/journals/2024_10_29.md +++ b/journals/2024_10_29.md @@ -1,4 +1,10 @@ - **17:26** [[quick capture]]: [Installation with Docker | Forgejo – Beyond coding. We forge.](https://forgejo.org/docs/latest/admin/installation-docker/) - **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 \ No newline at end of file +- **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 + ``` diff --git a/journals/2024_10_30.md b/journals/2024_10_30.md new file mode 100644 index 00000000..e4f00295 --- /dev/null +++ b/journals/2024_10_30.md @@ -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 \ No newline at end of file diff --git a/pages/Amministrazione Sistemi Linux.md b/pages/Amministrazione Sistemi Linux.md index feeed617..ec45d0ca 100644 --- a/pages/Amministrazione Sistemi Linux.md +++ b/pages/Amministrazione Sistemi Linux.md @@ -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' ``` diff --git a/pages/Il meraviglioso mondo delle TIC.md b/pages/Il meraviglioso mondo delle TIC.md new file mode 100644 index 00000000..818d3ada --- /dev/null +++ b/pages/Il meraviglioso mondo delle TIC.md @@ -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! + - + - \ No newline at end of file diff --git a/pages/Linux Day 2024.md b/pages/Linux Day 2024.md new file mode 100644 index 00000000..3892b731 --- /dev/null +++ b/pages/Linux Day 2024.md @@ -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 + - + - \ No newline at end of file diff --git a/pages/Migrazione sito LES.md b/pages/Migrazione sito LES.md index 0de1d3b4..21620d7b 100644 --- a/pages/Migrazione sito LES.md +++ b/pages/Migrazione sito LES.md @@ -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 diff --git a/pages/docker.md b/pages/docker.md new file mode 100644 index 00000000..53e505e6 --- /dev/null +++ b/pages/docker.md @@ -0,0 +1,3 @@ +- `docker` è un gestore di container + title:: docker +- nel mio #homelab è stato sostituito da #podman \ No newline at end of file diff --git a/pages/emacs.md b/pages/emacs.md new file mode 100644 index 00000000..21386e0a --- /dev/null +++ b/pages/emacs.md @@ -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 + ``` \ No newline at end of file diff --git a/pages/excalidraw-2024-10-24-13-15-45.md b/pages/excalidraw-2024-10-24-13-15-45.md new file mode 100644 index 00000000..99ed697f --- /dev/null +++ b/pages/excalidraw-2024-10-24-13-15-45.md @@ -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}} + ``` \ No newline at end of file diff --git a/pages/excalidraw-library-items-storage.md b/pages/excalidraw-library-items-storage.md new file mode 100644 index 00000000..9a726d3c --- /dev/null +++ b/pages/excalidraw-library-items-storage.md @@ -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 + [] + ``` \ No newline at end of file diff --git a/pages/forgejo.md b/pages/forgejo.md index 5a01cbfb..0b09ba9c 100644 --- a/pages/forgejo.md +++ b/pages/forgejo.md @@ -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 diff --git a/pages/grocy.md b/pages/grocy.md new file mode 100644 index 00000000..4657bdce --- /dev/null +++ b/pages/grocy.md @@ -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 + ``` \ No newline at end of file diff --git a/pages/homelab.md b/pages/homelab.md new file mode 100644 index 00000000..ba0878f3 --- /dev/null +++ b/pages/homelab.md @@ -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: + ``` \ No newline at end of file diff --git a/pages/mailserver.md b/pages/mailserver.md new file mode 100644 index 00000000..206bd8ff --- /dev/null +++ b/pages/mailserver.md @@ -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/). \ No newline at end of file diff --git a/pages/nextcloud.md b/pages/nextcloud.md new file mode 100644 index 00000000..1440b6fd --- /dev/null +++ b/pages/nextcloud.md @@ -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)) \ No newline at end of file diff --git a/pages/paperless.md b/pages/paperless.md new file mode 100644 index 00000000..f59ceaba --- /dev/null +++ b/pages/paperless.md @@ -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 \ No newline at end of file diff --git a/pages/podman.md b/pages/podman.md index 945da921..4fa1faa3 100644 --- a/pages/podman.md +++ b/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/ \ No newline at end of file + - 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 + ``` \ No newline at end of file diff --git a/pages/quadlets.md b/pages/quadlets.md new file mode 100644 index 00000000..4853cc1f --- /dev/null +++ b/pages/quadlets.md @@ -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 + ``` \ No newline at end of file diff --git a/pages/traefik.md b/pages/traefik.md index 98a3a5e7..5a4c1a31 100644 --- a/pages/traefik.md +++ b/pages/traefik.md @@ -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 @@ -59,4 +61,40 @@ entryPoint: web ``` - -- \ No newline at end of file +- +======= + - 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