-
Notifications
You must be signed in to change notification settings - Fork 0
Backend and Docker Deployment
Tyler Hatfield edited this page Aug 30, 2026
·
4 revisions
DecaTone is designed for self-hosted operation using Docker Compose or a native Node.js 20+ environment.
Create a docker-compose.yml file:
version: '3.8'
services:
decatone:
image: ghcr.io/tylerhats/decatone:latest
container_name: decatone-app
restart: unless-stopped
ports:
- "4000:4000"
environment:
- PORT=4000
- NODE_ENV=production
- JWT_SECRET=your_super_secret_jwt_key_here_change_me
volumes:
- decatone-data:/app/backend/data
- decatone-uploads:/app/backend/uploads
- decatone-branding:/app/backend/data/branding
volumes:
decatone-data:
decatone-uploads:
decatone-branding:DecaTone publishes container images to Docker Hub:
-
tylerhats/decatone:1.2.2(Versioned Release) -
tylerhats/decatone:latest(Stable Tracking)
docker compose up -dAccess the web dashboard at http://<your-server-ip>:4000 to complete the initial Setup Wizard.
When running inside Docker, DecaTone automatically detects the container environment:
- In-container Git modifications and self-overwrites are safely disabled to preserve container immutability.
- In the Admin Center → System Updates panel, the release channel selector controls which ESP32-S3 firmware branch the switchboard offers to physical telephones.
- To update the DecaTone server application, pull the updated container image:
docker compose pull && docker compose up -d
DecaTone includes a zero-loss automated backup and restore daemon:
Each backup archive contains:
-
decatone.db— Complete SQLite database (all user accounts, extensions, hardware settings, call history, friends, and system policies). -
branding/— Custom brand logo, browser favicon, and top-right navigation icons. -
uploads/— All customized voicemail greetings and recorded voice messages. -
backup_metadata.json— Timestamp, DecaTone release version, and database schema migration level.
In Admin Center → Backups & Restore:
-
Schedule: Enable automated backups (Hourly, Daily, or Weekly) at a specific time (e.g.
02:00AM). -
Retention: Set
backup_retention_count(e.g. keep last 10 backups). Older archives are automatically pruned. -
Restoration: Upload any previously generated
.tar.gzarchive. DecaTone extracts all 4 directories and runs SQLite migrations automatically.
Administrators can customize switchboard visual identity in Admin Center → Settings & Whitelabeling:
- Application Display Name: Customize name shown across the header, login, and registration screens.
- Brand Logo: Upload custom PNG/SVG logo.
-
Browser Favicon: Upload custom
.ico/.pngbrowser tab icon (dynamically injected into all pages). - Top-Right Program Icon: Custom SVG/PNG icon in the navigation bar.
- Reset to Defaults: One-click action to restore factory visual branding.
For secure WebSockets (wss://) and browser microphone permissions for the web softphone, place DecaTone behind an SSL reverse proxy:
server {
listen 80;
server_name phone.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name phone.example.com;
ssl_certificate /etc/letsencrypt/live/phone.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/phone.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}phone.example.com {
reverse_proxy localhost:4000
}- In the DecaTone web dashboard, go to Admin Center → Settings & MQTT.
- Configure your broker connection:
-
Broker URL:
mqtt://192.168.1.50:1883 - Username / Password: Your MQTT credentials
-
HA Discovery Prefix:
homeassistant -
Intercom Security PIN:
411
-
Broker URL:
- DecaTone auto-registers every physical phone with binary sensors (hook, ringing, call state), volume/gain sliders, DND toggle switches, and Text-to-Speech intercom announcements.
DecaTone Open-Source Vintage Rotary Phone VoIP Switch • Licensed under GNU GPL v3.0