Files
igny8/docs/MARKETING_DEPLOYMENT.md
2025-11-13 15:44:36 +00:00

5.0 KiB

Marketing Site Container Deployment Guide

Implementation Complete

The marketing site is now containerized and running! This document explains the new setup and how to use it.


🏗️ Architecture

Before (Manual)

  • Marketing files in /var/www/igny8-marketing/
  • Manual build → copy → restart process
  • No version control for deployments

After (Containerized)

  • Marketing site runs in igny8_marketing container
  • Automated builds and deployments
  • Version controlled with Docker images
  • Easy rollback capability

📦 New Components

1. Dockerfile.marketing

Location: /data/app/igny8/frontend/Dockerfile.marketing

Builds the marketing site and serves it with Caddy.

2. Caddyfile.marketing

Location: /data/app/igny8/frontend/Caddyfile.marketing

Caddy configuration for the marketing container (port 8020).

3. igny8_marketing Service

Location: docker-compose.app.yml

New container service for the marketing site.

4. Updated Main Caddyfile

Location: /var/lib/docker/volumes/portainer_data/_data/caddy/Caddyfile

Now routes igny8.com to igny8_marketing:8020 container instead of static files.


🚀 Deployment Process

Initial Setup (One-time)

  1. Build the marketing image:

    cd /data/app/igny8/frontend
    docker build -t igny8-marketing:latest -f Dockerfile.marketing .
    
  2. Start the marketing container:

    cd /data/app/igny8
    docker compose -f docker-compose.app.yml -p igny8-app up -d igny8_marketing
    
  3. Reload Caddy:

    cd /data/app
    docker compose restart caddy
    

Updating Marketing Site

New Process (Automated):

# 1. Rebuild the marketing image
cd /data/app/igny8/frontend
docker build -t igny8-marketing:latest -f Dockerfile.marketing .

# 2. Restart the container (picks up new image)
cd /data/app/igny8
docker compose -f docker-compose.app.yml -p igny8-app restart igny8_marketing

Old Process (Manual - No Longer Needed):

# ❌ OLD WAY - Don't use anymore
npm run build:marketing
sudo cp -r dist/* /var/www/igny8-marketing/
docker compose restart caddy

🔄 Rollback Process

If you need to rollback to a previous version:

# 1. Tag the current image as backup
docker tag igny8-marketing:latest igny8-marketing:backup-$(date +%Y%m%d)

# 2. Tag a previous image as latest (if you have it)
docker tag igny8-marketing:previous-version igny8-marketing:latest

# 3. Restart container
docker compose -f docker-compose.app.yml -p igny8-app restart igny8_marketing

📊 Container Status

Check Marketing Container

docker ps --filter "name=igny8_marketing"

View Marketing Logs

docker logs igny8_marketing
docker logs igny8_marketing --tail 50 -f  # Follow logs

Test Marketing Site

# Test direct container access
curl http://localhost:8022/marketing.html

# Test through Caddy (production)
curl https://igny8.com/marketing.html

🔍 Troubleshooting

Container Not Starting

# Check logs
docker logs igny8_marketing

# Check if image exists
docker images | grep igny8-marketing

# Rebuild if needed
cd /data/app/igny8/frontend
docker build -t igny8-marketing:latest -f Dockerfile.marketing .

Caddy Not Routing Correctly

# Check Caddy logs
docker logs igny8_caddy

# Verify Caddyfile
cat /var/lib/docker/volumes/portainer_data/_data/caddy/Caddyfile

# Reload Caddy
cd /data/app
docker compose restart caddy

Network Issues

# Verify containers are on same network
docker network inspect igny8_net | grep -A 5 igny8_marketing
docker network inspect igny8_net | grep -A 5 igny8_caddy

📝 File Locations

Component Location
Dockerfile.marketing /data/app/igny8/frontend/Dockerfile.marketing
Caddyfile.marketing /data/app/igny8/frontend/Caddyfile.marketing
docker-compose.app.yml /data/app/igny8/docker-compose.app.yml
Main Caddyfile /var/lib/docker/volumes/portainer_data/_data/caddy/Caddyfile
Marketing Image Docker: igny8-marketing:latest
Container Name igny8_marketing
Container Port 8020 (internal), 8022 (external)

Benefits

  1. Automated Deployments - No more manual file copying
  2. Version Control - Each deployment is a Docker image
  3. Easy Rollback - Quick container image rollback
  4. Isolation - Marketing site isolated in its own container
  5. Reproducible - Same build process every time
  6. CI/CD Ready - Can be fully automated

🎯 Current Status

Marketing container is running
Caddy routing is configured
Site is accessible at https://igny8.com
Direct container access at http://localhost:8022


  • Deployment Architecture Analysis
  • Docker Compose: /data/app/igny8/docker-compose.app.yml
  • Main Caddyfile: /var/lib/docker/volumes/portainer_data/_data/caddy/Caddyfile