Instalar Discourse en Ubuntu o Debian para desarrollo

:warning: Esta guía cubre las instrucciones de instalación en un entorno de desarrollo. Para una guía de producción, consulte: Install Discourse in production with the official supported instructions


¿Así que quieres configurar Discourse en Ubuntu o Debian para modificarlo y desarrollarlo?

Asumiremos que trabajas localmente y no tienes Ruby/Rails/Postgres/Redis instalados en tu sistema Ubuntu o Debian. ¡Empecemos!

Requisitos

Sugerimos tener al menos 4 GB de RAM y 2 núcleos de CPU.

Compatibilidad actual:

SO Compatibilidad
Debian 11 :white_check_mark:
Crostini (Linux en ChromeOS) :white_check_mark:
Ubuntu 22.04 o posterior :white_check_mark:

Instalar dependencias de Discourse

Necesitarás los siguientes paquetes en tu sistema:

** opcional

Ahora que hemos instalado las dependencias de Discourse, pasemos a instalar Discourse en sí.

Clonar Discourse

Clona el repositorio de Discourse en la carpeta ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ indica la carpeta de inicio, por lo que el código fuente de Discourse estará disponible en tu carpeta de inicio.

Configurar base de datos

Crea un rol con el mismo nombre que tu nombre de usuario del sistema Linux:

cd /tmp && sudo -u postgres createuser -s "$USER"

[/details]

Inicializar Discourse

Cambia a tu carpeta de Discourse:

 cd ~/discourse

Instala las gemas necesarias

source ~/.bashrc
bundle install

Instala las dependencias de JS

pnpm install

Ahora que has instalado las gemas con éxito, ejecuta estos comandos:

bin/rails db:create
bin/rails db:migrate
RAILS_ENV=test bin/rails db:create db:migrate

Inicia los servidores de rails y ember:

bin/ember-cli -u

Si las imágenes no aparecen, usa este comando en su lugar:
(también puedes especificar una IP si estás trabajando en un servidor remoto)

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

Ahora deberías poder navegar a http://localhost:4200 para ver tu instalación local de Discourse.

Crear nuevo administrador

Para crear un nuevo administrador, ejecuta el siguiente comando:

bin/rails admin:create

Sigue las indicaciones y se creará una nueva cuenta de administrador.

Configurar correo

Ejecuta MailHog:

mailhog

¡Felicidades! ¡Ahora eres el administrador de tu propia instalación de Discourse!

¡Feliz hacking! Y para empezar, consulta Guía para principiantes sobre cómo crear plugins de Discourse.


Última revisión por @blake el 2023-04-03T06:00:00Z


Este documento está controlado por versiones: sugiere cambios en github.

66 Me gusta
Docker setup for development
Share your Discourse dev setup
How to open via internal IP?
Discourse as Your First Rails App
Why is my dev server not showing me uploaded images in Topics?
Unable to Install Discourse for development
Can I install discourse on my local machine
Export only database data Postgres (for users, posts and topics)
Rspec failing to load when using the official beginners guide
Jhead and svgo errors while running specs
How to add a new language
Not receiving Activation Email
Moderation Tools
Can't set up dev environment due to cppjieba_rb failing to install
Override profile background via SSO
Issue in setup discourse on ubuntu server
Bitnami Discourse VM on Virtualbox + SMTP mail-server for testing
How do I go about making a very customized theme?
Can't install the bundle
Mini_racer installation issues on ubuntu vagrant (OSX)
How to Install Discourse on LocalHost in Windows?
Migrating a myBB forum to Discourse using Kubuntu in a VM
Migration from Yahoo! Groups
Does the forum for development start up 24 hours*?
How to allow customs hosts in development mode
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Any interest in Podman?
Bundler cannot continue due installation error of mini_racer 0.4.0
Update PhantomJS to latest for Ubuntu dev guide?
How to setup discourse in my local for development?
How might we better structure #howto?
Please help, how do I install Discourse on macOS?
How might we better structure #howto?
Can't reach Discourse server in VM from Host
Migrate a MyBB forum to Discourse
Installing Plugins in Discourse Development Install
Images are not being populated in discourse
How to install Discourse locally?
Discourse Local setup
Is this correct? How long to install dev Version?
Overriding user_guardian.rb in a plugin (no fork necessary!)
How Sam's Windows development environment is configured
Site setting is different Every time on Ubuntu development installation
Problems with understanding the development of Discourse
How do I change the address in the database?
Discourse on local pc
Error while importing topics from Flarum (users, groups import OK)
Issue with vagrant version following the dev guide
Flarum To Discourse Migration
Problem in development Installation
Install Discourse on macOS for development
Calling out for Testers
Problem in development Installation
Developing on the mobile version of Discourse
Can't build Discourse on Ubuntu 20.10
Errno::EACCES: Permission denied on new Ubuntu development setup
Discourse standalone
Set up a local Discourse Development Environment?
Discourse as Your First Rails App
Unable to setup discourse
Migrate a phpBB3 forum to Discourse
Migrate a vBulletin 4 forum to Discourse
Migrate a FluxBB forum to Discourse
Migrate a NodeBB forum with Redis to Discourse
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Migrate a bbPress WordPress plugin forum to Discourse
Unable to setup discourse
Use the Discourse API ruby gem
Use Screen To Bootstrap A Development Install (Ubuntu)
Set up Discourse for development on Fedora Linux
RSpec search_spec.rb RateLimiter LimitExceeded problems
Need to restart Ember in order to test front-end changes
Uploads location on dev instance?
Nodebb to Discourse
Error installing `bullseye-backports` when trying to install for Development
Migrate a MyBB forum to Discourse
Local installation internal use only
ImageMagick Install Fails during Dev Installation on Ubuntu 22.04.1
ImageMagick Install Fails during Dev Installation on Ubuntu 22.04.1
Discourse dev install script may need upgrade
How to reset discourse on dev mode? (w/o docker)
I'm having trouble installing a local Discourse instance on Windows 11
Login popup not display
Not able to restore discourse docker backup on Ubuntu discourse installation
Migrate a bbPress WordPress plugin forum to Discourse
I want to build a debug version of discourse
Database wont migrate Discourse
How to customize the Discourse app using docker container?
Installing Discourse on windows using Docker Desktop
End-to-end system testing for themes and theme components
CSRF problem in development with 'Discourse OpenID Connect' plug-in
What is the latest recommended workflow for local development? (Ubuntu 16.04)
What is the latest recommended workflow for local development? (Ubuntu 16.04)
Need help integrating code wrote on Edittext to the Discourse
Integration into custom auth system where emails are not unique?
How can I make my own Discourse plugins?
Overriding user_guardian.rb in a plugin (no fork necessary!)
Does Gemfile need to include svg?
Does Gemfile need to include svg?
Docker in VMWare - How to access to Discourse
Discourse Server logs show DB queries when I run the server
Contributing to Discourse development
Development install fails when running bin/rails db:migrate
[PAID] Import from Legacy Postgres DB
Attachment filename not set on download
Developing Discourse on GitHub Codespaces
How to get a docker image of discourse using bash on windows 10?
Installing problem - bundle install
Install Discourse on Windows for development
Unable to create Vagrant local installation
How to create new user with verified email in development mode?
How to install Discourse on windows
Connecting WP Discourse to a local Discourse Instance running a specific version
Chat not working after dev install
Importing MyBB database to Discourse
Can't find the Discourse folder inside virtual box via ssh
Discourse Ember CLI Proxy Error
Bundling more popular plugins with Discourse core
Discourse running very slow on local machine
Share your Discourse dev setup
How to install Discourse on windows
Can't uninstall on Ubuntu 18.04
Dev environment: recommended way to bootstrap the first admin account without email?
Migrate from GetSatisfaction to Discourse
Developing Discourse Plugins - Part 6 - Add acceptance tests
Install Discourse for development using Docker
Install and import Mysql on the development environment
Connecting to Droplet
Connecting to Droplet
State of disqus to discourse importer
How to install the bootsnap gem?
Where is the db connection information discourse?
Rake aborted message is showing when installing vagrant development
Any interest in Podman?
Formal german available?
Trouble getting a top level page to Ember
Install discourse on localhost
Ubuntu development install: Permission denied @ apply2files
How to fix bundler executable conflicts in the `techAPJ/install-rails` script?
Which is the better option to self-host?
NULL first_visited_at dates in the topic_users table
Multiple instances. Visiting the second instance signs out the logged in account on the running instance
Can't run my Discourse locally
I want to install a plugin for development, what should I do?
A check for updates has not been performed lately. Ensure sidekiq is running
Vbulletin 4 import -
Hello from Gitpod! (installing on google cloud + automated dev setup)

lo arreglé eliminando el plugin de calendario. :thinking:

3 Me gusta

La instalación es muy lenta

I’ve been trying for about 45min to get it to connect to my local DB but can’t figure it out:

discourse $bin/rails db:create
We could not find your database: postgres. Which can be found in the database configuration file located at config/database.yml

Here is the full trace:

discourse $bin/rails db:create --trace
** Invoke db:create (first_time)
** Invoke db:force_skip_persist (first_time)
** Execute db:force_skip_persist
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:load_config
** Execute db:create
We could not find your database: postgres. Which can be found in the database configuration file located at config/database.yml.

To resolve this issue:

- Did you create the database for this app, or delete it? You may need to create your database.
- Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

        bin/rails db:create
Couldn't create 'discourse_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: We could not find your database: postgres. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

To resolve this issue:

