Installa Discourse su Windows per lo sviluppo

:information_source: Questa guida è stata testata su Windows 10 e 11.

Per configurare un ambiente di sviluppo per Discourse su Windows, puoi utilizzare la funzionalità Windows Subsystem for Linux.

Questa configurazione richiede l’installazione di WSL 2. È disponibile solo nelle build di Windows 10 18917 o successive. Diamo per scontato che tu abbia già installato Windows Subsystem for Linux 2 (Ubuntu) sul tuo sistema Windows 10. ATTENZIONE: Installa Ubuntu 18.04 e non 20.04, poiché alcune installazioni potrebbero fallire su 20.04. Per ulteriori informazioni, consulta le note del 30 giugno 2020 alla fine di questo post.

Iniziamo!

Installazione di Discourse

  1. Inizialmente, segui i passaggi del topic Guida per principianti per installare Discourse su Ubuntu per lo sviluppo fino al passaggio Clona Discourse.
  1. Prima di configurare il database, devi avviare manualmente il servizio PostgreSQL e il server Redis utilizzando i seguenti comandi:

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Quindi segui tutti i passaggi rimanenti della guida Ubuntu.

Creare un comando per avviare Discourse

Ora il tuo ambiente di sviluppo è quasi pronto. L’unico problema è che ogni volta che apri Ubuntu su Windows devi avviare manualmente il servizio PostgreSQL e il server Redis. Non preoccuparti, possiamo trovare una soluzione creando un comando personalizzato :wink:

cd ~

Crea un nuovo file utilizzando il comando nano start-discourse, incolla il contenuto sottostante, quindi salva ed esci.

#!/bin/bash

# per avviare PostgreSQL
sudo service postgresql start

# per avviare il server Redis
redis-server --daemonize yes

Ora modifica i permessi CHMOD utilizzando il comando seguente:

chmod +x start-discourse

E copia il file nella tua cartella bin:

sudo cp start-discourse /usr/bin/

È fatto. Ora, ogni volta che apri la shell di Ubuntu, esegui semplicemente il comando sottostante e inizia a sviluppare :+1:

start-discourse

In alternativa, se stai utilizzando Windows 10 Enterprise, Pro o Education, puoi creare una macchina virtuale Linux in Hyper-V per configurare l’ambiente di sviluppo di Discourse.

Note sull’ambiente Windows

A partire dal 30 giugno 2020:
A partire dal 1 luglio 2020

Ultima revisione da @SaraDev il 2022-06-16T02:00:00Z


Questo documento è sottoposto a controllo versione - suggerisci modifiche su GitHub.

52 Mi Piace
How to install Discourse on windows
Help installing Discourse for Developer
Database connection error when setting up Discourse development environment using Linux Bash Shell on Windows 10
Restoring backup fails in Win10/Ubuntu development environment
How to Install Discourse on LocalHost in Windows?
How can i install Discourse forum on my win 10 dedicated server OVH
Error installing `bullseye-backports` when trying to install for Development
How to install on localhost
Restoring backup fails in Win10/Ubuntu development environment
Trying to set up Discourse on my website
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Unable to setup discourse in my windows 10
Self hosting discourse with WSL shows an error, the command shown also doesnt work
No such file or directory - convert (Errno::ENOENT)
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
I'm having trouble installing a local Discourse instance on Windows 11
Issues while installing Discourse on WSL
Guide to Setting Up Discourse Development Environment - Windows 11
Need help integrating code wrote on Edittext to the Discourse
Problem in development Installation
Contributing to Discourse development
Subscribe to post an ad
Restoring backup fails in Win10/Ubuntu development environment
Migrate a Ning forum to Discourse
Windows server publish method
Use the Discourse API ruby gem
Topics which users cannot directly reply to, but can create a linked topic?
How to add a new language
How to Start Sidekiq When Using Puma
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
How can I directly edit Discourse database from a GUI?
Can't set up dev environment due to cppjieba_rb failing to install
Cloning and making our own Discourse community
How to Add Ngrok to Allowed Hosts
»vagrant up« hangs
Discourse installation end to end on Windows Server 2016
No connection to db issue
How to Install Discourse on LocalHost in Windows?
WSL environment deadlocks
Problem with development on Windows with Docker and mounted volume
Please help, how do I install Discourse on macOS?
Discourse standalone
Set up a local Discourse Development Environment?
Migrate a NodeBB forum with Redis to Discourse

Ok, ho trovato una soluzione.

Ho notato che sostituire 127.0.0.1 con localhost risolveva il problema delle immagini.

Dopo aver cercato un po’, questo è il comando che puoi usare per avviare Discourse:

DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u


Tenterò di aggiornare la guida più tardi.

4 Mi Piace

C’è qualche possibilità di rivedere questa PR?

Questo renderebbe questa guida un po’ più amichevole.

3 Mi Piace

Hai qualche idea sul motivo per cui ricevo "Sfortunatamente, si è verificato un errore imprevisto e Bundler non può continuare." dopo bundle install\n?

1 Mi Piace

stesso problema

Puoi fornire uno screenshot dell’errore? Quale versione di Ruby hai installato?

Ho problemi con le dipendenze:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
Devi usare Bundler 2 o superiore con questo lockfile.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versione di Bundler 1.16.1

ux430uq@Asus-UX430UQ:~/discourse$ gem install bundler

Fetching: bundler-2.4.20.gem (100%)
ERRORE:  Durante l'esecuzione di gem ... (Gem::FilePermissionError)
    Non hai i permessi di scrittura per la directory /var/lib/gems/2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] password per ux430uq:
