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/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 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)