Mastodon 설치 · 9 min read · Oct 13, 2025
Debian 11에 Mastodon 소셜 네트워크 설치하는 방법

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 서버를 사용합니다.
- sudo/root 관리자 권한이 있는 비루트 사용자.
- 공용 Debian 서버에 포인팅되고 해결된 도메인 이름 - 이 예제는 하위 도메인 ‘mastodon.howtoforge.local‘을 사용합니다.
이러한 전제 조건이 충족되면 Mastodon 설치를 진행할 준비가 된 것입니다.
리포지토리 설정 및 종속성 설치
Mastodon은 Twitter 서비스와 유사한 자체 호스팅 소셜 네트워킹 서비스를 실행하기 위한 무료 오픈 소스 소프트웨어입니다. 주로 Ruby로 작성되었으며, 특히 Ruby on Rails 웹 프레임워크와 JavaScript의 Reac.js 및 Redux 프레임워크를 사용합니다.
첫 번째 단계에서는 시스템에 추가 리포지토리를 설정하고 Mastodon 설치를 위한 패키지 종속성을 설치합니다. 여기에는 Ruby 컴파일을 위한 build-essentials 패키지, 데이터베이스 서버로서의 PostgreSQL, 웹 서버 및 리버스 프록시로서의 Nginx, Letsencrypt를 통한 SSL 인증서 획득을 위한 certbot 도구, Mastodon의 키-값 저장소 및 세션 관리를 위해 사용될 Redis 서버가 포함됩니다.
시작하기 전에 아래의 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의 기본 종속성을 설치하고 Debian 시스템에 몇 가지 타사 리포지토리를 추가했습니다.
다음 단계에서는 rbenv를 통해 Ruby를 설치합니다 - Ruby 버전 관리자입니다.
rbenv 및 Ruby 설치
rbenv는 Unix 유사 시스템에서 Ruby 프로그래밍 언어의 버전 관리 도구입니다. 동일한 머신에서 여러 Ruby 버전 간에 전환하는 데 유용하며, 작업 중인 각 프로젝트가 항상 올바른 Ruby 버전에서 실행되도록 보장합니다.
시작하려면 아래 명령을 실행하여 시스템에 새로운 사용자 ‘mastodon‘을 생성합니다. 이 새로운 사용자는 Maston과 관련된 서비스를 실행하는 데 사용되며, 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 srcrbenv가 설치된 후 다음과 같은 출력을 받게 됩니다.

다음으로, 아래 명령을 실행하여 rbenv ‘bin’ 디렉토리를 시스템 PATH에 추가하고 사용자가 새 세션에 로그인할 때마다 rbenv를 로드합니다.
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc현재 셸을 bashrc 구성 파일을 다시 로드하여 새로 고칩니다. 그런 다음 셸에서 ‘rbenv’ 명령을 입력하고 TAB을 누릅니다.
source ~/.bashrc
rbenv TAB다음 스크린샷에서 rbenv가 설치되었으며 이제 Ruby를 설치하기 위해 rbenv 명령을 실행할 수 있습니다.
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 명령을 사용하여 확인합니다. Debian 시스템에 Ruby v3.0.4가 설치된 것을 확인할 수 있습니다.
rbenv global 3.0.4
ruby --version
마지막으로, Ruby 패키지 관리자로서 bundler를 설치해야 합니다. 아래 gem 명령을 실행하여 ‘bundler’를 설치합니다.
gem install bundler --no-document이 시점에서 시스템에 Mastodon 패키지 종속성 설치를 완료했습니다. rbenv Ruby 버전 관리자를 통해 Ruby 3.0.4를 설치하고 Ruby 패키지 관리 도구인 bundler를 설치했습니다.
다음 단계에서는 Mastodon 설치에 사용될 PostgreSQL 사용자를 설정합니다.
PostgreSQL 데이터베이스 서버 설정
이 단계에서는 PostgreSQL 서비스가 활성화되고 실행되고 있는지 확인합니다. 그런 다음 PostgreSQL 셸을 통해 새로운 PostgreSQL 사용자/역할 ‘mastodon’을 생성합니다.
아래 명령은 루트 사용자/권한으로 실행해야 합니다.
시작하기 전에 아래 systemctl 명령 유틸리티를 실행하여 PostgreSQL 서비스가 실행 중이고 활성화되어 있는지 확인합니다.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql다음과 유사한 출력을 받게 됩니다.

PostgreSQL이 실행 중인 경우, 아래 명령을 실행하여 PostgreSQL 셸에 로그인합니다.
cd /etc/postgresql
sudo -u postgres psqlPostgreSQL 셸에 로그인한 후, 아래 PostgreSQL 쿼리를 실행하여 새로운 역할/사용자 ‘mastodon‘을 생성합니다. 또한 기본 비밀번호를 새로운 강력한 비밀번호로 변경해야 합니다.
CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';다음으로, 아래 쿼리를 실행하여 새로운 PostgreSQL 사용자/역할이 생성되었는지 확인합니다. 그런 다음 PostgreSQL 셸에서 나가려면 ‘ q‘를 입력합니다.
du
dq아래 출력은 새로운 PostgreSQL 사용자/역할 ‘mastodon’이 생성되었음을 보여줍니다.

PostgreSQL 사용자/역할이 생성되었으므로 이제 Debian 시스템에 Mastodon을 설치할 준비가 되었습니다.
Mastodon 설치
이 단계에서는 Debian 서버에 Mastodon을 설치하고 구성합니다. 또한 Mastodon에 대한 Ruby 종속성과 JavaScript 종속성을 설치합니다. 마지막으로, 배포를 위해 Mastodon을 구성하기 시작합니다. 여기에는 도메인 구성, 데이터베이스 및 Redis 구성, SMTP 구성, 그리고 Mastodon 관리자 사용자 구성이 포함됩니다.
시작하기 전에 아래 명령을 통해 ‘mastodon’ 사용자로 로그인합니다.
su - mastodon이제 아래 git 명령을 통해 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:setupMastond에 대한 몇 가지 구성을 요청받게 됩니다.
- Mastodon 도메인 이름? 이 예제에서는 도메인 ‘mastodon.howtoforge.local’을 사용합니다.
- 단일 사용자 모드를 활성화하시겠습니까? y를 입력합니다.
- Mastodon을 실행하기 위해 Docker를 사용하시겠습니까? 아니오를 위해 n을 입력합니다.
- PostgreSQL 사용자 및 비밀번호를 입력하고 ‘데이터베이스 구성 작업!’ 메시지를 확인합니다.
- Redis 구성? ENTER를 눌러 기본값으로 두십시오.
- 클라우드에 파일 업로드를 활성화하시겠습니까? 아니오를 위해 n을 입력합니다.
- 로컬 호스트에서 이메일을 보내도록 허용하시겠습니까? 예를 위해 y를 입력하여 확인하거나 아니오를 위해 n을 입력합니다. 이는 환경에 따라 다르며, 타사 SMTP 서버를 사용할 수도 있습니다.
- 구성을 저장하시겠습니까? 예를 위해 y를 입력합니다.
- 데이터베이스 생성을 위해. Mastodon 데이터베이스를 생성하기 위해 y를 입력합니다.
- Mastodon의 자산 및 정적 파일을 컴파일하기 위해 y를 입력합니다.
- 관리자 사용자 설정? Mastodon 설치를 위한 새로운 관리자 사용자 및 이메일을 입력합니다. 그러면 비밀번호가 자동으로 생성되어 화면에 표시됩니다.
Mastodon 도메인 이름, PostgreSQL, Redis 서버 및 SMTP 메일 서버에 대한 구성입니다.

Mastodon 자산 및 정적 파일 생성.

Mastodon 관리자 사용자가 생성되었으며 비밀번호도 터미널 화면에 생성됩니다.
이 시점에서 Debian 11에서 Mastodon 설치 및 구성을 완료했습니다. 다음 단계에서는 Mastodon을 systemd 서비스로 설정합니다.
Mastodon을 Systemd 서비스로 실행
기본적으로 Mastodon은 ‘/home/mastodon/live/dist/‘ 디렉토리에 있는 systemd 서비스 파일 샘플을 제공합니다.
아래 명령을 실행하여 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-streaming 서비스도 실행 중이며 활성화되어 있습니다.

모든 Mastodon 서비스가 실행 중이고 활성화되었으므로, 다음으로 Nginx를 Mastodon의 리버스 프록시로 설정하고 SSL Letsencrypt를 생성합니다.
Nginx를 리버스 프록시로 설정
이 단계에서는 Nginx 웹 서버를 Mastodon의 리버스 프록시로 설정합니다. 또한 certbot 명령을 통해 SSL Letsencrypt를 생성하고 Mastodon을 HTTPS 보안 연결로 보호합니다.
Mastodon의 기본 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.howtoforge.local‘입니다.
change domain
파일을 저장하고 편집기를 종료합니다.
다음으로, 아래 명령을 실행하여 Letsencrypt에서 SSL 인증서를 생성합니다. 도메인 이름을 자신의 도메인으로 변경해야 합니다.
sudo certbot --nginx -d mastodon.howtoforge.localSSL 인증서가 생성된 후, 아래 명령을 실행하여 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.howtoforge.local/)을 방문합니다. 이제 Maston의 기본 홈페이지를 볼 수 있습니다.

‘로그인‘ 버튼을 클릭하여 사용자를 확인합니다.
이제 Mastodon의 관리자 사용자 및 생성된 비밀번호를 입력합니다. 그런 다음 로그인 버튼을 클릭합니다.

그런 다음 Mastodon의 사용자 홈 페이지를 보게 됩니다.

다음으로, 사용자 기본 설정 페이지를 얻기 위해 기본 설정 메뉴를 클릭합니다. 그런 다음 왼쪽의 관리 메뉴를 클릭합니다. 그러면 아래와 같은 Mastodon 관리 페이지를 보게 됩니다.
현재 Mastodon 설치에서 사용 중인 소프트웨어 스택의 세부 정보를 확인할 수 있습니다.

결론
축하합니다! 이제 Debian 11 서버에 Mastodon 마이크로블로깅 플랫폼 설치를 완료했습니다. PostgreSQL을 데이터베이스 서버로, Nginx를 리버스 프록시로 사용하여 Mastodon을 설치했습니다. 또한 안전한 HTTPS 연결을 통해 Mastodon 배포를 보안했습니다.
모든 설치가 완료된 후, 이제 Mastodon 규칙을 설정하여 연합 지원을 추가할 수 있습니다. 또한 Mastodon 설치에 추가 보안 계층을 추가할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.