# Kasper Hermansen's Blog A personal blog built with Zola (static site generator) and deployed using containerized CI/CD with Dagger. ## Prerequisites - **mise** - Development environment manager - **Rust** - For running Dagger CI - **Docker** - For containerization ## Development ### Quick Start ```bash # Install dependencies and start dev server mise run dev ``` This will: - Start Zola dev server on http://localhost:1111 - Watch and compile Tailwind CSS changes - Show draft posts ### Available Commands ```bash mise run dev # Start development server with live reload mise run ci:pr # Run CI build for pull requests mise run ci:main # Run full CI pipeline (build + deploy) ``` ## Deployment The blog uses a fully automated CI/CD pipeline built with Dagger (Rust SDK). ### Manual Deployment ```bash # Build and deploy to production (cd ci && cargo build) ./ci/target/debug/ci main ``` This will: 1. Compile Tailwind CSS styles 2. Build static site with Zola 3. Package with Caddy web server 4. Push Docker image to registry 5. Update deployment configuration in git ### Automated Deployment Pushing to `main` branch triggers automatic deployment via CI. ## Project Structure ``` ├── content/posts/ # Blog posts (Markdown with YAML frontmatter) ├── templates/ # Zola templates (Tera) ├── static/ # Static assets ├── styles/ # Tailwind CSS source ├── ci/ # Dagger CI/CD pipeline (Rust) ├── deployment/ # Caddy server configuration ├── config.toml # Zola configuration └── mise.toml # Development tasks ``` ## Adding Content Create a new post in `content/posts/`: ```markdown +++ title = "Your Post Title" description = "Brief description" date = 2025-01-01 draft = false [taxonomies] tags = ["rust", "development"] +++ Your content here... ```