Commit graph

28 commits

Author SHA1 Message Date
4bc996334f Document FORGEJO_TOKEN setup for CI/CD
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 11s
Add comprehensive documentation for setting up the personal
access token required for the Forgejo Actions CI/CD pipeline
to push Docker images to the container registry.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 08:10:44 -05:00
49c44beb72 Update secret name to FORGEJO_TOKEN
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 15s
Change from GITEA_TOKEN to FORGEJO_TOKEN to match the
configured repository secret.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 07:56:11 -05:00
7a20ce077b Use manual git clone instead of actions/checkout
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 1m6s
The docker:latest container doesn't have Node.js, which is
required by actions/checkout@v4. Use manual git clone instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 07:35:22 -05:00
05b8168674 Use docker:latest container for job execution
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 3s
Run the job in a docker:latest container which has Docker
pre-installed, avoiding the need to install it manually.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 07:34:14 -05:00
25b7ee314c Simplify workflow to use standard Docker approach
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 17s
Remove DIND complexity in favor of standard Docker socket mounting:
- Use actions/checkout@v4 instead of manual git clone
- Remove DOCKER_HOST configuration
- Remove Docker installation steps
- Rely on runner's Docker daemon access

This requires runner to be configured with Docker socket mount.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 07:33:08 -05:00
a62e2f3b46 Update .forgejo/workflows/docker-build.yml
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 19s
2025-12-01 01:10:18 -05:00
2f0f5bc875 Update .forgejo/workflows/docker-build.yml 2025-12-01 01:09:53 -05:00
c70f8b594f Use Docker static binary instead of apt repository
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 1m9s
Simplify Docker installation by downloading the static binary
directly. This avoids repository/OS version detection issues
and ensures we get a recent Docker client with API v1.44+.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 01:00:16 -05:00
e9d0de405c Install Docker from official repository for newer API version
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 24s
The docker.io package from apt provides Docker client API v1.41,
which is too old for the DIND server (requires v1.44+).

