자신만의 연합 트위터를 Pleroma로 설치하는 방법

마이크로블로깅은 자신의 생각을 표현하는 멋진 방법입니다. 짧고 간결하며 달콤합니다. 이러한 점에서 트위터는 세계에서 가장 인기 있는 마이크로블로깅 플랫폼 중 하나였습니다. 그러나 이 특정 회사에 의존하는 것이 모든 사람에게 최선의 해결책이 아닐 수 있습니다.
다행히도 Pleroma와 같은 대안이 있습니다. Pleroma는 자체 호스팅된 트위터입니다. 이것은 경량화된 연합 마이크로블로깅 플랫폼입니다. 연합을 사용하면 플랫폼이 다른 연합 인스턴스와 통신할 수 있으므로 정보를 공유하기 위해 많은 사람들을 모을 필요가 없습니다. 이 기사는 Pleroma를 시작하는 데 도움을 주기 위한 것입니다.
목차
- 트위터의 문제
- 연합이란 무엇이며 어떻게 작동하는가
- Pleroma 설치 방법
- A 및 AAAA DNS 레코드 설정
- Pleroma 종속성 얻기
- Pleroma 사용자 생성
- Pleroma 다운로드
- Pleroma 준비 및 설치
- Pleroma 설치 구성
- 미디어 관련 구성
- Pleroma 구성 마무리
- Pleroma 데이터베이스 시작
- Pleroma 서버 시작
- 최종 구성
- 자주 묻는 질문
또한 읽어보세요: 우분투 대안을 원할 경우 시도해볼 7개의 Debian 기반 배포판
트위터의 문제
트위터는 모호한 정책 위반으로 계정을 무작위로 금지하는 것으로 알려져 있습니다. 트위터에 수년간 게시물을 축적한 사람이라면 그 역사를 잃는 것은 치명적일 수 있습니다. 뿐만 아니라, 트위터는 사용자 데이터를 광고주와 정부 기관에 넘기는 것으로도 알려져 있습니다.
이로 인해 트위터는 데이터에 대한 완전한 제어를 원하는 사람이나 논란이 있는 주제를 보도하는 기자들에게 안전하지 않은 플랫폼이 됩니다.
연합이란 무엇이며 어떻게 작동하는가
이 문제에 대한 한 가지 해결책은 서버 연합을 통해 소셜 네트워크를 구축하는 것입니다. 이는 유사한 소프트웨어를 실행하는 여러 서버가 서로 투명하게 통신할 수 있도록 허용하는 시스템입니다.
그 결과, 모든 연합 서버는 전체 네트워크의 노드로 작용할 수 있으며, 다른 서버와 접근하고 참여할 수 있습니다.

결과적으로 이는 어떤 상황에도 쉽게 적응할 수 있는 탄력적인 생태계를 만듭니다. 예를 들어, Pleroma 서버가 다운되더라도 Pleroma 연합 네트워크가 종료되지는 않습니다. 네트워크 내 게시물 수는 줄어들 수 있지만 다른 서버는 여전히 서로 통신할 수 있습니다.
또한 읽어보세요: 인터넷을 통해 Debian 설치하는 방법
Pleroma 설치 방법
Pleroma를 설정하기 전에 몇 가지가 필요합니다:
- 먼저, 공개적으로 발견 가능한 머신이 필요합니다. 이는 포트 포워딩이 가능한 집의 머신이거나 제공업체에서 구매한 VPS일 수 있습니다.
- 또한, Pleroma를 설치하기 위해 VPS를 사용하는 경우 해당 VPS에 대한 루트 액세스가 필요합니다. 이는 Pleroma가 제대로 작동하는 데 필요한 패키지를 설치할 것이기 때문입니다.
- 마지막으로, 도메인 이름이 필요합니다. 이는 certbot, SSL 인증서 유틸리티가 Pleroma 인스턴스에 대한 인증서를 생성하기 위해 도메인 이름을 요구하기 때문입니다.
이를 염두에 두고, 이 가이드는 Digitalocean의 Debian 기반 VPS에 Pleroma를 설치하는 데 중점을 두겠습니다.
1. A 및 AAAA DNS 레코드 설정
시작하기 전에 도메인 이름을 VPS의 IP 주소에 연결하는 것이 좋습니다.

