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.
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:
Installation instructions for Node and NPM:
- Ubuntu 18.04: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04
- OS X: http://blog.teamtreehouse.com/install-node-js-npm-mac
- Windows: https://blog.teamtreehouse.com/install-node-js-npm-windows
- Clone the codebase onto your system:
git clone https://github.com/runbox/runbox7.git
- Change directory into the repository directory:
- Install dependencies:
Development with your Runbox account (using production servers as backend)
To get started with frontend development without setting up any server.
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
npm run appdev and you will be able to access Runbox 7 at
Development server with Runbox proxy
By default running
npm start will use the production environment at https://runbox.com as backend. If you want to use another backend you may change the
RUNBOX7_ANGULAR_BACKEND_HOST environment variable.
RUNBOX7_ANGULAR_BACKEND_HOST=https://yourvm.runbox.com npm start to use the backend of your choice.
You may then access the angular app at: http://localhost:4200
Creating production bundles
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.
Example creating a new module and a component:
ng generate module --project runbox7 xapian/SearchExpressionBuilder
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:
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.
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
ng test to execute the unit tests via Karma.
Running end-to-end tests
ng e2e to execute the end-to-end tests via Protractor.
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 CONTRIBUTING.md for details on the process for submitting pull requests to us.
See also CODE_OF_CONDUCT.md for our code of conduct.
This project is licensed under GPLv3 - see LICENSE.md for details
- Thanks to the folks behind the Xapian project, an integral part of Runbox 7: https://xapian.org