├── docker-compose.yml ├── meething-all.config.js ├── Dockerfile └── README.md /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2.1' 2 | 3 | services: 4 | meething: 5 | image: meething/meething:latest 6 | container_name: meething 7 | volumes: 8 | - ./meething-all.config.js:/meething-all.config.js 9 | environment: 10 | - SSLCERT=/certs/fullchain.pem 11 | - SSLKEY=/certs/privkey.pem 12 | restart: unless-stopped 13 | ports: 14 | - 8443:443 15 | - 2345:2345 16 | - 8765:8765 17 | labels: 18 | org.label-schema.group: "meething" 19 | -------------------------------------------------------------------------------- /meething-all.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | apps : [{ 3 | name: 'meething', 4 | script: '/meething/src/app.js', 5 | watch: './meething/src', 6 | env : { 7 | SSL : true, 8 | SSLKEY : '/certs/privkey.pem', 9 | SSLCERT : '/certs/fullchain.pem', 10 | DEBUG : false 11 | } 12 | },{ 13 | name: 'mediasoup', 14 | script: '/mediasoup/main.js', 15 | env : { 16 | SSL : true, 17 | SSLKEY : '/certs/privkey.pem', 18 | SSLCERT : '/certs/fullchain.pem', 19 | DEBUG : false 20 | } 21 | },{ 22 | name: 'gunsocket', 23 | script: '/gun/server.js', 24 | env : { 25 | SSL : true, 26 | SSLKEY : '/certs/privkey.pem', 27 | SSLCERT : '/certs/fullchain.pem', 28 | PORT : 8765, 29 | DEBUG : false 30 | } 31 | }] 32 | }; 33 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:12-slim as meething 2 | RUN apt update && apt install -y build-essential git python-dev python 3 | 4 | RUN git clone https://github.com/meething/meething-mediasoup /mediasoup 5 | WORKDIR /mediasoup 6 | RUN npm install 7 | 8 | RUN git clone https://github.com/meething/meething /meething 9 | WORKDIR /meething 10 | RUN npm install 11 | 12 | RUN git clone https://github.com/meething/gundb-multisocket /multisocket 13 | WORKDIR /multisocket 14 | RUN npm install 15 | 16 | RUN mkdir /certs && cd /certs && openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \ 17 | -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=meething.local" \ 18 | -keyout privkey.pem -out fullchain.pem 19 | 20 | FROM node:12-slim 21 | WORKDIR / 22 | RUN npm install -g pm2 23 | COPY --from=0 /multisocket /gun 24 | COPY --from=0 /meething /meething 25 | COPY --from=0 /mediasoup /mediasoup 26 | COPY --from=0 /certs /certs 27 | EXPOSE 443/TCP 28 | EXPOSE 2345/TCP 29 | EXPOSE 8765/TCP 30 | CMD ["pm2-docker", "start", "/meething-all.config.js"] 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | mozilla-builders 2 | 3 | ### meething : docker 4 | 5 | This docker container runs the full meething stack for fun and testing. 6 | 7 | * [Meething UI](https://github.com/meething/meething) on port 443 8 | * [Meething SFU](https://github.com/meething/meething-mediasoup) on port 2345 9 | * [Meething GUN](https://github.com/meething/gundb-multisocket) on port 8765 10 | 11 | #### Build 12 | ``` 13 | docker build --no-cache -t meething/meething . 14 | ``` 15 | 16 | #### Usage 17 | An example usage of meething with `docker-compose` - just add your TLS certificates in the `/cert` directory 18 | ``` 19 | version: '2.1' 20 | services: 21 | meething: 22 | image: meething/meething:latest 23 | container_name: meething 24 | volumes: 25 | - ./meething-all.config.js:/meething-all.config.js 26 | environment: 27 | - SSLCERT=/certs/fullchain.pem 28 | - SSLKEY=/certs/privkey.pem 29 | restart: unless-stopped 30 | ports: 31 | - 8443:443 32 | - 2345:2345 33 | - 8765:8765 34 | labels: 35 | org.label-schema.group: "meething" 36 | 37 | ``` 38 | --------------------------------------------------------------------------------