웹사이트 검색

Debian 11에 Mastodon 소셜 네트워크를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 11(불스아이)
  • 데비안 10(버스터)

이 페이지에서

  1. 전제 조건
  2. 저장소 설정 및 종속성 설치
  3. rbenv 및 Ruby 설치
  4. PostgreSQL 데이터베이스 서버 설정
  5. Mastodon 설치
  6. 시스템 서비스로 Mastodon 실행\n
  7. Nginx를 리버스 프록시로 설정\n
  8. Mastodon 설치 액세스
  9. 결론

Mastodon은 Twitter와 유사한 무료 분산형 오픈 소스 소셜 네트워크입니다. Mastodon에서 사용자는 서로를 팔로우하고 메시지, 이미지 및 비디오를 게시할 수 있습니다. 그러나 Twitter와 달리 콘텐츠에 대한 중앙 저장소나 권한이 없습니다.

분산형 아키텍처를 통해 Mastodon은 커뮤니티의 다양한 구성원이 각각 실행하는 수천 개의 서로 다른 서버에서 작동합니다. 도메인 아래에 Mastodon 서버를 만들 수 있습니다. 다른 서버에서 다른 도메인을 가진 다른 사용자를 팔로우할 수도 있습니다.

이 튜토리얼에서는 Debian 11 서버에 분산형 마이크로블로깅 플랫폼인 Mastodon을 설치합니다. 이 가이드에서는 PostgreSQL을 데이터베이스 서버로, Nginx를 리버스 프록시로 사용하여 Mastodon을 설정합니다. 또한 Letsencrypt의 무료 SSL 인증서를 통해 Mastodon 설치를 보호합니다.

전제 조건

이 가이드에서는 다음과 같은 요구 사항이 있다고 가정합니다.

  • Debian 11 서버 - 이 예에서는 호스트 이름이 mastodon-server이고 IP 주소가 192.168.5.40인 최신 Debian 11 서버를 사용합니다.\n
  • sudo/root 관리자 권한이 있는 루트가 아닌 사용자.\n
  • 공용 데비안 서버를 가리키고 확인된 도메인 이름 - 이 예에서는 하위 도메인 mastodon.hwdomain.io를 사용합니다.\n

이러한 전제 조건을 갖추면 Mastodon 설치로 이동할 준비가 된 것입니다.

리포지토리 설정 및 종속성 설치

Mastodon은 Twitter 서비스와 유사한 자체 호스팅 소셜 네트워킹 서비스를 실행하기 위한 무료 오픈 소스 소프트웨어입니다. 주로 Ruby로 작성되었으며 특히 Ruby on Rails 웹 프레임워크와 Reac.js 및 Redux 프레임워크가 포함된 JavaScript로 작성되었습니다.

이 첫 번째 단계에서는 시스템에 추가 리포지토리를 설정하고 Mastodon 설치를 위한 패키지 종속성을 설치합니다. 여기에는 Ruby 컴파일을 위한 build-essentials, 데이터베이스 서버용 PostgreSQL, 웹 서버 및 리버스 프록시로서의 Nginx, Letsencrypt를 통해 SSL 인증서를 획득하기 위한 certbot 도구, 키-값 저장소에 사용될 Redis 서버와 같은 패키지가 포함됩니다. Mastodon에 대한 세션 관리.

시작하기 전에 아래 apt 명령을 실행하여 리포지토리 및 패키지 관리에 사용할 몇 가지 기본 종속성을 설치하십시오.

sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificates

메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

다음으로 아래 명령을 실행하여 Node.js Nodesource 저장소를 추가합니다. 여기서 Node.js 패키지는 Mastodon의 정적 자산을 컴파일하는 데 사용됩니다. 그리고 이 글을 쓰는 시점에서 최신 Mastodon은 최소한 Node.js v16이 필요했습니다.

curl -sL https://deb.nodesource.com/setup_16.x | bash -

그러면 다음과 같은 출력이 표시됩니다.

Node.js 리포지토리가 추가된 후 Yarn 패키지 관리자에 대한 리포지토리를 설정합니다. 이 리포지토리는 JavaScript 종속성을 설치하는 데 사용할 Yarn 패키지를 제공합니다.

아래 명령을 실행하여 Yarn 패키지 관리자의 GPG 키와 리포지토리를 추가합니다.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

추가할 세 번째 리포지토리는 PostgreSQL 리포지토리입니다. 아래 명령을 실행하여 Debian 서버에 PostgreSQL 리포지토리를 추가합니다.

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/postgresql.list

Node.js, Yarn 및 PostgreSQL 리포지토리가 추가된 상태에서 아래 apt 명령을 실행하여 패키지 인덱스를 새로 고칩니다.

