﻿1
00:00:01,150 --> 00:00:03,130
‫Istruttore: Quindi, dopo tutto

2
00:00:03,130 --> 00:00:06,850
‫questo tempo e tutto questo lavoro per costruire questo enorme progetto

3
00:00:06,850 --> 00:00:09,660
‫completo, è finalmente arrivato il momento di distribuirlo

4
00:00:09,660 --> 00:00:13,370
‫davvero su un server web e condividerlo davvero con il mondo.

5
00:00:13,370 --> 00:00:15,510
‫Quindi, in questo video,

6
00:00:15,510 --> 00:00:18,467
‫imparerai come distribuire un progetto su Heroku.

7
00:00:20,167 --> 00:00:22,610
‫E la prima cosa che dobbiamo

8
00:00:22,610 --> 00:00:25,143
‫fare è installare Heroku sul nostro computer.

9
00:00:26,870 --> 00:00:30,427
‫Quindi, cerchiamo solo Heroku NodeJS.

10
00:00:35,020 --> 00:00:38,050
‫E quindi, qui, abbiamo fondamentalmente una

11
00:00:38,050 --> 00:00:41,530
‫guida introduttiva per NodeJS con Heroku perché puoi

12
00:00:41,530 --> 00:00:45,000
‫ospitare tutti i tipi di app su

13
00:00:45,000 --> 00:00:48,700
‫Heroku come le applicazioni PHP o Ruby on Rails.

14
00:00:48,700 --> 00:00:51,190
‫Quindi, non funziona solo per NodeJS.

15
00:00:51,190 --> 00:00:54,420
‫E daremo un'occhiata più da vicino a Heroku tra

16
00:00:54,420 --> 00:00:57,520
‫un secondo, ma per ora, iniziamo semplicemente installando

17
00:00:57,520 --> 00:00:59,200
‫questo programma qui.

18
00:00:59,200 --> 00:01:02,630
‫Quindi, sono nella parte di installazione di questa guida qui.

19
00:01:02,630 --> 00:01:05,580
‫E quindi, ora, vai avanti e installa il

20
00:01:05,580 --> 00:01:08,540
‫programma di installazione per la tua piattaforma, che

21
00:01:08,540 --> 00:01:10,660
‫sia macOS, Windows o Linux.

22
00:01:10,660 --> 00:01:14,660
‫O, in questo caso qui, immagino che funzioni solo per Ubuntu.

23
00:01:14,660 --> 00:01:17,270
‫No, in realtà qui dice che è

24
00:01:17,270 --> 00:01:19,770
‫disponibile anche per altri Linux.

25
00:01:19,770 --> 00:01:22,260
‫Ad ogni modo, vai avanti e installa la

26
00:01:22,260 --> 00:01:24,010
‫versione che ti serve

27
00:01:24,010 --> 00:01:27,090
‫per il tuo computer e poi, nel frattempo, mentre

28
00:01:27,090 --> 00:01:30,190
‫si installa, vai avanti e crea un nuovo account.

29
00:01:30,190 --> 00:01:32,700
‫Quindi, fai clic qui su Iscriviti

30
00:01:32,700 --> 00:01:36,010
‫e quindi apri il tuo account Heroku gratuito.

31
00:01:36,010 --> 00:01:38,890
‫Quindi, ancora un altro account che devi creare.

32
00:01:38,890 --> 00:01:41,640
‫Quindi, ci sono davvero molti account

33
00:01:41,640 --> 00:01:45,140
‫diversi che devi creare per completare questo progetto, ma

34
00:01:45,140 --> 00:01:49,310
‫immagino che sia proprio così che funziona lo sviluppo web moderno.

35
00:01:49,310 --> 00:01:51,730
‫Ad ogni modo, dopo aver creato

36
00:01:51,730 --> 00:01:55,050
‫il tuo account, diamo una rapida occhiata qui al

37
00:01:55,050 --> 00:01:59,830
‫sito web di Heroku solo per avere una panoramica di cosa tratta questa piattaforma.

38
00:01:59,830 --> 00:02:01,700
‫Quindi, Heroku è questa

39
00:02:01,700 --> 00:02:04,870
‫piattaforma che rende davvero, davvero facile e senza

40
00:02:04,870 --> 00:02:07,290
‫problemi distribuire le tue applicazioni web.

41
00:02:07,290 --> 00:02:10,360
‫E, di nuovo, possono usare qualsiasi linguaggio tu

42
00:02:10,360 --> 00:02:11,650
‫possa immaginare.

43
00:02:11,650 --> 00:02:14,600
‫Come vedi, NodeJS, Ruby on Rails,

44
00:02:14,600 --> 00:02:17,820
‫questo immagino sia Go, o in realtà

45
00:02:17,820 --> 00:02:22,050
‫è Java, o PHP, Python, questo è Go, giusto?

46
00:02:22,050 --> 00:02:27,050
‫E così, tutti i tipi di app funzionano davvero su Heroku.

47
00:02:28,380 --> 00:02:30,890
‫Quindi, vediamo cosa dicono qui.

48
00:02:30,890 --> 00:02:35,163
‫E questo è principalmente solo un discorso di marketing, immagino.

49
00:02:36,020 --> 00:02:38,220
‫Quindi, niente di troppo interessante qui.

50
00:02:38,220 --> 00:02:40,660
‫Ma, ovviamente, puoi dare un'occhiata qui a

51
00:02:40,660 --> 00:02:42,550
‫tutti questi diversi manuali.

52
00:02:42,550 --> 00:02:45,690
‫E, in realtà, è gratuito iniziare con Heroku

53
00:02:45,690 --> 00:02:47,900
‫su un'applicazione davvero semplice.

54
00:02:47,900 --> 00:02:51,120
‫Ma, ovviamente, una volta che inizi a salire di

55
00:02:51,120 --> 00:02:53,083
‫livello, dovrai iniziare a pagare.

56
00:02:54,400 --> 00:02:56,470
‫Ma, qui, la versione gratuita,

57
00:02:56,470 --> 00:02:59,600
‫come puoi vedere, include tutte le funzionalità principali della piattaforma.

58
00:02:59,600 --> 00:03:01,820
‫Puoi anche aggiungere domini personalizzati.

59
00:03:01,820 --> 00:03:03,800
‫Ma l'unico problema è

60
00:03:03,800 --> 00:03:06,550
‫che l'applicazione fondamentalmente dormirà, quindi, in pratica,

