Commit graph

9 commits

Author SHA1 Message Date
dlawler489
b2bd70a356 Switch CI/CD from GitHub Actions + GHCR to Forgejo Actions + Forgejo registry
Some checks failed
Build and Push Docker Images / build-and-push (push) Failing after 9s
- Add .forgejo/workflows/docker-build.yml: builds API (production) and
  nginx (nginx-frontend) images with plain docker build/push and pushes
  to git.plexultra.com (native arm64 on the mac-mini runner)
- Remove .github/workflows/docker-build.yml (GHCR/GitHub-specific)
- Point docker-compose.deploy.yml images at git.plexultra.com registry

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 21:16:06 +10:00
dlawler489
e89bb8e0d4 Fix GitHub Actions build errors and Node.js deprecation warnings
- Remove unused orderCosts parameter from createExpensesFromCsvData function
- Update function call to match new signature
- Upgrade GitHub Actions to use Node.js 24 instead of deprecated Node.js 20
- Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 environment variable

This should resolve the build failure and deprecation warnings in CI/CD.
2026-05-05 18:37:29 +10:00
dlawler489
9dee4b32a1 Fix GitHub Actions to create :main tag for easier deployment
- Added type=raw,value=main to both API and Nginx image metadata
- This will create both SHA tags and :main tags for the default branch
- Fixes deployment timeout issues when pulling from GHCR
- Also added temporary deployment file using specific SHA
2026-05-05 15:14:02 +10:00
dlawler489
d00fd0f6e4 Fix API Docker image building wrong stage
Missing target: production caused the API image to build the last
Dockerfile stage (nginx-frontend) instead of the Node.js server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 20:22:02 +10:00
dlawler489
1ef51b1e37 Fix nginx serving blank page by baking client into its own image
The runtime cp from etsy-tracker to a shared volume silently failed
because the nodejs user lacked write permissions on the root-owned volume.
Now a dedicated nginx-frontend Docker stage is built and pushed to GHCR
with the React client baked in, eliminating the volume-sharing approach.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:29:07 +10:00
dlawler489
8a3512e2f0 Add fallback deployment and fix Docker image access issues
🔧 Fix Container Deployment Issues:
- Add docker-compose.deploy-local.yml for local builds (fallback)
- Updated deployment guide with unauthorized error troubleshooting
- GitHub Actions workflow improvements for package visibility

📦 Two Deployment Options:
1. docker-compose.deploy.yml - Uses pre-built GHCR image (fast)
2. docker-compose.deploy-local.yml - Builds locally (reliable fallback)

🛠 Troubleshooting Added:
- Clear instructions for 'unauthorized' error
- Step-by-step fallback to local builds
- GitHub Container Registry access solutions

 Immediate Solution:
Use docker-compose.deploy-local.yml in container interface:
- Builds image locally from source
- No dependency on GitHub Container Registry
- Works immediately while GHCR access is resolved
2026-04-21 09:32:16 +10:00
dlawler489
b0280ae9af Fix GitHub Actions build issues
🔧 Fixed Build Problems:
- Add proper Node.js setup with npm caching
- Use working-directory for client build step
- Add client build verification with error handling
- Simplified workflow removing complex artifact generation
- Better error messages and build status reporting

🔄 Node.js Version Handling:
- Set explicit Node.js 18 setup
- Removed deprecated Node.js 24 environment variable
- Added proper npm cache configuration
- Cache both client and server package-lock.json files

 Build Process:
1. Checkout repository
2. Set up Node.js 18 with npm caching
3. Build React client with npm ci + npm run build
4. Verify client build succeeded
5. Build multi-platform Docker image
6. Push to GitHub Container Registry

This should resolve the npm build command not found error and Node.js deprecation warnings.
2026-04-21 06:53:23 +10:00
dlawler489
1504ae6eea Add GitHub Container Registry support and automated builds
🚀 GitHub Actions CI/CD Pipeline:
- Automatic Docker image builds on every push to main
- Multi-platform support (Intel + Apple Silicon)
- Images published to GitHub Container Registry (ghcr.io)
- Tagged releases with semantic versioning
- Build artifacts for easy deployment

📦 Deployment Options:
- docker-compose.ghcr.yml for pre-built images (fastest)
- Enhanced build-deploy.sh with 'local' and 'ghcr' modes
- Comprehensive GITHUB_CONTAINER_REGISTRY.md guide
- Updated README with quick deployment options

🏗️ Build Improvements:
- Client build included in Docker image for nginx sharing
- Automated GitHub Actions workflow with caching
- Deployment artifacts generated automatically
- Production docker-compose template creation

 Benefits:
- 1-2 minute deployments (vs 5-10 minute local builds)
- Consistent images across all environments
- Automatic security scanning and multi-arch builds
- Easy rollbacks with version tags
- No local build dependencies required

Usage:
- Quick deploy: ./build-deploy.sh ghcr
- Local build: ./build-deploy.sh local
- View images: https://github.com/dlawler489/etsy-finance-tracker/pkgs/container/etsy-finance-tracker
2026-04-21 06:34:59 +10:00
dlawler489
9e1a098a70 Initial commit: Complete Etsy Business Tracker with Profit Analysis Dashboard
Features:
- React + TypeScript frontend with Tailwind CSS
- Node.js + Express backend with TypeScript
- Comprehensive order tracking and management
- Product catalog with inventory tracking
- Customer data management
- Expense tracking and categorization
- Advanced Profit Analysis Dashboard with:
  - Real-time profit metrics and KPI visualization
  - Detailed order-level profit breakdown
  - Product performance analysis
  - Enhanced time range filtering (monthly, quarterly, yearly)
  - Interactive expandable order analysis
  - Performance categorization and color coding
- CSV import functionality for Etsy statements
- PDF parsing capabilities
- Redux state management with persistence
- Responsive design with mobile support
- Australian date formatting and currency display
2026-04-20 09:44:54 +10:00