sudo apt update

이와 같은 출력을 받게 됩니다.

마지막으로 아래 apt 명령을 실행하여 Mastodon을 설치하는 데 사용할 패키지 종속성을 설치합니다.

sudo apt install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
  bison build-essential libssl-dev libyaml-dev libreadline6-dev \
  zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
  nginx nodejs yarn redis-server redis-tools postgresql postgresql-contrib \
  certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

이것으로 Mastodon에 대한 기본 종속성을 설치하고 데비안 시스템에 일부 타사 리포지토리를 추가했습니다.

다음 단계에서는 rbenv - Ruby 버전 관리자를 통해 Ruby를 설치합니다.

rbenv 및 Ruby 설치

rbenv는 Unix 계열 시스템의 Ruby 프로그래밍 언어용 버전 관리자 도구입니다. 동일한 컴퓨터에서 여러 Ruby 버전 간에 전환하고 작업 중인 각 프로젝트가 항상 올바른 Ruby 버전에서 실행되도록 하는 데 유용합니다.

시작하려면 아래 명령을 실행하여 시스템에 새 사용자 mastodon을 생성하십시오. 이 새 사용자는 Mastodon과 관련된 서비스를 실행하는 데 사용되며 Mastodon 소스 코드는 이 사용자 홈 디렉토리에 저장됩니다.

sudo adduser --disabled-login mastodon

프로세스 중에 사용자 세부 정보 구성을 묻는 메시지가 나타납니다. 사용자 정보를 입력하고 y를 입력하여 확인하고 ENTER를 누릅니다.

Mastodon 사용자 생성 후 아래 명령어를 실행하여 로그인합니다.

su - mastodon

다음으로 아래의 git 명령을 통해 rbenv 소스 코드를 다운로드합니다.

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

그런 다음 아래 명령을 실행하여 시스템에 rbenv를 설치합니다.

cd ~/.rbenv && src/configure && make -C src

rbenv가 설치된 후 이와 같은 출력을 받게 됩니다.

다음으로 아래 명령을 실행하여 시스템 PATH에 rbenv bin 디렉토리를 추가하고 사용자가 새 세션에 로그인할 때마다 rbenv를 로드합니다.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

이제 bashrc 구성 파일을 다시 로드하여 현재 쉘을 다시 로드하십시오. 그런 다음 쉘에 rbenv 명령을 입력하고 TAB을 누르십시오.

source ~/.bashrc
rbenv TAB

다음 스크린샷에서 rbenv가 설치되었으며 이제 rbenv 명령을 실행하여 Ruby를 설치할 수 있습니다.

Ruby를 설치하기 전에 ruby-build라는 rbenv 플러그인을 설치해야 합니다. 이 플러그인은 특히 UNIX와 유사한 운영 체제의 경우 소스에서 Ruby 설치를 간소화하는 명령줄 도구를 제공합니다.

git 명령을 통해 ruby-build 플러그인을 다운로드합니다.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

ruby-build 플러그인이 추가된 후 아래 명령을 실행하여 현재 Mastodon 버전에 필요한 Ruby v3.0.4를 설치합니다.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

설치가 완료되면 이와 유사한 출력이 표시됩니다.

이제 아래 명령을 실행하여 기본 Ruby 버전을 3.0.4로 설정합니다. 그런 다음 아래와 같이 ruby 명령을 사용하여 확인합니다. Ruby v3.0.4가 Debian 시스템에 설치된 것을 볼 수 있습니다.

rbenv global 3.0.4
ruby --version

마지막으로 Ruby 패키지 관리로 번들러를 설치해야 합니다. 아래 gem 명령을 실행하여 번들러를 설치합니다.

gem install bundler --no-document

이 시점에서 시스템에 대한 Mastodon 패키지 종속성 설치를 완료했습니다. rbenv Ruby 버전 관리자를 통해 Ruby 3.0.4를 설치하고 Ruby 패키지 관리 도구인 번들러를 설치했습니다.

다음 단계에서는 Mastodon 설치에 사용할 PostgreSQL 사용자를 설정합니다.

PostgreSQL 데이터베이스 서버 설정

이 단계에서는 PostgreSQL 서비스를 확인하여 서비스가 활성화되어 실행 중인지 확인합니다. 그런 다음 PostgreSQL 셸을 통해 새로운 PostgreSQL 사용자/역할 마스토돈을 생성합니다.

루트 사용자/권한으로 아래 명령을 수행하십시오.

시작하기 전에 아래의 systemctl 명령 유틸리티를 실행하여 PostgreSQL 서비스가 실행 중이고 활성화되어 있는지 확인하십시오.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

이와 유사한 출력이 표시되어야 합니다.