61
00:03:06,550 --> 00:03:08,210
‫dopo 30 minuti

62
00:03:08,210 --> 00:03:10,283
‫senza che nessuno acceda all'applicazione.

63
00:03:11,760 --> 00:03:13,460
‫Ma, comunque, puoi dare

64
00:03:13,460 --> 00:03:15,660
‫un'occhiata a tutto questo da solo.

65
00:03:15,660 --> 00:03:18,870
‫Quindi, torniamo ora al nostro progetto qui.

66
00:03:18,870 --> 00:03:21,430
‫E, per iniziare con il processo

67
00:03:21,430 --> 00:03:25,300
‫di distribuzione, iniziamo accedendo a Heroku dalla nostra riga di comando.

68
00:03:25,300 --> 00:03:28,370
‫E funzionerà grazie all'installazione che abbiamo appena

69
00:03:28,370 --> 00:03:29,367
‫fatto.

70
00:03:30,290 --> 00:03:32,970
‫Va bene, diamogli un po' più di spazio qui.

71
00:03:32,970 --> 00:03:36,763
‫Puliscilo e ora scrivi il login heroku.

72
00:03:40,060 --> 00:03:43,350
‫Quindi, se la tua installazione di Heroku ha avuto

73
00:03:43,350 --> 00:03:47,410
‫successo, dopo aver digitato heroku login, dovresti vedere questo messaggio qui, premi

74
00:03:47,410 --> 00:03:50,100
‫un tasto qualsiasi per aprire il browser.

75
00:03:50,100 --> 00:03:52,890
‫Quindi, premi semplicemente un tasto qualsiasi, come

76
00:03:52,890 --> 00:03:55,663
‫dice, tranne Q perché uscirà dall'app.

77
00:03:57,270 --> 00:04:00,880
‫E così, questo ti aprirà una finestra in

78
00:04:00,880 --> 00:04:02,243
‫cui puoi accedere.

79
00:04:04,690 --> 00:04:07,250
‫E, dopodiché, proprio come per

80
00:04:07,250 --> 00:04:11,110
‫magia, accederai a Heroku nella tua riga di comando.

81
00:04:11,110 --> 00:04:13,650
‫Quindi, probabilmente dovrebbe volerci un po' e,

82
00:04:14,490 --> 00:04:17,230
‫a volte, non funziona nemmeno al primo tentativo.

83
00:04:17,230 --> 00:04:19,090
‫Quindi, in realtà mi è successo prima.

84
00:04:19,090 --> 00:04:20,873
‫E quindi, premi semplicemente il controllo C.

85
00:04:22,990 --> 00:04:26,680
‫E quindi, su un Mac, questo è davvero il controllo C, non il comando C.

86
00:04:26,680 --> 00:04:28,163
‫E. Proviamo di nuovo.

87
00:04:29,370 --> 00:04:33,493
‫Premi un tasto qualsiasi, torna al browser, accedi di nuovo.

88
00:04:35,980 --> 00:04:38,750
‫Torna indietro di nuovo, e allora questo è fatto.

89
00:04:38,750 --> 00:04:42,480
‫Quindi, vedi, ora ho effettuato l'accesso con il mio indirizzo email.

90
00:04:42,480 --> 00:04:44,890
‫Quindi, ancora una volta, questa non era

91
00:04:44,890 --> 00:04:47,920
‫la prima volta che non funzionava per me la prima volta.

92
00:04:47,920 --> 00:04:49,500
‫E quindi, se

93
00:04:49,500 --> 00:04:53,120
‫ti è successo, fallo esattamente come l'ho fatto io qui.

94
00:04:53,120 --> 00:04:55,130
‫Ad ogni modo, ora, con questo,

95
00:04:55,130 --> 00:04:57,660
‫abbiamo effettuato l'accesso a Heroku qui nella nostra

96
00:04:57,660 --> 00:05:00,993
‫console e quindi dovremmo essere in grado di creare un nuovo progetto.

97
00:05:02,360 --> 00:05:05,560
‫Ora, prima di farlo, dobbiamo effettivamente cambiare

98
00:05:05,560 --> 00:05:10,480
‫qualcosa nel nostro pacchetto NPM. json file.

99
00:05:10,480 --> 00:05:11,650
‫Quindi, questo.

100
00:05:11,650 --> 00:05:13,760
‫E questo perché Heroku utilizza

101
00:05:13,760 --> 00:05:17,810
‫effettivamente il nostro comando di avvio qui per avviare la nostra applicazione.

102
00:05:17,810 --> 00:05:22,040
‫Ora, in produzione, non vogliamo usare nodemon qui.

103
00:05:22,040 --> 00:05:23,870
‫Vogliamo semplicemente eseguire la

104
00:05:23,870 --> 00:05:26,920
‫nostra applicazione utilizzando il comando node e non nodemon

105
00:05:26,920 --> 00:05:29,950
‫perché in realtà è solo per lo sviluppo.

106
00:05:29,950 --> 00:05:32,970
‫E quindi, cambiamolo e duplicherò questa linea e

107
00:05:33,937 --> 00:05:35,587
‫poi la chiameremo dev.

108
00:05:36,450 --> 00:05:38,953
‫E poi, quello iniziale sarà solo nodo.

109
00:05:40,690 --> 00:05:43,810
‫Quindi, di nuovo, nel tuo pacchetto. json, dovresti sempre

110
00:05:43,810 --> 00:05:46,890
‫avere questo script di avvio come questo.

111
00:05:46,890 --> 00:05:49,773
‫Quindi, il comando node e quindi il tuo punto di ingresso.

112
00:05:50,610 --> 00:05:53,920
‫Ora, è anche importante per

113
00:05:53,920 --> 00:05:57,490
‫Heroku che tu specifichi questi motori qui.

114
00:05:57,490 --> 00:05:59,670
‫E così, lo abbiamo fatto prima,

115
00:05:59,670 --> 00:06:01,720
‫credo, perché alcuni pacchetti,

116
00:06:01,720 --> 00:06:05,230
‫o in realtà perché ESLint lo richiedeva per funzionare correttamente.

117
00:06:05,230 --> 00:06:07,440
‫Ma, se non l'avessimo impostato

118
00:06:07,440 --> 00:06:11,213
‫allora, beh, allora avremmo bisogno di impostarlo davvero a questo punto.

119
00:06:12,610 --> 00:06:14,550
‫Ora, dal momento che

