# Grumpy Containers - Project Context

## Project Overview
A collection of Docker containers for everyday tasks and services, managed with `just` build automation.

## Build System
- **Build Tool**: `just` (command runner)
- **Registry**: `public.ecr.aws/s0f9o2k5`
- **Versioning**: Semantic versioning in VERSION files per container

## Key Commands
```bash
# Show available recipes
just

# Build all containers and targets
just build

# Push all containers and targets  
just push

# Build specific container
just build-container <container-name>

# Push specific container
just push-container <container-name>

# Bump version for container
just bump-version <container-name> [patch|minor|major]

# Bump all versions
just bump-versions [patch|minor|major]
```

## Project Structure
```
src/
   base/           # Base container image
   cgit/           # Web interface for git repositories
   cluster/        # Container orchestration tools
   git-snapshot/   # Git repository backup utility
   gitolite/       # Git hosting and access management
   go-echo/        # Simple Go echo server
   just/           # Just command runner container
   pelican/        # Static site generator
   rclone/         # Cloud storage sync tool
   sally/          # Configuration management tool
   static-files/   # Static file server
   unbound-adblock/ # DNS ad-blocking service
```

## Container Details
Each container directory contains:
- `Dockerfile` - Container build instructions
- `VERSION` - Semantic version for the container
- `bin/` - Executable scripts (if applicable)
- `etc/` - Configuration files (if applicable)

## Testing
No formal test framework detected. Testing is done through:
- Docker build validation
- Manual container verification
- Runtime testing of services

## Hugo Container Usage
The hugo container supports configurable input and output directories:

```bash
# Build with default directories (/opt/app/src -> /opt/app/public)
docker run -v /path/to/hugo/site:/opt/app/src -v /path/to/output:/opt/app/public public.ecr.aws/s0f9o2k5/hugo:v0.0.1

# Build with custom directories
docker run -v /path/to/hugo/site:/input -v /path/to/output:/output public.ecr.aws/s0f9o2k5/hugo:v0.0.1 --input /input --output /output

# Environment variables
docker run -e INPUT_DIR=/custom/input -e OUTPUT_DIR=/custom/output public.ecr.aws/s0f9o2k5/hugo:v0.0.1
```

## Development Workflow
1. Make changes to container source
2. Update VERSION file if needed
3. Build container: `just build-container <name>`
4. Test container functionality
5. Push to registry: `just push-container <name>`