Impostare un IP personalizzato non funziona?

Ciao a tutti,
recentemente ho provato a installare Discourse sul mio server Debian, tutto è andato bene tranne che non riuscivo ad accedere al sito perché ho provato a cambiare la porta per accedervi, ma appare solo nginx, quindi ho capito il problema e ho provato a impostare un IP personalizzato con una rete personalizzata che puntasse alla mia rete, ma non sono riuscito ad accedervi, continuo a ricevere errori, questo è l’errore che ottengo:

./launcher start app --docker-args --network discourse_back --ip 192.168.1.4
x86_64 arch detected.
docker: Error response from daemon: network -i not found.
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

Ho provato anche prima usando hello-world e ha funzionato

docker run -it --network discourse_back --ip 192.168.1.4 hello-world

Hello from Docker!

. . .

Qualcuno ha un’idea su come posso risolvere il problema? Grazie in anticipo!

Forse prova questo:

 ./launcher start app --docker-args '--network discourse_back --ip 192.168.1.4'

Quindi finalmente l’ho fatto funzionare, ma ora appare “Welcome to nginx”, ma ho inserito il mio hostname “discourse.simonz.local” (che è anche scritto in app.yml a

DISCOURSE_HOSTNAME: discourse.simonz.local

Ho fatto qualcosa di sbagliato?

Il discorso di produzione non funzionerà senza https.

Forse hai un altro nginx che sta mostrando quel messaggio?

Dovresti far funzionare un’installazione standard prima di provare qualcosa di più avanzato.

Se intendi che questa istanza sia disponibile su Internet, l’uso di un dominio .local in app.yml causerà problemi. Forse è qualcosa che intendi usare solo a casa o solo per test, ho pensato che valesse la pena menzionarlo.

Supponendo che il tuo networking Docker funzioni correttamente, rendendo il container raggiungibile a quell’indirizzo IP dalla macchina host esterna, avresti anche bisogno che il DNS punti discourse.simonz.local a quell’indirizzo IP.

Sembra che quello che sta succedendo è che il dominio si sta risolvendo sulla macchina host e non stai specificando la porta (ad esempio, discourse.simonz.local:1234) quando cerchi di accedervi, quindi sta raggiungendo solo nginx invece del container Docker.

Se vuoi che Discourse sia disponibile su una porta diversa, probabilmente non ne hai bisogno su un indirizzo IP diverso. Se vuoi che sia disponibile sulla porta standard, così come nginx sulla porta standard, hai bisogno del DNS che ti indirizzi all’IP corretto o hai bisogno che nginx faccia da proxy per Discourse.

I domini .local vengono tipicamente annunciati dal sistema in base al suo hostname configurato. Discourse non ha davvero bisogno di fare ciò normalmente, quindi il container potrebbe non avere nulla per farlo.

Se vuoi seguire la strada della porta standard, IP diverso, DNS, questo è al di fuori dell’ambito di Discourse e la sua configurazione dipenderà da vari fattori nella tua rete.

Se il tuo obiettivo è solo avere qualcosa disponibile in nginx oltre a Discourse sullo stesso host, ti consiglio l’approccio proxy collegato sopra. Sebbene tecnicamente sia un’installazione non supportata, è una configurazione più comune e più persone potranno aiutarti.

Funzionerà solo su porte standard.

non dovrebbe essere accessibile tramite internet, dovrebbe essere in un ambiente locale per provarlo, le porte sono praticamente corrette, l’IP è corretto

Non posso già avere qualcosa in esecuzione sulla porta 80 e non ho visto un’opzione per cambiare l’IP da utilizzare nell’installazione normale

Ho già annullato quella modifica, viene eseguita di nuovo sulle porte normali 80 e 443.

Se sai come far funzionare il tuo proxy inverso, puoi eseguirlo su un altro nome host. Sono richieste porte HTTPS e standard.

Se lo stai solo configurando localmente temporaneamente per provarlo, ti consiglierei di avviare una macchina virtuale piuttosto che cercare di eseguirlo insieme a nginx.

Alla macchina virtuale può essere assegnato il proprio IP, probabilmente si assegnerà automaticamente un indirizzo .local e potrai semplicemente eseguire una normale installazione di Discourse al suo interno.

Al termine, elimina la macchina virtuale e non dovrai preoccuparti di ripristinare alcuna modifica a nginx o a qualsiasi altra cosa.

1 Mi Piace

Utilizzo la versione docker compose, sembra che includa un nginx e sia già all’interno di una VM, ma sto cercando di eseguirla con la stessa VM, ma una cosa esce come ..1.3 (il mio altro sito) e l’altra come ..1.4 (discourse).

Mi sono appena reso conto che ho già fatto l’installazione standard, voglio solo cambiare l’IP a cui risponde. Il mio IP predefinito è 192.168.1.3 ma voglio che risponda a 192.168.1.4. Entrambi questi IP sono già configurati sul dispositivo.

Se la VM ha due indirizzi IP, non è necessario fare nulla con l’indirizzo IP del container Docker, è sufficiente il routing del firewall in modo che …1.3:80/443 vada all’host e …1.4:80/443 vada al container Docker.

Se si tratta di Linux, per quanto ne so, iptables e ufw sono i più comuni. Probabilmente dovrai consultare la documentazione o chiedere aiuto alle loro community su come impostare quel routing.

A meno che tu non abbia bisogno di testare questo tipo di configurazione per dove vorresti installare Discourse in definitiva, ti consiglierei comunque di eseguire una seconda VM per questa prova. Qualsiasi complessità derivante dall’esecuzione di Discourse insieme ad altro software HTTP/HTTPS scompare con l’esecuzione all’interno della propria VM.

Comunque grazie, sono riuscito ad avviarlo ma non ricevo risposta, probabilmente ho sbagliato qualcosa, ma grazie per l’aiuto, ci riproverò un’altra volta, magari otterrò un nuovo risultato, grazie a tutti per l’aiuto e buona giornata ^^