이 가이드는 Fedora 31과 33의 새 설치 환경에서 테스트되었지만, dnf를 패키지 관리 도구로 사용하는 이전 버전에서도 작동할 수 있습니다. 이는 공식 가이드는 아니지만 Fedora를 사용하는 다른 개발자분들에게 유용할 수 있습니다. 이 가이드는 주로 Ubuntu 개발 가이드를 기반으로 하며, dnf에 맞는 패키지 차이점을 반영하여 수정되었습니다. 이미 패키지가 설치되어 있지 않다고 가정하지만, 이미 설치된 패키지는 대부분 도구가 자동으로 건너뜁니다.
프로덕션 환경에 Discourse를 설치하려는 경우, GitHub의 docker 설치 지침을 우선적으로 따르는 것이 좋습니다.
필수 시스템 및 개발 패키지 설치
sudo dnf update
sudo dnf install -y "@development-tools" git rpm-build zlib-devel ruby-devel readline-devel libpq-devel ImageMagick sqlite sqlite-devel nodejs npm curl gcc g++ bzip2 openssl-devel libyaml-devel libffi-devel zlib-devel gdbm-devel ncurses-devel optipng pngquant jhead jpegoptim gifsicle oxipng
필수 npm 패키지 설치
sudo npm install -g svgo pnpm
Postgres 설치 및 설정
sudo dnf install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo -u postgres -i createuser -s $USER
Redis 설치 및 설정
sudo dnf install redis
sudo systemctl enable redis
sudo systemctl start redis
rbenv, ruby-build 및 ruby 설치
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
~/.rbenv/bin/rbenv init
printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# 설치가 올바른지 확인
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
rbenv install 2.7.1
rbenv global 2.7.1
rbenv rehash
Ruby 의존성 설치
gem update --system
gem install bundler mailcatcher rails
Discourse 코드 클론
git clone https://github.com/discourse/discourse.git ~/discourse
cd ~/discourse
Discourse 의존성 설치
bundle install
pnpm install
필수 데이터베이스 생성 및 스키마 로드
bundle exec rake db:create db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
테스트 실행으로 설치 확인
bundle exec rake autospec
애플리케이션 실행
bundle exec rails server
이제 http://localhost:3000에서 Discourse 설정 페이지를 볼 수 있어야 합니다.
추가 설정에 대해서는 기존 공식 설치 가이드를 참고하세요.
이 문서는 버전 관리됩니다. 변경 사항을 GitHub에서 제안할 수 있습니다.