- La creazione dell'utente non è più obbligatoria: lasciando vuoto il nome si usa l'utente corrente (SUDO_USER o root) - Clona lvm-volume-enlarger in /opt e, se la root è un LV ext* con spazio libero nel VG, propone l'esecuzione di enlarge.sh - Corregge il codename Ubuntu non espanso in docker.sources Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
# Setup Ubuntu Server + Docker + Portainer
|
|
|
|
Questo repository contiene uno script per configurare rapidamente un server Ubuntu:
|
|
- Aggiorna il sistema e installa pacchetti base
|
|
- Configura repository e installa Docker (CE, CLI, containerd, buildx, compose plugin)
|
|
- Chiede un nome utente da creare (opzionale: lasciando vuoto usa l'utente corrente) e lo aggiunge al gruppo `docker`
|
|
- Scarica [lvm-volume-enlarger](https://repository.pyconetwork.it/francesco/lvm-volume-enlarger.git) e, se il volume LVM di root può essere allargato, propone di eseguire lo script
|
|
- Esegue una post-installazione tramite `make`
|
|
- Clona il repo Portainer e ne esegue il deploy via Docker
|
|
|
|
In aggiunta, applica misure di hardening (senza SSH hardening):
|
|
- Impostazione timezone (default: Europe/Rome)
|
|
- Auto-aggiornamenti di sicurezza (`unattended-upgrades`)
|
|
- Fail2ban: jail `sshd` abilitata con limiti prudenziali
|
|
- Docker: `daemon.json` con `live-restore` e rotazione log
|
|
|
|
## Requisiti
|
|
- Esegui su Ubuntu Server (root/sudo necessario)
|
|
- Connettività Internet
|
|
|
|
## Uso
|
|
1. Copia la cartella `linux-server-setup` sul server Ubuntu.
|
|
2. Esegui lo script di setup:
|
|
|
|
```bash
|
|
sudo bash scripts/setup.sh
|
|
```
|
|
|
|
3. Inserisci il nome utente quando richiesto, oppure premi Invio per usare l'utente corrente (quello che ha lanciato `sudo`, o `root`). Lo script:
|
|
- creerà l'utente (se non esiste) e imposterà la password
|
|
- clonerà `lvm-volume-enlarger` in `/opt/lvm-volume-enlarger`; se la root è un volume LVM ext4 e il volume group ha spazio libero, chiederà se eseguire `enlarge.sh`
|
|
- installerà Docker e aggiungerà l'utente al gruppo `docker` (non necessario se l'utente è `root`)
|
|
- eseguirà `make postinstall` per utilità post-installazione
|
|
- clonerà `https://git.pyconetwork.it/francesco/portainer.git` in `/opt/portainer` e tenterà il deploy con `docker compose up -d`
|
|
|
|
## Note
|
|
- Dopo l'aggiunta al gruppo `docker`, è necessario fare logout/login per applicare i permessi.
|
|
- Se rifiuti l'estensione del disco, puoi eseguirla in seguito con `sudo bash /opt/lvm-volume-enlarger/enlarge.sh`. Lo script usa solo lo spazio già libero nel volume group: se hai ingrandito il disco virtuale, prima vanno estesi la partizione e il PV (`growpart` + `pvresize`).
|
|
- Se il repository Portainer non contiene un `docker-compose.yml/compose.yml`, lo script proverà `make deploy` se presente; altrimenti mostrerà un avviso.
|
|
- Il target `postinstall` installa: `vim`, `tmux`, `net-tools`, `wget`, `jq`, `tree`, `ufw`, `fail2ban`, `software-properties-common`, `htop`, `lsof`, e abilita UFW + Fail2ban.
|
|
- Il target `postinstall` installa: `vim`, `tmux`, `net-tools`, `wget`, `jq`, `tree`, `fail2ban`, `software-properties-common`, `htop`, `lsof`.
|
|
|