Quick Start
This guide walks you through deploying your SmartCAD instance from purchase to first login. Plan on about 30 minutes for the whole flow.
Don't have SmartCAD yet? Pick a plan on the home page. You'll get a license key emailed within seconds of checkout.
Step 1 — Sign in to your customer portal
After purchase, head to portal.smrtcad.com and sign in with the email you used at checkout. You'll receive a one-time sign-in link.
From the portal you can:
- Download your install bundle (covered below)
- Manage billing (if monthly)
- Re-send your license email
- Change which Discord server your license is bound to
Step 2 — Download your install bundle
On the portal dashboard, click Download under "Install bundle". You'll get three files:
| File | Purpose |
|---|---|
docker-compose.yml | The full app stack — backend, Caddy web server, Watchtower |
.env | Configuration template with your LICENSE_KEY and DISCORD_GUILD_ID already filled in |
README.md | This walkthrough, plus your one-line GHCR login command |
Put all three in a fresh directory on your server (e.g. ~/smartcad/).
Step 3 — Point your domain
In your DNS provider, create an A record pointing your domain to your server's IP address.
cad.yourcommunity.com → A → your.server.ipNote: Caddy (bundled with the app) automatically obtains and renews a TLS certificate via Let's Encrypt. Ports 80 and 443 must be open on your server's firewall.
Step 4 — Set up a Discord application
You'll need a Discord application for OAuth login. See Discord OAuth for the full walkthrough — it takes about 5 minutes.
Step 5 — Fill in your .env
Open the .env from your install bundle and replace every __FILL_IN__ placeholder. The most important:
BASE_URL— your public HTTPS URL (e.g.https://cad.yourcommunity.com)BETTER_AUTH_SECRET— generate withopenssl rand -base64 32DISCORD_CLIENT_ID+DISCORD_CLIENT_SECRET— from your Discord applicationDISCORD_REQUIRED_ROLE_IDS— at least one role ID required for CAD access
Your LICENSE_KEY and DISCORD_GUILD_ID are already filled in by the portal.
See Environment Variables for the full reference.
Step 6 — Log in to the image registry
The README in your bundle includes a one-line command:
echo "YOUR_GHCR_TOKEN" | docker login ghcr.io -u traditionalism --password-stdinThis authenticates Docker to pull the private SmartCAD images. Run it once per server.
Step 7 — Start your SmartCAD instance
docker compose up -dThis pulls the images and starts the backend, web server, and Watchtower. First startup may take 30–60 seconds while Caddy obtains your TLS certificate.
Visit https://cad.yourcommunity.com — you should see the login page.
Step 8 — First login
- Log in with Discord using an account that has one of your configured roles
- You will be prompted to set a password — this is used for in-game FiveM login where Discord OAuth is unavailable
Step 9 — FiveM server configuration
See FiveM Integration for installation and convar setup.
What's next
- Configure roles — map Discord roles to officer / supervisor / command access
- Update SmartCAD — Watchtower handles this automatically
- Manage billing — switch plans, cancel, view invoices