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
- Go to the official FreePBX downloads page and grab the latest ISO (e.g., FreePBX 15/16 on Asterisk 18+).
- Save the 2–2.5 GB ISO to your computer.
- 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
- In Package Center, install Virtual Machine Manager.
- Launch VMM and complete the initial wizard. Choose the storage volume for VMs.
Step 3: Create a System Image
- In VMM, open the Image tab → Add.
- Select the ISO from your NAS and confirm the storage location.
Step 4: Create the Virtual Machine
- Virtual Machine tab → Create → Create virtual machine with system image.
- CPU: 2–4 cores (4 recommended). RAM: 2–4 GB (4 GB recommended).
- Disk: 50–100 GB on your chosen volume.
- Network: Use the default virtual switch (LAN) so phones on your network can see the PBX.
- Boot ISO: Point to the FreePBX ISO image.
- Check Power on virtual machine after creation, then finish.
Step 5: Install FreePBX
- Choose FreePBX → Graphical Installation → FreePBX Standard.
- Set the root password, choose your time zone, and configure networking (static IP recommended). Note the IP.
- Let the installer complete. This may take 30–45 minutes.
- After reboot, eject the ISO in VMM (Edit VM → set ISO to Unmounted) and reboot the VM again.
Step 6: Access the Web Interface
- Find the VM’s IP in VMM or inside the console via
hostname -I. - Open
http://<VM-IP>and log in (defaultadmin/admin—change this immediately). - 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
- Open Package Center → search Docker → Install.
Step 2: Pull the FreePBX Image
- Open Docker → Registry → search
freepbx(e.g.,tiredofit/freepbx). - Download the latest tag.
Step 3: Create Storage Volumes (Critical)
- 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
- In Docker → Image, double-click the FreePBX image and name the container
freepbx. - 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
- HTTP:
- Volume:
freepbx_data→/datafreepbx_mysql→/var/lib/mysqlfreepbx_recordings→/var/spool/asterisk/monitorfreepbx_logs→/var/log
- Environment:
ADMIN_PASSWORD=YourSecurePassword DB_EMBEDDED=TRUE
- Apply and start the container.
Step 5: Access the UI
- Get the container’s IP from Docker → Container details.
- Visit
http://<NAS-IP>:80orhttps://<NAS-IP>:443(accept the self-signed certificate warning). - 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.confand/etc/amportal.confcredentials. - Restart FreePBX:
fwconsole restart.
Post-Installation Configuration
1) Change the Admin Password (Critical)
- Log in at
http://<your-ip>. - Administration → Users → Administrators → edit
adminand set a strong password.
2) System Basics
- Administration → System Admin: set hostname, static IP, DNS.
- Set the correct time zone and enable NTP.
3) Add Extensions (Internal Numbers)
- Administration → Extensions → Add Extension.
- Choose Chan_PJSIP, then fill:
- Extension: e.g., 100
- Display Name: Your user
- Secret/Password: A strong phone password
- Submit and Apply Config.
4) Configure a SIP Trunk (Optional)
- Gather SIP credentials from your VoIP provider.
- Administration → Connectivity → Trunks → Add Trunk → Chan SIP Trunk.
- Fill Trunk Name, outbound proxy/SIP server, registration string, and port (often 5060/5061).
- 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)
- Administration → IVR → Add IVR.
- Name it, upload/record an announcement, map digits (1/2/3…) to destinations.
- Submit and Apply Config.
7) Music on Hold
- System Settings → Music on Hold Classes → select default class.
- Upload audio or use the provided options.
8) Call Recording (Optional)
- System Settings → Asterisk SIP Settings → Advanced.
- 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.
