HN 표시: Git 웹 관리자

hackernews | | 📦 오픈소스
#git #laravel #livewire #self-hosted #배포
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

Git Web Manager(GWM)는 Laravel과 Livewire로 개발된 셀프 호스팅 애플리케이션으로, 하나의 대시보드에서 Git 기반 웹사이트의 배포, 롤백, 건강 상태 확인을 자동화합니다. 이 도구는 수동 git 작업을 UI로 대체할 뿐만 아니라 커밋별 미리보기 빌드, 웹훅을 통한 자동 배포, Dependabot 보안 경고 통합 등의 기능을 제공합니다. 또한 배포 큐 지원, 규칙 기반 워크플로우, 사용자 관리 등 고급 기능을 포함하며 PHP 8.2 이상과 Node.js 18 이상의 환경에서 설치 가능합니다.

본문

Git Web Manager (GWM) is a self-hosted Laravel + Livewire application for deploying and monitoring Git-backed websites from a single dashboard. It handles deploys, rollbacks, health checks, preview builds by commit, dependency actions, and a security overview for Dependabot alerts. Git Web Manager is not affiliated with, endorsed by, or sponsored by Git or GitHub. This is a completely free service that I work hard to maintain. Show your support if you found this useful! This repo ships a static docs site in docs/ . You can read it directly here: documentation. - Replace manual git pull + build + rollback steps with one UI. - Get per-project health checks and recent activity logs. - Spin up preview builds for any commit. - Keep dependencies and security alerts visible. - Authenticated dashboard with project list and detail pages. - Deploys, force deploys, and rollbacks. - Auto-deploy via scheduler or GitHub webhooks. - Health checks with live status. - Preview builds by commit. - Dependency actions (composer/npm) with logs. - Security tab with Dependabot alerts and auto-merge. - Self-update flow for the app itself. - Rule-based workflows for deploys, rollbacks, dependency actions (email + webhooks). - Deploy queue for serializing deployments. - User management tab for creating accounts and resetting passwords. - Project-type wizard (Laravel, Node, Static, Custom) with relevant defaults. - Copy .env.example to.env and configure required values. - Install dependencies and build assets. - Run migrations and start the app. composer install php artisan migrate npm install npm run build Docker is required to run the container setup. Windows/macOS: Install Docker Desktop, then verify: docker version docker compose version Linux: Install Docker Engine and the Docker Compose plugin from the official Docker docs, then verify: docker version docker compose version Ensure the Docker engine is running before starting containers. - Copy .env.example to.env and configure required values. - Ensure Docker Desktop is running. - Build and start containers: docker compose --env-file .env.docker up -d --build - Open http://localhost:8080 Notes: .env.docker is for Docker Compose interpolation only.- The app reads settings from .env (mounted read-only into the containers). - Change the exposed port by editing APP_PORT in.env.docker . - Stop containers with docker compose down . If any value in .env contains a $ , wrap it in single quotes to avoid Compose interpolation warnings when running Docker on some systems. - PHP 8.2+ with required extensions (mbstring, curl, etc). - Composer 2. - Node.js 18+ (or 20/22) for Vite builds. - Git CLI available to the web user. - Queue worker for webhook deploys. - Scheduler for auto-deploy and security sync. Git operations are performed by the web server user. For reliable updates, the PHP-FPM user should match the filesystem owner of the app and project directories. If they differ, git may fail to write to .git/objects or .git/index . Set these in .env as needed: GITHUB_TOKEN for private repos + Dependabot actions.GITHUB_WEBHOOK_SECRET for webhook verification.GWM_GIT_BINARY ,GWM_COMPOSER_BINARY ,GWM_NPM_BINARY for custom CLI paths.GWM_PHP_BINARY /GWM_PHP_PATH for PHP CLI selection.GWM_PROCESS_PATH to prepend PATH (Node, PHP, etc).GWM_SELF_UPDATE_ENABLED to enable self updates.GWM_SELF_UPDATE_EXCLUDE_PATHS to skip paths (default:docs ).GWM_PREVIEW_PATH andGWM_PREVIEW_BASE_URL for preview builds.GWM_DEPLOY_QUEUE_ENABLED to enable queued deployments. Legacy GPM_* keys are still supported for backward compatibility. Start a worker for webhook deployments: php artisan queue:work Ensure the scheduler runs (crontab entry): * * * * * cd /path/to/app && /path/to/php artisan scheduler:run >/dev/null 2>&1 Scheduled commands include: projects:auto-deploy (every 5 minutes)deployments:process-queue (every minute)security:sync (hourly)dependabot:auto-merge (hourly)gitmanager:self-update (daily at 02:30 if enabled) Set GitHub to POST to: /webhooks/github Use the same GITHUB_WEBHOOK_SECRET in GitHub and .env . The app can update itself from its repo. By default it preserves local changes when detected. If an update fails, you can run a Force Update to hard-reset to the remote branch while preserving .env , storage/ , .htaccess , and GWM_SELF_UPDATE_EXCLUDE_PATHS . If the app exposes the custom app:clear-cache command, it runs automatically after updates. Force Update does not clear app data (logs, storage files, and other protected paths are retained). CLI: php artisan gitmanager:self-update php artisan gitmanager:self-update --force To publish on GitHub Pages: - Go to repo settings → Pages. - Select Deploy from a branch. - Choose branch main and folder/docs . - Registration is open only when there are no users (first admin setup). - After the first account exists, create users from the Users page in the main navigation. - Users created by admins can be forced to change their password on first login. - Use “Se

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →