FreePBX is a web-based interface that makes it easier to manage Asterisk, the open-source telephony engine. It can run on a Synology NAS, but this setup isn’t officially encouraged for production. Think of it as a solid learning path, a lab build, or a small internal phone system—especially if you already own a capable Synology.

System Requirements for FreePBX

  • CPU: Dual-core minimum (Intel i5-class recommended)
  • RAM: 4 GB minimum (8 GB recommended)
  • Storage: 50–100 GB per VM/container (SSD preferred)
  • Network: Stable connection for VoIP traffic
  • Synology Features: Your model should support Virtual Machine Manager (VMM) or Docker

Check Your Synology NAS Compatibility

Confirm that your NAS supports VMM or Docker. Not all models do—entry-level J-series often lack these features. Use Synology’s official compatibility pages to verify support.


Important Considerations and Warnings

Why Running FreePBX on Synology Can Be Tricky

  • Performance trade-offs: Synology NAS units are designed for storage first. Adding a PBX alongside other apps can impact both call quality and NAS responsiveness.
  • Resource contention: Background services on the NAS compete with Asterisk for CPU, RAM, and I/O.
  • “One box for everything” risk: A NAS isn’t a general “run all the things” server. Cramming too much into it leads to instability.
  • Limited official support: This isn’t a standard, vendor-supported production design.
  • Backups and snapshots: Telephony systems are stateful; snapshot timing and restores can be sensitive.

When Installing on a Synology NAS Still Makes Sense

  • Small setups (roughly 4–20 extensions) where top-tier call quality isn’t mission critical.
  • Testing, labs, and hands-on learning.
  • Internal calling focus, with mobiles as fallback for outside calls.
  • You already own a strong Synology NAS and want to get more value from it.

Bottom line: It works best for modest, internal use. For internet-facing, business-critical systems, a dedicated VPS or server is better.


Installation Methods

You can run FreePBX on Synology using either a virtual machine (VMM) or a Docker container. VMM aligns with the standard ISO installation and usually produces the most predictable results.

Method Pros Cons Difficulty
Virtual Machine Manager (VMM) Runs the official FreePBX ISO; better isolation; widely understood Heavier on CPU/RAM; needs a capable NAS Medium
Docker Lighter footprint; convenient lifecycle Limited upstream support; networking & config can be tricky Medium–Hard

Recommended: Use Virtual Machine Manager for this project unless you have a strong reason to choose Docker.


Method 1: Virtual Machine Manager Installation

Step 1: Download Required Files

  1. Go to the official FreePBX downloads page and grab the latest ISO (e.g., FreePBX 15/16 on Asterisk 18+).
  2. Save the 2–2.5 GB ISO to your computer.
  3. In Synology File Station, create or use a shared folder like ISO_Images and upload the ISO.

Step 2: Install and Open Virtual Machine Manager

  1. In Package Center, install Virtual Machine Manager.
  2. Launch VMM and complete the initial wizard. Choose the storage volume for VMs.

Step 3: Create a System Image

  1. In VMM, open the Image tab → Add.
  2. Select the ISO from your NAS and confirm the storage location.

Step 4: Create the Virtual Machine

  1. Virtual Machine tab → CreateCreate virtual machine with system image.
  2. CPU: 2–4 cores (4 recommended). RAM: 2–4 GB (4 GB recommended).
  3. Disk: 50–100 GB on your chosen volume.
  4. Network: Use the default virtual switch (LAN) so phones on your network can see the PBX.
  5. Boot ISO: Point to the FreePBX ISO image.
  6. Check Power on virtual machine after creation, then finish.

Step 5: Install FreePBX

  1. Choose FreePBXGraphical InstallationFreePBX Standard.
  2. Set the root password, choose your time zone, and configure networking (static IP recommended). Note the IP.
  3. Let the installer complete. This may take 30–45 minutes.
  4. After reboot, eject the ISO in VMM (Edit VM → set ISO to Unmounted) and reboot the VM again.

Step 6: Access the Web Interface

  1. Find the VM’s IP in VMM or inside the console via hostname -I.
  2. Open http://<VM-IP> and log in (default admin/admin—change this immediately).
  3. Complete the FreePBX setup wizard.