이렇게 하면 아래에서 도메인 이름을 참조하는 모든 명령이 제대로 해결됩니다. 따라서 나중에 SSL 인증서를 설정할 때 특히 유용합니다.
- 도메인 이름을 VPS의 IP 주소에 연결하려면 도메인 이름의 DNS 레코드를 편집해야 합니다. 내가 사용하는 도메인 등록 서비스와 다를 수 있지만, 도메인 이름을 VPS 주소에 연결하는 과정은 대체로 동일합니다.
- 내 경우, 도메인 이름: yetanotherpleromaserver.xyz를 Digitalocean VPS에 Namesilo를 통해 연결했습니다. 그렇게 하려면 먼저 Namesilo의 도메인 관리자 창에 접근했습니다.

- 여기서 도메인 이름을 클릭해야 합니다. 그러면 해당 도메인의 설정이 나타납니다.
- 다음으로, “DNS 레코드” 링크를 클릭합니다. 그러면 도메인 이름에 대한 모든 사용 가능한 DNS 레코드가 표시됩니다.

- 완료되면, Namesilo의 레코드 페이지에서 “리소스 레코드 추가/편집” 상자의 “A” 링크를 클릭하여 DNS 레코드에 “A” 리소스를 추가했습니다.

- 그 다음, 내가 해야 할 유일한 것은 Digitalocean VPS의 IPv4 주소를 추가하는 것이었습니다.

- “AAAA” 레코드를 추가하는 과정도 동일합니다. 그러나 “A” 링크를 클릭하는 대신 “AAAA” 링크를 클릭해야 합니다. 또한, IPv4 주소 대신 IPv6 주소를 추가해야 합니다.

또한 읽어보세요: 더 나은 보안을 위한 5개의 최고의 Linux-Libre 배포판
2. Pleroma 종속성 얻기
다음으로 해야 할 일은 Pleroma가 요구하는 모든 패키지를 다운로드하는 것입니다. 위에서 논의한 바와 같이, 나는 Debian 및 Ubuntu 기반 Linux 배포판의 설치 프로세스만 강조할 것입니다. 따라서 apt를 사용하여 모든 필수 패키지를 설치할 것입니다.
이를 염두에 두고, Pleroma는 세 가지 주요 프로그램에 의존합니다: postgresql, elixir 및 erlang. 따라서 이 프로그램들과 함께 이 세 가지의 작업을 보완할 몇 가지 더 설치해야 합니다.
이를 위해 다음 명령을 실행할 수 있습니다:
sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev elixir erlang-dev erlang-nox nginx certbot
3. Pleroma 사용자 생성
그렇게 되면, 다음으로 해야 할 일은 “pleroma” 사용자 계정을 생성하는 것입니다. 이 계정은 Pleroma 패키지를 다운로드하고 설치하는 데 사용할 계정입니다. 이렇게 하면 Pleroma 프로그램이 시스템에 대한 슈퍼유저 액세스를 가지지 않도록 보장됩니다.
이를 위해 다음 명령을 실행할 수 있습니다:
sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma-r옵션은 “pleroma” 사용자를 사용자 계정이 아닌 시스템 계정으로 설정합니다.- 또한,
-s옵션은 이 사용자의 로그인 셸을 “false”로 설정합니다. 이렇게 하면 pleroma 사용자가 스스로 셸에서 어떤 명령도 실행할 수 없게 됩니다. - 반면에,
-m및-d플래그는 “pleroma” 사용자의 홈 디렉토리를 설정합니다.-m플래그는 계정에 홈 디렉토리를 가지도록 명시적으로 설정하고,-d플래그는 해당 디렉토리를 “ /var/lib/pleroma”로 지정합니다. - 마지막으로,
-U플래그는 동일한 이름의 사용자 그룹을 생성하고 새로 생성된 Pleroma 사용자를 해당 그룹에 추가합니다.

4. Pleroma 다운로드
그 다음, 이제 Pleroma 패키지를 그들의 저장소에서 다운로드할 수 있습니다. 그렇게 하려면 먼저 파일이 다운로드될 디렉토리를 생성해야 합니다:
sudo mkdir -p /opt/pleroma
sudo chown -R pleroma:pleroma /opt/pleroma- 첫 번째 명령은 프로그램의 모든 파일을 다운로드할 “pleroma” 디렉토리를 생성합니다.
- 두 번째 명령은 해당 폴더의 소유권을 root에서 pleroma로 이전합니다. 이렇게 하면 pleroma가 이 폴더에서 문제 없이 읽고 쓸 수 있게 됩니다.

완료되면, 다음으로 Pleroma 소스 코드를 다운로드해야 합니다. 그렇게 하려면 git을 사용해야 합니다:
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
5. Pleroma 준비 및 설치
이제 /opt/pleroma 디렉토리로 이동하여 프로그램 설치 프로세스를 시작할 수 있습니다:
cd /opt/pleroma그곳에서 Pleroma의 추가 종속성을 가져오기 위해 Mix 프로그램을 실행해야 합니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo -Hu pleroma mix deps.get
완료되면, 이제 Pleroma를 컴파일하고 설치하는 과정으로 진행할 수 있습니다. 이 과정에서는 단 하나의 명령만 실행하면 됩니다:
sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen이 명령은 세 가지 작업을 수행합니다:
- 첫째,
MIX_ENV=prod옵션은 프로그램의 환경 변수를 프로덕션 설정을 대상으로 설정합니다. 이는 프로그램이 개발 도구 및 파일을 포함하지 않음을 의미합니다. gen옵션은 제공한 환경 변수를 대상으로 하는 구성 파일을 생성합니다.- 마지막으로, 이 명령은 Pleroma를 소스 코드에서 컴파일하고 설치합니다. 따라서 이 과정은 실행하는 하드웨어에 따라 시간이 걸릴 수 있습니다.

또한 읽어보세요: 우분투 로그인 루프 수정하는 방법
6. Pleroma 설치 구성
Pleroma의 컴파일이 완료되면, 서버에 대한 몇 가지 정보가 필요합니다.
- 먼저, 프로그램에 사용할 도메인 이름이 필요합니다. 내 경우, 도메인 이름: “yetanotherpleromaserver.xyz”를 사용했습니다.

- 그 다음, 구성 스크립트는 Pleroma 서버의 이름을 요청합니다. 내 경우, 서버의 이름으로 “Yet Another Pleroma Server”를 사용했습니다.

- 다음으로, 관리자 이메일 주소를 입력합니다. 이는 이메일을 수신하고 발송할 수 있는 적절한 이메일이어야 합니다.

- 이제 Pleroma 인스턴스가 검색 엔진에 의해 검색 가능하도록 할지 선택합니다. 이는 다른 사람들이 가입하고 로그인할 수 있는 공개 Pleroma 인스턴스를 만들고 싶을 경우 유용합니다. 내 경우, 이 서버를 비공개로 유지하고 싶어서 “n”을 선택했습니다.

- 그 후, 스크립트는 구성 파일을 데이터베이스에 저장할지 여부를 묻습니다. 대부분의 경우, 여기서 “yes”를 선택하고 요청하는 기본 옵션을 선택하는 것이 좋습니다.

- 마지막으로, 스크립트는 수신할 포트와 주소에 대한 세부 정보를 추가하도록 요구합니다. Pleroma를 구성하는 동일한 머신에 설치하는 경우, 기본값을 그대로 두는 것이 안전합니다.
7. 미디어 관련 구성
이제 구성 스크립트는 서버에 업로드될 미디어 파일을 저장할 위치를 선택하도록 요구합니다. 위의 설정과 유사하게, 기본값을 그대로 두는 것이 안전합니다.
다음으로, 수신할 사진의 EXIF 데이터에서 지리적 위치 정보를 제거할지 결정합니다. 이는 업로더의 개인 정보를 보호하고 싶을 경우 유용합니다. 나는 이 인스턴스를 개인적으로만 사용할 것이기 때문에 여기서 “no”를 선택했습니다.
또한, 업로드된 파일의 파일 이름을 익명화할지 여부를 결정해야 합니다. 이는 업로더와 그들이 업로드한 것과의 연관성을 제거하고 싶을 경우 특히 유용합니다. 내 경우, 여기서도 “no”를 선택했습니다.
마지막으로, 구성 스크립트는 서버에 업로드된 파일의 여러 복사본을 생성할지 여부를 선택하도록 합니다. 내 경우, “no”를 선택했습니다.
8. Pleroma 구성 마무리
- 이제 구성 파일을 볼 수 있습니다. 이 파일은 “ /opt/pleroma/config/generated_config.exs”에 위치합니다.
less를 사용하여 볼 수 있습니다:
less /opt/pleroma/config/generated_config.exs- 이 구성을 마무리하려면 이 파일의 이름을 “prod.secret.exs”로 변경해야 합니다. 다음 명령을 실행하여 그렇게 할 수 있습니다:
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
또한 읽어보세요: Yggdrasil 네트워크란 무엇이며 설치 방법
9. Pleroma 데이터베이스 시작
- 다음으로 해야 할 일은 데이터베이스 프로그램을 시작하는 것입니다. 그렇게 하려면 Pleroma가 제공한 데이터베이스를 사용할 수 있습니다. 다음 명령을 실행하여 해당 데이터베이스를 로드할 수 있습니다:
sudo -Hu postgres psql -f /opt/pleroma/config/setup_db.psql
- 그 후, postgres와 Pleroma를 연결하여 postgres 데이터베이스를 Pleroma로 마이그레이션할 수 있습니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate
10. Pleroma 서버 시작
이제 Pleroma 서버를 실행할 시간입니다. 다음 명령을 실행하여 이를 수행할 수 있습니다:
sudo -Hu pleroma MIX_ENV=prod mix phx.server
그러나 이 서버는 여전히 일반 브라우저에서 접근할 수 없습니다. 이를 허용하려면 먼저 certbot과 nginx를 구성해야 합니다.
또한 읽어보세요: Linux에서 최고의 이메일 클라이언트 9개
Pleroma를 위한 Certbot 구성
- Certbot 구성은 비교적 간단합니다. 먼저 인증서를 저장할 폴더를 생성해야 합니다. 다음 명령을 실행하여 그렇게 할 수 있습니다:
sudo mkdir -p /var/lib/letsencrypt/- 완료되면, 이제 Pleroma 서버에 대한 인증서를 생성할 수 있습니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo certbot certonly --email [email protected] -d yourpleromaserver.com --standalone
Pleroma를 위한 Nginx 구성
- 그 다음, Pleroma를 위한 nginx 웹 서버를 구성해야 합니다. Pleroma 설치는 이미 nginx의 구성 디렉토리에 복사할 수 있는 템플릿을 제공합니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx- 다음으로, 이 구성 파일을 Pleroma 서버에 맞게 편집해야 합니다. 대부분의 경우, 이는 네 가지 변수: server_name, ssl_trusted_certificate, ssl_certificate 및 ssl_certificate_key를 변경하는 것만 포함됩니다.
- 첫 번째 변수의 경우, “example.tld” 값을 서버의 도메인 이름으로 변경해야 합니다. 내 경우, 이를 “yetanotherpleromaserver.xyz”로 변경했습니다.