PostgreSQL이 실행 중인 상태에서 아래 명령을 실행하여 PostgreSQL 셸에 로그인합니다.

cd /etc/postgresql
sudo -u postgres psql

PostgreSQL 셸에 로그인한 후 아래 PostgreSQL 쿼리를 실행하여 새 역할/사용자 마스토돈을 생성합니다. 또한 강력한 새 암호로 기본 암호를 변경해야 합니다.

CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';

다음으로 아래 쿼리를 실행하여 새 PostgreSQL 사용자/역할이 생성되었는지 확인합니다. 그런 다음 \\q을 입력하여 PostgreSQL 셸을 종료합니다.

\du
\q

아래 출력은 새로운 PostgreSQL 사용자/역할 마스토돈이 생성되었음을 보여줍니다.

PostgreSQL 사용자/역할이 생성되면 데비안 시스템에 Mastodon을 설치할 준비가 됩니다.

마스토돈 설치

이 단계에서는 데비안 서버에 Mastodon을 설치하고 구성합니다. 또한 Mastodon에 대한 Ruby 종속성과 JavaScript 종속성을 설치합니다. 마지막으로 배포를 위한 Mastodon 구성을 시작합니다. 여기에는 도메인 구성, 데이터베이스 및 redis 구성, SMTP 구성 및 Mastodon 관리 사용자 구성이 포함됩니다.

시작하기 전에 아래 명령을 통해 mastodon 사용자로 로그인합니다.

su - mastodon

이제 git 명령을 통해 Mastodon 소스 코드를 다운로드하고 브랜치를 최신 안정 버전의 Mastodon으로 변경합니다. 이 글을 쓰는 시점에서 Mastodon의 안정 버전은 v4.0.2입니다.

git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

다음으로 아래 명령을 실행하여 Mastodon 배포를 설정하고 Ruby 종속성을 설치합니다.

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)

Mastodon Ruby 의존성 설치에는 시간이 걸립니다. 다음은 터미널에서 수신하게 될 유사한 출력입니다.

Mastodon Ruby 종속 항목을 설치한 후 아래의 yarn 명령을 실행하여 Mastodon용 JavaScript 종속 항목을 설치합니다.

yarn install --pure-lockfile

그러면 이와 유사한 출력이 표시됩니다.

Ruby 종속성과 JavaScript 종속성이 설치된 상태에서 Mastodon 설치를 설정합니다.

프로덕션 환경에 대한 Mastodon을 설정하려면 아래 명령을 실행하십시오.

RAILS_ENV=production bundle exec rake mastodon:setup

Mastodon의 일부 구성에 대한 질문을 받게 됩니다.

  • Mastodon 도메인 이름? 이 예에서는 도메인 mastodon.hwdomain.io를 사용합니다.\n
  • 단일 사용자 모드를 사용하시겠습니까? y를 입력합니다.\n
  • Docker를 사용하여 Mastodon을 실행하시겠습니까? 아니오에 n을 입력합니다.\n
  • PostgreSQL 사용자와 비밀번호를 입력하고 Database configuration works!라는 메시지가 표시되는지 확인합니다.\n
  • 레디스 구성? ENTER를 눌러 기본값으로 두십시오.
  • 클라우드에 파일 업로드를 사용하시겠습니까? 아니오에 n을 입력합니다.\n
  • localhost에서 이메일 전송을 허용하시겠습니까? 확인하려면 예인 경우 y를 입력하고 아니요인 경우 n을 입력합니다. 이는 환경에 따라 다르며 타사 SMTP 서버를 사용할 수도 있습니다.\n
  • 구성을 저장하시겠습니까? 예의 경우 y를 입력합니다.\n
  • 데이터베이스 생성용. y를 입력하여 Mastodon 데이터베이스를 생성합니다.\n
  • 마스토돈에 대한 자산 및 정적 파일을 컴파일하려면 y를 입력합니다.\n
  • 관리자 사용자를 설정하시겠습니까? Mastodon 설치를 위한 새 관리 사용자 및 이메일을 입력합니다. 그러면 자동으로 생성된 암호가 화면에 표시됩니다.\n

도메인 이름, PostgreSQL, Redis 서버 및 SMTP 메일 서버에 대한 Mastodon 구성.

Mastodon은 자산 및 정적 파일을 생성합니다.

마스토돈 관리자 사용자가 생성되고 비밀번호도 단말기 화면에 생성됩니다.

이 시점에서 Debian 11에 Mastodon의 설치 및 구성을 마쳤습니다. 다음 단계에서는 Mastodon을 systemd 서비스로 설정합니다.

Systemd 서비스로 Mastodon 실행

기본적으로 Mastodon은 /home/mastodon/live/dist/ 디렉토리에서 사용할 수 있는 시스템 서비스 파일 샘플을 제공합니다.