- Did you create the database for this app, or delete it? You may need to create your database.
- Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

        bin/rails db:create
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:77:in `new_client'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `public_send'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in `checkout_new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in `try_to_checkout_new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in `acquire_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in `checkout'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in `retrieve_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_handling.rb:313:in `retrieve_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_handling.rb:280:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/postgresql_database_tasks.rb:12:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/postgresql_database_tasks.rb:26:in `create'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:122:in `create'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:184:in `block in create_current'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/discourse_dev_assets-0.0.4/lib/discourse_dev_assets.rb:27:in `block in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:557:in `block (2 levels) in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:554:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:554:in `block in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:553:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:553:in `each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/discourse_dev_assets-0.0.4/lib/discourse_dev_assets.rb:22:in `each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/railties/databases.rake:45:in `block (2 levels) in <main>'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `block in execute'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `execute'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `synchronize'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:188:in `invoke'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:188:in `invoke_task'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block in top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:147:in `run_with_threads'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:132:in `top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:214:in `standard_exception_handling'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/rake_module.rb:59:in `with_application'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/command.rb:51:in `invoke'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands.rb:18:in `<main>'
<internal:/home/dylan/.rbenv/versions/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/dylan/.rbenv/versions/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'

Caused by:
PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: fe_sendauth: no password supplied (PG::ConnectionBad)
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/pg-1.5.4/lib/pg/connection.rb:696:in `async_connect_or_reset'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/pg-1.5.4/lib/pg/connection.rb:824:in `connect_to_hosts'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/pg-1.5.4/lib/pg/connection.rb:759:in `new'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/pg-1.5.4/lib/pg.rb:63:in `connect'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:78:in `new_client'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `public_send'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in `checkout_new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in `try_to_checkout_new_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in `acquire_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in `checkout'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in `retrieve_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_handling.rb:313:in `retrieve_connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/connection_handling.rb:280:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/postgresql_database_tasks.rb:12:in `connection'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/postgresql_database_tasks.rb:26:in `create'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:122:in `create'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:184:in `block in create_current'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/discourse_dev_assets-0.0.4/lib/discourse_dev_assets.rb:27:in `block in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:557:in `block (2 levels) in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:554:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:554:in `block in each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:553:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:553:in `each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/discourse_dev_assets-0.0.4/lib/discourse_dev_assets.rb:22:in `each_current_configuration'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/activerecord-7.0.8.1/lib/active_record/railties/databases.rake:45:in `block (2 levels) in <main>'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `block in execute'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `execute'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `synchronize'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:188:in `invoke'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:188:in `invoke_task'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `each'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block in top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:147:in `run_with_threads'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:132:in `top_level'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:214:in `standard_exception_handling'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/rake_module.rb:59:in `with_application'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/command.rb:51:in `invoke'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/railties-7.0.8.1/lib/rails/commands.rb:18:in `<main>'
<internal:/home/dylan/.rbenv/versions/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/dylan/.rbenv/versions/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/dylan/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Tasks: TOP => db:create

Hola. Intento instalar en Ubuntu Server 24 y no puedo instalar ImageMagick:

registro de consola
install-imagemagick                                         100%[=========================================================================================================================================>]   2.57K  --.-KB/s    en 0s


2024-06-23 14:08:00 (13.4 MB/s) - ‘install-imagemagick’ guardado [2631/2631]

Leyendo lista de paquetes...
Creando árbol de dependencias...
Leyendo la información de estado...
El paquete 'imagemagick' no está instalado, por lo que no se ha eliminado
0 actualizados, 0 nuevos instalados, 0 por eliminar y 0 no actualizados.
Leyendo lista de paquetes...
Creando árbol de dependencias...
Leyendo la información de estado...
E: No se puede localizar el paquete libwebp6
E: No se puede localizar el paquete libltdl7-dev

Parece que en Ubuntu se debe instalar libwebp7 en lugar de libwebp6, pero en el script existe una verificación de la versión de libwebp solo para Ubuntu 22:

# Ubuntu 22.04/22.10 no tiene libwebp6
LIBWEBP=$(cat /etc/issue | grep -qi 'Ubuntu 22' && echo 'libwebp7' || echo 'libwebp6')

Creo que este código debe editarse para instalar libwebp7 de todos modos…

1 me gusta

Tengo el mismo problema. ¿Alguna sugerencia?

Descargo el script principal:
https://raw.githubusercontent.com/discourse/install-rails/main/linux

y descargo install-imagemagick

En el script install-imagemagick edito la línea 12
de:
LIBWEBP=$(cat /etc/issue | grep -qi 'Ubuntu 22' && echo 'libwebp7' || echo 'libwebp6')
a
LIBWEBP=$(cat /etc/issue | grep -qi 'Ubuntu 22' && echo 'libwebp7' || echo 'libwebp7')

También edito la línea 105 en el script principal, donde llama al script install-imagemagick, así que, en esta línea, se llamaría a mi archivo de instalación de install-imagemagick editado, y no al original.

