Email a file to print@yourdomain.com to print it.
There are three steps to get Fastprint working:
- Set up an OS X or Linux machine with a printer (Fastprint will run on this machine)
- Configure a Mailgun account to handle mail sent to
print@yourdomain.com - Start Fastprint
Start by configuring your computer with the printer you'd like to use, if it's not set up already. If you're on OS X or a large Linux distro (like Debian), you'll want to use your standard system preferences for setting this up.
Next create a Mailgun account and set it up with your
domain of choice. I've configured mine with mg.zachlatta.com.
Once you've done that, run the following command, replacing
YOUR_API_KEY,YOUR_DOMAIN_NAME, and FASTPRINT_URL with appropriate values
from the Mailgun dashboard (ex. key-c0c122841822ef7681bf191cd0090f14,
mg.zachlatta.com, and https://fastprint.apps.zachlatta.com, respectively).
This tells Mailgun to send any emails received at print@yourdomain.com to
Fastprint to process. FASTPRINT_URL is the URL to your hosted Fastprint
instance. You can use https://ngrok.com/ to expose an instance of Fastprint
running in your local network to the world.
$ curl -s --user 'api:YOUR_API_KEY' \
https://api.mailgun.net/v3/routes \
-F priority=0 \
-F description='Fastprint' \
-F expression='match_recipient("print@YOUR_DOMAIN_NAME")' \
-F action='forward("FASTPRINT_URL/receive")' \
-F action='stop()'
The final step is to start Fastprint itself. Go ahead and clone Fastprint,
install dependencies, and then run npm start.
$ git clone https://github.com/zachlatta/fastprint
$ cd fastprint
$ npm install
$ npm start
It'll error on the first run and complain about PRINTER_NAME not being set.
It'll print a list of the available printer names. Set PRINTER_NAME to one of
those printer names and then run npm start again. After that, you should be
good to go!
Fastprint is licensed under the MIT license. See LICENSE for the full license.