120
00:06:14,550 --> 00:06:18,353
‫abbiamo cambiato questo file, ora, dobbiamo salvare queste modifiche nel

121
00:06:19,200 --> 00:06:24,200
‫nostro repository, quindi aggiungiamo git add package. json qui.

122
00:06:24,560 --> 00:06:25,693
‫E poi, git commit.

123
00:06:31,820 --> 00:06:34,323
‫E poi, con un utile messaggio di commit.

124
00:06:37,652 --> 00:06:39,660
‫Ora, un'altra cosa che è davvero importante

125
00:06:39,660 --> 00:06:42,640
‫quando distribuisci un'applicazione su Heroku è che ascolti il port

126
00:06:42,640 --> 00:06:46,543
‫durante il processo. avv. PORTA.

127
00:06:47,580 --> 00:06:52,580
‫Quindi, proprio qui nel server, in realtà lo facciamo qui.

128
00:06:54,500 --> 00:06:59,100
‫Quindi, specifichiamo la variabile port come process. avv. PORTA.

129
00:06:59,100 --> 00:07:02,460
‫E quindi, di nuovo, su Heroku, è assolutamente obbligatorio

130
00:07:02,460 --> 00:07:04,850
‫perché altrimenti non funzionerà affatto.

131
00:07:04,850 --> 00:07:07,010
‫Quindi, se qui, ad esempio,

132
00:07:07,010 --> 00:07:10,130
‫abbiamo appena specificato una porta casuale, come 3000

133
00:07:10,130 --> 00:07:11,780
‫qui, allora non

134
00:07:13,035 --> 00:07:15,050
‫funzionerebbe davvero e questo

135
00:07:15,050 --> 00:07:18,730
‫perché dietro le quinte, Heroku assegnerà effettivamente una porta

136
00:07:18,730 --> 00:07:20,780
‫casuale a questa variabile d'ambiente.

137
00:07:20,780 --> 00:07:23,270
‫Ma un po' di più su questo in

138
00:07:24,310 --> 00:07:26,320
‫un secondo perché ora siamo

139
00:07:26,320 --> 00:07:28,780
‫davvero pronti per l'implementazione vera e propria.

140
00:07:28,780 --> 00:07:31,890
‫E, per farlo, creiamo un nuovissimo progetto Heroku nella

141
00:07:31,890 --> 00:07:33,420
‫nostra cartella del progetto.

142
00:07:33,420 --> 00:07:36,830
‫Quindi, assicurati di essere davvero nella tua cartella principale

143
00:07:36,830 --> 00:07:38,700
‫e poi, una volta

144
00:07:38,700 --> 00:07:42,240
‫che sei sicuro di essere lì e hai effettuato

145
00:07:42,240 --> 00:07:46,943
‫l'accesso a Heroku, cosa che abbiamo fatto prima, puoi quindi scrivere heroku create.

146
00:07:48,160 --> 00:07:52,000
‫E questo creerà quindi una nuova app fondamentalmente con

147
00:07:52,000 --> 00:07:53,890
‫un nome completamente casuale.

148
00:07:53,890 --> 00:07:57,060
‫Quindi, nel mio caso, sono radiant-springs e poi

149
00:07:57,060 --> 00:07:59,320
‫questo numero, ma la tua

150
00:07:59,320 --> 00:08:02,350
‫applicazione, ovviamente, avrà un nome completamente diverso.

151
00:08:02,350 --> 00:08:04,020
‫Ora, ciò che ha

152
00:08:04,020 --> 00:08:06,580
‫fatto è stato creare effettivamente un nuovo ramo

153
00:08:06,580 --> 00:08:08,290
‫remoto nel nostro repository Git.

154
00:08:08,290 --> 00:08:10,500
‫E questo ramo si chiama heroku.

155
00:08:10,500 --> 00:08:14,090
‫Quindi, ricorda come prima, in una delle lezioni precedenti, abbiamo

156
00:08:14,090 --> 00:08:17,150
‫aggiunto un ramo remoto che puntava a GitHub e

157
00:08:17,150 --> 00:08:19,263
‫quel ramo era chiamato origine.

158
00:08:20,160 --> 00:08:23,530
‫E così, abbiamo inviato il nostro codice a quel

159
00:08:23,530 --> 00:08:27,423
‫ramo remoto usando git push origin master, quindi in questo modo.

160
00:08:29,090 --> 00:08:30,320
‫Ricordati che?

161
00:08:30,320 --> 00:08:31,610
‫E così, ora, come

162
00:08:31,610 --> 00:08:35,040
‫ho detto, abbiamo un nuovo ramo remoto qui, che si chiama heroku.

163
00:08:35,040 --> 00:08:38,420
‫E quindi, davvero, il processo di distribuzione della nostra applicazione

164
00:08:38,420 --> 00:08:41,960
‫è semplice come inviare il nostro codice a quel ramo remoto.

165
00:08:41,960 --> 00:08:46,740
‫Quindi, git push heroku master.

166
00:08:46,740 --> 00:08:49,450
‫E, ha davvero bisogno di essere il ramo principale.

167
00:08:49,450 --> 00:08:53,033
‫È l'unico ramo per cui funziona questa distribuzione.

168
00:08:53,870 --> 00:08:55,580
‫Ma, nel nostro caso,

169
00:08:55,580 --> 00:08:57,700
‫come vedi qui, siamo effettivamente nel

170
00:08:57,700 --> 00:09:01,823
‫nostro ramo principale e puoi anche vederlo qui nell'angolo di VS Code.

171
00:09:03,020 --> 00:09:04,690
‫E quindi, non c'è problema.

172
00:09:04,690 --> 00:09:06,670
‫Quindi, eseguiamo ora questo

173
00:09:06,670 --> 00:09:08,780
‫comando, che dovrebbe richiedere un paio

174
00:09:08,780 --> 00:09:11,580
‫di tempo perché, ovviamente, caricherà tutti i tuoi

175
00:09:11,580 --> 00:09:14,323
‫file che sono nel repository fino a Heroku.

176
00:09:18,330 --> 00:09:22,340
‫E ora, vedete tutto questo processo in corso e quindi ciò che

177
00:09:22,340 --> 00:09:23,327
‫sta facendo

178
00:09:23,327 --> 00:09:26,640
‫è che in realtà sta installando tutte le nostre dipendenze

179
00:09:26,640 --> 00:09:28,380
‫qui nella nostra nuova applicazione.

180
00:09:28,380 --> 00:09:30,357
‫Quindi, nella nostra applicazione che è ora su Heroku.

181
00:09:33,500 --> 00:09:35,970
‫Quindi, aspettiamo che tutto questo sia

182
00:09:35,970 --> 00:09:39,153
‫finito e ci vediamo quando questo processo è finito.

183
00:09:40,470 --> 00:09:42,270
‫E così, questo è fatto.

184
00:09:42,270 --> 00:09:46,350
‫Quindi, spero che tu abbia ricevuto il messaggio, Verifica distribuzione in corso... fatto.

185
00:09:46,350 --> 00:09:50,610
‫Quindi, vedete, l'avvio e quindi significa davvero che la nostra

186
00:09:50,610 --> 00:09:53,320
‫applicazione è ora distribuita su Heroku

187
00:09:53,320 --> 00:09:55,023
‫su questo URL.

188
00:09:56,240 --> 00:09:58,770
‫Quindi, vedi che la build ha successo.

189
00:09:58,770 --> 00:10:01,920
‫E, davvero, tutti questi messaggi di cui

190
00:10:01,920 --> 00:10:04,190
‫ho già parlato prima.

191
00:10:04,190 --> 00:10:06,810
‫E così, ora, per aprire la nostra

192
00:10:06,810 --> 00:10:09,703
‫applicazione, tutto ciò che dobbiamo scrivere è heroku open.

193
00:10:11,240 --> 00:10:13,750
‫Ora, non ci aspettiamo che funzioni ancora

194
00:10:13,750 --> 00:10:16,250
‫perché tutte le nostre variabili d'ambiente

195
00:10:16,250 --> 00:10:17,620
‫non sono

196
00:10:18,670 --> 00:10:22,780
‫in realtà definite perché abbiamo escluso questo file di configurazione qui

197
00:10:22,780 --> 00:10:24,163
‫dal nostro repository Git.

198
00:10:25,560 --> 00:10:27,420
‫Ma, comunque, solo per il

199
00:10:27,420 --> 00:10:30,720
‫gusto di farlo, proviamo ad aprire la nostra applicazione.

200
00:10:30,720 --> 00:10:34,450
‫E così, in effetti, questo apre il nostro URL, in questo

201
00:10:34,450 --> 00:10:38,517
‫caso, a radiant-springs-85848. herokuapp. com.

202
00:10:41,100 --> 00:10:44,950
‫Quindi, fondamentalmente, è il sottodominio di Heroku.

203
00:10:44,950 --> 00:10:46,730
‫E così, ancora una volta,

204
00:10:46,730 --> 00:10:49,320
‫come previsto, abbiamo effettivamente riscontrato un errore qui.

205
00:10:49,320 --> 00:10:52,430
‫E, ancora una volta, questo perché le nostre variabili d'ambiente,

206
00:10:52,430 --> 00:10:55,030
‫a questo punto, non sono ancora definite.

207
00:10:55,030 --> 00:10:57,730
‫Ora, possiamo anche dare un'occhiata a questi

208
00:10:57,730 --> 00:10:59,850
‫errori nei log di Heroku.

209
00:10:59,850 --> 00:11:02,140
‫Quindi, lascia che te lo mostri anche io.

210
00:11:02,140 --> 00:11:06,023
‫Quindi, heroku registra --tail.

211
00:11:07,710 --> 00:11:11,313
‫Quindi, qui, vedi lo stato cambiato da memorizzazione a crash,

212
00:11:13,100 --> 00:11:15,130
‫quindi vediamo cosa abbiamo qui.

213
00:11:15,130 --> 00:11:17,170
‫In realtà, vedi il messaggio di errore

214
00:11:17,170 --> 00:11:18,930
‫che abbiamo creato noi stessi qui.

215
00:11:18,930 --> 00:11:21,530
‫Quindi, ECCEZIONE NON CATTURATA con questa emoji

216
00:11:21,530 --> 00:11:23,060
‫e poi Spegnimento...

217
00:11:27,320 --> 00:11:28,700
‫E, come vedi

218
00:11:28,700 --> 00:11:31,980
‫qui, non è possibile leggere la proprietà 'sostituire' di undefined.

219
00:11:31,980 --> 00:11:35,170
‫E così, di nuovo, è perché le variabili d'ambiente

220
00:11:35,170 --> 00:11:37,510
‫non sono definite a questo punto.

221
00:11:37,510 --> 00:11:41,053
‫Quindi, usciamo di nuovo da questi registri qui, con il controllo C.

222
00:11:42,860 --> 00:11:44,810
‫E quindi, ora, definiamo

223
00:11:44,810 --> 00:11:46,800
‫effettivamente queste variabili d'ambiente per

224
00:11:46,800 --> 00:11:48,790
‫far funzionare la nostra applicazione.

225
00:11:48,790 --> 00:11:50,060
‫E il modo

226
00:11:50,060 --> 00:11:52,740
‫in cui lo facciamo è specificare ogni variabile

227
00:11:52,740 --> 00:11:54,960
‫d'ambiente usando uno speciale comando Heroku.

228
00:11:54,960 --> 00:11:58,080
‫Quindi, Heroku e altre piattaforme di hosting, non usano

229
00:11:58,080 --> 00:12:01,000
‫un file . env come abbiamo fatto qui

230
00:12:01,000 --> 00:12:03,793
‫in fase di sviluppo per tutte le nostre variabili di configurazione.

231
00:12:05,160 --> 00:12:09,560
‫Quindi, ancora una volta, qui in fase di sviluppo, usiamo questa configurazione. env per mettere le

232
00:12:09,560 --> 00:12:11,560
‫nostre variabili d'ambiente.

233
00:12:11,560 --> 00:12:13,730
‫Ma, qui in Heroku, li definiremo in

234
00:12:13,730 --> 00:12:14,830
‫un modo diverso.

235
00:12:14,830 --> 00:12:16,610
‫Ma, poi, nel nostro codice, tutto

236
00:12:16,610 --> 00:12:18,543
‫ciò che abbiamo funziona esattamente allo stesso modo.

237
00:12:19,856 --> 00:12:22,120
‫Quindi, iniziamo con la variabile

238
00:12:22,120 --> 00:12:24,650
‫NODE_ENV che dobbiamo impostare su produzione.

239
00:12:24,650 --> 00:12:29,650
‫E così, lo facciamo dicendo heroku config:set e

240
00:12:32,390 --> 00:12:36,160
‫poi il nome della variabile, NODE_ENV=production.

241
00:12:40,930 --> 00:12:43,780
‫E, in realtà, questa variabile NODE_ENV è

242
00:12:43,780 --> 00:12:47,220
‫effettivamente impostata per impostazione predefinita su produzione da Heroku.

243
00:12:47,220 --> 00:12:49,980
‫Ma, comunque, assicuriamoci al 100% che

244
00:12:49,980 --> 00:12:52,240
‫rimanga davvero così,

245
00:12:52,240 --> 00:12:54,760
‫anche se Heroku cambia qualcosa.

246
00:12:54,760 --> 00:12:57,440
‫Quindi, davvero, per sicurezza, continuiamo a farlo

247
00:12:57,440 --> 00:13:00,610
‫perché, come sappiamo, molto del nostro codice dipende effettivamente

248
00:13:00,610 --> 00:13:03,130
‫da questa variabile e può anche

249
00:13:03,130 --> 00:13:07,310
‫far funzionare le applicazioni Node fino a tre volte più velocemente.

250
00:13:07,310 --> 00:13:09,430
‫Penso che ne abbiamo parlato prima.

251
00:13:09,430 --> 00:13:12,610
‫Quindi, l'importanza di impostare NODE_ENV in produzione.

252
00:13:12,610 --> 00:13:15,913
‫Ma, comunque, è una buona cosa farlo davvero.

253
00:13:16,810 --> 00:13:18,950
‫Quindi, premi semplicemente Invio e

254
00:13:18,950 --> 00:13:21,400
‫imposterà questa variabile di ambiente e

255
00:13:21,400 --> 00:13:22,980
‫riavvierà l'applicazione.

256
00:13:22,980 --> 00:13:25,500
‫E quindi, ora, tutto ciò che

257
00:13:25,500 --> 00:13:27,640
‫dobbiamo fare è fondamentalmente

258
00:13:27,640 --> 00:13:30,580
‫farlo per tutte le variabili d'ambiente rilevanti.

259
00:13:30,580 --> 00:13:34,490
‫Quindi, abbiamo fatto NODE_ENV, ora, la porta, non la imposteremo

260
00:13:34,490 --> 00:13:36,360
‫perché, come ho detto

261
00:13:36,360 --> 00:13:38,380
‫prima, Heroku in realtà, dietro

262
00:13:38,380 --> 00:13:41,533
‫le quinte, assegnerà una porta casuale alla nostra applicazione.

263
00:13:42,470 --> 00:13:44,913
‫E quindi, il prossimo passo, aggiungiamo il database.

264
00:13:46,390 --> 00:13:48,290
‫E, in realtà, copiamo tutto questo.

265
00:13:52,550 --> 00:13:54,000
‫E poi, incollalo qui.

266
00:13:54,940 --> 00:13:56,960
‫E questo non ha funzionato davvero,

267
00:13:56,960 --> 00:13:59,260
‫quindi proviamoci con alcune virgolette qui forse.

268
00:14:04,170 --> 00:14:06,580
‫Sì, sembra molto meglio.

269
00:14:06,580 --> 00:14:09,380
‫Successivamente, la password del database.

270
00:14:10,853 --> 00:14:12,520
‫Chiariamolo qui.

271
00:14:18,667 --> 00:14:20,334
‫Avanti, il segreto.

272
00:14:24,720 --> 00:14:26,253
‫Quindi, proprio così.

273
00:14:30,587 --> 00:14:34,263
‫E quindi, è un po' noioso farlo per tutti loro, ma,

274
00:14:35,740 --> 00:14:38,160
‫beh, dobbiamo farlo solo una volta,

275
00:14:38,160 --> 00:14:40,853
‫quindi non è davvero un grosso problema.

276
00:14:43,981 --> 00:14:46,710
‫Ora, abbiamo anche bisogno di questo qui

277
00:14:48,020 --> 00:14:51,070
‫perché tutto questo qui è solo per mailtrap

278
00:14:51,070 --> 00:14:54,190
‫e in realtà non ne abbiamo bisogno in produzione

279
00:14:54,190 --> 00:14:56,950
‫perché ricorda che quando siamo in produzione, tutte

280
00:14:56,950 --> 00:15:00,300
‫le nostre e-mail vengono effettivamente inviate utilizzando SENDGRID e

281
00:15:00,300 --> 00:15:02,230
‫non più utilizzando mailtrap.

282
00:15:02,230 --> 00:15:04,270
‫E così, nella nostra applicazione Heroku,

283
00:15:04,270 --> 00:15:06,563
‫non abbiamo bisogno di questi per le variabili.

284
00:15:07,520 --> 00:15:09,773
‫Ma abbiamo bisogno dell'e-mail da.

285
00:15:13,520 --> 00:15:15,163
‫Quindi, questo è il nostro prossimo.

286
00:15:17,820 --> 00:15:19,960
‫Quindi, abbiamo bisogno di SENDGRID_USERNAME

287
00:15:26,670 --> 00:15:28,333
‫e della password.

288
00:15:37,330 --> 00:15:40,963
‫E infine, la nostra chiave a strisce segreta.

289
00:15:46,320 --> 00:15:48,130
‫E, con questo, penso

290
00:15:48,130 --> 00:15:51,530
‫che tutte le nostre variabili rilevanti siano impostate qui.

291
00:15:51,530 --> 00:15:55,653
‫E quindi, proviamo di nuovo, heroku aperto.

292
00:15:59,850 --> 00:16:04,850
‫E sembra perfetto, bellissimo.

293
00:16:04,960 --> 00:16:08,200
‫Quindi, davvero, la nostra applicazione è ora distribuita

294
00:16:08,200 --> 00:16:12,610
‫su sorgenti radianti o qualunque cosa tu abbia nel tuo caso

295
00:16:12,610 --> 00:16:15,343
‫e tutto sembra funzionare magnificamente.

296
00:16:16,300 --> 00:16:18,083
‫Quindi, tutte le nostre immagini sono qui.

297
00:16:19,050 --> 00:16:22,393
‫Diamo un'occhiata anche qui a una singola pagina.

298
00:16:25,280 --> 00:16:29,500
‫E, in effetti, tutto ciò funziona magnificamente.

299
00:16:29,500 --> 00:16:31,333
‫Quindi, appare anche la nostra mappa.