아래 명령을 실행하여 Mastodon 서비스 파일을 /etc/systemd/system 디렉터리에 복사합니다.

sudo cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/

이제 systemd에 변경 사항을 적용하려면 systemd 관리자를 다시 로드하십시오.

sudo systemctl daemon-reload

그런 다음 아래의 systemctl 명령 유틸리티를 통해 Mastodon 서비스를 시작하고 활성화합니다.

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

이제 Mastodon 서비스가 실행 중이고 활성화되어 있어야 합니다. 아래 systemctl 명령을 사용하여 확인하십시오.

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

다음 스크린샷과 유사한 출력이 표시됩니다.

mastodon-web 서비스가 실행 중이고 활성화되어 있습니다.

Mastodon-sidekiq도 실행되고 활성화됩니다.

마스토돈 스트리밍 서비스도 실행 및 활성화되었습니다.

모든 Mastodon 서비스가 실행되고 활성화되면 다음으로 Nginx를 Mastodon의 리버스 프록시로 설정하고 SSL Letsencrypt를 생성합니다.

Nginx를 리버스 프록시로 설정

이 단계에서는 Nginx 웹 서버를 Mastodon의 리버스 프록시로 설정합니다. 또한 certbot 명령을 통해 SSL Letsencrypt를 생성하고 HTTPS 보안 연결을 통해 Mastodon을 보호합니다.

Mastodons 기본 Nginx 서버 블록 구성을 /etc/nginx/sites-available/mastodon에 복사합니다. 그런 다음 새 서버 블록 구성 /etc/nginx/sites-available/mastodon을 활성화합니다.

sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

다음으로 아래 nano 편집기 명령을 사용하여 Mastodon 서버 블록 구성 파일 /etc/nginx/sites-available/mastodon을 엽니다.

sudo nano /etc/nginx/sites-available/mastodon

Mastodon 도메인으로 기본 도메인 이름을 변경합니다. 이 예에서 Mastodon의 도메인은 mastodon.hwdomain.io입니다.

```ini

change domain

```

완료되면 파일을 저장하고 편집기를 종료하십시오.

다음으로 아래 명령을 실행하여 Letsencrypt에서 SSL 인증서를 생성합니다. 도메인 이름을 도메인으로 변경해야 합니다.

sudo certbot --nginx -d mastodon.hwdomain.io

SSL 인증서가 생성되면 아래 명령을 실행하여 Nginx 구성을 확인합니다. test successful - syntax ok와 같은 출력 메시지가 표시되면 구성이 제대로 된 것입니다. 그런 다음 Nginx 서비스를 다시 시작하여 새 변경 사항을 적용합니다.

sudo nginx -t
sudo systemctl restart nginx

마지막으로 아래 systemctl 명령 유틸리티를 실행하여 Nginx 서비스를 확인하고 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

다음과 유사한 출력이 표시됩니다. Nginx 서비스가 현재 실행 중이며 활성화되어 있습니다. Nginx 서비스는 부팅 시 자동으로 실행됩니다.

모든 구성이 완료되면 이제 웹 브라우저를 통해 Mastodon에 액세스할 수 있습니다.

Mastodon 설치에 액세스

웹 브라우저를 열고 Mastodon 설치의 도메인 이름(예: https://mastodon.hwdomain.io/)을 방문합니다. 이제 Mastodon의 기본 홈페이지가 표시됩니다.

로그인 버튼을 클릭하여 사용자를 확인합니다.

이제 관리 사용자와 Mastodon에 대해 생성된 비밀번호를 입력하십시오. 그런 다음 로그인을 클릭합니다.

그러면 Mastodon의 사용자 홈 페이지가 표시됩니다.

그런 다음 기본 설정 메뉴를 클릭하여 사용자 기본 설정 페이지를 가져옵니다. 그런 다음 왼쪽의 관리 메뉴를 클릭합니다. 그리고 아래의 Mastodon 관리 페이지를 받아야 합니다.

Mastodon 설치에서 현재 사용 중인 소프트웨어 스택의 세부 정보를 볼 수 있습니다.

결론

축하합니다! 이제 Debian 11 서버에 Mastodon 마이크로블로깅 플랫폼 설치를 완료했습니다. PostgreSQL을 데이터베이스 서버로, Nginx를 리버스 프록시로 사용하여 Mastodon을 설치했습니다. 또한 보안 HTTPS 연결을 통해 Mastodon 배포를 보호했습니다.

모든 설치가 끝나면 이제 연합 지원에 대한 마스토돈 규칙을 설정할 수 있습니다. Mastodon 설치에 추가 보안 계층을 추가할 수도 있습니다.