Installare Discourse su Windows per sviluppo

:information_source: This tutorial has been tested on Windows 10 and 11.

To set up a development environment for Discourse on Windows, you can do it using Windows Subsystem for Linux feature.

This setup requires the WSL 2 installation. It is only available in Windows 10 builds 18917 or higher. We’ll assume that you already installed Windows Subsystem for Linux 2 (Ubuntu) on your Windows 10 system. WARNING: Install Ubuntu 18.04, and not 20.04 since some installations will fail on 20.04. For more information see June 30th, 2020 notes at the bottom of this post.

Let’s begin!

Installing Discourse

  1. Initially follow the steps from the topic Beginners Guide to Install Discourse on Ubuntu for Development until the step Clone Discourse.
  1. Before setting up the database you have to start PostgreSQL service & Redis server manually using following commands

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Then go through all the remaining steps of the Ubuntu guide.

Creating a Command to Start Discourse

Now your development environment is almost ready. The only problem is every time when you open Ubuntu on Windows you have to start the PostgreSQL service & Redis server manually. Don’t worry we can have a workaround for this by creating a custom command :wink:

cd ~

Create a new file using the command nano start-discourse and paste the content below then save and exit.

#!/bin/bash

# to start PostgreSQL
sudo service postgresql start

# to start Redis server
redis-server --daemonize yes

Now modify the CHMOD using below command

chmod +x start-discourse

And copy the file to your bin folder

sudo cp start-discourse /usr/bin/

It’s done. Now, whenever you open the Ubuntu bash just run the command below and start developing :+1:

start-discourse

Alternatively, if you are using Windows 10 enterprise, pro, or education edition then you can create a Linux virtual machine in hyper-v to set up the Discourse dev environment.

Notes About Windows Environment

As of June 30, 2020:
As of July 1, 2020

Last Reviewed by @SaraDev on 2022-06-16T02:00:00Z


This document is version controlled - suggest changes on github.

52 Mi Piace

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.```