300
00:16:34,190 --> 00:16:37,850
‫E, sì, sembra funzionare bene.

301
00:16:37,850 --> 00:16:41,970
‫E il fatto che tutto questo funzioni così perfettamente mostra anche

302
00:16:41,970 --> 00:16:43,360
‫la bellezza

303
00:16:43,360 --> 00:16:46,550
‫di avere un database ospitato tutto il tempo

304
00:16:46,550 --> 00:16:48,690
‫anche durante lo sviluppo perché

305
00:16:48,690 --> 00:16:50,910
‫non importa se siamo in fase

306
00:16:50,910 --> 00:16:54,890
‫di sviluppo o produzione, il nostro database continua a funzionare.

307
00:16:54,890 --> 00:16:57,360
‫Quindi, se avessimo utilizzato un

308
00:16:57,360 --> 00:17:00,030
‫database locale, ora dovremmo esportare tutti i

309
00:17:00,030 --> 00:17:03,890
‫dati da quel database locale, quindi creare un database ospitato

310
00:17:03,890 --> 00:17:07,600
‫e caricare tutti i dati su quel database ospitato.

311
00:17:07,600 --> 00:17:10,460
‫E questo, ovviamente, creerebbe un passaggio in più e un

312
00:17:10,460 --> 00:17:12,160
‫po' di lavoro in più.

313
00:17:12,160 --> 00:17:15,340
‫E, di nuovo, con questo, funziona.

314
00:17:15,340 --> 00:17:19,210
‫Quindi, questa è una bella esperienza per gli sviluppatori proprio lì.

315
00:17:19,210 --> 00:17:22,743
‫Quindi, vediamo se possiamo anche accedere qui, cosa

316
00:17:23,830 --> 00:17:26,370
‫che, ovviamente, dovrebbe essere possibile con

317
00:17:26,370 --> 00:17:28,900
‫laura@esempio 2, 3, 4.

318
00:17:34,700 --> 00:17:36,313
‫E, sembra così.

319
00:17:39,697 --> 00:17:40,823
‫Così bello.

320
00:17:41,960 --> 00:17:45,353
‫Vediamo se tutti i nostri tour prenotati sono ancora

321
00:17:46,470 --> 00:17:48,440
‫qui, ma perché non dovrebbero?

322
00:17:48,440 --> 00:17:51,270
‫E, in effetti, beh, in realtà è solo uno,

323
00:17:51,270 --> 00:17:53,373
‫ma, in effetti, è qui.

324
00:17:54,460 --> 00:17:58,100
‫Quindi, fantastico, è assolutamente fantastico.

325
00:17:58,100 --> 00:18:00,420
‫E ora, diamo solo una

326
00:18:00,420 --> 00:18:02,763
‫rapida occhiata alla nostra dashboard di Heroku.

327
00:18:07,270 --> 00:18:09,293
‫Quindi, qui, apriamo Heroku.

328
00:18:11,010 --> 00:18:12,343
‫Chiudi questi due.

329
00:18:14,120 --> 00:18:16,390
‫E quindi, poiché abbiamo effettuato

330
00:18:16,390 --> 00:18:19,810
‫l'accesso in precedenza qui, questo dovrebbe portarci automaticamente alla

331
00:18:19,810 --> 00:18:23,060
‫dashboard e quella dashboard ti mostrerà, per impostazione

332
00:18:23,060 --> 00:18:26,210
‫predefinita, tutte le applicazioni che hai attualmente distribuito.

333
00:18:26,210 --> 00:18:28,800
‫E così, quella che abbiamo appena messo in

334
00:18:28,800 --> 00:18:30,970
‫campo è questa sorgente radiante qui.

335
00:18:30,970 --> 00:18:33,260
‫Quindi, apriamolo.

336
00:18:33,260 --> 00:18:34,390
‫Quindi, qui, sul

337
00:18:34,390 --> 00:18:36,180
‫lato destro, puoi vedere tutta l'attività.

338
00:18:36,180 --> 00:18:39,390
‫Ad esempio, impostando tutte queste variabili di configurazione

339
00:18:39,390 --> 00:18:41,040
‫che abbiamo appena fatto.

340
00:18:41,040 --> 00:18:45,810
‫Hai le tue risorse e molte di queste sono interessanti solo se hai

341
00:18:45,810 --> 00:18:47,920
‫un banco prova a pagamento.

342
00:18:47,920 --> 00:18:50,390
‫E un dyno è in realtà solo il

343
00:18:50,390 --> 00:18:53,340
‫termine che Heroku usa fondamentalmente per un contenitore in cui

344
00:18:53,340 --> 00:18:54,913
‫viene eseguita la tua applicazione.

345
00:18:56,366 --> 00:18:58,390
‫Quindi, abbiamo alcune metriche in cui possiamo

346
00:18:58,390 --> 00:19:01,410
‫vedere chi sta accedendo all'app, ma, ancora una volta, funziona

347
00:19:01,410 --> 00:19:03,250
‫solo se hai un

348
00:19:03,250 --> 00:19:05,093
‫hobby o un banco prova professionista.

349
00:19:06,950 --> 00:19:09,460
‫Ma ciò che conta davvero qui sono

350
00:19:09,460 --> 00:19:10,920
‫le impostazioni e quindi

351
00:19:10,920 --> 00:19:14,420
‫qui volevo mostrarti che possiamo rivelare le variabili di configurazione.

352
00:19:14,420 --> 00:19:17,000
‫E così, invece di modificarli o

353
00:19:17,000 --> 00:19:20,253
‫aggiungerli nella riga di comando, potremmo farlo anche qui.

354
00:19:21,650 --> 00:19:24,170
‫Quindi, questi sono tutti quelli che abbiamo appena aggiunto nella

355
00:19:24,170 --> 00:19:25,223
‫riga di comando.

356
00:19:27,250 --> 00:19:31,540
‫Poi, un'altra cosa molto importante è quassù in More, possiamo effettivamente

357
00:19:31,540 --> 00:19:33,623
‫vedere i nostri log.

358
00:19:37,560 --> 00:19:40,710
‫Quindi, aspettiamo qui.

359
00:19:40,710 --> 00:19:44,430
‫E così, Heroku ti dà tutti questi log davvero per

360
00:19:44,430 --> 00:19:47,190
‫tutto ciò che accade nella tua applicazione.

361
00:19:47,190 --> 00:19:49,640
‫Quindi, quando abbiamo aperto l'app nel browser,

