A backyard site running TLeconte acarsdec ACARS decoder on a Raspberry Pi Zero.
The goal was to piggyback an ACARS radio and decoder onto a Pi Zero that is forwarding ADS-B packets from another ADS-B receiver to open-source ADS-B sites Opensky Network and ADSB Exchange. Since the Zero has a free USB port, the theory is that it should have the processing power to handle one SDR.
TL;DR: Script that does all the following is here.
Detailed instructions follow.
Excellent instructions at satsignal.eu. Distilled down here:
            sudo apt-get update
            sudo apt-get upgrade
            sudo printf 'blacklist dvb_usb_rtl28xxu\nblacklist rtl2832\nblacklist rtl2830' > /etc/modprobe.d/nortl.conf
            sudo apt-get install git-core
            sudo apt-get install git
            sudo apt-get install cmake
            sudo apt-get install libusb-1.0-0-dev  
            sudo apt-get install build-essential 
            git clone git://git.osmocom.org/rtl-sdr.git
            cd rtl-sdr
            mkdir build
            cd build
            cmake ../ -DINSTALL_UDEV_RULES=ON
            make
            sudo make install
            sudo ldconfig
            cd ~
            sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
            git clone git://github.com/MalcolmRobb/dump1090.git
            cd dump1090
            make
            sudo reboot
         
   
            cd /usr/local/src
            git clone https://github.com/szpajder/libacars.git
            sudo apt-get install zlib1g-dev libxml2-dev
            cd libacars/
            mkdir build
            cd build
            cmake ../
            make
            sudo make install
            sudo ldconfig
         
            git clone https://github.com/TLeconte/acarsdec
            cd acarsdec
            mkdir build
            cd build
            cmake .. -Drtl=ON
            make
            sudo make install
         The following is simple command line output. It will keep the command and window open for as long as your session does not time out. I've had this running for weeks at a time
That's it! You should periodically see cryptic looking messages pop up on your screen. More usage instructions, including different ouput formats, can be found on the github page.
Options! Options! Additional operational options.
But the above less useful for unattended operation, or for logging purposes, or daemon-like usage. To "set it and forget it" put the command somewhere in your startup scripts -- either run it as a service/daemon via init/systemd... or just throw it into rc.local or crontab. (Examples courtesy of [satsignal.eu]:
    
   where options:
      -g == gain in tenths... so 480 is a gain of 48 (sdr limit is umm 49 I believe)
      -r == device index, if you have multiple devices, 
            which is unnecessary on Pi Zero but is good practice. 
            0 is first SDR device and so on
      -l == file to log output, if you would prefer that instead of screen
            this is useful for unattended operation. you can set up your site to
            check this file from a web browser, por ejemplo
      -j == send copy of output in JSON format to host and port
      -n == send copy of output in PlanePlotter format to host and port
      -N == send copy of output in acarsdec format to host and port
      111.222.333.444 == IP address of server to forward messages to
       >/dev/null == sends the initial startup messages to the aether, essentially quiet output
       2>&1       == sends error messages to same place as output, essentially quiet output 
   
To send json to a remote server and port:
To send planeplotter format to a remote server and port:
To keep logs by date and to put initial status message to a generic log file:
Here are the ACARS frequencies to tune. My notes for USA frequencies follow. Originally taken from the acarsd site
| Frequency | Region / Country | Seattle Area Monitoring notes | 
|---|---|---|
| 131.550 | Primary Channel worldwide | GOOD; primarily ARINC | 
| 130.025 | Secondary channel for USA and Canada | GOOD; more descriptive messages | 
| 129.125 | Additional channel for USA & Canada | listened for a few minutes; no traffic | 
| 130.425 | Additional channel for USA | listened for a few minutes; no traffic | 
| 130.450 | Additional channel for USA & Canada | listened for a few minutes; no traffic | 
| 131.125 | Additional channel for USA | listened for a few minutes; no traffic | 
| 136.700 | Additional channel for USA | |
| 136.750 | Additional channel for USA | |
| 136.800 | Additional channel for USA | |
| 136.850 | SITA North American Frequency | listened for a few minutes; no traffic | 
| 131.450 | Primary channel for Japan | |
| 131.475 | Air Canada company channel | |
| 131.525 | European secondary | |
| 131.725 | Primary channel in Europe | |
| 136.900 | European secondary | |
| 136.750 | New European frequency | |
| 131.850 | New European frequency | 
CPU Loads, typical
| configuration | running apps | typical CPU usage | notes | 
|---|---|---|---|
| ADS-B "repeater" mode |  
  | 
      5% to 7% | dump1090 runs net-only (no local SDR), accepts data from another Pi collecting ADS-B messages, forwards data to Opensky and ADSB Exchange | 
|  ADS-B repeater  ACARSdec local  | 
       acarsdec  monitoring 3-4 frequencies  | 
       acarsdec uses 50% to 53% CPU  total usage is 53-65% load avg > 1.00  | 
       acarsdec local output to the command line;  ADS-B forwarding as noted above  | 
   
|  ADS-B repeater  ACARSdec local  | 
      acarsdec 131.550 130.025 |  acarsdec uses 28% to 35% CPU  total usage is 30-37%  | 
       acarsdec local output to the command line;  ADS-B forwarding as noted above  | 
   
|  ADS-B repeater  ACARSdec repeater  | 
       acarsdec  monitoring 2 frequencies  | 
       acarsdec uses x% to x% CPU  total usage is %  | 
      acarsdec local output to the command line |