Fetching: bundler-2.4.20.gem (100%)
ERRORE:  Errore durante l'installazione di bundler:
        L'ultima versione di bundler (>= 0) che supportava il tuo Ruby e RubyGems era la 2.3.26. Prova a installarla con `gem install bundler -v 2.3.26`
        bundler richiede la versione di Ruby >= 2.6.0. La versione corrente di ruby è 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versione di Bundler 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

Come posso risolvere facilmente? Stavo cercando di installare la 2.6.0, poi la 2.7.0, ma ci sono sempre altri problemi.

Come da alcuni commenti precedenti, anch’io ho riscontrato alcune difficoltà ed errori mentre cercavo di seguire questa guida - provato sia su un desktop Windows 10 che Windows 11.

Dopo un po’ di tentativi ed errori, ho finalmente trovato i passaggi che portano a un ambiente di sviluppo completamente funzionante su Windows 11, testato sull’ultima build 22H2 e anche sulla prossima Release Preview 23H2 (presumo che funzionerà anche sulla build più recente di Windows 10).

Se può essere utile a qualcuno, ho appena pubblicato la guida qui:-

Spero che questo aiuti persone come me che stanno cercando di far funzionare Discourse su Windows :smiley:

2 Mi Piace

Ho ripercorso tutta questa guida ufficiale per assicurarmi che nulla si fosse rotto dall’ultima volta.
Ho installato Ubuntu (versione non specificata) tramite WSL su Windows 11, che ha installato l’ultima versione LTS, in questo caso la 22.04.

Non ho riscontrato alcun problema; tutto è stato semplice, nessun errore e l’installazione per sviluppatori funziona.

Se in futuro avrai problemi ad installare qualcosa utilizzando una delle nostre guide ufficiali, per favore scrivi gli errori e segnalaceli, è sempre utile :smile:


Due avvisi però:

Durante l’installazione di Node.js:

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           AVVISO DI DEPRECIAZIONE SCRIPT


  Questo script, situato su https://deb.nodesource.com/setup_X, utilizzato per
  installare Node.js è ora deprecato e verrà reso inattivo in futuro.

  Si prega di visitare il repository GitHub delle distribuzioni NodeSource e seguire le
  istruzioni per migrare il proprio repository.
  https://github.com/nodesource/distributions

  Il repository GitHub delle distribuzioni Linux NodeSource per Node.js contiene
  informazioni su quali versioni di Node.js e quali distribuzioni Linux
  sono supportate e come installarlo.
  https://github.com/nodesource/distributions


                          AVVISO DI DEPRECIAZIONE SCRIPT

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

PER EVITARE QUESTA ATTESA, MIGRARE LO SCRIPT
Continuo tra 60 secondi (premi Ctrl-C per interrompere) ...

Eseguendo redis-server --daemonize yes:

# ATTENZIONE La sovra-allocazione della memoria deve essere abilitata! Senza di essa, un salvataggio in background o la replica potrebbero fallire in condizioni di memoria insufficiente. Essendo disabilitata, può anche causare fallimenti senza condizioni di memoria insufficiente, vedere https://github.com/jemalloc/jemalloc/issues/1328. Per risolvere questo problema aggiungere 'vm.overcommit_memory = 1' a /etc/sysctl.conf e poi riavviare o eseguire il comando 'sysctl vm.overcommit_memory=1' affinché abbia effetto.

Non sono sicuro del perché abbia avuto così tanti problemi allora! Forse c’era qualcosa di strano nella mia installazione di Windows che sono riuscito a risolvere durante la risoluzione dei problemi senza rendermene conto! :stuck_out_tongue:

Comunque, sono ancora felice di ciò che ho imparato finora e non vedo l’ora di continuare a lavorare alla migrazione dei miei forum su Discourse.

2 Mi Piace

Ho dovuto reinstallare Windows e ora ho una nuova installazione di Windows 11.
Seguirò la guida e ti farò sapere più tardi! Terrò a mente anche la guida di @AliBenBongo.

1 Mi Piace

Ecco un aggiornamento.

La guida potrebbe sicuramente necessitare di un aggiornamento, ma funziona ancora meravigliosamente bene su una Windows 11 22H2 appena installata. :+1:

L’unico problema che ho riscontrato è stato che, anche se il comando wsl funzionava in un terminale, la funzionalità WSL in realtà non era abilitata per impostazione predefinita:

3 Mi Piace

Penso che questa guida sia obsoleta. I passaggi menzionati nella guida Ubuntu/Debian non esistono più.

C’è un modo per annullare tutti questi passaggi, ad esempio invertire lo script di installazione di pacchetti, gemme e clonazione?

È ancora necessaria l’installazione di 18.04 su 20.04?

Ricevo un errore durante l’installazione di nodejs:

# apt install nodejs

Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
Alcuni pacchetti non possono essere installati. Questo potrebbe significare che è stata richiesta una situazione impossibile oppure, se si utilizza la distribuzione non stabile, che alcuni pacchetti richiesti non sono ancora stati creati o sono stati spostati da Incoming.
Le informazioni seguenti potrebbero aiutare a risolvere la situazione:

I seguenti pacchetti hanno dipendenze non soddisfatte:
 nodejs : Dipende: libc6 (>= 2.28) ma la versione 2.27-3ubuntu1.6 è da installare
E: Impossibile correggere i problemi, sono stati bloccati pacchetti interrotti.```

Installazione 24.04 fallita, l’host non riesce a connettersi alla porta 3000

Lo sto eseguendo su 24.04. Consiglio di condividere maggiori informazioni su come appare l’ambiente quando avvii il server.

Prova FORCE_HOSTNAME=localhost bin/ember-cli -u, che avvierà contemporaneamente sia il server backend che quello frontend.

(In viaggio: a memoria)