commit 93b9cdf00b45d13fb339656e96998f4007e55aca Author: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Mon Aug 17 12:06:07 2026 -0400 Initial commit: Firewood Stack calculator with CI/CD Static web app (nginx) with cord calculation, wood species/seasoning adjustments, season planning, and month-by-month coverage timeline. GitHub Actions workflow builds and pushes container to ghcr.io on push to main. Co-Authored-By: Claude Sonnet 4.6 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..e218d90 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,43 @@ +name: Build & Push Container + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/nmemmert/firewood + tags: | + type=ref,event=branch + type=sha,prefix=sha- + type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5ebe438 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM nginx:alpine +COPY index.html /usr/share/nginx/html/index.html +EXPOSE 80 diff --git a/index.html b/index.html new file mode 100644 index 0000000..9b192bb --- /dev/null +++ b/index.html @@ -0,0 +1,788 @@ +Firewood Stack + + + + + +
+ +
+
Firewood Stack
+
Cord & season calculator
+
+
+ +
+ + +
+
Stack Dimensions (ft)
+
+ +
+ Unit +
+ + +
+
+
+ + +
+
Wood Details
+ +
Species
+
+ + + +
+

Oak, hickory, ash, maple — highest heat output per cord.

+ +
+
Condition
+
+ + +
+

Dried 1+ years — ready to burn at full efficiency.

+
+ Green wood burns ~25% less efficiently and produces more creosote. Season it 6–12 months before burning for best results. +
+
+ +
+
Log length
+
+ + + + + +
+

At 16" a face cord (4 × 8 × 1.3 ft = 42 cu ft) is ⅓ of a full cord. Enter actual stack depth when measuring.

+
+
+ + +
+
Stacking Quality
+
+ + + +
+

Typical hand-stacked pile with moderate gaps — roughly 70–75% solid wood by volume.

+
+ + +
+
Burn Rate
+
+ + + + +
+

Daily fires, primary supplemental heat — about 1 cord/month.

+
+ + cords / month +
+
+ A cord is 4 × 4 × 8 ft = 128 cu ft. Burn rates assume seasoned hardwood — softwood or green wood adjusts the effective duration automatically. +
+
+ + +
+
Burn Season
+
+
+ Start +
+
+
+
+
+
+ Target end +
+
+
+
+
+
+

+
+ + + + +
+ +
+ Enter stack dimensions to calculate +
+
—
+
cords
+
+
+
+
+
+
+
+ +