- Add Cloud for Sovereignty landing zone architecture and deployment - Implement complete legal document management system - Reorganize documentation with improved navigation - Add infrastructure improvements (Dockerfiles, K8s, monitoring) - Add operational improvements (graceful shutdown, rate limiting, caching) - Create comprehensive project structure documentation - Add Azure deployment automation scripts - Improve repository navigation and organization
264 lines
5.8 KiB
Markdown
264 lines
5.8 KiB
Markdown
# Seal Deployment Automation Guide
|
|
|
|
Complete automation for Order of St John credential seal deployment.
|
|
|
|
## Quick Start
|
|
|
|
**One-Command Deployment:**
|
|
```bash
|
|
./scripts/deploy/complete-seal-deployment.sh
|
|
```
|
|
|
|
This automates:
|
|
1. ✅ SVG to PNG conversion (all sizes)
|
|
2. ✅ File validation
|
|
3. ✅ Manifest generation
|
|
4. ✅ Deployment checklist
|
|
5. ✅ Summary report
|
|
|
|
## Automation Scripts
|
|
|
|
### 1. Complete Seal Preparation
|
|
**Script**: `scripts/deploy/prepare-all-credential-seals.sh`
|
|
|
|
Converts all SVG seals to PNG in multiple sizes:
|
|
- 200x200px (for credentials)
|
|
- 400x400px (high-res)
|
|
- 800x800px (print)
|
|
|
|
**Usage:**
|
|
```bash
|
|
./scripts/deploy/prepare-all-credential-seals.sh
|
|
```
|
|
|
|
**Output:**
|
|
- PNG files in `assets/credential-images/png/`
|
|
- File manifest
|
|
- Validation report
|
|
- CDN upload script template
|
|
|
|
### 2. Seal Validation
|
|
**Script**: `scripts/validation/validate-seal-files.sh`
|
|
|
|
Validates:
|
|
- SVG file structure
|
|
- Maltese Cross presence
|
|
- OSJ references
|
|
- PNG file integrity
|
|
- File sizes
|
|
- Manifest template references
|
|
|
|
**Usage:**
|
|
```bash
|
|
./scripts/validation/validate-seal-files.sh
|
|
```
|
|
|
|
### 3. Complete Deployment
|
|
**Script**: `scripts/deploy/complete-seal-deployment.sh`
|
|
|
|
Orchestrates all steps:
|
|
1. Prepare seals (convert SVG to PNG)
|
|
2. Validate files
|
|
3. Generate deployment checklist
|
|
4. Create summary report
|
|
|
|
**Usage:**
|
|
```bash
|
|
./scripts/deploy/complete-seal-deployment.sh
|
|
```
|
|
|
|
### 4. Update Manifest URLs
|
|
**Script**: `scripts/deploy/update-manifest-seal-urls.sh`
|
|
|
|
Updates manifest templates with CDN URLs after upload.
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Default CDN
|
|
./scripts/deploy/update-manifest-seal-urls.sh
|
|
|
|
# Custom CDN
|
|
CDN_BASE_URL=https://your-cdn.com/images ./scripts/deploy/update-manifest-seal-urls.sh
|
|
```
|
|
|
|
## Workflow
|
|
|
|
### Step 1: Prepare Seals
|
|
```bash
|
|
./scripts/deploy/prepare-all-credential-seals.sh
|
|
```
|
|
|
|
This creates:
|
|
- PNG files in all required sizes
|
|
- File manifest
|
|
- Validation report
|
|
- Upload script template
|
|
|
|
### Step 2: Validate
|
|
```bash
|
|
./scripts/validation/validate-seal-files.sh
|
|
```
|
|
|
|
Checks:
|
|
- All required seals exist
|
|
- SVG structure is valid
|
|
- PNG files are valid
|
|
- File sizes are appropriate
|
|
|
|
### Step 3: Review
|
|
Review generated files:
|
|
- `assets/credential-images/png/MANIFEST.txt`
|
|
- `assets/credential-images/png/VALIDATION_REPORT.txt`
|
|
- Check PNG quality
|
|
|
|
### Step 4: Upload to CDN
|
|
```bash
|
|
cd assets/credential-images/png
|
|
./upload-to-cdn.sh
|
|
```
|
|
|
|
Or manually upload to your CDN provider.
|
|
|
|
### Step 5: Update Manifests
|
|
```bash
|
|
./scripts/deploy/update-manifest-seal-urls.sh
|
|
```
|
|
|
|
Updates all manifest templates with CDN URLs.
|
|
|
|
### Step 6: Test
|
|
- Issue test credentials
|
|
- Verify seals display correctly
|
|
- Test all credential types
|
|
|
|
## File Structure
|
|
|
|
```
|
|
assets/credential-images/
|
|
├── svg/ # Source SVG files
|
|
│ ├── digital-bank-seal.svg
|
|
│ ├── iccc-seal.svg
|
|
│ ├── iccc-provost-marshals-seal.svg
|
|
│ └── diplomatic-security-seal.svg
|
|
├── png/ # Generated PNG files
|
|
│ ├── digital-bank-seal.png
|
|
│ ├── digital-bank-seal-200x200.png
|
|
│ ├── digital-bank-seal-400x400.png
|
|
│ ├── digital-bank-seal-800x800.png
|
|
│ ├── ... (other seals)
|
|
│ ├── MANIFEST.txt
|
|
│ ├── VALIDATION_REPORT.txt
|
|
│ ├── upload-to-cdn.sh
|
|
│ └── UPLOAD_INSTRUCTIONS.md
|
|
├── DEPLOYMENT_CHECKLIST.md
|
|
└── DEPLOYMENT_SUMMARY.md
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
### Required
|
|
- Bash 4.0+
|
|
- SVG files in `assets/credential-images/svg/`
|
|
|
|
### Optional (for conversion)
|
|
- **ImageMagick** (recommended):
|
|
```bash
|
|
sudo apt-get install imagemagick # Linux
|
|
brew install imagemagick # macOS
|
|
```
|
|
|
|
- **Inkscape**:
|
|
```bash
|
|
sudo apt-get install inkscape # Linux
|
|
brew install inkscape # macOS
|
|
```
|
|
|
|
- **Node.js with sharp**:
|
|
```bash
|
|
pnpm add sharp
|
|
```
|
|
|
|
## CDN Configuration
|
|
|
|
### AWS S3 Example
|
|
```bash
|
|
# In upload-to-cdn.sh
|
|
aws s3 cp digital-bank-seal.png s3://your-bucket/images/digital-bank-seal.png --acl public-read
|
|
```
|
|
|
|
### Azure Blob Storage Example
|
|
```bash
|
|
# In upload-to-cdn.sh
|
|
az storage blob upload --file digital-bank-seal.png --container-name images --name digital-bank-seal.png --account-name your-account
|
|
```
|
|
|
|
### Cloudflare R2 Example
|
|
```bash
|
|
# In upload-to-cdn.sh
|
|
rclone copy digital-bank-seal.png r2:images/digital-bank-seal.png
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
Set CDN base URL:
|
|
```bash
|
|
export CDN_BASE_URL=https://cdn.theorder.org/images
|
|
```
|
|
|
|
Or inline:
|
|
```bash
|
|
CDN_BASE_URL=https://your-cdn.com/images ./scripts/deploy/update-manifest-seal-urls.sh
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Conversion Fails
|
|
- Install ImageMagick, Inkscape, or sharp
|
|
- Check SVG files are valid
|
|
- Verify file permissions
|
|
|
|
### Validation Warnings
|
|
- Review warnings in validation report
|
|
- Check SVG structure
|
|
- Verify PNG files are valid
|
|
|
|
### CDN Upload Issues
|
|
- Verify CDN credentials
|
|
- Check file permissions
|
|
- Ensure HTTPS is configured
|
|
|
|
## Best Practices
|
|
|
|
1. **Always validate** after conversion
|
|
2. **Review PNG quality** before deployment
|
|
3. **Test in wallets** before production
|
|
4. **Use HTTPS** for all CDN URLs
|
|
5. **Optimize file sizes** (<100KB recommended)
|
|
6. **Version control** SVG source files
|
|
7. **Document changes** in deployment summary
|
|
|
|
## Automation Summary
|
|
|
|
| Task | Script | Status |
|
|
|------|--------|--------|
|
|
| SVG to PNG conversion | `prepare-all-credential-seals.sh` | ✅ Automated |
|
|
| File validation | `validate-seal-files.sh` | ✅ Automated |
|
|
| Manifest URL updates | `update-manifest-seal-urls.sh` | ✅ Automated |
|
|
| Complete deployment | `complete-seal-deployment.sh` | ✅ Automated |
|
|
| CDN upload | `upload-to-cdn.sh` | ⚠️ Template (customize) |
|
|
|
|
## Next Steps After Automation
|
|
|
|
1. ✅ Review generated PNG files
|
|
2. ✅ Customize CDN upload script
|
|
3. ✅ Upload to CDN
|
|
4. ✅ Update manifest URLs
|
|
5. ✅ Test credential issuance
|
|
6. ✅ Deploy to production
|
|
|
|
---
|
|
|
|
**Last Updated**: [Current Date]
|
|
**Automation Status**: ✅ Complete
|
|
|