• Stars
    star
    117
  • Rank 293,860 (Top 6 %)
  • Language
    HTML
  • Created about 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of containers to prepare a server for collaboration.

team-container

Team-container is a collection of containers that set up your own collaboration server. This setup is meant to be used in conjunction with a magazine article in c't magazine. See (https://www.heise.de/select/ct/2020/9/2007712573850503640). The article is behind a paywall, but the setup works without the article.

Tools in this collection

Goal, Prerequisites and Architecture

The goal is to provide a private collaboration server for a small to medium sized team that provides essential services while leaving you in control of where the data are stored. The services are:

  • Nextcloud for sharing documents and calendars
  • Rocket.Chat for well organized browser based text chat. Apps for mobile platforms are available.
  • Jitsi Meet for browser based video conferencing. Apps for mobile platforms are available.
  • Openslides for management of assemblies for clubs and organizations
  • Plik is a scalable & friendly temporary file upload system (like wetransfer).

All you need is

  • A linux server, prefarably running Ubuntu 18.04 LTS or another Debian GNU/Linux derivate. There is a compatibility list for some hosting providers in the wiki.
  • A domain name, e.g. example.org and four subdomains pointing to your server, i.e. www.example.org, cloud.example.org, chat.example.org and video.example.org
  • basic experience with the linux terminal

Knowledge of container technology or other typical linux admin topics is not required.

The first container ((Kubernetes, Rancher, helm) you install contains Traefik. Traefik routes incoming traffic to either the web server nginx or one of the other three containers you will install subsequently. Each of those containers runs an instance of Nextloud, Rocket.Chat or Jitsi Meet. The routing decision is based on the server name specified when setting up the containers. All four servers should have the same domain name.

Roadmap / Contribute

A lot of improvements are on our agenda. Have a look at the Project board at GitHub and feel free to create an issue or PR!

Getting started

  • prepare a server with a current version of Linux server (tested with Ubuntu Server 18.04 LTS)
  • setup four dns entries for your server (e.g. www.example.org, cloud.example.org, chat.example.org, video.example.org)
  • clone this repository: git clone https://github.com/ct-open-source/team-container
  • navigate into the folder team-container
  • run sudo install.sh
  • open "values-setup.yaml". Enter your e-Mail address, set production to true, enter the main server name (e.g. www) and domain name.
  • install Traefik, the router: helm install setup team-setup --values values-setup.yaml
  • wait a few minutes - until https://yourserver.example.com returns the nginx welcome page using a valid Let's Encrypt TLS certificate. Traefik and nginx are now functional.

Install Nextcloud

  • open "values-nextcloud.yaml". Enter server name (e.g. cloud), domain name (e.g. example.org), a name for the Nextcloud administrator and the initial password for the Nextcloud administrator.
  • install Nextcloud: helm install nextcloud team-nextcloud --values values-nextcloud.yaml
  • After a few minutes your own Nextcloud server will be up and running under https://cloud.example.org. You can log in as the administrator with the password you provided in the last step. Proceed and add regular users. Or

Install Rocket.Chat

  • open "values-chat.yaml". Enter server name (e.g. chat), domain name (e.g. example.org), a name for the Rocket.Chat administrator, the initial password for the Rocket.Chat administrator and his e-mail adress.
  • install Rocket.Chat: helm install chat team-chat --values values-chat.yaml
  • after a few minutes your own Rocket.Chat server will be up and running under https://chat.example.org. You can log in as the administrator with the password you provided in the last step. Proceed and add regular users.

Install Jitsi Meet

  • open "values-video.yaml". Enter server name (e.g. video) and domain name (e.g. example.org)
  • install Jitsi Meet: helm install video team-video --values values-video.yaml
  • after a few minutes your own Jitsi Meet video chat server will be up and running under https://video.example.org.
  • please refer to the above mentioned project web sites for help on using the services.

Install Openslides (software for assemblies)

  • open "values-openslides.yaml". Enter server name (e.g. club) and domain name (e.g. example.org)
  • install Openslides: helm install openslides team-openslides --values values-openslides.yaml
  • after a few minutes your own Openslides server will be up and running under https://club.example.org.
  • please refer to the above mentioned project web sites for help on using the services.

To do / Known issues

  • not working with IPv6 (problems with certificate generation)

More Repositories

1

tuya-convert

A collection of scripts to flash Tuya IoT devices to alternative firmwares
Python
4,460
star
2

Basecamp

An Arduino library to ease the use of the ESP32 in IoT projects
C++
254
star
3

ct-Smart-Home

A ready-to-use Node-RED setup for home automation
Shell
166
star
4

ctraspion

Turns a Raspberry Pi into a WLAN router to take a look at network traffic of smart home and IoT devices
PHP
138
star
5

telerec-t-base

Basic Ansible Setup for a server with Traefik, Portainer and Watchtower
42
star
6

ct-Raspi-Radiowecker

Python
21
star
7

noderedexamples

Node-Red-Beispiele zu c't-Artikeln / Examples for node-red used in our articles.
17
star
8

wake-on-esp

Wake-on-ESP – Powering up computers via WiFi
C++
17
star
9

ct-net-tester

A simple GUI-based network testing tool for the Raspberry Pi. Presented in c't 19/2018
Python
16
star
10

ESP-Doorsensor

A IoT-doorsensor made with the ESP32
C++
9
star
11

micro-webservice

Micro-Webservice, implementiert mit Boost.Beast
C++
9
star
12

k8s-examples

Beispielkonfigurationen zum Artikel "Container mit K" aus c't 18/2019
8
star
13

esp32-bt-mqtt-scanner

C++
7
star
14

python-pdf-ocr

Ein Beispiel zum Artikel "Lese-Schlange" aus c't 7/2019
Python
7
star
15

esp32-wifi-scanner

Ein einfacher WLAN-Scanner für den ESP32
C
7
star
16

Fibonacci-Everywhere

Calculate Fibonacci numbers in different programming languages.
C++
6
star
17

krypto-brief

c't Krypto-Brief – Briefpost DSGVO-konform verschlüsseln.
JavaScript
6
star
18

node-red-pack

Docker-environment for Node-Red with MQTT
5
star
19

ct-Raspi-Bluetooth-Receiver

Dateien für den Artikel "Bluehemian Raspberry" aus c't 11/2018
Python
5
star
20

docker-multiarch-example

Ein Beispiel für einfache Multiarchitektur-Images mit Docker
Dockerfile
4
star
21

docker-autobuild-example

Ein Beispiel für automatisch erzeugte Images mit dem Docker Hub
Shell
4
star
22

ct-google-assistant-sdk

A demo project to run the Google Assistant SDK on a Raspberry Pi. It features a Mute Button and two LEDs
Python
4
star
23

actions-npm-demo

A simple demo for GitHub Actions
JavaScript
3
star
24

alexa-skills-anleitung

3
star
25

telerec-t-debian

System services for a Debian server
3
star
26

or750i-openwrt

2
star
27

asiopy

Asynchroner I/O mit Python
Python
2
star
28

ESP-Moodlight

ESP32 basiertes Stimmungslicht
C++
2
star
29

dsp-speaker-setup

A dsp speaker setup for Wondom DSPs and SigmaStudio presented in c't 11/2019
2
star
30

javascript-ct-14-2023

JavaScript-Beispielcode für Titelthema in c’t 14/2023
JavaScript
2
star
31

telerec-t-2fauth

2fauth Role for Telerec't
Jinja
2
star
32

hedgedoc-docker-compose

1
star
33

opendtu-node-red-dashboard

1
star
34

dirb

Improved dir buster implementation
Python
1
star
35

info-graphics

Open-Source-Infografiken der c't
1
star
36

gifbatch

A shell script to batch convert videos to optimized GIFs and create still images using ffmpeg
Shell
1
star
37

telerec-t-portainer

Portainer container for Telerec't
Jinja
1
star
38

telerec-t-vaultwarden

Telerec't submodule for Valutwarden
Jinja
1
star
39

github-pages-example

Ein einfaches Beispiel zur Illustration von GitHub Pages.
CSS
1
star
40

lightsout

Modernisierte Fassung des Lights-out-Spiels anlässlich der 600. Ausgabe der c’t
JavaScript
1
star