Skip to main content

Self-Hosting

TrackVision product websites are static HTML — they can be served from any web server without a runtime or database. Download the ZIP (see Download Site) and deploy anywhere.

Option 1: Netlify (Drag & Drop)

The fastest option for non-technical users:

  1. Download the site ZIP
  2. Go to netlify.com and log in
  3. Drag the ZIP file onto the Netlify dashboard
  4. Netlify extracts and deploys it automatically
  5. You get a *.netlify.app URL immediately

To add a custom domain, follow Netlify's domain settings after deploying.

Option 2: Vercel

  1. Download the site ZIP and unzip it
  2. Install the Vercel CLI: npm install -g vercel
  3. From the unzipped directory, run vercel
  4. Follow the prompts to deploy
unzip my-site.zip -d my-site
cd my-site
vercel

Option 3: Nginx on Your Own Server

For full control, serve the static files with nginx.

Unzip the site:

unzip my-site.zip -d /var/www/products

Create a nginx server block:

server {
listen 80;
listen [::]:80;
server_name products.acme.com;

# Redirect HTTP to HTTPS
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name products.acme.com;

ssl_certificate /etc/letsencrypt/live/products.acme.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/products.acme.com/privkey.pem;

root /var/www/products;
index index.html;

# SPA-style routing: serve index.html for missing files
location / {
try_files $uri $uri/ $uri.html /index.html;
}

# Cache static assets
location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}

Get a TLS certificate with Certbot:

certbot --nginx -d products.acme.com

Option 4: AWS S3 + CloudFront

  1. Download and unzip the site
  2. Upload all files to an S3 bucket with static website hosting enabled
  3. Set the bucket's index document to index.html
  4. Create a CloudFront distribution pointing to the S3 bucket
  5. Add your custom domain and a certificate from ACM
# Upload to S3
aws s3 sync ./my-site s3://my-bucket-name --delete

# Invalidate CloudFront cache after update
aws cloudfront create-invalidation \
--distribution-id YOUR_DIST_ID \
--paths "/*"

Keeping Your Site Up to Date

TrackVision updates your site whenever you add products, update DPP data, or change the design. To keep your self-hosted copy current, automate the download and redeploy on a schedule:

#!/bin/bash
# Re-download and redeploy every night at 2am (cron: 0 2 * * *)

curl "https://api.acme.trackvision.ai/v1/sites/$SITE_ID/download" \
-H "Authorization: Bearer $TV_API_KEY" \
-o site.zip

unzip -o site.zip -d /var/www/products
rm site.zip
nginx -s reload