Skip to content

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:

FilePurpose
docker-compose.ymlThe full app stack — backend, Caddy web server, Watchtower
.envConfiguration template with your LICENSE_KEY and DISCORD_GUILD_ID already filled in
README.mdThis 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.ip

Note: 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 with openssl rand -base64 32
  • DISCORD_CLIENT_ID + DISCORD_CLIENT_SECRET — from your Discord application
  • DISCORD_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:

bash
echo "YOUR_GHCR_TOKEN" | docker login ghcr.io -u traditionalism --password-stdin

This authenticates Docker to pull the private SmartCAD images. Run it once per server.

Step 7 — Start your SmartCAD instance

bash
docker compose up -d

This 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

  1. Log in with Discord using an account that has one of your configured roles
  2. 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

SmartCAD - Built for smart FiveM communities