362
00:19:49,640 --> 00:19:52,300
‫ha richiesto tutti questi file, come puoi

363
00:19:52,300 --> 00:19:54,283
‫vedere qui, ad esempio.

364
00:19:56,600 --> 00:19:58,380
‫Quindi, davvero, tutto quello che

365
00:19:58,380 --> 00:20:00,870
‫sta succedendo sarà proprio qui in questi registri.

366
00:20:00,870 --> 00:20:04,210
‫E così, se la tua app si blocca o se succede qualcosa e praticamente tutto

367
00:20:04,210 --> 00:20:07,660
‫ciò per cui abbiamo usato una console. log finirà per

368
00:20:07,660 --> 00:20:10,843
‫essere mostrato qui in questi log.

369
00:20:10,843 --> 00:20:13,400
‫E così, questi erano i log di Heroku di

370
00:20:13,400 --> 00:20:15,933
‫cui ho parlato in una delle lezioni precedenti.

371
00:20:17,987 --> 00:20:19,770
‫Ora, una cosa che possiamo

372
00:20:19,770 --> 00:20:22,300
‫fare è cambiare effettivamente il nome della nostra applicazione.

373
00:20:22,300 --> 00:20:25,410
‫Quindi, invece di chiamarlo con questo nome casuale,

374
00:20:25,410 --> 00:20:27,800
‫possiamo dargli un nome più significativo.

375
00:20:27,800 --> 00:20:29,960
‫Ora, potremmo farlo qui,

376
00:20:29,960 --> 00:20:34,090
‫ma ciò rovinerebbe la nostra applicazione nel terminale sul

377
00:20:34,090 --> 00:20:35,810
‫nostro computer locale.

378
00:20:35,810 --> 00:20:38,620
‫E quindi, invece, quello che facciamo è

379
00:20:38,620 --> 00:20:40,763
‫cambiare il nome direttamente qui.

380
00:20:41,970 --> 00:20:46,813
‫Quindi, diciamo, heroku apps:rename, in questo modo, e poi

381
00:20:48,460 --> 00:20:51,530
‫il nuovo nome per l'applicazione.

382
00:20:51,530 --> 00:20:53,470
‫E lo chiamerò

383
00:20:53,470 --> 00:20:55,740
‫natours, ma tu, ovviamente, non

384
00:20:55,740 --> 00:20:59,420
‫sarai in grado di chiamarlo anche natours perché

385
00:20:59,420 --> 00:21:01,620
‫quel sottodominio sarà già preso.

386
00:21:01,620 --> 00:21:04,350
‫Quindi, puoi chiamarlo natours con il tuo nome o

387
00:21:04,350 --> 00:21:07,660
‫con il tuo nome utente o con qualsiasi altra parola

388
00:21:07,660 --> 00:21:08,633
‫che desideri.

389
00:21:10,000 --> 00:21:12,763
‫Quindi, andrò avanti e ora lo chiamerò davvero natours.

390
00:21:13,660 --> 00:21:18,320
‫Oh, ma vedo che qualcuno mi ha già preso quel nome,

391
00:21:18,320 --> 00:21:20,223
‫quindi è un peccato.

392
00:21:21,304 --> 00:21:24,360
‫Ma probabilmente è perché ho già usato il nome natours

393
00:21:24,360 --> 00:21:26,570
‫in un progetto in un altro corso.

394
00:21:26,570 --> 00:21:28,853
‫E così, qualcuno deve averlo preso.

395
00:21:30,231 --> 00:21:33,080
‫Quindi, chiamiamolo natoursapp e, ovviamente, devo poi

396
00:21:33,080 --> 00:21:35,440
‫scrivere tutto il resto.

397
00:21:35,440 --> 00:21:39,660
‫Quindi, app heroku: rinomina e

398
00:21:39,660 --> 00:21:41,840
‫poi natoursapp.

399
00:21:41,840 --> 00:21:44,033
‫Quindi, si spera, nessuno ha preso questo.

400
00:21:45,780 --> 00:21:47,980
‫E sembra che stia facendo

401
00:21:47,980 --> 00:21:51,020
‫qualcosa, ma qualcuno ha già preso anche quello.

402
00:21:51,020 --> 00:21:52,373
‫Beh, è davvero strano.

403
00:21:53,930 --> 00:21:56,120
‫Quindi, immagino di avere molti studenti

404
00:21:56,120 --> 00:21:59,110
‫là fuori che pubblicano le loro app su Heroku,

405
00:21:59,110 --> 00:22:02,250
‫quindi seguirò semplicemente l'esempio che ho dato prima e aggiungerò

406
00:22:02,250 --> 00:22:03,920
‫il mio nome qui.

407
00:22:03,920 --> 00:22:07,800
‫Quindi, terzo tentativo con natours-jonas.

408
00:22:07,800 --> 00:22:12,683
‫Quindi, sì, speriamo che la terza volta funzioni.

409
00:22:13,780 --> 00:22:15,493
‫Quindi, aspettiamo qui.

410
00:22:17,880 --> 00:22:18,960
‫E questo è tutto.

411
00:22:18,960 --> 00:22:21,163
‫Quindi, proviamo heroku aperto.

412
00:22:24,800 --> 00:22:27,150
‫Va bene, e ci siamo.

413
00:22:27,150 --> 00:22:29,030
‫E ora, a questo

414
00:22:29,030 --> 00:22:31,330
‫punto, la vecchia versione non funzionerà più.

415
00:22:31,330 --> 00:22:34,163
‫Quindi, questo è andato, chiudiamolo.

416
00:22:35,030 --> 00:22:36,780
‫Torniamo al Personale qui.

417
00:22:38,010 --> 00:22:40,840
‫E quindi, sì, ci siamo.

418
00:22:40,840 --> 00:22:42,993
‫Questo è natours-jonas.

419
00:22:44,750 --> 00:22:49,640
‫Ottimo, quindi il nostro sito Web è ora ufficialmente in produzione.

420
00:22:49,640 --> 00:22:52,070
‫Ora, un'altra cosa che voglio fare

421
00:22:52,070 --> 00:22:55,340
‫qui è aggiornare effettivamente la variabile d'ambiente Postman

422
00:22:55,340 --> 00:22:57,580
‫per la produzione, ricordi?

423
00:22:57,580 --> 00:22:59,480
‫Quindi, andiamo avanti e copiamo questo qui.

424
00:23:00,440 --> 00:23:03,610
‫E, inoltre, non come effettivamente

