Runbox 7 web app
Branch: master
Clone or download
petersalomonsen Merge pull request #91 from petersalomonsen/feat-88-multiple-search-f…

search: multiple search fields panel ( #88 )
Latest commit 930c5e5 Feb 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
iconfont Initial import Dec 11, 2018
src Merge pull request #91 from petersalomonsen/feat-88-multiple-search-f… Feb 17, 2019
t Add missing licenses to source files Jan 14, 2019
.gitignore git ignore update Jan 30, 2019
.travis.yml login: e2e test Jan 29, 2019 Initial import Dec 11, 2018 docs: Add attribution details. Fix list format. Add link to repo fork… Jan 14, 2019
LICENSE Initial import Dec 11, 2018 Initial import Dec 11, 2018 mock-server: Setup for starting standalone for using in development Feb 14, 2019
angular.json compose: integrate contacts in suggested recipients Feb 6, 2019
backend-proxy-mock.conf.js login: e2e test Jan 29, 2019
backend-proxy-remote.conf.js dev-env: use environment variable for backend proxy host Jan 7, 2019
karma.conf.js tests: make tests pass, travis setup Dec 11, 2018
ngmakelib-conf.js Initial import Dec 11, 2018
ngsw-config.json Initial import Dec 11, 2018
package-lock.json compose: reverted to tinymce 4.7.4 Jan 29, 2019
package.json mock-server: Setup for starting standalone for using in development Feb 14, 2019
protractor.conf.js Initial import Dec 11, 2018
tsconfig.json Initial import Dec 11, 2018
tslint.json lint: Added lint to pipeline, corrected lint errors Jan 4, 2019
updatebuildtimestamp.js Initial import Dec 11, 2018
xapianasm.js Initial import Dec 11, 2018
xapianasm.wasm Initial import Dec 11, 2018

Build Status

Runbox 7
Building the fastest webmail app on the planet

Welcome to the Runbox 7 project!

Runbox 7 is a next generation webmail app that combines the instant experience of email clients with the versatility of web browsers.

The app is written in Angular 2+ and HTML5 Canvas, using a Perl backend with MySQL storage.

This project was generated with Angular CLI version 1.6.8.

Getting Started

These instructions will get the Runbox 7 App up and running on your local machine, using the Runbox production servers as backend. You can then develop and test changes to the app with a live Runbox account.


To run Runbox 7 you first need to install:

  • Node.js
  • npm
  • Git

Installation instructions for Node and NPM:


  1. Clone the codebase onto your system: git clone
  2. Change directory into the repository directory: cd runbox7
  3. Install dependencies: npm install

Development with your Runbox account (using production servers as backend)

To get started with frontend development without setting up any server.

Simply run:

npm start

Log in with your production runbox account.

Development with Mock server

For the E2E tests there is a Mock Server that you can also use in development.

To start the server type:

npm run mockserver

And then from another terminal you can start the Angular app using the mockserver as backend by typing:

npm run start-use-mockserver

Development with your own Runbox server installation

Run npm run appdev and you will be able to access Runbox 7 at https://yourvm/appdev

Development server with Runbox proxy

By default running npm start will use the production environment at as backend. If you want to use another backend you may change the RUNBOX7_ANGULAR_BACKEND_HOST environment variable.

Run RUNBOX7_ANGULAR_BACKEND_HOST= npm start to use the backend of your choice.

You may then access the angular app at: http://localhost:4200

Creating production bundles

Run npm run build. Production bundles will be created in the dist folder and is ready to be copied into the production web servers.


If you use no-script, remember to whitelist localhost to execute localhost.

Code scaffolding

Example creating a new module and a component:

ng generate module --project runbox7 xapian/SearchExpressionBuilder

followed by ng generate component --project runbox7 xapian/SearchExpressionBuilder

This resulted in the module xapian/search-expression-builder/search-expression-builder.module.ts which also imported the component.

And this is from the standard @angular/cli docs:

Run ng generate component --project runbox7 component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.


Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.


Depending on what type of development you wish to do, you may want to set up a Runbox trial account to avoid affecting data stored in your own Runbox account.

We warmly welcome bug reports, feature requests, and contributions via pull requests.


Please see for details on the process for submitting pull requests to us.

See also for our code of conduct.


This project is licensed under GPLv3 - see for details


  • Thanks to the folks behind the Xapian project, an integral part of Runbox 7: