Run the BYOD SMS platform on your infrastructure with a single Docker container. Same Companion app, your URL, your data.
A short checklist so the first boot goes smoothly.
Try the published image in a few minutes on your machine.
docker pull registry.gitlab.com/rinzler-labs/crypton-byod-platform:latest
docker run -d --name crypton-byod \ -p 0.0.0.0:9090:9090 -p 0.0.0.0:9443:9443 \ -v crypton-byod-data:/data registry.gitlab.com/rinzler-labs/crypton-byod-platform:latest
https://localhost:9443/setup https://localhost:9443
# compose.env (or docker run -e …) BYOD_TLS_LAN_IP=192.168.1.10 BYOD_LAN_URL=https://192.168.1.10:9443
From empty server to a provisioned phone.
Images are published as latest, 0.1, and v0.1 tags. Use latest for testing or pin a version for production.
One container exposes HTTP on 9090 and self-signed HTTPS on 9443 (bound to 0.0.0.0). Certs are generated under /data/certs on first start. All state lives on the /data volume — back it up before upgrades.
On first launch the container installs PHP and frontend dependencies, then shows a waiting page. When ready, open /setup over HTTPS: environment, owner account, preferences, then encryption and recovery in the web UI.
Create a device in the dashboard and copy the CRYPT code. In Companion, set Server URL to your https:// origin (no trailing slash), then provision. The app only allows HTTPS — not http:// to the container. Self-signed certificates work if you enable “Allow self-signed TLS” in Companion.
For a public domain, set BYOD_PUBLIC_URL=https://your.domain and open ports 80 and 443 — Caddy obtains Let's Encrypt automatically. To use nginx, Traefik, or a cloud load balancer instead, set BYOD_TLS=off and proxy to http://…:9090.
Companion requires https:// for your Server URL. The quick start serves https://localhost:9443 (self-signed) and http://localhost:9090.
A publicly trusted certificate is ideal for production (set BYOD_PUBLIC_URL to your domain). On a private LAN, use the built-in self-signed cert and enable “Allow self-signed TLS” in Companion.
server {
listen 443 ssl;
server_name byod.example.com;
ssl_certificate /etc/ssl/byod/fullchain.pem;
ssl_certificate_key /etc/ssl/byod/privkey.pem;
location / {
proxy_pass http://127.0.0.1:9090;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
https://byod.example.com
For a repeatable deployment, use the compose files from the project repository.
Clone or download crypton-byod-platform, set BYOD_IMAGE_TAG and BYOD_TLS_LAN_IP in compose.env, then docker compose pull && docker compose up -d. See the repository README for optional profiles (mail testing).
View repository on GitLabYou do not have to self-host. Subscribe to BYOD on Crypton, use crypton.sh as Server URL in Companion, and manage devices from your Crypton account.