Install docker-ce-cli from Docker's official repository to get
a compatible client version.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:58:09 -05:00
9da8b3e958 Set DOCKER_HOST explicitly in workflow
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 31s
- Add env.DOCKER_HOST at workflow level
- Use host IP that DIND is exposed on
- Ensures all docker commands use TCP connection to DIND
- Shows DOCKER_HOST value in logs for debugging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:54:01 -05:00
41e3e11d05 Use runner's DOCKER_HOST with default ubuntu container
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 1m6s
- Remove custom docker:latest container
- Use default ubuntu-latest (should inherit runner's DOCKER_HOST)
- Install docker.io client in job
- Check DOCKER_HOST environment variable
- Should use runner's tcp://docker-runner:2375 config

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:12:38 -05:00
3f3540e97b Try gateway IP from routing table for DIND connection
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 27s
- Get default gateway IP from routing table
- Test connection to DIND on gateway
- Provide instructions if connection fails
- Network isolation might need runner configuration fix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:01:50 -05:00
f7ed4c163d Auto-detect DIND daemon hostname/IP
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 10s
- Test multiple possible DIND hostnames/IPs
- Try docker-runner.docker.internal, host.docker.internal, 172.17.0.1
- Automatically set DOCKER_HOST when connection succeeds
- Verify with docker version before proceeding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:59:25 -05:00
22645a6908 Use docker:latest container with DOCKER_HOST for DIND
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 10s
- Run workflow in docker:latest container (has docker CLI)
- Set DOCKER_HOST to connect to DIND daemon
- Install git in Alpine container
- Enables Docker commands in job container

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:57:01 -05:00
485d4540e3 Restore production workflow for Docker builds
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 5s
- Clone repository and checkout specific SHA
- Build Docker image with latest and SHA tags
- Push to Forgejo container registry
- Clean and simple workflow now that DNS is fixed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:55:39 -05:00
43c969bf55 Minimal network diagnostic - no package installs
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 18s
- Use only built-in commands (cat, wget, bash)
- Test basic connectivity with /dev/tcp
- 5 second timeouts to prevent hanging
- Check if runner has ANY internet access
- Diagnose runner network configuration issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:30:36 -05:00
fabc795911 Fix workflow for minimal container environments
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Install required debug tools first (iproute2, dnsutils, etc)
- Use fallbacks for commands that might not exist
- Better error handling in clone step
- Add IP-based clone fallback with SSL verification disabled
- Suppress apt-get errors for missing packages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:25:21 -05:00
86dacd2f09 Add comprehensive debugging to Forgejo workflow
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 36s
- Check DNS configuration and resolv.conf
- Test DNS resolution with nslookup and dig
- Test network connectivity with ping and curl
- Show environment variables and git config
- Attempt IP-based clone if DNS fails
- Debug all network and DNS issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:23:54 -05:00
547b232669 Simplify Forgejo Actions workflow for compatibility
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 17s
- Remove GitHub Actions marketplace actions (uses directive)
- Use shell commands instead for better compatibility
- Switch from gitea context to github context variables
- Use Docker container to run build commands

Fixes YAML schema validation errors in Forgejo runner

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:01:54 -05:00
3d2e06e662 Configure docker-compose to use .env file
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 0s
- Remove hardcoded values from docker-compose.yml
- Use environment variables from .env file instead
- Update .env.example with placeholder values and instructions
- Update DOCKER_README.md with .env file setup instructions
- Fixes WebSocket origin check by allowing PHX_HOST to be configured per environment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 00:21:51 -05:00
90cfeec59b Fix entrypoint.sh permissions in Docker container
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
- Reorder Dockerfile to create phoenix user before copying entrypoint.sh
- Use --chown flag to set proper ownership of entrypoint.sh
- Resolves "Permission denied" error when starting container

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:27:17 -05:00
9b55c6e446 Fix Docker OpenSSL compatibility and deprecation warnings
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
- Add OpenSSL 3.x libraries to runtime stage (libcrypto3, libssl3, openssl-dev)
- Fix deprecation warning by adding parentheses to function calls in release.ex
- Resolves crypto library loading errors in Docker container

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:15:45 -05:00
4e056a7202 Add sample .env file for environment configuration
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
- Created .env.example with all required environment variables
- Updated .gitignore to exclude .env files from version control
- Includes instructions for generating secure SECRET_KEY_BASE

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:14:45 -05:00
5feb386963 Fix Dockerfile build order for phoenix-colocated
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
The phoenix-colocated JS files are generated during Elixir compilation.
Reordered steps to:
1. Compile Elixir code (generates phoenix-colocated files)
2. Copy assets
3. Deploy assets (esbuild can now find phoenix-colocated imports)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:03:00 -05:00
5da1762266 Remove npm from Dockerfile - Phoenix uses esbuild/tailwind
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
Modern Phoenix apps don't use npm. They use standalone esbuild and
tailwind binaries. Removed npm installation and npm ci/deploy commands.
The mix assets.deploy task handles all asset compilation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:00:00 -05:00
da6739f7cc Fix Dockerfile: Use stable Elixir 1.17 Alpine image
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
The release candidate version 1.19.0-rc.0-otp-28-alpine is not available
on Docker Hub. Switched to stable elixir:1.17-alpine which is compatible
with the application.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:56:11 -05:00
e599e724c2 Add Forgejo Actions workflow for Docker image builds
Some checks are pending
Build and Push Docker Image / build-and-push (push) Waiting to run
- Automatically builds Docker image on push to main
- Pushes to Forgejo container registry
- Tags with latest, branch name, and commit SHA
- Includes build cache optimization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:38:24 -05:00
9ece312442 Initial commit: RateMyClient™ Phoenix application
Features:
- User registration and authentication with email/password
- Admin login with username-based authentication (separate from regular users)
- Review system for contractors to rate clients
- Star rating system with review forms
- Client identification with private data protection
- Contractor registration with document verification
- Admin dashboard for review management
- Contact form (demo, non-functional)
- Responsive navigation with DaisyUI components
- Docker Compose setup for production deployment
- PostgreSQL database with Ecto migrations
- High Vis color scheme (dark background with safety orange/green)

Admin credentials: username: admin, password: admin123

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:30:50 -05:00