NINEtoFIVE is a secure anonymous communication platform for employees and members of a any community to have open and honest discussions without fear of sanction. NINETOFIVE.WORK (by default) is available to all employees of the certain organisation and to all members of any community. Our goal is that issues raised, and discussion around these issues, will help to form initiative groups and facilitate coordinated actions.
The project is split into two sub-projects:
- backend,
- frontend.
This is NodeJS project contains server-side logic, REST-API and all necessary connections and controls for communicating with DB.
This is NodeJS project contains frontend logic for web-site, delivered partially by VueJS.
- Front-Reverse-proxy: Linux-based OS (Ubuntu ^14.04/Debian 7)
- Middle-Application-server: Linux-based OS (Ubuntu ^14.04/Debian 7)
- Back-end-DB-server: Linux-based OS (Ubuntu ^14.04/Debian 7)
- PostgreSQL as a main DB
- MongoDB installed for temporary and passwordless tocken storage
- Open VPN (for inter-system connection betweeen servers)
- NGINX (configure as a reverse-proxy)
- Python 2.7.x
- npm packages (please see
package.json
)
- Install node js on a app server (Web_APP server)
- install postgresql on a db server (DB server)
- Install and configure nginx server on a front-proxy server (NGINX Server)
- Install and Configure VPN (openVPN) between the servers. Web_APP Server acts as server and two other as clients
- clone repo
- Install python 2.x and make npm install ona Web_APP server
- Install mongodb on a Web_APP server
- create
config
folder in/bin
for each sub-project - copy and fill with appropriate values config file
default.json
to createdconfig
folder
I created NINEtoFIVE as a part of my EPSRC funded Digital Civics PhD at Open Lab.
It is free to use under the GNU General Public License v3.0, a copy of which can be found in this repository.