Skip to content

Repository files navigation

SSM 2025

A modern VitePress website with automated Docker deployment to Nomad clusters.

🚀 Quick Start

GitHub Guide: https://github.com/aisystant/github-guide.

Local Development

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

Docker Development

# Quick start with Docker
./docker.sh build && ./docker.sh run

# Or use Docker Compose
docker-compose up -d

# Visit http://localhost:8080

📦 Deployment

This project features automated CI/CD with Docker and Nomad:

  • 🔄 Automatic: Push to main → Build → Deploy to production
  • 🎯 Manual: Deploy any version to any environment via GitHub Actions
  • 🏗️ Multi-platform: Supports AMD64 and ARM64 architectures
  • 🔒 Secure: SSH-based deployment with environment separation

Quick Deploy Setup

  1. Configure GitHub Repository:

    • Variables: NOMAD_HOST, NOMAD_USER
    • Secret: NOMAD_SSH_PRIVATE_KEY
  2. Deploy:

    • Push to main for automatic deployment
    • Use Actions → "Deploy to Nomad" for manual deployment

📋 Detailed setup guide: DEPLOYMENT.md

🛠️ Architecture

Frontend Stack

  • Framework: VitePress - Vue-powered static site generator
  • Styling: Bootstrap 5.3.6 - Responsive CSS framework
  • Components: Swiper 11.2.8 - Touch slider component
  • Build Tool: Vite - Fast build tool and dev server
  • Preprocessing: Sass - CSS extension language

Development Tools

  • Package Manager: npm
  • Vue Composition: @vueuse/core - Vue composition utilities
  • YAML Processing: js-yaml - YAML parsing for content
  • SVG Sprites: vite-plugin-svg-sprite - SVG optimization

Content Structure

  • Pages: Markdown files in src/ directory
  • Components: Reusable content in components/ directory
  • Assets: Images and static files in src/public/
  • Styling: Custom SCSS with Bootstrap integration

URL Features

  • Clean URLs: Site uses clean URLs without .html suffixes (configured in .vitepress/config.mts)
  • Nginx Support: Configured to serve /page.html when /page is requested
  • Redirects Configuration: Stored in nginx/includes.d/redirects.conf, auto-generated from CSV files
  • CSV Types:
    • nginx/internal-redirects.csv: Old paths to new paths on the new site (/old-path,/new-path)
    • nginx/external-redirects.csv: Paths to redirect to old.system-school (/path-not-implemented)
  • Generate Redirects:
    cd nginx && python3 csv-to-nginx-redirects.py internal-redirects.csv external-redirects.csv includes.d/redirects.conf

📚 Resources

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages