Install Discourse on Ubuntu or Debian for Development

:warning: This guide covers installation instructions in a development environment. For a production guide see: Install Discourse in production with the official supported instructions


So you want to set up Discourse on Ubuntu or Debian to hack on and develop with?

We’ll assume that you work locally and don’t have Ruby/Rails/Postgres/Redis installed on your Ubuntu or Debian system. Let’s begin!

Requirements

We suggest having at least 4 GB RAM and 2 CPU cores.

Current compatibility:

OS Compatibility
Debian 11 :white_check_mark:
Crostini (Linux on ChromeOS) :white_check_mark:
Ubuntu 22.04 or later :white_check_mark:

Install Discourse Dependencies

You will need the following packages on your system:

** optional

Now that we have installed Discourse dependencies, let’s move on to install Discourse itself.

Clone Discourse

Clone the Discourse repository in ~/discourse folder:

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

~ indicates home folder, so Discourse source code will be available in your home folder.

Setup Database

Create role with the same name as your Linux system username:

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

[/details]

Bootstrap Discourse

Switch to your Discourse folder:

 cd ~/discourse

Install the needed gems

source ~/.bashrc
bundle install

Install the JS dependencies

pnpm install

Now that you have successfully installed gems, run these commands:

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

Start rails and ember server:

bin/ember-cli -u

If the images are not appearing, use this command instead:
(you can also specify an IP if you are working on a remote server)

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

You should now be able to navigate to http://localhost:4200 to see your local Discourse installation.

Create New Admin

To create a new admin, run the following command:

bin/rails admin:create

Follow the prompts, and a new admin account will be created.

Configure Mail

Run MailHog:

mailhog

Congratulations! You are now the admin of your own Discourse installation!

Happy hacking! And to get started with that, see Beginner’s Guide to Creating Discourse Plugins.


Last Reviewed by @blake on 2023-04-03T06:00:00Z


This document is version controlled - suggest changes on github.

「いいね!」 65
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?
Can I install discourse on my local machine
Unable to Install Discourse for development
Jhead and svgo errors while running specs
Issue in setup discourse on ubuntu server
Rspec failing to load when using the official beginners guide
How to add a new language
Can't set up dev environment due to cppjieba_rb failing to install
Export only database data Postgres (for users, posts and topics)
How do I go about making a very customized theme?
Bitnami Discourse VM on Virtualbox + SMTP mail-server for testing
Install Discourse on Windows for development
Moderation Tools
Not receiving Activation Email
Mini_racer installation issues on ubuntu vagrant (OSX)
Override profile background via SSO
Images are not being populated in discourse
How to install Discourse locally?
Developing Discourse Plugins - Part 1 - Create a basic plugin
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)
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?
Unable to setup discourse
Migrate a phpBB3 forum to Discourse
Installing Plugins in Discourse Development Install
Migrate from GetSatisfaction 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
Need to restart Ember in order to test front-end changes
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
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
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
Need help integrating code wrote on Edittext to the Discourse
Integration into custom auth system where emails are not unique?
Can't install the bundle
Overriding user_guardian.rb in a plugin (no fork necessary!)
Contributing to Discourse development
Development install fails when running bin/rails db:migrate
Developing Discourse on GitHub Codespaces
Install Discourse on Windows for development
Connecting WP Discourse to a local Discourse Instance running a specific version
Chat not working after dev install
Discourse Ember CLI Proxy Error
Bundling more popular plugins with Discourse core
Migrate a vBulletin 4 forum to Discourse
Docker in VMWare - How to access to Discourse
How can I make my own Discourse plugins?
Install Discourse on Windows for development
What is the latest recommended workflow for local development? (Ubuntu 16.04)
What is the latest recommended workflow for local development? (Ubuntu 16.04)
How to customize the Discourse app using docker container?
Uploads location on dev instance?
Update PhantomJS to latest for Ubuntu dev guide?
A check for updates has not been performed lately. Ensure sidekiq is running
How to fix bundler executable conflicts in the `techAPJ/install-rails` script?
Ubuntu development install: Permission denied @ apply2files
Install discourse on localhost
Trouble getting a top level page to Ember
Formal german available?
Any interest in Podman?
Rake aborted message is showing when installing vagrant development
Where is the db connection information discourse?
How to install the bootsnap gem?
State of disqus to discourse importer
Connecting to Droplet
Connecting to Droplet
Install Discourse on Windows for development
Install and import Mysql on the development environment
Can't uninstall on Ubuntu 18.04
How to install Discourse on windows
Share your Discourse dev setup
Discourse running very slow on local machine
Can't find the Discourse folder inside virtual box via ssh
Importing MyBB database to Discourse
How to install Discourse on windows
How to create new user with verified email in development mode?
Unable to create Vagrant local installation
Installing problem - bundle install
How to get a docker image of discourse using bash on windows 10?
Attachment filename not set on download
[PAID] Import from Legacy Postgres DB
Dev Category sidebar
Discourse Server logs show DB queries when I run the server
Does Gemfile need to include svg?
Does Gemfile need to include svg?
Database wont migrate Discourse
I want to build a debug version of discourse
How to reset discourse on dev mode? (w/o docker)
Nodebb to Discourse
Install Discourse on Windows for development
Install Discourse on Windows for development
RSpec search_spec.rb RateLimiter LimitExceeded problems
Discourse as Your First Rails App
Issue with vagrant version following the dev guide
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?
Vbulletin 4 import -
Hello from Gitpod! (installing on google cloud + automated dev setup)
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?
Install Discourse for development using Docker
Bundler cannot continue due installation error of mini_racer 0.4.0
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
Developing Discourse Plugins - Part 6 - Add acceptance tests

カレンダプラグインを削除して修正しました。 :thinking:

「いいね!」 3

インストールが非常に遅いです

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

こんにちは。Ubuntu Server 24 にインストールしようとしていますが、imagemagick がインストールできません。

コンソールログ
install-imagemagick                                         100%[=========================================================================================================================================>]   2.57K  --.-KB/s    in 0s


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

Reading package lists...
Building dependency tree...
Reading state information...
Package 'imagemagick' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libwebp6
E: Unable to locate package libltdl7-dev

Ubuntu では libwebp6 ではなく libwebp7 をインストールする必要があるようですが、スクリプトには Ubuntu 22 用の libwebp バージョンチェックしか存在しません。

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

このコードは、いずれにしても libwebp7 をインストールするように編集する必要があると思います…

「いいね!」 1

私も同じ問題を抱えています。何か提案はありますか?

メインスクリプトをダウンロードしました:
https://raw.githubusercontent.com/discourse/install-rails/main/linux

そしてinstall-imagemagickをダウンロードしました。

install-imagemagickスクリプトの12行目を編集しました。
次のように:
LIBWEBP=$(cat /etc/issue | grep -qi 'Ubuntu 22' && echo 'libwebp7' || echo 'libwebp6')
から
LIBWEBP=$(cat /etc/issue | grep -qi 'Ubuntu 22' && echo 'libwebp7' || echo 'libwebp7')

また、メインスクリプトの105行目で、install-imagemagickスクリプトを呼び出している箇所を編集しました。この行では、元のファイルではなく、編集済みのinstall-imagemagickインストールファイルが呼び出されるようになります。

「いいね!」 1

新しいエラーが発生しました。

'bullseye-backports' という値は、ソースで利用可能なリリースではないため、APT::Default-Release として無効です。
失敗しました

もうだめだ…
最初の投稿の指示は現在有効ではないことにここで注意すべきだと思います。
docker で試してみます。

以前、Ubuntu 20 と Debian 12 のサポートを追加する PR を作成しました。見直す必要がありそうです。

Ubuntu 24 の場合、正規表現を次のように変更する必要があります。
grep -qiE 'Ubuntu 2[2-9]'

PR で行ったように、チェックを削除できます。


更新されたバージョンを、あなたのケースで使用できます。

#!/bin/bash
set -e

# バージョンチェック: https://github.com/ImageMagick/ImageMagick/releases
IMAGE_MAGICK_VERSION="7.1.0-62"
IMAGE_MAGICK_HASH="d282117bc6d0e91ad1ad685d096623b96ed8e229f911c891d83277b350ef884a"

# debian を使用しますが、GitHub CI は Ubuntu Bionic に固定されているため、両方と互換性がある必要があります
LIBJPEGTURBO=$(cat /etc/issue | grep -qi Debian && echo 'libjpeg62-turbo libjpeg62-turbo-dev' || echo 'libjpeg-turbo8 libjpeg-turbo8-dev')

# Ubuntu 22/23/24 および Debian 12 には libwebp6 がありません
LIBWEBP=$(cat /etc/issue | grep -qiE 'Ubuntu 22|Debian.*12' && echo 'libwebp7' || echo 'libwebp6')

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

# ビルド依存関係をインストール
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

# 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

# ImageMagick のインストールを検証
test $(convert -version | grep -o -e png -e tiff -e jpeg -e freetype -e heic -e webp | wc -l) -eq 6
「いいね!」 3

はい。動作しています、ありがとうございます!いくつか疑問があります。デバッグのためにLANから使用するようにDiscourseを構成するにはどうすればよいですか?私のUbuntuはHyper-V Ubuntu Serverなので、Discourseにアクセスするために「localhost」ではなく、ローカルIPアドレス(私の場合は192.168.2.20)を別のPCブラウザから使用しています。そして、「セルフホスト」されたすべての画像は、URLが //localhost:4200/uploads/default/original/2X/8/81ce02e47fa4b791e9cb4b880c6c4dab9e0b6d9d.png となっているため、404エラーでアクセスできません。もちろん、LANからは機能しません。

「いいね!」 1

2件の投稿が新しいトピックに分割されました: Docker-less production install

TL;DR: #750をマージしてください。レガシーシステムは常に問題を引き起こします。

気軽に言えば、指示には次のように書かれています。

もし他に、これが単なる親切な提案だと信じて間違える人がいたら、考え直してください。1GiBのRAMと4GiBのスワップで起動しようとすると、パフォーマンスの低下ではなく、次のような結果になります。

CSSアセットのコンパイルエラー

RuntimeError: DiscourseはSprockets経由でのscss/sassファイルのコンパイルをサポートしていません

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

このスレッドによると、これはRAM割り当てが不十分な場合の症状です。

最終的には、次のようなJavaScriptスタックトレースが表示される可能性もあります。

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

ですから、指示に従ってください!私は新たに作成したVPSでこの演習をやり直すつもりです。古いものをセットアップするのではなく、まだ稼働していた古い廃止されたbullseyeを再利用しようとしました。

もしかしたら、2番目のレビュアーがbookwormサポートを追加するPRを見てくれるかもしれません。そうすれば、私が最後の犠牲者にならずに済みますか?

「いいね!」 1

Ubuntu 22.04.4 LTS (Jammy Jellyfish) で 2 回目の試行を行い、開発環境が機能するようになりました。ただし、指示には非常に重要なコマンドが 1 つ欠けていたため、数回の試行が必要でした。

./linux を実行する前の重要な手順は、gem キャッシュ ディレクトリを作成することです。

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

この手順を省略すると、ディレクトリは root:root の権限で作成され、新しく作成されたユーザー アカウントで実行するとインストールが失敗します。

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.

  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: ImageMagick | License
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 GitHub - rbenv/rbenv: Manage your app's Ruby environment ~/.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 GitHub - rbenv/ruby-build: A tool to download, compile, and install Ruby on Unix-like systems. ~/.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 GitHub - rbenv/rbenv: Manage your app's Ruby environment ~/.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 GitHub - rbenv/ruby-build: A tool to download, compile, and install Ruby on Unix-like systems. ~/.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 Debian Jenkins Packages binary/ InRelease
Hit:5 Debian Jenkins Packages binary/ Release
Hit:6 Index of /ubuntu/ noble InRelease
Hit:8 Index of /ubuntu/ noble-updates InRelease
Get:9 Index of /ubuntu noble-security InRelease [126 kB]
Hit:10 Index of /ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 Index of /ubuntu/ noble-backports InRelease
Get:12 Index of /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 Debian Jenkins Packages binary/ InRelease
Hit:4 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:5 Debian Jenkins Packages binary/ Release
Hit:7 Index of /ubuntu/ noble InRelease
Hit:8 Index of /ubuntu noble-security InRelease
Hit:9 Index of /ubuntu/ noble-updates InRelease
Hit:10 Index of /ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 Index of /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. ~/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 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

こんにちは。ヘルプをお探しですか、それともガイドを投稿していますか?

「いいね!」 1

はい、お手伝いします。ほぼ設定が完了しましたが、編集とメール設定に戸惑っています。

Archで試した人はいますか?AURを使ってインストールできません。

Railsに一蹴されてしまいましたが、さらに進みました。時間の無駄だったようです。

はい。install-rails/linux at main · discourse/install-rails · GitHub のスクリプトを確認し、パッケージを手動でインストールする必要があります。それらはすべてpacmanまたはaurで利用可能です。パッケージのいくつかを理解するには、試行錯誤に時間がかかりました。パッケージのインストール方法がわからない場合は、プロセスをどこかに書き留めてあります。

編集:難しい部分はここにありました:

Archでの相当するものは次のとおりです。

sudo pacman -S base-devel

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

もし行き詰まった場合は、他にもいくつか問題がありました。ChatGPTにアクセスできる場合は、ほぼプロセスを段階的に説明してくれました。

「いいね!」 3

Postgres がまだ実行できません。DB を初期化できず、ログインしようとすると、存在しない DB のために「失せろ」と表示されます。