{"id":50513775,"url":"https://github.com/dalsoop/proxmox-init","last_synced_at":"2026-06-02T22:01:34.703Z","repository":{"id":351444510,"uuid":"1211026463","full_name":"dalsoop/proxmox-init","owner":"dalsoop","description":"Domain-based installable CLI for Proxmox/LXC/Debian servers — 21 independent binaries, install only what you need","archived":false,"fork":false,"pushed_at":"2026-04-18T01:07:03.000Z","size":623,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-18T02:27:35.147Z","etag":null,"topics":["cli","debian","homelab","infrastructure","lxc","proxmox","rust","server-management"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dalsoop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-15T02:02:16.000Z","updated_at":"2026-04-18T01:07:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dalsoop/proxmox-init","commit_stats":null,"previous_names":["dalsoop/prelik-init","dalsoop/proxmox-init"],"tags_count":99,"template":false,"template_full_name":null,"purl":"pkg:github/dalsoop/proxmox-init","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalsoop%2Fproxmox-init","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalsoop%2Fproxmox-init/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalsoop%2Fproxmox-init/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalsoop%2Fproxmox-init/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dalsoop","download_url":"https://codeload.github.com/dalsoop/proxmox-init/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalsoop%2Fproxmox-init/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33838221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","debian","homelab","infrastructure","lxc","proxmox","rust","server-management"],"created_at":"2026-06-02T22:01:33.737Z","updated_at":"2026-06-02T22:01:34.688Z","avatar_url":"https://github.com/dalsoop.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# proxmox-init (pxi)\n\n[![Version](https://img.shields.io/github/v/release/dalsoop/proxmox-init)](https://github.com/dalsoop/proxmox-init/releases)\n[![Domains](https://img.shields.io/badge/domains-31-blueviolet)]()\n[![Commands](https://img.shields.io/badge/commands-309+-blue)]()\n[![License](https://img.shields.io/badge/license-MIT-lightgrey)]()\n\n\u003e Proxmox/LXC/Debian 서버용 **도메인 기반 설치형 CLI**.\n\u003e 30개 도메인이 독립 바이너리로 배포됩니다. 필요한 것만 설치.\n\u003e Nickel SSOT + 3-tier runtime (fs → embedded → hard-fail) 로 drift 차단.\n\n```bash\ncurl -fsSL https://install.prelik.com | bash\npxi init\n```\n\n## 사용법\n\n```bash\npxi install elk telegram wordpress    # 도메인 설치\npxi run elk status                    # 도메인 실행\npxi run telegram send --bot ops --chat 123 --text \"배포 완료\"\npxi list                              # 설치된 도메인\npxi available                         # 사용 가능한 도메인 (SSOT 기반)\npxi doctor                            # 기본 상태 점검\npxi validate                          # SSOT ↔ 설치 바이너리 drift 점검\n```\n\n## 도메인 (31개)\n\n| 도메인 | 설명 |\n|---|---|\n| `account` | 리눅스 계정 + Proxmox RBAC (roles, proxmox-silo) |\n| `ai` | Claude/Codex CLI, mount/perm-max, OpenClaw, ComfyUI |\n| `backup` | vzdump 기반 LXC/VM 백업 + 스케줄 |\n| `bootstrap` | apt/rust/gh/dotenvx 의존성 설치 |\n| `chrome-browser-dev` | Chromium/Helium 브라우저 빌드 LXC + 캐시/로그/스냅샷 관리 |\n| `cloudflare` | DNS / Email Routing / SSL / Pages |\n| `code-server` | code-server (VS Code 웹) LXC |\n| `comfyui` | ComfyUI LXC 설치 (GPU 패스스루) |\n| `connect` | 외부 서비스 연결 (.env + dotenvx) |\n| `deploy` | 레시피 기반 LXC 배포 (Homelable, Formbricks 등) |\n| `elk` | ELK 스택 (Elasticsearch + Kibana + Logstash) |\n| `host` | 호스트 bootstrap, monitor, postfix-relay |\n| `infisical` | Infisical 시크릿 플랫폼 |\n| `iso` | Proxmox ISO 스토리지 관리 |\n| `license` | Keygen CE 라이선스 관리 |\n| `lxc` | LXC lifecycle + bootstrap + route-audit |\n| `mail` | Maddy + Postfix relay |\n| `ministack` | LocalStack AWS 에뮬레이터 |\n| `monitor` | 리소스 모니터링 + health-check |\n| `nas` | NAS 마운트 + Synology/TrueNAS API |\n| `net` | 네트워크 진단 (audit, fix, ingress) |\n| `node` | Proxmox 클러스터 노드 관리 |\n| `recovery` | LXC config 스냅샷/복원 |\n| `service` | 파일 기반 서비스 레지스트리 |\n| `telegram` | 텔레그램 봇 (send, webhook, generate) |\n| `traefik` | Traefik 리버스 프록시 관리 |\n| `vaultwarden` | Vaultwarden 패스워드 매니저 LXC |\n| `vm` | Proxmox VM lifecycle |\n| `wordpress` | WordPress LXC 배포 |\n| `workspace` | tmux + shell + nvim |\n| `xdesktop` | Xpra HTML5 원격 데스크톱 (한글 + Helium) |\n\n## 프리셋\n\n```bash\npxi install --preset web      # bootstrap, lxc, traefik, cloudflare\npxi install --preset mail     # bootstrap, lxc, mail, cloudflare, connect\npxi install --preset dev      # bootstrap, ai, connect\n```\n\n## 서비스 레지스트리\n\n```bash\npxi run service list                    # 도메인별 서비스 목록\npxi run service add --domain prelik.com --name blog --host blog.prelik.com --ip 10.0.50.200 --port 80\npxi run service sync                    # Traefik 자동 동기화\n```\n\n## Chromium/Helium 브라우저 개발\n\n`chrome-browser-dev` 도메인은 대형 Chromium 빌드에서 의존성/캐시가 깨지지 않도록\nLXC, 캐시, 빌드 로그, TOML 워크플로우 카드, 빌드 프로파일을 한 곳에서 관리합니다.\n\n```bash\npxi chrome-browser-dev setup --vmid 50220 --hostname chromium-browser-dev --ip 10.0.50.220/16\npxi chrome-browser-dev init-workspace --vmid 50220\npxi chrome-browser-dev workflow-new --vmid 50220 --id tabs-refactor --goal \"탭 동작 수정\" \\\n  --patch helium/core/tab-cycling-mru.patch \\\n  --path chrome/browser/ui/browser_command_controller.cc \\\n  --verify \"chromium-browser-dev build\"\npxi chrome-browser-dev workflow-check --vmid 50220 --id tabs-refactor\npxi chrome-browser-dev gitlab-setup --vmid 50220 --host gitlab.internal.kr\npxi chrome-browser-dev x11-setup --vmid 50220\npxi chrome-browser-dev x11-simulate --vmid 50220\npxi chrome-browser-dev profile-show --vmid 50220\npxi chrome-browser-dev check --vmid 50220\npxi chrome-browser-dev build-status --vmid 50220\npxi chrome-browser-dev version --vmid 50220\npxi chrome-browser-dev paths --vmid 50220\npxi chrome-browser-dev run --vmid 50220 --url about:blank --timeout-sec 10\npxi chrome-browser-dev driver-start --vmid 50220 --port 9515\npxi chrome-browser-dev card-assumptions --vmid 50220\npxi chrome-browser-dev card-check --vmid 50220\n```\n\n## SSOT (Nickel)\n\n29개 도메인 메타데이터는 `ncl/` 하위 Nickel 파일이 정본. 파일시스템 `locale.json` (\n`/var/lib/pxi/locale.json` 또는 `~/.local/share/pxi/locale.json`) 과 바이너리에 embed 된\n런타임 fallback 을 통해 nickel CLI 없는 환경에서도 SSOT 일관성 유지.\n\n```\nncl/contracts/domain.ncl         # Domain record contract (NameStr / Product / Layer / Platform enum)\nncl/domains.ncl                  # 30개 domain.ncl import 인덱스 + requires 교차검증 + format_version\ncrates/domains/\u003cname\u003e/domain.ncl # 각 도메인 메타 (name/description/tags/requires?/provides)\n```\n\n### 로드 우선순위 (Registry::load)\n\n1. 파일시스템 `locale.json` — install-local.sh / release tarball 이 배치, 수정 가능\n2. 바이너리 embedded — build.rs 가 nickel export 로 구워넣은 immutable SSOT\n3. hard-fail — 명확한 복구 안내\n\ntier 1 이 있지만 format_version 미일치 면 tier 2 로 silent downgrade **하지 않음** (drift 방지).\n\n## 새 도메인 추가\n\n```bash\nscripts/new-domain.sh \u003cname\u003e \u003cproduct\u003e \u003clayer\u003e \u003cplatform\u003e \"\u003c설명\u003e\"\n\n# 예시\nscripts/new-domain.sh vaultwarden service remote proxmox \\\n  \"Vaultwarden 패스워드 매니저 LXC\"\n```\n\n4개 파일 원자적 생성:\n- `crates/domains/\u003cname\u003e/Cargo.toml` (workspace inherit)\n- `crates/domains/\u003cname\u003e/src/main.rs` (clap skeleton)\n- `crates/domains/\u003cname\u003e/domain.ncl` (Domain contract 적용)\n- `ncl/domains.ncl` (알파벳 순 import 삽입)\n\n생성 직후 `nickel eval` + `cargo check` 자동 실행.\n\n## 로컬 개발 흐름\n\n```bash\n# 소스 수정 후 로컬 설치 (nickel 필요)\nscripts/install-local.sh              # pxi 메타만\nscripts/install-local.sh --all        # 30개 도메인 전부\nscripts/install-local.sh lxc traefik  # 특정 도메인만\n\n# drift 점검\npxi validate                          # SSOT ↔ 바이너리 대조\n```\n\n## 이름 변경\n\n```bash\npxi rebrand newname --apply    # 바이너리 + 경로 일괄 변경\n./scripts/rebrand.sh pxi newname \u0026\u0026 cargo build --release  # 소스 전체\n```\n\n## 라이선스\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalsoop%2Fproxmox-init","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdalsoop%2Fproxmox-init","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalsoop%2Fproxmox-init/lists"}