mailinabox/CONTRIBUTING.md

2.8 KiB
Raw Blame History

Contributing

Mail-in-a-Box is an open source project. Your contributions and pull requests are welcome.

Development

To start developing Mail-in-a-Box, clone the repository and familiarize yourself with the code.

$ git clone https://github.com/mail-in-a-box/mailinabox

Vagrant and VirtualBox

We recommend you use Vagrant and VirtualBox for development. Please install them first.

With Vagrant set up, the following should boot up Mail-in-a-Box inside a virtual machine:

$ vagrant up --provision

If you're seeing an error message about your IP address being listed in the Spamhaus Block List, simply uncomment the export SKIP_NETWORK_CHECKS=1 line in Vagrantfile. It's normal, you're probably using a dynamic IP address assigned by your Internet providerthey're almost all listed.

Modifying your hosts file

After a while, Mail-in-a-Box will be available at 192.168.50.4 (unless you changed that in your Vagrantfile). To be able to use the web-based bits, we recommend adding a hostname to your hosts file:

$ echo -e "192.168.50.4\tmailinabox.lan" | sudo tee -a /etc/hosts
or
$ sudo sed -i "s/^127.0.1.1.*/192.168.50.4\tmailinabox.lan/" /etc/hosts

You should now be able to navigate to https://mailinabox.lan/admin using your browser. There should be an initial admin user with the name me@mailinabox.lan and the randomly generated password from the output.

Making changes

Your working copy of Mail-in-a-Box will be mounted inside your VM at /vagrant. Any change you make locally will appear inside your VM automatically.

Running vagrant up --provision again will repeat the installation with your modifications.

Alternatively, you can also ssh into the VM using:

$ vagrant ssh

Once inside the VM, you can re-run individual parts of the setup like in this example:

vm$ cd /vagrant
vm$ sudo setup/owncloud.sh # replace with script you'd like to re-run

Tests

Mail-in-a-Box needs more tests. If you're still looking for a way to help out, writing and contributing tests would be a great start!

Public domain

This project is in the public domain. Copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication. See the LICENSE file in this directory.

All contributions to this project must be released under the same CC0 wavier. By submitting a pull request or patch, you are agreeing to comply with this waiver of copyright interest.

Code of Conduct

This project has a Code of Conduct. Please review it when joining our community.