Method 2: Docker Installation

Prerequisites

  • Docker installed from Package Center.
  • 20–30 GB free for data volumes.
  • Basic Docker concepts (images, containers, volumes, and port mapping).

Step 1: Install Docker on Synology

  1. Open Package Center → search DockerInstall.

Step 2: Pull the FreePBX Image

  1. Open DockerRegistry → search freepbx (e.g., tiredofit/freepbx).
  2. Download the latest tag.

Step 3: Create Storage Volumes (Critical)

  1. In Docker → Volume, create:
    • freepbx_data (config)
    • freepbx_mysql (database, if embedded)
    • freepbx_recordings (call recordings)
    • freepbx_logs (logs)

Step 4: Create and Run the Container

  1. In Docker → Image, double-click the FreePBX image and name the container freepbx.
  2. Open Advanced Settings:
    • General: Enable “Run after the wizard” and “Auto-restart”.
    • Port Settings:
      • HTTP: 80:80
      • HTTPS: 443:443
      • SIP UDP: 5060:5060 (UDP)
      • SIP TCP: 5160:5160 (TCP)
      • RTP: 18000-18100:18000-18100 (UDP)
      • FOP: 4445:4445
    • Volume:
      • freepbx_data/data
      • freepbx_mysql/var/lib/mysql
      • freepbx_recordings/var/spool/asterisk/monitor
      • freepbx_logs/var/log
    • Environment:
    ADMIN_PASSWORD=YourSecurePassword
    DB_EMBEDDED=TRUE
  3. Apply and start the container.

Step 5: Access the UI

  1. Get the container’s IP from Docker → Container details.
  2. Visit http://<NAS-IP>:80 or https://<NAS-IP>:443 (accept the self-signed certificate warning).
  3. Log in and complete the wizard (change default credentials right away).

Common Issues and Troubleshooting

1) Can’t Reach the Web Interface

Symptoms: Timeouts or “Connection refused.”

  • Confirm the VM/container is running.
  • For Docker, re-check port mappings (80/443/5060).
  • Review Synology firewall rules (Control Panel → Security).
  • Ping the VM/container IP from a LAN device to verify connectivity.

2) Web UI Is Slow or Freezing

  • Increase VM resources (4 cores / 4 GB RAM if possible).
  • Reduce other heavy NAS apps competing for resources.
  • Restart Asterisk:
    asterisk -r
    core restart now

3) Docker Container Won’t Stay Up

  • If you see iptables or Fail2Ban-related errors, try privileged mode.
  • Check logs from the Docker UI for specific messages.
  • Recreate the container with the correct ports/volumes; keep volumes so data persists.

4) Phones Can’t Register (SIP Unreachable)

This is the most common stumbling block. SIP and NAT don’t always play nicely behind a NAS.

  • Same-LAN phones: Point phones to the PBX’s local IP (e.g., 192.168.1.100).
  • Remote phones: Avoid open port forwards if you can. Use a VPN (WireGuard/OpenVPN) to bring phones into the LAN.
  • Advanced NAT config: (if you must) edit /etc/asterisk/sip_nat.conf:
    externip=YOUR.PUBLIC.IP
    localnet=192.168.1.0/255.255.255.0

    Then:

    asterisk -r
    core restart now

5) Call Recordings Disappear After Restart

  • Ensure the volume is mounted at /var/spool/asterisk/monitor.
  • Fix permissions if needed: chmod 777 /var/spool/asterisk/monitor.

6) “Connection attempt to AMI failed”

  • Restart Asterisk and confirm it’s running (ps aux | grep asterisk).
  • Check /etc/asterisk/manager.conf and /etc/amportal.conf credentials.
  • Restart FreePBX: fwconsole restart.

Post-Installation Configuration

1) Change the Admin Password (Critical)

  1. Log in at http://<your-ip>.
  2. Administration → Users → Administrators → edit admin and set a strong password.

2) System Basics

  1. Administration → System Admin: set hostname, static IP, DNS.
  2. Set the correct time zone and enable NTP.