1 me gusta

Ahora tengo un nuevo error:

El valor 'bullseye-backports' no es válido para APT::Default-Release, ya que tal versión no está disponible en las fuentes.
fallido

Me rindo…
Creo que debería anotarse aquí que las instrucciones de la primera publicación no son actuales en este momento.
Intentaré con docker

Hace un tiempo hice un PR para agregar soporte para Ubuntu 20 y Debian 12. Supongo que tendré que revisarlo.

Para Ubuntu 24, necesitarías cambiar las expresiones regulares a algo como:
grep -qiE 'Ubuntu 2[2-9]'

[quote=“Вася Тарарин, post:674, topic:14727, username:taravasya”]

El valor 'bullseye-backports' no es válido para APT::Default-Release ya que tal versión no está disponible en las fuentes
falló

[/quote]Puedes eliminar la verificación como lo hice en el PR.


Puedes usar esta versión actualizada, en tu caso:

#!/bin/bash
set -e

# verificación de versión: https://github.com/ImageMagick/ImageMagick/releases
IMAGE_MAGICK_VERSION="7.1.0-62"
IMAGE_MAGICK_HASH="d282117bc6d0e91ad1ad685d096623b96ed8e229f911c891d83277b350ef884a"

# Usamos debian, pero CI de GitHub está atascado en Ubuntu Bionic, así que esto debe ser compatible con ambos
LIBJPEGTURBO=$(cat /etc/issue | grep -qi Debian && echo 'libjpeg62-turbo libjpeg62-turbo-dev' || echo 'libjpeg-turbo8 libjpeg-turbo8-dev')

# Ubuntu 22/23/24 y Debian 12 no tienen libwebp6
LIBWEBP=$(cat /etc/issue | grep -qiE 'Ubuntu 22|Debian.*12' && echo 'libwebp7' || echo 'libwebp6')

PREFIX=/usr/local
WDIR=/tmp/imagemagick

# Instalar dependencias de compilación
apt -y -q remove imagemagick
apt -y -q install git make gcc pkg-config autoconf curl g++ yasm cmake \
    libde265-0 libde265-dev ${LIBJPEGTURBO} x265 libx265-dev libtool \
    libpng16-16 libpng-dev ${LIBJPEGTURBO} ${LIBWEBP} libwebp-dev libgomp1 \
    libwebpmux3 libwebpdemux2 ghostscript libxml2-dev libxml2-utils librsvg2-dev \
    libltdl7-dev libbz2-dev gsfonts libtiff-dev libfreetype6-dev libjpeg-dev

apt -y install libheif1 libaom-dev libheif-dev

mkdir -p $WDIR
cd $WDIR

# Compilar e instalar ImageMagick
wget -q -O $WDIR/ImageMagick.tar.gz "https://github.com/ImageMagick/ImageMagick/archive/$IMAGE_MAGICK_VERSION.tar.gz"
sha256sum $WDIR/ImageMagick.tar.gz
echo "$IMAGE_MAGICK_HASH $WDIR/ImageMagick.tar.gz" | sha256sum -c
IMDIR=$WDIR/$(tar tzf $WDIR/ImageMagick.tar.gz --wildcards "ImageMagick-*/configure" |cut -d/ -f1)
tar zxf $WDIR/ImageMagick.tar.gz -C $WDIR
cd $IMDIR
PKG_CONF_LIBDIR=$PREFIX/lib LDFLAGS=-L$PREFIX/lib CFLAGS=-I$PREFIX/include ./configure \
          --prefix=$PREFIX \
          --enable-static \
          --enable-bounds-checking \
          --enable-hdri \
          --enable-hugepages \
          --with-threads \
          --with-modules \
          --with-quantum-depth=16 \
          --without-magick-plus-plus \
          --with-bzlib \
          --with-zlib \
          --without-autotrace \
          --with-freetype \
          --with-jpeg \
          --without-lcms \
          --with-lzma \
          --with-png \
          --with-tiff \
          --with-heic \
          --with-rsvg \
          --with-webp
make all && make install

cd $HOME
rm -rf $WDIR
ldconfig /usr/local/lib

# Validar instalación de ImageMagick
test $(convert -version | grep -o -e png -e tiff -e jpeg -e freetype -e heic -e webp | wc -l) -eq 6
3 Me gusta

Sí. ¡Está funcionando, gracias! Tengo algunas preguntas de duda. ¿Cómo puedo configurar Discourse para usarlo desde la LAN para depurar? Mi Ubuntu es Hyper-V Ubuntu Server, por lo que no uso “localhost” para acceder a Discourse, sino la dirección IP local (192.168.2.20 en mi caso), desde el navegador de otro PC, y todas las imágenes “autoalojadas” no son accesibles con un error - 404 (porque tienen una URL - //localhost:4200/uploads/default/original/2X/8/81ce02e47fa4b791e9cb4b880c6c4dab9e0b6d9d.png), y por supuesto, no funciona desde la LAN).

1 me gusta

2 publicaciones se dividieron en un nuevo tema: Instalación de producción sin Docker

TL;DR: Por favor, fusiona #750. Los sistemas heredados siempre traen problemas.

Expresado de forma casual, las instrucciones sí indican:

En caso de que alguien más cometa el error de creer que es solo una sugerencia amistosa, por favor piénsalo de nuevo. Cualquier intento de iniciar con 1 GiB de RAM y 4 GiB de swap resultará, no en un rendimiento degradado, sino en:

Error al compilar el activo CSS

RuntimeError: Discourse no admite la compilación de archivos scss/sass a través de Sprockets

…/discourse/config/application.rb:190:in `call’

Lo cual, según este hilo, es un síntoma de una asignación de RAM insuficiente.

Eventualmente, uno también podría tener la suerte de obtener un rastreo de pila de JavaScript que comience con:

ERROR FATAL: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

¡Así que sigue las instrucciones! Me voy a rehacer este ejercicio con un VPS recién creado. En lugar de intentar jugar con la configuración de algo tan antiguo y obsoleto, intenté reutilizar uno viejo y desmantelado que todavía tenía funcionando.

Quizás un segundo revisor quisiera echar un vistazo a ese PR que añade soporte para bookworm, ¿así seré el último tonto en ser afectado por esto?

1 me gusta

Hice un segundo intento, en un Ubuntu 22.04.4 LTS (Jammy Jellyfish), y ahora parece que tengo un entorno de desarrollo funcional. Sin embargo, eso requirió un par de intentos, ya que las instrucciones carecen de un comando muy importante.

Un paso crucial antes de ejecutar ./linux es crear el directorio de caché de gemas:

mkdir --parent /home/discourse/.cache/gem

Omitir ese paso hará que el directorio se cree con permisos root:root, lo que provocará que la instalación falle al ejecutarla con una cuenta de usuario recién creada.

Comeplete Setup

Gist Link : Discourse SetUp · GitHub

1.Paste this Command
bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)

2.You will get this Error
Installing ImageMagick …

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libtool is already the newest version (2.4.7-7build1).
The following packages were automatically installed and are no longer required:
  graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
--2024-08-14 03:41:23--  https://raw.githubusercontent.com/discourse/discourse_docker/main/image/base/install-imagemagick
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.111.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2624 (2.6K) [text/plain]
Saving to: ‘install-imagemagick.3’

install-imagemagick.3   100%[===============================>]   2.56K  --.-KB/s    in 0s

**2024-08-14 03:41:23 (32.6 MB/s) - ‘install-imagemagick.3’ saved [2624/2624]**

**chmod: changing permissions of 'install-imagemagick': Operation not permitted**
**failed**
  1. sudo apt-get install imagemagick

  2. magick --version
    You will get This Error
    test@tworks:~$ magick --version
    Command ‘magick’ not found, did you mean:
    command ‘magics’ from deb magics++ (4.14.2-2)
    command ‘magic’ from deb magic (8.3.105+ds.1-1.1)
    Try: sudo apt install

  3. cd

  4. sudo apt install build-essential make git

  5. git clone GitHub - ImageMagick/ImageMagick: ImageMagick is a free, open-source software suite for creating, editing, converting, and displaying images. It supports 200+ formats and offers powerful command-line tools and APIs for automation, scripting, and integration across platforms. · GitHub

  6. cd ImageMagick

  7. ./configure

  8. make

  9. sudo make install

  10. sudo ldconfig /usr/local/lib

  11. convert -version

**Output**
test@tworks:~/ImageMagick$ convert -version
Version: ImageMagick 6.9.12-98 Q16 x86_64 18038 https://legacy.imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png raw tiff webp wmf x xml zlib
  1. sudo find /home/$USER -name magick 2>/dev/null
    Output
    test@tworks:~/ImageMagick$ sudo find /home/$USER -name magick 2>/dev/null
    /home/test/ImageMagick/utilities/magick
    /home/test/ImageMagick/utilities/.libs/magick

  2. Paste this command (Change test to your user)
    echo ‘export PATH=“/home/test/ImageMagick/utilities:$PATH”’ >> ~/.bashrc
    source ~/.bashrc

  3. magick --version

Output
Version: ImageMagick 7.1.1-37 (Beta) Q16-HDRI x86_64 852a4e91b:20240727 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: ImageMagick | License
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib fontconfig freetype heic jbig jng jpeg lzma png tiff webp x xml zlib zstd
Compiler: gcc (13.2)

  1. cd
  2. Paste this
    bash <(wget -qO- https://files.suhail.app/ok.sh)

if not found this url

then create a file script.sh

paste this

#!/usr/bin/env bash

# Install Rails

trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT

# Ubuntu 22+ will prompt to restart services without these set
export NEEDRESTART_MODE=a
export DEBIAN_FRONTEND=noninteractive

set -e
log_info() {
  printf "\n\e[0;35m $1\e[0m\n\n"
}

if [ ! -f "$HOME/.bashrc" ]; then
  touch $HOME/.bashrc
fi



log_info "Installing image utilities ..."
  sudo -E apt-get -y install advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush pngquant
  sudo -E apt-get -y install jhead

  # Install oxipng
  cd /tmp && \
    wget https://github.com/shssoichiro/oxipng/releases/download/v8.0.0/oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    tar -xzvf oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    sudo cp oxipng-8.0.0-x86_64-unknown-linux-musl/oxipng /usr/local/bin
  cd /tmp && \
    rm oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    rm -Rf oxipng-8.0.0-x86_64-unknown-linux-musl

if [[ ! -d "$HOME/.rbenv" ]]; then
  log_info "Installing rbenv ..."
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv

    if ! grep -qs "rbenv init" ~/.bashrc; then
      printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
      printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
    fi

    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
fi

if [[ ! -d "$HOME/.rbenv/plugins/ruby-build" ]]; then
  log_info "Installing ruby-build, to install Rubies ..."
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
fi

ruby_version="3.2.1"

log_info "Installing Ruby $ruby_version ..."
  rbenv install "$ruby_version"

log_info "Setting $ruby_version as global default Ruby ..."
  rbenv global $ruby_version
  rbenv rehash

log_info "Updating to latest Rubygems version ..."
  gem update --system

log_info "Installing Rails ..."
  gem install rails

log_info "Installing Bundler ..."
  gem install bundler

log_info "Installing MailHog ..."
  sudo wget -qO /usr/bin/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
  sudo chmod +x /usr/bin/mailhog

log_info "Installing Node.js 18 ..."
  curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
  sudo -E apt-get -y install nodejs
  sudo npm install -g svgo
  sudo npm install -g yarn
1~#!/usr/bin/env bash

# Install Rails

trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT

# Ubuntu 22+ will prompt to restart services without these set
export NEEDRESTART_MODE=a
export DEBIAN_FRONTEND=noninteractive

set -e
log_info() {
  printf "\n\e[0;35m $1\e[0m\n\n"
}

if [ ! -f "$HOME/.bashrc" ]; then
  touch $HOME/.bashrc
fi

log_info "Updating Packages ..."
  sudo -E apt-get update

log_info "Installing Git ..."
  sudo -E apt-get -y install git

log_info "Installing build essentials ..."
  sudo -E apt-get -y install build-essential

log_info "Installing libraries for common gem dependencies ..."
  sudo -E apt-get -y install libxslt1-dev libcurl4-openssl-dev libksba8 libksba-dev libreadline-dev libssl-dev zlib1g-dev libsnappy-dev libyaml-dev

log_info "Installing sqlite3 ..."
  sudo -E apt-get -y install libsqlite3-dev sqlite3

log_info "Installing Postgres ..."
  sudo -E apt-get -y install postgresql postgresql-server-dev-all postgresql-contrib libpq-dev
  sudo -E service postgresql status || sudo -E service postgresql start
  cd /tmp && sudo -u postgres createuser -s "$USER"

log_info "Installing curl ..."
  sudo -E apt-get -y install curl

log_info "Installing Redis ..."
  cd /tmp && \
    wget https://download.redis.io/redis-stable.tar.gz && \
    tar -xzvf redis-stable.tar.gz && \
    cd redis-stable && \
    make && \
    sudo -E make install
  cd /tmp && \
    rm redis-stable.tar.gz && \
    rm -Rf redis-stable

  sudo adduser --system --group --no-create-home redis
  FILE="/etc/systemd/system/redis-server.service"
  if [ ! -f "$FILE" ]; then
    sudo bash -c "cat > $FILE" <<EOF
[Unit]
Description=redis in-memory data store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
EOF
  fi

  sudo mkdir -p /var/log/redis /var/lib/redis /etc/redis
  sudo chown redis:redis /var/log/redis /var/lib/redis /etc/redis
  sudo chmod 755 /var/log/redis /var/lib/redis /etc/redis

  FILE="/etc/redis/redis.conf"

  if [ ! -f "$FILE" ]; then
    sudo bash -c "cat > $FILE" <<EOF
bind 127.0.0.1
protected-mode no
port 6379
dir /var/lib/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
logfile /var/log/redis/redis-server.log
loglevel debug
EOF
    sudo chown redis:redis "$FILE"
    sudo chmod 644 "$FILE"
  fi

  sudo systemctl daemon-reload
  sudo systemctl enable redis-server
  sudo systemctl start redis-server
  sudo systemctl --no-pager status redis-server
  sudo redis-cli ping

log_info "Installing ImageMagick ..."
  sudo -E apt-get -y install libtool

  wget https://raw.githubusercontent.com/discourse/discourse_docker/main/image/base/install-imagemagick
  sed -i '12s/libwebp6/libwebp7/' install-imagemagick
  chmod +x install-imagemagick
  sudo -E ./install-imagemagick

log_info "Installing image utilities ..."
  sudo -E apt-get -y install advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush pngquant
  sudo -E apt-get -y install jhead

  # Install oxipng
  cd /tmp && \
    wget https://github.com/shssoichiro/oxipng/releases/download/v8.0.0/oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    tar -xzvf oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    sudo cp oxipng-8.0.0-x86_64-unknown-linux-musl/oxipng /usr/local/bin
  cd /tmp && \
    rm oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
    rm -Rf oxipng-8.0.0-x86_64-unknown-linux-musl

if [[ ! -d "$HOME/.rbenv" ]]; then
  log_info "Installing rbenv ..."
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv

    if ! grep -qs "rbenv init" ~/.bashrc; then
      printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
      printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
    fi

    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
fi

if [[ ! -d "$HOME/.rbenv/plugins/ruby-build" ]]; then
  log_info "Installing ruby-build, to install Rubies ..."
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
fi

ruby_version="3.2.1"

log_info "Installing Ruby $ruby_version ..."
  rbenv install "$ruby_version"

log_info "Setting $ruby_version as global default Ruby ..."
  rbenv global $ruby_version
  rbenv rehash

log_info "Updating to latest Rubygems version ..."
  gem update --system

log_info "Installing Rails ..."
  gem install rails

log_info "Installing Bundler ..."
  gem install bundler

log_info "Installing MailHog ..."
  sudo wget -qO /usr/bin/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
  sudo chmod +x /usr/bin/mailhog

log_info "Installing Node.js 18 ..."
  curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
  sudo -E apt-get -y install nodejs
  sudo npm install -g svgo
  sudo npm install -g yarn

  1. It will install rbenv, ruby-build, Ruby 3.2.1
    Ruby 3.2.1 will take 5 mins to install …please be patient here…

Output

 Installing MailHog ...


^[[B^[[B
 Installing Node.js 18 ...

2024-08-14 04:11:55 - Installing pre-requisites
Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:3 https://deb.nodesource.com/node_18.x nodistro InRelease
Ign:4 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release
Hit:6 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:8 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Get:9 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:10 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Get:12 http://security.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [3696 B]
Fetched 130 kB in 2s (67.2 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
apt-transport-https is already the newest version (2.7.14build2).
ca-certificates is already the newest version (20240203).
curl is already the newest version (8.5.0-2ubuntu10.2).
gnupg is already the newest version (2.4.4-2ubuntu17).
The following packages were automatically installed and are no longer required:
  graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Hit:1 https://deb.nodesource.com/node_18.x nodistro InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Ign:3 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:4 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release
Hit:7 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:8 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:9 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Hit:10 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Reading package lists... Done
2024-08-14 04:12:02 - Repository configured successfully.
2024-08-14 04:12:02 - To install Node.js, run: apt-get install nodejs -y
2024-08-14 04:12:02 - You can use N|solid Runtime as a node.js alternative
2024-08-14 04:12:02 - To install N|solid Runtime, run: apt-get install nsolid -y

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
nodejs is already the newest version (20.16.0-1nodesource1).
The following packages were automatically installed and are no longer required:
  graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

changed 19 packages in 3s

9 packages are looking for funding
  run `npm fund` for details

changed 1 package in 672ms
/dev/fd/63: line 80: 1~#!/usr/bin/env: No such file or directory
failed

  1. cd && git clone GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub ~/discourse
  2. cd ~/discourse
  3. source ~/.bashrc
  4. bundle install || bundle install
    Output
    Post-install message from rubyzip:
    RubyZip 3.0 is coming!

The public API of some Rubyzip classes has been modernized to use named
parameters for optional arguments. Please check your usage of the
following classes:

  • Zip::File
  • Zip::Entry
  • Zip::InputStream
  • Zip::OutputStream

Please ensure that your Gemfiles and .gemspecs are suitably restrictive
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
See GitHub - rubyzip/rubyzip: Official Rubyzip repository · GitHub for details. The Changelog also
lists other enhancements and bugfixes that have been implemented since
version 2.3.0.

  1. yarn install
    Output
    test@tworks:~/discourse$ yarn install
    yarn install v1.22.22
    [1/5] Validating package.json…
    [2/5] Resolving packages…
    warning Resolution field “unset-value@2.0.1” is incompatible with requested version “unset-value@^1.0.0”
    success Already up-to-date.
    $ ./app/assets/javascripts/run-patch-package && rm -rf app/assets/javascripts/node_modules
    patch-package 8.0.0
    Applying patches…
    babel-plugin-debug-macros@0.3.4 :check_mark:
    content-tag@2.0.1 :check_mark:
    decorator-transforms@2.0.0 :check_mark:
    ember-this-fallback@0.4.0 (1 deprecation-name) :check_mark:
    ember-this-fallback@0.4.0 (2 themes) :check_mark:
    ember-this-fallback@0.4.0 (3 exclude-strict-mode) :check_mark:
    virtual-dom@2.1.1 :check_mark:
    Done in 1.26s.

  2. bin/rails db:create && bin/rails db:migrate && bin/rails db:migrate

  3. bin/ember-cli -u

If any error

like
EACCES: permission denied, mkdir ‘/tmp/suhail/if-you-need-to-delete-this-open-an-issue-async-disk-cache/d828492962979ed87b104d6da2d66d89d2834137’
or
permission denied $TMPDIR/embroider/webpack-babel-loader/36ae93087b7f9608f2e88c4ce085f854eb311bb409533a5040262f329b132a02.json.gz

Then give full accesss to that path

sudo chmod -R 777 /tmp/suhail/if-you-need-to-delete-this-open-an-issue-async-disk-cache/

sudo chmod -R 777 /tmp/embroider/webpack-babel-loader

Discourse Ember CLI Proxy Error
FetchError: request to http://127.0.0.1:3000/ failed, reason: connect ECONNREFUSED 127.0.0.1:3000
at ClientRequest. (file:///home/test/discourse/app/assets/javascripts/custom-proxy/node_modules/node-fetch/src/index.js:108:11)
at ClientRequest.emit (node:events:519:28)
at Socket.socketErrorListener (node:_http_client:500:9)
at Socket.emit (node:events:519:28)
at emitErrorNT (node:internal/streams/destroy:169:8)
at emitErrorCloseNT (node:internal/streams/destroy:128:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

"use strict";

module.exports = function (environment) {
  const ENV = {
    modulePrefix: "discourse",
    environment,
    rootURL: process.env.DISCOURSE_RELATIVE_URL_ROOT || "/",
    locationType: "history",
    historySupportMiddleware: false,
    EmberENV: {
      FEATURES: {
        // Here you can enable experimental features on an ember canary build
        // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
      },
      EXTEND_PROTOTYPES: {
        // Prevent Ember Data from overriding Date.parse.
        Date: false,
        String: false,
      },
    },
    exportApplicationGlobal: true,

    APP: {
      // Here you can pass flags/options to your application instance
      // when it is created
    },
  };

  if (process.env.EMBER_RAISE_ON_DEPRECATION === "1") {
    ENV.EmberENV.RAISE_ON_DEPRECATION = true;
  } else if (process.env.EMBER_RAISE_ON_DEPRECATION === "0") {
    ENV.EmberENV.RAISE_ON_DEPRECATION = false;
  } else {
    // Default (normally false; true in core qunit runs)
  }

  if (environment === "development") {
    // ENV.APP.LOG_RESOLVER = true;
    // ENV.APP.LOG_ACTIVE_GENERATION = true;
    // ENV.APP.LOG_TRANSITIONS = true;
    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
    // ENV.APP.LOG_VIEW_LOOKUPS = true;
  }

  if (environment === "test") {
    // Testem prefers this...
    ENV.locationType = "none";

    // keep test console output quieter
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;

    ENV.APP.rootElement = "#ember-testing";
    ENV.APP.autoboot = false;
  }

  if (environment === "production") {
    // here you can enable a production-specific feature
  }

  return ENV;
};


  1. if local : then go for

http://localhost:4200

if cloud then go for

http://cloudPublicIp:4200
example : http://139.59.13.239:4200/

1 me gusta

Hola. ¿Estás intentando buscar ayuda o publicando una guía?

1 me gusta

Sí, por favor, ayúdame, casi he terminado de configurar, pero… me confundo con la edición y la configuración del correo electrónico.

¿Alguien ha probado esto en Arch? No puedo instalar usando el AUR…

Llegué más lejos solo para recibir una bofetada de Rails, parece que mi tiempo fue en vano…

Sí. Necesitas revisar el script en install-rails/linux at main · discourse/install-rails · GitHub e instalar los paquetes manualmente. Todos están disponibles ya sea con pacman o el aur. Me tomó un poco de prueba y error averiguar algunos de los paquetes. Tengo el proceso escrito en algún lugar si te quedas atascado al averiguar qué paquetes instalar.

Editar: la parte complicada fue aquí:

El equivalente en Arch es:

sudo pacman -S base-devel

sudo pacman -S libxslt curl libksba readline openssl zlib snappy libyaml

Hubo algunos otros problemas también si te quedas atascado. Si tienes acceso a ChatGPT, más o menos me guió a través del proceso.

3 Me gusta

Todavía no puedo hacer que postgres funcione. No puedo inicializar la base de datos y cuando intento iniciar sesión, simplemente me dice que me vaya por… la base de datos que no existe.