- 그 다음, 나머지 세 변수는 모두 도메인의 SSL 인증서 위치를 가리킵니다. 이 가이드를 통해 인증서를 만들었다면, 해당 경로는 “ /etc/letsencrypt/live/yourdomain.name/“가 됩니다.
- 이는 nginx 템플릿에 이미 제공되며, 남은 것은 “example.tld” 값을 도메인 이름으로 변경하는 것입니다.

- 완료되면, 이제 활성 nginx 디렉토리에 대한 심볼릭 링크를 생성하여 nginx 구성을 활성화할 수 있습니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx- 그 후, 이제 systemctl 서비스를 활성화하여 nginx를 시작할 수 있습니다:
sudo systemctl enable nginx.service11. 최종 구성
- 여기서 이제 Pleroma의 시스템 서비스를 구성하고 첫 번째 사용자를 생성할 수 있습니다. 기본적으로 Pleroma는 systemd를 통해 서비스를 활성화하기 위한 systemctl 템플릿을 포함합니다. 이 템플릿을 사용하려면 다음 명령을 실행할 수 있습니다:
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
- 이제 systemctl을 통해 Pleroma를 활성화할 수 있습니다. 다음 명령을 실행하세요:
sudo systemctl enable pleroma.service
- 마지막으로, 이제
pleroma.user명령을 실행하여 Pleroma 인스턴스의 첫 번째 사용자를 생성할 수 있습니다:
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new yourusername [email protected] --admin
또한 읽어보세요: Linux에서 터미널 문제 해결하는 방법
자주 묻는 질문
1. 내가 업로드한 사진에 여전히 지리적 위치 데이터가 포함되어 있습니다. 내가 뭘 잘못했나요?
이는 여러 가지 이유로 발생할 수 있습니다. 그러나 가장 일반적인 이유는 exiftool 패키지가 없기 때문입니다. 위의 가이드에서는 exiftool이 기본적으로 설치된 패키지가 아니었습니다.
따라서 업로드한 이미지의 지리적 위치를 제거하려면 해당 패키지를 수동으로 추가해야 합니다. 그렇게 하려면 다음 명령을 실행할 수 있습니다:
sudo apt install exiftool2. Letsencrypt 인증서를 생성할 수 없습니다. 내가 뭘 잘못했나요?
이것도 여러 가지 이유로 발생할 수 있습니다. 그러나 가장 일반적인 원인은 nginx가 여전히 실행 중이라는 것입니다.
certbot 명령이 작동하려면 일반 웹 포트가 열려 있어야 하며 어떤 프로그램에도 사용되지 않아야 합니다. nginx를 비활성화하려면 다음 명령을 실행할 수 있습니다:
sudo systemctl stop nginx이미지 출처: Pleroma