├── 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 |
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 |
--------------------------------------------------------------------------------