Pixelated is decentralised, encrypted email made easy – so easy that the user doesn’t even have to know what PGP is.
It has two components:
User Agent: composed of a JavaScript single page webapp using FlightJS, and a RESTful Python service. This is the web email interface that the user sees. It also manages cryptographic keys. It can run on the user’s own computer, or be provided by a server to multiple users. Try it yourself.
Puppet Module: installs and configures Pixelated on a server; provides a mail server platform that is easy to maintain – based on LEAP – and a user agent in multi-user mode.
This page will guide you through setting up a user agent on your own computer, which will connect to a remote platform (dev.pixelated-project.org).
Setting up your development environment
This could take 30 to 60 minutes or more depending on your internet connection – it will download about a gigabyte of data in total – so we recommend getting to the vagrant up
step and then listening to the podcast while things are downloading.
If you have any troubles, don’t waste time – come and ask for help.
Setup
Install VirtualBox and Vagrant. (In case of Windows, you will also need Putty )
Clone the repo:
git clone https://github.com/pixelated-project/pixelated-user-agent.git
Start the virtual machine (downloads 600MB):
cd pixelated-user-agent
vagrant up
For Windows environment, convert
%USERPROFILE%\.vagrant.d\insecure_private_key
to .ppk using PuTTYGenWait until
vagrant up
returns you to your prompt; it may take some time for Puppet to prepare the machine.Log into the VM (sets up the project, downloads a few hundred more megabytes):
- For non windows environment -
vagrant ssh
- For windows environment login using Putty using the following details
Hostname: 127.0.0.1
Port: 2222
Username: vagrant
Password: vagrant
- For non windows environment -
Create an account on the development platform:
Ask for an invitation on Keybase
@robin @cam, @pamrucinque or @akjones will get you sortedGo to https://dev.pixelated-project.org/ and Sign up
Ensure your terminal prompt inside the vagrant machine shows the virtualenv, like so:
(user-agent-venv)vagrant@leap-jessie:~$
. If instead you only seevagrant@leap-jessie:~$
, please log out of the vagrant box, ensurevagrant up
returned to your prompt, and log in again.Run the user agent:
pixelated-user-agent --host 0.0.0.0
Which provider do you want to connect to:
dev.pixelated-project.org
What’s your username registered on the provider:
username
(the one you created in previous step)Type your password:
********
(the one you created in previous step)
After 20-30 seconds, if the user agent starts up successfully, you will see this line in the output:
Done, the user agent is ready to be used
.To save yourself some typing if you want to restart the agent, create a config file with the following contents in the vagrant machine’s home directory:
[pixelated] leap_server_name = dev.pixelated-project.org leap_username = username leap_password = *******
You can then pass this file to the user agent when you start it to avoid prompts:
pixelated-user-agent --host 0.0.0.0 --config ~/dev.conf
Go to http://localhost:3333/. You should see a loading screen for a few seconds, then your inbox. If it sticks on the loading screen, check your terminal for errors, then get help.
You now have a user agent running on your local machine.
Your address is <username>@dev.pixelated-project.org. You should be able to receive emails using this interface, and send emails to other users on the platform (e.g. robin4@dev.pixelated-project.org or pamr@dev.pixelated-project.org). Sending emails to other domains is currently broken owing to bug #591.
Okay, now what?
Choose an issue from those labelled “Hacknight” on GitHub that sounds like it might be an easy place to start, add a comment on the issue and let us know on Keybase that you are working on it.
If it’s not clear how to progress with the issue, or you need anything to be explained, come and get help.
Check the user-agent readme for pointers on how to run tests, etc. Check the contribution guide before you submit a pull request.
Come and get help
You will probably run into problems. Don’t waste time – some of the core Pixelated team, and other Cryptohackers, are here to help. Come and ask your questions in Keyybase.
Common issues
We’ll add common issues to this page – feel free to submit a pull request if you can make anything on this page clearer.
How do I see the result of my changes?
From the readme:
- For all Python changes, you will need to kill (
Ctrl-C
) the server and runpixelated-user-agent --host 0.0.0.0
again. - For most JavaScript or HTML changes, you will just need to reload the browser. For changes involving CSS or Handlebars templates, you will also need to run:
cd /vagrant/web-ui && ./go build
I think I might be able to hack together a quick-and-dirty lo-fi solution for the issue I’m working with… what do I do?
Do it the easy way first, and submit a pull request as a “work in progress” as soon as you have a quick-and-dirty solution (or even an unfinished solution) — that means you can get feedback from the core developers about whether you’re heading in the right direction sooner rather than later. Include “WIP” (work in progress) in the description of your pull request and ask for review, or feedback on anything specific.