3) Add Extensions (Internal Numbers)

  1. Administration → ExtensionsAdd Extension.
  2. Choose Chan_PJSIP, then fill:
    • Extension: e.g., 100
    • Display Name: Your user
    • Secret/Password: A strong phone password
  3. Submit and Apply Config.

4) Configure a SIP Trunk (Optional)

  1. Gather SIP credentials from your VoIP provider.
  2. Administration → Connectivity → TrunksAdd TrunkChan SIP Trunk.
  3. Fill Trunk Name, outbound proxy/SIP server, registration string, and port (often 5060/5061).
  4. Submit and Apply Config.

5) Inbound and Outbound Routes

  • Inbound: Connectivity → Inbound Routes → choose trunk, set destination (extension/IVR).
  • Outbound: Connectivity → Outbound Routes → select trunk sequence.

6) IVR (Auto-Attendant)

  1. Administration → IVRAdd IVR.
  2. Name it, upload/record an announcement, map digits (1/2/3…) to destinations.
  3. Submit and Apply Config.

7) Music on Hold

  1. System Settings → Music on Hold Classes → select default class.
  2. Upload audio or use the provided options.

8) Call Recording (Optional)

  1. System Settings → Asterisk SIP Settings → Advanced.
  2. Enable auto-recording if you need it, then Apply Config.

User Feedback and Community Experiences

Success Stories

One notable setup used a DS920+ with 8 GB RAM (about 2 GB for the FreePBX VM), serving 70+ extensions with conference rooms. It focused on internal office calling, snapshot backups to a secondary NAS, and cell phones for external calls if needed.

Common Pain Points

  • Docker complexity: Repeated reinstall attempts and long configuration cycles are common; VMM is often simpler.
  • Call quality hiccups: One-way audio or drops after several minutes due to resource contention or networking.
  • UI freezes: Temporary AMI timeouts that improve after allocating more RAM.
  • Remote extensions: NAT traversal and port forwarding challenges; VPN usually wins.
  • Backups: Snapshots aren’t everything—use configuration backups too.

Expert View (Community Consensus)

Running a production PBX on a NAS or in a container is generally seen as a hobbyist move. The usual advice: keep serious phone systems on dedicated hardware or a VPS with official images and support.

Better Alternatives, Depending on Your Needs

  • Small business: A $5–$10/month VPS (DigitalOcean, Vultr, Linode) with a one-click install.
  • Testing: An old mini-PC (e.g., ThinkCentre) idles at ~10–15 W and runs FreePBX well.
  • Enterprise: Certified, supported FreePBX appliances.

These take the strain off your NAS and simplify networking, NAT, and SIP registration. :contentReference[oaicite:2]{index=2}


Maintenance and Monitoring

Backups

  • Monthly config backup: Administration → Backup and Restore → create and download a backup. Keep an off-NAS copy.
  • VM snapshots (VMM): Right-click the VM in VMM → Take Snapshot, name with a date, and (ideally) replicate to a second NAS.

Health Checks

  • Asterisk status:
    ssh root@<VM-IP or Container-IP>
    asterisk -rvvvvv
    sip show peers
    core show calls
  • Memory/CPU: DSM Resource Monitor shows whether FreePBX is starving for resources.
  • Logs: On the VM: /var/log/asterisk/full. In the UI: Administration → Tools → System Log.

Final Recommendations

Before You Begin

  • Be realistic about your goals. If you need rock-solid, internet-facing calling, a VPS or appliance is usually simpler.
  • Consider alternatives (3CX, bare Asterisk, or a hosted PBX).
  • Have a recovery plan if the NAS fails.
  • Think about growth over the next few years.

If You Proceed on Synology

  • Prefer Virtual Machine Manager over Docker for stability.
  • Allocate enough resources (2–4 cores, 2–4 GB RAM).
  • Keep it local-only; use a VPN for remote devices.
  • Back up weekly (snapshots + config exports).
  • Monitor the system regularly.
  • Know how to migrate to dedicated hardware if your needs grow.

Disclaimer: This setup reflects community experience and best practices. Your results will depend on your hardware, network, and configuration. Proceed with regular backups and test thoroughly.

Categorized in:

How It Works,

Tagged in:

,