팀 컨테이너
Team-container는 자체 협업 서버를 설정하는 컨테이너 모음입니다. 이 설정은 c't 매거진의 잡지 기사와 함께 사용하기 위한 것입니다. (https://www.heise.de/select/ct/2020/9/2007712573850503640)을 참조하세요. 기사는 페이월 뒤에 있지만 설정은 기사 없이도 작동합니다.
이 컬렉션의 도구
- Trafik 라우터
- 넥스트클라우드
- 로켓.채팅
- 지트시 미팅
- 오픈슬라이드
- 플릭
목표, 전제 조건 및 아키텍처
목표는 데이터가 저장되는 위치를 제어하면서 필수 서비스를 제공하는 중소 규모 팀을 위한 개인 협업 서버를 제공하는 것입니다. 서비스는 다음과 같습니다:
- 문서 및 캘린더 공유를 위한 Nextcloud
- Rocket.Chat은 잘 구성된 브라우저 기반 텍스트 채팅을 위한 것입니다. 모바일 플랫폼용 앱을 사용할 수 있습니다.
- 브라우저 기반 화상 회의를 위한 Jitsi Meet . 모바일 플랫폼용 앱을 사용할 수 있습니다.
- 클럽 및 조직의 회의 관리를 위한 Openslides
- Plik은 확장 가능하고 친숙한 임시 파일 업로드 시스템(wetransfer와 유사)입니다.
당신에게 필요한 것은
- Ubuntu 18.04 LTS 또는 다른 Debian GNU/Linux 파생 버전을 기본적으로 실행하는 Linux 서버. 위키에는 일부 호스팅 제공업체에 대한 호환성 목록이 있습니다.
- 도메인 이름(예: example.org) 및 서버를 가리키는 4개의 하위 도메인(예: www.example.org, cloud.example.org, chat.example.org 및 video.example.org)
- Linux 터미널에 대한 기본 경험
컨테이너 기술이나 기타 일반적인 Linux 관리 주제에 대한 지식은 필요하지 않습니다.
설치한 첫 번째 컨테이너((Kubernetes, Rancher, helm)에는 Traefik이 포함되어 있습니다. Traefik은 들어오는 트래픽을 웹 서버 nginx 또는 나중에 설치할 다른 세 가지 컨테이너 중 하나로 라우팅합니다. 각 컨테이너는 Nextloud, Rocket의 인스턴스를 실행합니다. Chat 또는 Jitsi Meet 라우팅 결정은 컨테이너를 설정할 때 지정된 서버 이름을 기반으로 합니다. 4개의 서버는 모두 동일한 도메인 이름을 가져야 합니다.
로드맵 / 기여
우리의 의제는 많은 개선 사항입니다. GitHub의 프로젝트 보드를 살펴보고 자유롭게 이슈나 PR을 작성해 보세요!
시작하기
- 현재 버전의 Linux 서버로 서버 준비(Ubuntu Server 18.04 LTS로 테스트)
- 서버에 대한 4개의 DNS 항목 설정(예: www.example.org, cloud.example.org, chat.example.org, video.example.org)
- 이 저장소를 복제하세요:
git clone https://github.com/ct-open-source/team-container
- 팀 컨테이너 폴더로 이동합니다.
-
sudo install.sh
실행 - "values-setup.yaml"을 엽니다. 이메일 주소를 입력하고 프로덕션을 true로 설정한 후 기본 서버 이름(예: www)과 도메인 이름을 입력하세요.
- 라우터 Traefik을 설치합니다.
helm install setup team-setup --values values-setup.yaml
- https://yourserver.example.com이 유효한 Let's Encrypt TLS 인증서를 사용하여 nginx 시작 페이지를 반환할 때까지 몇 분 정도 기다립니다. 이제 Traefik과 nginx가 작동합니다.
Nextcloud 설치
- "values-nextcloud.yaml"을 엽니다. 서버 이름(예: cloud), 도메인 이름(예: example.org), Nextcloud 관리자 이름 및 Nextcloud 관리자 초기 비밀번호를 입력합니다.
- Nextcloud 설치:
helm install nextcloud team-nextcloud --values values-nextcloud.yaml
- 몇 분 후에 https://cloud.example.org에서 자체 Nextcloud 서버가 실행됩니다. 마지막 단계에서 입력한 비밀번호를 사용하여 관리자로 로그인할 수 있습니다. 계속해서 일반 사용자를 추가하세요. 또는
Rocket.Chat 설치
- "values-chat.yaml"을 엽니다. 서버 이름(예: 채팅), 도메인 이름(예: example.org), Rocket.Chat 관리자 이름, Rocket.Chat 관리자의 초기 비밀번호 및 이메일 주소를 입력합니다.
- Rocket.Chat 설치:
helm install chat team-chat --values values-chat.yaml
- 몇 분 후에 귀하의 Rocket.Chat 서버가 https://chat.example.org에서 실행될 것입니다. 마지막 단계에서 입력한 비밀번호를 사용하여 관리자로 로그인할 수 있습니다. 계속해서 일반 사용자를 추가하세요.
Jitsi Meet 설치
- "values-video.yaml"을 엽니다. 서버 이름(예: video) 및 도메인 이름(예: example.org)을 입력하세요.
- Jitsi Meet 설치:
helm install video team-video --values values-video.yaml
- 몇 분 후에 귀하의 Jitsi Meet 영상 채팅 서버가 https://video.example.org에서 실행될 것입니다.
- 서비스 이용에 대한 도움말은 위에 언급된 프로젝트 웹사이트를 참조하세요.
Openslides(어셈블리용 소프트웨어) 설치
- "values-openslides.yaml"을 엽니다. 서버 이름(예: 클럽) 및 도메인 이름(예: example.org)을 입력하세요.
- Openslides 설치:
helm install openslides team-openslides --values values-openslides.yaml
- 몇 분 후에 귀하의 Openslides 서버가 https://club.example.org에서 실행될 것입니다.
- 서비스 이용에 대한 도움말은 위에 언급된 프로젝트 웹사이트를 참조하세요.
해야할 일/알려진 문제
- IPv6에서 작동하지 않음(인증서 생성 문제)