Installation Guide

This guide will help you get FOG Docker up and running quickly.

Prerequisites

  • Docker and Docker Compose installed
  • At least 4GB RAM available
  • 20GB+ free disk space
  • Network access for downloading FOG client files

Quick Installation

  1. Create a directory and download the required files:
    mkdir fog-docker && cd fog-docker
    curl -O https://raw.githubusercontent.com/88fingerslukee/fog-docker/main/docker-compose.yml
    curl -O https://raw.githubusercontent.com/88fingerslukee/fog-docker/main/.env.example
    cp .env.example .env
    
  2. Edit .env with your settings:
    # Required settings
    FOG_WEB_HOST=192.168.1.100
    FOG_DB_ROOT_PASSWORD=your-secure-password
    
    # FOG 1.6 capture finalize (default; keep for single-container installs)
    FOG_STORAGE_NODE_SSH_HOST=127.0.0.1
    
  3. Start FOG:
    docker compose up -d
    
  4. Access FOG:
    • Web Interface: https://your-server-ip/fog/management/ (accept the self-signed certificate on first visit)
    • Default login: fog / password

Option 2: Full Repository Clone

git clone https://github.com/88fingerslukee/fog-docker.git
cd fog-docker
cp .env.example .env
# Edit .env with your settings
docker compose up -d

Windows (WSL2)

To run fog-docker on Windows for lab work (Web UI, FOG Agent trials), see Windows (WSL2). Full LAN PXE/imaging on WSL is limited; use a Linux server or VM for production imaging.

Development Setup

For development, testing, or custom FOG versions:

  1. Clone the repository:
    git clone https://github.com/88fingerslukee/fog-docker.git
    cd fog-docker
    
  2. Configure your environment:
    cp .env.example .env
    # Edit .env: set FOG_WEB_HOST, FOG_DB_ROOT_PASSWORD, and optionally FOG_VERSION
    # FOG_VERSION is any FOG git ref (stable, 1.6.0-RC-11, working-1.6, …)
    # working-1.6 = upstream 1.6 dev branch (moving); pin 1.6.0-RC-11 to match a release candidate.
    # Production without local builds: use docker-compose.yml + ghcr image tags (see below).
    
  3. Build and start the containers:
    docker compose -f docker-compose-dev.yml up -d --build
    

Note: Development setup builds FOG from source. Web UI is published on 8080/8443 by default; TFTP/FTP stay on 69/21. Set FOG_VERSION in .env to any FOG git ref (stable, working-1.6, 1.6.0-RC-6, etc.).

Automatic Releases

This project automatically builds and publishes new Docker images when the FOG Project releases new versions:

  • Automatic Detection: Checks for new FOG releases every 6 hours
  • Final releases: Tagged fog-<upstream-tag> and :latest
  • Release candidates: Tagged fog-<upstream-tag> and :rc; published as a GitHub pre-release (not :latest)
  • Every push to main: CI rebuilds both the newest final release (:latest) and the newest RC (:rc + fog-<RC>), so pinned and rolling tags pick up fog-docker fixes without waiting for a new upstream FOG tag
  • Not auto-built: alpha / beta / preview tags (use the dev compose file or a manual workflow dispatch if needed)
  • Manual Trigger: You can manually trigger builds for specific FOG versions

Available Image Tags

Tag Meaning
:latest Newest final FOG release
:fog-<release> Pin to a specific published build (see GitHub Releases)
:rc Newest release candidate (pre-release channel)

Full image reference: ghcr.io/88fingerslukee/fog-docker:<tag>. Custom FOG refs are built locally with docker-compose-dev.yml and FOG_VERSION.

Next Steps

After installation, continue with:

  1. Configuration Guide - Configure FOG for your environment
  2. Network Boot Setup - Set up PXE and HTTPBoot
  3. SSL/HTTPS Setup - Configure SSL certificates (optional)

Troubleshooting

If you encounter issues during installation:

  1. Check container logs:
    docker compose logs fog-server
    docker compose logs fog-db
    
  2. Verify environment variables:
    cat .env
    
  3. Check port availability:
    netstat -tulpn | grep -E ':(80|443|69|21|2049)'
    
  4. Capture stuck on “Updating Database” or task Failed after upload: see Post_Stage2 / SSH finalize.

  5. See Troubleshooting Guide for other common issues and solutions.

Security Notes

Kernel NFS requires privileged: true. To run without privileged mode, set FOG_NFS_MODE=unfs3 and FOG_PRIVILEGED=false. See the configuration guide.

Important: Change the default FOG web UI admin password immediately after first login:

  • Default Username: fog
  • Default Password: password
  • Action Required: Change this password in the FOG web interface for security!