From 54b9c52276411f860577cafe632cb14406c52e58 Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 20 Oct 2018 10:55:06 +0200 Subject: [PATCH 1/2] Added expire for messages and rooms --- app/models/message.js | 4 +++- app/models/room.js | 6 ++++-- defaults.yml | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/message.js b/app/models/message.js index 9e713c58f..27a7a4fa2 100644 --- a/app/models/message.js +++ b/app/models/message.js @@ -5,6 +5,7 @@ 'use strict'; var mongoose = require('mongoose'); +var settings = require('./app/config'), var ObjectId = mongoose.Schema.Types.ObjectId; var MessageSchema = new mongoose.Schema({ @@ -25,7 +26,8 @@ var MessageSchema = new mongoose.Schema({ posted: { type: Date, default: Date.now, - index: true + index: true, + expires: settings.database.message_retention } }); diff --git a/app/models/room.js b/app/models/room.js index 043f3ef83..41f82298e 100644 --- a/app/models/room.js +++ b/app/models/room.js @@ -3,7 +3,7 @@ // 'use strict'; - +const settings = require('./app/config') var mongoose = require('mongoose'), uniqueValidator = require('mongoose-unique-validator'), bcrypt = require('bcryptjs'); @@ -51,7 +51,9 @@ var RoomSchema = new mongoose.Schema({ }, lastActive: { type: Date, - default: Date.now + default: Date.now, + expires: settings.database.room_retention + }, private: { type: Boolean, diff --git a/defaults.yml b/defaults.yml index b91c9b4d5..21545745c 100644 --- a/defaults.yml +++ b/defaults.yml @@ -32,6 +32,8 @@ xmpp: database: uri: mongodb://localhost/letschat + message_retention: 10800 + room_retention: '30d' secrets: cookie: secretsauce From 33a95b8bdd60591a609ebb26fbf09ba3ab05a736 Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 20 Oct 2018 11:23:22 +0200 Subject: [PATCH 2/2] Setting up docker-cloud --- docker/.dockerignore => .dockerignore | 0 docker/Dockerfile => Dockerfile | 0 docker-cloud.yml | 11 ++++ .../docker-compose.yml => docker-compose.yml | 4 +- docker/README.md | 54 ------------------- 5 files changed, 13 insertions(+), 56 deletions(-) rename docker/.dockerignore => .dockerignore (100%) rename docker/Dockerfile => Dockerfile (100%) create mode 100644 docker-cloud.yml rename docker/docker-compose.yml => docker-compose.yml (77%) delete mode 100644 docker/README.md diff --git a/docker/.dockerignore b/.dockerignore similarity index 100% rename from docker/.dockerignore rename to .dockerignore diff --git a/docker/Dockerfile b/Dockerfile similarity index 100% rename from docker/Dockerfile rename to Dockerfile diff --git a/docker-cloud.yml b/docker-cloud.yml new file mode 100644 index 000000000..c948a2379 --- /dev/null +++ b/docker-cloud.yml @@ -0,0 +1,11 @@ +app: + image: tr4nsf3r/lets-chat:latest + autoredeploy: true + links: + - mongo + ports: + - 8080:8080 + - 5222:5222 + +mongo: + image: mongo:latest diff --git a/docker/docker-compose.yml b/docker-compose.yml similarity index 77% rename from docker/docker-compose.yml rename to docker-compose.yml index 5fb8a9785..1eec60841 100644 --- a/docker/docker-compose.yml +++ b/docker-compose.yml @@ -4,11 +4,11 @@ # Usage: docker-compose up app: - image: sdelements/lets-chat:latest + image: tr4nsf3r/lets-chat:latest links: - mongo ports: - - 80:8080 + - 8080:8080 - 5222:5222 mongo: diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index d4481fcdb..000000000 --- a/docker/README.md +++ /dev/null @@ -1,54 +0,0 @@ -![Let's Chat](http://i.imgur.com/0a3l5VF.png) - -# What is Let's Chat? - -A self-hosted chat app for small teams. - -![Screenshot](http://i.imgur.com/C4uMD67.png) - -# How to use this image - -``` -docker run --name some-letschat --link some-mongo:mongo -d sdelements/lets-chat -``` - -If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used: - -``` -docker run --name some-letschat --link some-mongo:mongo -p 8080:8080 -d sdelements/lets-chat -``` - -Then, access it via `http://localhost:8080` or `http://host-ip:8080` in a browser. - -## ... via `docker-compose` - -Example docker-compose.yml for `sdelements/lets-chat`: - -```yml -app: - image: sdelements/lets-chat - links: - - mongo - ports: - - 8080:8080 - - 5222:5222 - -mongo: - image: mongo:latest -``` - -Run `docker-compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`. - -# Configuration - -You can config your Let's Chat Docker instance using one of the following methods: - -## Config file - -Create a settings.yml file in a directory and then mount that directory as a Docker volume. - -`/usr/src/app/config` - -## Environment variables - -[See the Let's Chat wiki for a list of envirnoment variables](https://github.com/sdelements/lets-chat/wiki/Environment-variables)