Compare commits
4
Commits
e51ff0cf4f
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34a5d4177b | ||
|
|
0705b6c0e7 | ||
|
|
042c550443 | ||
|
|
696b28083e |
@@ -27,7 +27,7 @@ La spiegazione per le persone sta in
|
|||||||
com'è**: `cd` nel percorso vero della cartella su quel PC (quello in cui
|
com'è**: `cd` nel percorso vero della cartella su quel PC (quello in cui
|
||||||
l'hai scaricata, che conosci solo tu: la pagina per le persone non lo
|
l'hai scaricata, che conosci solo tu: la pagina per le persone non lo
|
||||||
scrive apposta) e `./configura.sh`, in un blocco di codice, per esempio
|
scrive apposta) e `./configura.sh`, in un blocco di codice, per esempio
|
||||||
`cd "/c/Users/mario/Work/workspace/oto/_OTO_IT_onboard" && ./configura.sh`.
|
`cd "/c/Users/mario/oto/_OTO_IT_onboard" && ./configura.sh`.
|
||||||
Su Windows il percorso va nella forma di Git Bash (`/c/Users/...`), non
|
Su Windows il percorso va nella forma di Git Bash (`/c/Users/...`), non
|
||||||
`C:\...`. Tu lanci tutto il resto: installazioni, `verifica.sh`,
|
`C:\...`. Tu lanci tutto il resto: installazioni, `verifica.sh`,
|
||||||
`progetti.sh`, i comandi di sola lettura.
|
`progetti.sh`, i comandi di sola lettura.
|
||||||
@@ -39,7 +39,15 @@ La spiegazione per le persone sta in
|
|||||||
Lo dici e prosegui.
|
Lo dici e prosegui.
|
||||||
5. **Non copiare file da altri PC** e non proporlo: se a un progetto manca un
|
5. **Non copiare file da altri PC** e non proporlo: se a un progetto manca un
|
||||||
segreto, va messo su AWS SSM da un amministratore.
|
segreto, va messo su AWS SSM da un amministratore.
|
||||||
6. **Ogni volta che le chiedi qualcosa, le dici dove lo trova o dove lo
|
6. **Dove scaricare lo chiedi sempre, prima di scaricare.** Questo
|
||||||
|
repository e i progetti vanno nella cartella che sceglie la persona, non
|
||||||
|
in una che decidi tu: non esiste un posto di default (fino al 13/10/2026
|
||||||
|
le istruzioni dicevano `~/Work/workspace/oto`, che era la cartella di chi
|
||||||
|
le ha scritte). Chiedile in quale cartella vuole i progetti, proponendo
|
||||||
|
al massimo un esempio (sotto la sua cartella utente), e usa quella. Se
|
||||||
|
l'ha già scelta per questo repository, chiedile se i progetti vanno
|
||||||
|
accanto a lui, e non darlo per scontato.
|
||||||
|
7. **Ogni volta che le chiedi qualcosa, le dici dove lo trova o dove lo
|
||||||
crea.** Non "inserisci la chiave AWS", ma "la crei nella console AWS: il
|
crea.** Non "inserisci la chiave AWS", ma "la crei nella console AWS: il
|
||||||
tuo nome in alto a destra → Security credentials → …". Indirizzo, menu e
|
tuo nome in alto a destra → Security credentials → …". Indirizzo, menu e
|
||||||
pulsante, con i nomi come li vede sullo schermo (in inglese, se la pagina
|
pulsante, con i nomi come li vede sullo schermo (in inglese, se la pagina
|
||||||
@@ -99,12 +107,22 @@ spiegala in una riga la prima volta.
|
|||||||
- **Mac**: prima Homebrew. Il suo installatore chiede la password del Mac,
|
- **Mac**: prima Homebrew. Il suo installatore chiede la password del Mac,
|
||||||
quindi quel comando lo lancia la persona nel Terminale:
|
quindi quel comando lo lancia la persona nel Terminale:
|
||||||
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`.
|
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`.
|
||||||
Poi tu: `brew install git awscli` e `brew install --cask docker`.
|
**Homebrew non si mette da solo nel `PATH`** (sui Mac Apple Silicon sta
|
||||||
|
in `/opt/homebrew`): senza, in un terminale nuovo `brew` e `aws` non si
|
||||||
|
trovano. Lo aggiungi tu, una volta:
|
||||||
|
`echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile`
|
||||||
|
(su un Mac Intel sta in `/usr/local` e il passo non serve). Poi tu:
|
||||||
|
`eval "$(/opt/homebrew/bin/brew shellenv)" && brew install git awscli`
|
||||||
|
e `brew install --cask docker`. Se un'installazione `--cask` chiede la
|
||||||
|
password del Mac, la lancia la persona nel Terminale. Gli script di
|
||||||
|
questo repository trovano `brew` anche senza il `PATH` sistemato, il
|
||||||
|
terminale della persona no.
|
||||||
- Docker Desktop va **aperto una volta** a mano e le condizioni accettate:
|
- Docker Desktop va **aperto una volta** a mano e le condizioni accettate:
|
||||||
finché non lo si fa, `docker info` non risponde.
|
finché non lo si fa, `docker info` non risponde.
|
||||||
2. **Questo repository sul PC**, se ci stai parlando da un link e non da
|
2. **Questo repository sul PC**, se ci stai parlando da un link e non da
|
||||||
dentro la cartella: `git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git
|
dentro la cartella. Prima le chiedi dove metterlo (regola 6), poi:
|
||||||
~/Work/workspace/oto/_OTO_IT_onboard` (è pubblico, non ha segreti) e da lì
|
`git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git
|
||||||
|
"<cartella scelta>/_OTO_IT_onboard"` (è pubblico, non ha segreti) e da lì
|
||||||
continui.
|
continui.
|
||||||
3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026):
|
3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026):
|
||||||
le password sono già le definitive e l'MFA di AWS lo attiva chi
|
le password sono già le definitive e l'MFA di AWS lo attiva chi
|
||||||
@@ -131,9 +149,11 @@ spiegala in una riga la prima volta.
|
|||||||
non va mai tenuta "intanto che funziona": tutto quello che la persona fa
|
non va mai tenuta "intanto che funziona": tutto quello che la persona fa
|
||||||
su AWS risulterebbe fatto dall'altro.
|
su AWS risulterebbe fatto dall'altro.
|
||||||
5. **VPN**, solo se su LastPass ha la scheda `OTO > VPN HK nome.cognome` (chiediglielo). Prima
|
5. **VPN**, solo se su LastPass ha la scheda `OTO > VPN HK nome.cognome` (chiediglielo). Prima
|
||||||
installi tu OpenVPN Connect: su Windows
|
va installato OpenVPN Connect: su Windows lo installi tu,
|
||||||
`winget install -e --id OpenVPNTechnologies.OpenVPNConnect`, su Mac
|
`winget install -e --id OpenVPNTechnologies.OpenVPNConnect`; su Mac
|
||||||
`brew install --cask openvpn-connect`. Poi lei, un passo alla volta: apre la scheda VPN su LastPass e scarica il file
|
`brew install --cask openvpn-connect` chiede la password del Mac (installa
|
||||||
|
un componente di sistema), quindi lo lancia la persona nel Terminale e tu
|
||||||
|
le dai il comando. Poi lei, un passo alla volta: apre la scheda VPN su LastPass e scarica il file
|
||||||
`.ovpn` allegato; apre OpenVPN Connect → *Upload File* (o *Import
|
`.ovpn` allegato; apre OpenVPN Connect → *Upload File* (o *Import
|
||||||
Profile* → *File*) → *Browse* → il file in *Download*; scrive utente e
|
Profile* → *File*) → *Browse* → il file in *Download*; scrive utente e
|
||||||
password della VPN dalla stessa scheda, spunta *Save password*, *Connect*.
|
password della VPN dalla stessa scheda, spunta *Save password*, *Connect*.
|
||||||
@@ -146,8 +166,11 @@ spiegala in una riga la prima volta.
|
|||||||
elenco preciso di cosa manca e a chi chiederlo. Controlla anche che git
|
elenco preciso di cosa manca e a chi chiederlo. Controlla anche che git
|
||||||
entri su Gitea con il token giusto e che la chiave AWS sia la sua
|
entri su Gitea con il token giusto e che la chiave AWS sia la sua
|
||||||
nell'account di OTO, non solo un utente con lo stesso nome.
|
nell'account di OTO, non solo un utente con lo stesso nome.
|
||||||
8. **`./progetti.sh`**: scarica i progetti che la persona vede su Gitea (lo
|
8. **`./progetti.sh`**: scarica i progetti che la persona vede su Gitea.
|
||||||
lanci tu con i nomi: `./progetti.sh nome1 nome2`). Poi, in ogni progetto:
|
Prima le chiedi in quale cartella (regola 6), poi lo lanci tu con la
|
||||||
|
cartella e i nomi: `./progetti.sh --in "<cartella scelta>" nome1 nome2`.
|
||||||
|
Senza `--in` lo script non scarica niente: un posto di default non c'è
|
||||||
|
apposta. Poi, in ogni progetto:
|
||||||
`./start.sh` per i progetti con pannello, `bin/local-init.sh` per Drupal e
|
`./start.sh` per i progetti con pannello, `bin/local-init.sh` per Drupal e
|
||||||
WordPress. Il resto lo spiega il `CLAUDE.md` di quel progetto.
|
WordPress. Il resto lo spiega il `CLAUDE.md` di quel progetto.
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ La spiegazione completa è su
|
|||||||
```bash
|
```bash
|
||||||
./configura.sh # chiede quello che serve, una cosa per volta
|
./configura.sh # chiede quello che serve, una cosa per volta
|
||||||
./verifica.sh # dice verde o rosso per ogni accesso
|
./verifica.sh # dice verde o rosso per ogni accesso
|
||||||
./progetti.sh # scarica i progetti a cui hai accesso
|
./progetti.sh # chiede dove, e scarica i progetti a cui hai accesso
|
||||||
```
|
```
|
||||||
|
|
||||||
Si possono rilanciare quante volte si vuole: quello che è già a posto non
|
Si possono rilanciare quante volte si vuole: quello che è già a posto non
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ CHIAVE_SSH="$HOME/.ssh/oto_ed25519"
|
|||||||
# PRODUCTION_SSH_KEY in project.conf.sh): sono la stessa chiave, perche' sui
|
# PRODUCTION_SSH_KEY in project.conf.sh): sono la stessa chiave, perche' sui
|
||||||
# server l'amministratore mette quella del profilo Gitea, cioe' questa.
|
# server l'amministratore mette quella del profilo Gitea, cioe' questa.
|
||||||
CHIAVI_SSH_PROGETTI="$HOME/.ssh/oto_staging_ed25519 $HOME/.ssh/oto_production_ed25519"
|
CHIAVI_SSH_PROGETTI="$HOME/.ssh/oto_staging_ed25519 $HOME/.ssh/oto_production_ed25519"
|
||||||
CARTELLA_PROGETTI="${CARTELLA_PROGETTI:-$HOME/Work/workspace/oto}"
|
|
||||||
|
|
||||||
# I server, con i nomi che usano gli script dei progetti. Staging e la
|
# I server, con i nomi che usano gli script dei progetti. Staging e la
|
||||||
# produzione nuova stanno su rete privata: senza VPN non rispondono. Le
|
# produzione nuova stanno su rete privata: senza VPN non rispondono. Le
|
||||||
@@ -51,6 +50,14 @@ titolo () { echo ; echo "${GRASSETTO}$*${FINE}" ; }
|
|||||||
|
|
||||||
c_e () { command -v "$1" > /dev/null 2>&1 ; }
|
c_e () { command -v "$1" > /dev/null 2>&1 ; }
|
||||||
|
|
||||||
|
# Su Mac Homebrew non si mette da solo nel PATH: senza, git e aws installati
|
||||||
|
# con brew sembrano mancare anche se ci sono.
|
||||||
|
if ! c_e brew ; then
|
||||||
|
for B in /opt/homebrew/bin/brew /usr/local/bin/brew ; do
|
||||||
|
[ -x "$B" ] && eval "$("$B" shellenv)" && break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
token_gitea () {
|
token_gitea () {
|
||||||
[ -s "$TOKEN_GITEA_FILE" ] && tr -d '[:space:]' < "$TOKEN_GITEA_FILE"
|
[ -s "$TOKEN_GITEA_FILE" ] && tr -d '[:space:]' < "$TOKEN_GITEA_FILE"
|
||||||
}
|
}
|
||||||
|
|||||||
+39
-5
@@ -2,11 +2,14 @@
|
|||||||
#
|
#
|
||||||
# SCARICA I PROGETTI A CUI HAI ACCESSO SU GITEA.
|
# SCARICA I PROGETTI A CUI HAI ACCESSO SU GITEA.
|
||||||
#
|
#
|
||||||
# ./progetti.sh # elenca e chiede quali scaricare
|
# ./progetti.sh # chiede dove e quali scaricare
|
||||||
# ./progetti.sh nome1 nome2 # scarica questi
|
# ./progetti.sh --in CARTELLA nome1 nome2 # scarica questi in CARTELLA
|
||||||
#
|
#
|
||||||
# Li mette in $CARTELLA_PROGETTI (di solito ~/Work/workspace/oto). Un progetto
|
# La cartella la sceglie la persona, ogni volta: non c'e' un posto di default
|
||||||
# gia' scaricato non si tocca. Vedi solo i repository che l'amministratore ti
|
# (fino al 13/10/2026 era ~/Work/workspace/oto, cioe' la cartella di chi ha
|
||||||
|
# scritto lo script). Si passa con --in o con CARTELLA_PROGETTI; senza, lo
|
||||||
|
# script la chiede, e se non puo' chiederla si ferma. Un progetto gia'
|
||||||
|
# scaricato non si tocca. Vedi solo i repository che l'amministratore ti
|
||||||
# ha dato: se ne manca uno, e' da chiedere a lui.
|
# ha dato: se ne manca uno, e' da chiedere a lui.
|
||||||
# Esce 1 se un progetto chiesto non e' stato scaricato.
|
# Esce 1 se un progetto chiesto non e' stato scaricato.
|
||||||
|
|
||||||
@@ -14,6 +17,34 @@ set -u
|
|||||||
cd "$(dirname "$0")" || exit 1
|
cd "$(dirname "$0")" || exit 1
|
||||||
. ./comune.sh
|
. ./comune.sh
|
||||||
|
|
||||||
|
if [ "${1:-}" = "--in" ] ; then
|
||||||
|
if [ -z "${2:-}" ] ; then
|
||||||
|
male "--in vuole una cartella: ./progetti.sh --in CARTELLA nome1 nome2"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
CARTELLA_PROGETTI="$2"
|
||||||
|
shift 2
|
||||||
|
fi
|
||||||
|
CARTELLA_PROGETTI="${CARTELLA_PROGETTI:-}"
|
||||||
|
if [ -z "$CARTELLA_PROGETTI" ] ; then
|
||||||
|
if [ ! -t 0 ] ; then
|
||||||
|
male "manca la cartella in cui scaricare: ./progetti.sh --in CARTELLA nome1 nome2"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
read -r -p "In quale cartella scarico i progetti? " CARTELLA_PROGETTI
|
||||||
|
if [ -z "$CARTELLA_PROGETTI" ] ; then
|
||||||
|
male "nessuna cartella scelta: non scarico niente"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# La tilde fra virgolette la shell non la espande, e su Windows la persona
|
||||||
|
# puo' scrivere C:\Users\...: in Git Bash cygpath la porta nella forma /c/...
|
||||||
|
case "$CARTELLA_PROGETTI" in
|
||||||
|
"~") CARTELLA_PROGETTI="$HOME" ;;
|
||||||
|
"~/"*) CARTELLA_PROGETTI="$HOME/${CARTELLA_PROGETTI#\~/}" ;;
|
||||||
|
esac
|
||||||
|
c_e cygpath && CARTELLA_PROGETTI="$(cygpath -u "$CARTELLA_PROGETTI")"
|
||||||
|
|
||||||
if [ -z "$(token_gitea)" ] ; then
|
if [ -z "$(token_gitea)" ] ; then
|
||||||
male "token Gitea mancante: lancia prima ./configura.sh"
|
male "token Gitea mancante: lancia prima ./configura.sh"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -76,7 +107,10 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
ERRORI=0
|
ERRORI=0
|
||||||
mkdir -p "$CARTELLA_PROGETTI"
|
if ! mkdir -p "$CARTELLA_PROGETTI" ; then
|
||||||
|
male "non riesco a creare $CARTELLA_PROGETTI"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
titolo "Scarico in $CARTELLA_PROGETTI"
|
titolo "Scarico in $CARTELLA_PROGETTI"
|
||||||
for NOME in $SCELTI ; do
|
for NOME in $SCELTI ; do
|
||||||
# Confronto esatto, non una regex: il nome lo scrive la persona.
|
# Confronto esatto, non una regex: il nome lo scrive la persona.
|
||||||
|
|||||||
Reference in New Issue
Block a user