Setting Up a ReminderPrint DIY Print Server

ReminderPrint works by sending reminders from your iPhone to a small print server you host yourself — typically a Raspberry Pi connected to a thermal receipt printer. This guide walks you through setting everything up from scratch.

Written By LimeGlow Apps

Last updated About 1 month ago


What You'll Need

  • A Raspberry Pi (Pi 3 or newer recommended)

  • A thermal receipt printer that supports ESC/POS over USB (most 58mm and 80mm receipt printers do)

  • A USB cable to connect the printer to the Pi

  • A MicroSD card (8GB or larger)

  • A Mac or Windows PC to flash the SD card

  • A WiFi network


Step 1 — Flash Raspberry Pi OS

Download and install Raspberry Pi Imager from raspberrypi.com/software. Open it and:

  1. Choose your Pi model

  2. Select Raspberry Pi OS Lite (64-bit) as the operating system

  3. Select your SD card as the target

  4. Click the settings icon and configure your hostname (e.g. printserver), enable SSH, and enter your WiFi details

  5. Click Flash

Once flashing is complete, insert the SD card into the Pi and power it on.


Step 2 — Run the Setup Script

Once the Pi has booted and connected to your network, SSH in from your computer:

ssh pi@printserver.local 

Then clone the ReminderPrint server repository and run the setup script:

git clone https://github.com/jackbuhlerr/ReminderPrint.git cd ReminderPrint chmod +x setup.sh ./setup.sh 

The setup script will automatically:

  • Install all required dependencies

  • Install and enable Tailscale for remote access

  • Configure USB printer permissions

  • Create a background service that starts on boot

  • Generate a unique API key for your server

When prompted, either enter your own API key or press Enter to have one generated for you automatically. Save this key- you will need it when connecting the iOS app.


Step 3 — Connect Tailscale

After the script completes, authenticate Tailscale so you can reach the Pi from anywhere:

sudo tailscale up 

Open the URL it displays in your browser to log in. Once authenticated, get your Pi's Tailscale address:

tailscale ip -4 

This address is what you'll use in the ReminderPrint app to connect from outside your home network.


Step 4 — Connect Your Printer

Plug your thermal printer into the Pi via USB and power it on. Verify it is detected by running:

ls /dev/usb/ 

You should see lp0 or lp1 listed. If nothing appears, check the USB cable and make sure the printer is powered on.


Step 5 — Verify the Server is Running

Check that the print server started successfully:

sudo systemctl status printserver 

It should show active (running). You can also do a quick test print using curl from your computer:

curl -X POST http://printserver.local:8000/print \ -H "Content-Type: application/json" \ -H "x-api-key: YOUR_API_KEY" \ -d '{"title":"Setup complete","due":"Now","priority":"Immediate"}' 

If a receipt prints, your server is ready to connect to the app.


Troubleshooting

SSH connection refused Give the Pi a minute or two to fully boot, then try again. If it still fails, check that SSH was enabled during the Imager setup step.

Printer not detected (ls /dev/usb/ shows nothing) Make sure the printer is powered on and the USB cable is securely connected. Try a different USB port on the Pi.

Setup script fails Ensure the Pi is connected to the internet before running the script. Check your WiFi credentials were entered correctly during flashing.

Server not running after reboot Run sudo systemctl enable printserver to make sure the service is set to start on boot, then sudo systemctl start printserver to start it now.