425
00:23:03,610 --> 00:23:07,000
‫siamo automaticamente su https qui su Heroku.

426
00:23:07,000 --> 00:23:10,620
‫Quindi, Heroku fa tutta la gestione dei certificati SSL

427
00:23:10,620 --> 00:23:14,810
‫per noi dietro le quinte in modo che la nostra pagina sia

428
00:23:14,810 --> 00:23:16,840
‫sempre sicura, sempre con https.

429
00:23:16,840 --> 00:23:20,773
‫Quindi, questa è un'altra caratteristica davvero interessante di Heroku.

430
00:23:22,540 --> 00:23:24,860
‫Quindi, ora, qui in

431
00:23:24,860 --> 00:23:29,860
‫Postman, andiamo avanti e cambiamo questa produzione e l'URL.

432
00:23:30,450 --> 00:23:32,733
‫Ovviamente questo era solo un segnaposto.

433
00:23:33,680 --> 00:23:38,120
‫E, invece, quello che vogliamo ora è il nostro vero URL di produzione.

434
00:23:38,120 --> 00:23:40,593
‫E non sono sicuro che sia corretto in

435
00:23:41,820 --> 00:23:44,900
‫questo modo, ma aggiornalo e confrontalo con quello di sviluppo.

436
00:23:44,900 --> 00:23:46,340
‫Ma, in effetti, lo è.

437
00:23:46,340 --> 00:23:48,823
‫Quindi, deve finire con questa barra.

438
00:23:50,380 --> 00:23:53,483
‫E così, anche quello che abbiamo appena fatto.

439
00:23:54,320 --> 00:23:57,220
‫Quindi, aggiorniamo, chiudiamo e ora,

440
00:23:57,220 --> 00:24:00,560
‫tutto ciò che dobbiamo fare qui è passare

441
00:24:00,560 --> 00:24:03,683
‫dallo sviluppo a questo ambiente di produzione.

442
00:24:04,560 --> 00:24:08,660
‫E così, ora, se, per esempio, provo a ottenere Ottieni tutti i

443
00:24:08,660 --> 00:24:11,260
‫tour, che in realtà è quello che

444
00:24:11,260 --> 00:24:13,860
‫avevamo aperto, allora vediamo se funziona.

445
00:24:13,860 --> 00:24:15,363
‫Spegniamo tutto questo.

446
00:24:17,200 --> 00:24:20,093
‫E, in effetti, lo fa, benissimo.

447
00:24:21,400 --> 00:24:23,220
‫Vediamo se possiamo

448
00:24:23,220 --> 00:24:26,543
‫effettivamente vedere l'URL completo da qualche parte qui.

449
00:24:28,270 --> 00:24:29,823
‫Beh, in realtà non si vede.

450
00:24:31,870 --> 00:24:34,110
‫Ma, comunque, non ha

451
00:24:34,110 --> 00:24:37,810
‫molta importanza perché sappiamo ancora che ha funzionato davvero.

452
00:24:37,810 --> 00:24:40,110
‫Quindi, ora abbiamo davvero ottenuto questi

453
00:24:40,110 --> 00:24:43,860
‫dati qui dalla nostra API di produzione e possiamo facilmente dimostrarlo

454
00:24:43,860 --> 00:24:46,470
‫perché la versione di sviluppo attualmente non

455
00:24:46,470 --> 00:24:48,010
‫è nemmeno in esecuzione.

456
00:24:48,010 --> 00:24:50,943
‫Quindi, se inviamo questo, otteniamo questo errore.

457
00:24:54,830 --> 00:24:58,420
‫Quindi, ancora una volta, davvero, congratulazioni

458
00:24:58,420 --> 00:25:02,970
‫per aver quasi terminato il progetto a questo punto.

459
00:25:02,970 --> 00:25:04,920
‫È già sul server live

460
00:25:04,920 --> 00:25:07,260
‫e puoi, a questo punto, condividere il

461
00:25:07,260 --> 00:25:10,650
‫tuo progetto con il mondo e mostrare a tutti cosa

462
00:25:10,650 --> 00:25:13,883
‫hai realizzato dopo tutto questo lavoro per costruire questo progetto.

463
00:25:14,720 --> 00:25:18,420
‫Solo un'altra piccola cosa che volevo fare

464
00:25:18,420 --> 00:25:22,720
‫qui, come ho detto nell'ultima lezione, è testare quella compressione.

465
00:25:22,720 --> 00:25:27,320
‫Quindi, cerchiamo solo la compressione gzip di prova qui.

466
00:25:30,740 --> 00:25:33,850
‫E poi, questo dovrebbe essere il primo risultato qui,

467
00:25:33,850 --> 00:25:35,163
‫Gift of Speed.

468
00:25:36,150 --> 00:25:40,710
‫Quindi, se inseriamo qui il nostro URL e poi controlliamo, vediamo.

469
00:25:42,450 --> 00:25:45,200
‫E vediamo che GZIP è abilitato.

470
00:25:45,200 --> 00:25:47,903
‫E quindi, questo è dovuto a quel pacchetto di

471
00:25:47,903 --> 00:25:50,200
‫compressione che abbiamo usato nell'ultima lezione.

472
00:25:50,200 --> 00:25:53,380
‫Quindi, in origine, la nostra pagina avrebbe 14K,

473
00:25:53,380 --> 00:25:55,560
‫ma poi compressa, è 2K.

474
00:25:55,560 --> 00:25:58,610
‫E, ovviamente, questo non fa una grande differenza

475
00:25:58,610 --> 00:26:02,610
‫in questo caso, ma per una pagina molto più grande, ovviamente,

476
00:26:02,610 --> 00:26:05,903
‫può davvero fare la differenza per i tuoi utenti.

477
00:26:06,840 --> 00:26:10,470
‫Perfetto, ora, nei prossimi due video, ci sono solo

478
00:26:10,470 --> 00:26:12,740
‫un paio di piccole

479
00:26:12,740 --> 00:26:15,023
‫cose che dobbiamo ancora sistemare qui.

480
00:26:16,020 --> 00:26:17,330
‫E così, lo

481
00:26:17,330 --> 00:26:20,200
‫faremo comunque nelle prossime due o tre lezioni.

482
00:26:20,200 --> 00:26:21,730
‫E così, dopo

483
00:26:21,730 --> 00:26:24,463
‫questo, il progetto è davvero finito al 100%.

