시작하기

문서

설치하고 결제를 받으며 서버를 관리해 보세요.

처음인가요? 단계별 튜토리얼을 따라 해 보세요 →

VPS 요구 사항

root 권한이 있는 새 Linux VPS를 사용하세요. 기존 웹사이트나 데이터베이스 서버는 사용하지 마세요. Docker, 컴파일러, 블록체인 노드는 필요 없어요.

VPS최소 사양
가벼운 사용
권장
CPU1 vCPU2 vCPU
RAM2 GB4 GB
SSD20 GB60 GB

최소 사양은 최소 구성 Ubuntu/Debian 이미지에서 가볍게 사용할 때의 기준이며 성능을 보장하지는 않아요. 디스크 용량에는 Linux가 포함돼요. 설치 전 최소 3 GiB의 여유 공간을 확보하고, 업데이트·기록·백업 공간도 남겨 두세요.

기본 설치 프로그램에는 다음이 필요해요: x86-64, systemd 247+, Python 3.9+. ARM64와 Alpine/OpenRC는 포함되지 않아요.

Linux 버전 및 사양 안내
  • Ubuntu 22.04+ 또는 Debian 12+, Mint 21+ 및 Pop!_OS 22+.
  • Fedora 42+, Rocky, AlmaLinux, RHEL, Oracle Linux 또는 CentOS Stream 9–10.
  • openSUSE Leap 16+ 또는 Tumbleweed, Arch, Manjaro 또는 EndeavourOS.

공급업체가 유지 관리하는 버전을 선택하세요. OS 요구 사항이 더 높다면 그 기준을 따라야 해요: openSUSE Leap 16 에는 40 GB가 넘는 디스크 공간이 필요해요.

체인이나 동시 청구서가 많아지면 CPU와 RAM도 더 필요할 수 있어요. VPS 사양을 높여도 RPC 할당량 제한은 없어지지 않아요. 설치 흐름에는 자동화 테스트가 있지만, 모든 배포판에서 새 VPS 전체 테스트를 완료한 것은 아니에요.

설치

다음 기본 호스트 이름을 VPS에 연결하거나 원하는 이름을 정하세요:

  • merchant.example.com: 콘솔
  • pay.example.com: 결제 화면
  • api.example.com: API

설치 중에는 DNS 전용 레코드를 사용하세요. 양쪽 방화벽에서 TCP 80/443을 열고 SSH 접근을 유지하세요. PostgreSQL이나 앱의 5432/8080 포트는 절대 외부에 노출하지 마세요.

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)

설치 프로그램이 다운로드를 검증하고 PostgreSQL, Nginx, HTTPS 및 서비스를 설정해요. 컨테이너를 선호한다면 다음을 참고하세요: 선택 가능한 Docker 설치.

사전 점검 또는 설치 재개

설치 프로그램 살펴보기. 명령에 다음을 추가하세요: --check 를 추가하면 설치 없이 호환성을 점검하고, 다음을 추가하면 --help 옵션을 볼 수 있어요.

키나 설정을 바꾸지 않고 저장된 진행 상태에서 설치를 재개하세요:

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resume

추가 기본 도메인에서도 같은 서비스 이름을 사용할 수 있어요. 모든 IPv6 레코드도 이 VPS를 가리켜야 해요. Cloudflare 프록시는 다음 작업을 마친 뒤에만 켜세요: 도메인 검증.

초기 설정

  1. HTTP Basic 로그인 정보를 입력하세요. 관리자 계정을 만들고 언어와 시간대를 고른 다음 다음 문서를 확인하세요: 라이선스 및 개인정보 처리방침.
  2. 확인 설정 → 체인 연결. 결제 스캔을 지원하며 정상 작동하는 독립적인 대체 제공업체를 사용하세요.
  3. 프로젝트를 만든 다음 첫 스토어를 만드세요.
  4. 프로젝트 지갑을 백업하세요. 스토어에서 받을 체인과 검증된 토큰을 선택하세요.
  5. 통화, 확인 횟수, 만료 시간, 스프레드, 허용 오차를 설정하세요. 청구서를 만들기 전에 크레딧 잔액을 확인하세요.

QR 코드는 미결제 금액 전액을 요청해요. 허용 오차는 부족한 금액에만 적용되며, 확인 횟수 요건은 그대로예요.

스테이블코인 금액

새로 생성한 지원 스테이블코인 견적은 올림 처리돼요: 1.321 USDC → 1.33 USDC, 허용 오차가 0이어도 같아요. 최소 금액은 0.01토큰이에요.

기존 청구서, 잔액, 부분 결제 후 남은 금액은 정확한 값이 유지돼요. 다른 토큰과 사용자 지정 토큰은 원래 정밀도를 사용해요.

자동 활성화

관리자 가입 시 이메일로 크레딧 계정이 자동 등록되며, 한 번만 제공되는 10 USD 상당의 환영 크레딧을 받아요. 활성화 코드는 필요 없어요.

청구서 만들기. 활성화 대기 상태는 자동으로 재시도하며, 재연결해도 크레딧이 다시 지급되지는 않아요.

로그인 정보 및 기본값

Basic Auth 로그인 정보는 다음에 저장돼요: /root/whollycrypto/config/setup-credentials.txt. 콘솔 이메일 및 비밀번호와는 별개예요.

새 프로젝트에는 다음이 적용돼요: 시스템 기본 통화 및 시간대. 스토어는 프로젝트 통화를 사용해요. 기존 계정의 시간대는 설정 → 계정에서 별도로 관리해요.

whollycrypto welcome 에서 콘솔 URL을 확인할 수 있어요.

판매자 또는 운영자 모드

7.0.0부터 새 설치에서는 첫 관리자 설정 중 모드를 선택해요. 이 선택은 되돌릴 수 없어요. 모드를 바꾸려면 새로 설치해야 해요. 7 이전 버전에서 설치했다면 관리자가 없어도 판매자 모드가 유지돼요.

판매자: 내 프로젝트와 스토어를 운영해요. 운영자: 하나의 설치 환경에서 서로 분리된 판매자 사업을 호스팅하고 직접 정한 선불 처리 수수료를 받을 수 있어요. 자신의 사업도 포함되며 내부 운영자 수수료는 부과되지 않아요.

호스팅 판매자 설정
  1. 공유 노드, 환율, 도메인, 설치 크레딧, 업데이트는 다음에서 관리해요: 운영자 패널.
  2. 열기 지갑 → 수신 지갑 만들기 에서 BTC, ETH, 이더리움 USDC/USDT를 설정하세요. 독립된 복구 구문 두 개를 모두 백업하세요. 이 전용 프로젝트는 판매 청구서를 발행할 수 없으며, 기존 수신 스토어는 유지돼요.
  3. 크레딧 통화, 수수료, 관리자 이메일을 지정해 판매자를 추가하세요. 초대 링크와 판매자 Basic Auth 정보는 비공개로 전달하세요. 비밀번호는 판매자가 정해요. 운영자 Basic Auth 정보는 절대 공유하지 마세요.
  4. 판매자는 내 결제 화면에서 충전할 수 있고, 운영자가 사유를 기재해 크레딧을 조정할 수도 있어요. 프로젝트나 스토어를 만들려면 크레딧이 있어야 해요. 사용자와 크레딧 내역은 다음에서 관리하세요: 판매자 → 관리.

운영자 설정에는 다음과 같은 네 번째 주소가 필요해요: operator.example.com. 전용 Basic Auth 사용자 이름과 비밀번호도 필요해요. 이름을 정하고 DNS를 VPS로 연결한 뒤 DNS를 확인하고 HTTPS를 활성화하세요. 패널은 해당 주소에서 바로 열려요. 판매자, 결제, API 주소는 각각 따로 유지돼요.

새 운영자 Basic Auth로 로그인한 다음 관리자 이메일과 비밀번호를 입력하세요. 판매자 Basic Auth는 바뀌지 않아요. DNS나 인증서 오류가 발생해도 설정을 재개할 수 있어요. 7.0.0에서 업그레이드하는 운영자도 이 단계를 완료해야 하며, 기존 서비스 주소는 계속 사용할 수 있어요.

수수료, 격리, 책임

수수료가 3%라면 100 EUR 청구서에 판매자 크레딧 3 EUR가 들어요. 크레딧 통화가 다르면 청구서 생성 시점의 법정화폐 환율이 수수료와 함께 저장돼요.

운영자는 일반 Wholly Crypto 설치 수수료를 별도로 내요. 고객 자금은 온체인에서 분할되지 않아요. 크레딧 구매에는 수수료가 다시 부과되지 않아요.

자동으로 검증된 정산만 충전 크레딧에 반영돼요. 결제 화면을 열거나 청구서를 수동 승인하는 것으로는 충전되지 않아요. 취소는 원장에 기록되며, 취소된 충전이 다시 들어오면 운영자 검토가 필요해요.

호스팅 크레딧이 부족하면 IPN, 웹훅, 자금 모으기, 새 프로젝트·스토어 생성이 일시 중지돼요. 기존 고객 청구서와 수신은 계속돼요. 설치 크레딧이 부족하면 호스팅 중인 여러 사업의 자동화가 멈출 수 있어요. 판매자를 비활성화하면 로그인과 새 청구서도 차단되지만 기존 결제는 계속 모니터링해요.

이는 앱 수준의 격리이며, 판매자마다 별도 VPS가 제공되는 것은 아니에요. 판매자는 다른 판매자의 프로젝트, 지갑, API 인증 정보, 거래소, 크레딧에 접근할 수 없어요. 서버 관리자는 호스팅한 핫월렛 키에 접근할 수 있어요. 가입 전에 판매자에게 이 점을 알리세요. 신뢰할 수 있는 호스팅, 독립적인 백업, 공유 작업량에 맞는 용량을 준비하세요.

운영자 재무 및 초대

7.1.0부터 운영자 모드에서 사용할 수 있어요.

지갑 및 재무

7.2.0부터는 지갑 에서 수신 잔액, 주소, 백업을 관리하고, 자금 모으기 에서 전송과 자동 규칙을 관리해요. 토큰 수수료를 낼 ETH를 남겨 두세요. 판매자 충전 에서 판매자의 구매를 추적해요. 상단 크레딧은 설치 수수료를 별도로 지불하는 데 사용돼요. 내 사업 를 누르면 내 콘솔이 새 탭에서 열려요.

열기 재무 에서 받은 수수료, 검증된 설치 비용, 예상 마진, 현재 판매자 크레딧을 확인하세요. 날짜, 판매자, 보고 통화로 필터링하고 CSV로 내보낼 수 있어요.

보고서는 첫 정산 시점별로 청구서를 묶고 최신 수수료 취소를 반영해요. 선불 잔액은 매출이 아니에요. 자체 사업 비용은 별도로 표시해요. 대기 중인 비용이나 누락된 환율이 있으면 관련 마진은 표시할 수 없어요. 환산 금액은 현재 캐시된 법정화폐 환율을 사용하며 가스비와 운영비는 포함하지 않아요.

사용자 초대 또는 비밀번호 재설정

판매자 추가 로 초대를 만들어요. 7.3.0부터 판매자의 크레딧 통화로 무료 시작 크레딧을 정할 수 있으며 0도 가능해요. 이 작업으로 운영자 잔액이 충전되지는 않아요. 이메일로 초대 보내기 는 기본으로 선택돼 있어요.

먼저 다음에서 SMTP 제공업체를 설정하세요: 설정 → 초대 이메일 . TLS나 STARTTLS를 사용하세요. 연결 테스트는 이메일을 보내지 않아요. 이메일을 선택 해제하고 링크를 비공개로 전달해도 돼요. 이메일 전송이 실패해도 계정과 크레딧은 유지되니 판매자를 다시 만들지 마세요.

새 링크나 비밀번호 재설정이 필요하면 다음을 여세요: 판매자 → 관리 → 사용자 계정. SMTP가 메일을 수락해도 받은편지함 도착이 보장되지는 않아요. 판매자 Basic Auth 정보는 별도로 전달하고, 운영자 인증 정보는 절대 공유하지 마세요.

초대는 48시간, 재설정 링크는 1시간 동안 유효하며 각각 한 번만 사용할 수 있어요. 같은 화면에서 링크를 교체하거나 취소하세요. 비밀번호 재설정 시 기존 세션은 로그아웃되지만 2FA는 유지돼요. 판매자 Basic Auth도 여전히 필요해요.

운영자 API

SDK 2.6.0과 Wholly Crypto 7.4.0+로 호스팅 판매자 관리를 자동화하세요. 다음을 활성화하세요: 운영자 → 설정 → 운영자 API, 그런 다음 권한 범위를 제한한 서버용 키를 만드세요.

가입, 권한, 안전한 재시도

비밀번호를 지정해 계정을 바로 만들거나 초대를 보내세요. 사용자, 프로젝트, 스토어, 수수료, 로컬 선불 크레딧을 관리하고 보고서를 읽거나 서명된 수명 주기 이벤트를 구독할 수 있어요. 첫 로그인 시 자산 보관 동의, 2FA, 테넌트 격리는 그대로 유지돼요.

모든 쓰기에는 저장된 멱등성 키가 필요해요. 크레딧 지급은 로컬 계정 조정이며 설치 크레딧 충전이 아니에요. 지갑 비밀 정보, 송금, 서버 설정은 이 API에 포함되지 않아요.

사용 api.your-domain.com/v1/operator. 운영자 키는 백엔드에 보관하고, 브라우저에 넣거나 호스팅 판매자에게 주지 마세요.

운영자 API 레퍼런스 및 권한 → · 예제가 포함된 PHP, Python, Node SDK →

지갑 및 토큰

설정 → 토큰에서는 먼저 토큰 250개를 불러온 다음 나머지 목록을 불러와요.

프로젝트 → 지갑 → 모두 백업 에서 TXT 또는 QR 코드가 있는 검색 가능한 오프라인 HTML로 내보낼 수 있어요. 두 형식 모두 키와 복구 구문이 드러나요. 서버 외부에 비공개 사본을 보관하고 절대 공유하거나 업로드하지 마세요.

root는 키에 접근할 수 있어요. 지갑 복구 가이드 에서 청구서 주소, 기본 코인 가스비, Monero/Lightning 외부 백업을 설명해요.

저장된 주소 및 최신 잔액

설정 → 주소록: 체인과 주소를 저장하세요. 기본 코인과 일치하는 CoinGecko 토큰이 자동으로 표시돼요. 관리자가 관리하는 읽기 전용 기능이며 결제 수락 설정은 바뀌지 않아요.

토큰 잔액 조회는 22개 체인을 지원해요. 비공개 잔액과 Bitcoin/CashTokens/Kaspa 추가 정보에는 별도의 접근 권한이나 인덱서가 필요해요. 조회 실패 시 0 대신 오류가 표시돼요.

청구서 잔액을 다른 지갑으로 모으려면 다음을 사용하세요: 수동 전송 또는 자동 자금 모으기. 토큰 전송에도 수수료를 낼 해당 체인의 기본 코인이 필요해요.

가격 확인 불가 는 환율에 관한 메시지이며 잔액 문제가 아니에요.

사용자 지정 토큰 추가
  1. 스토어 → 결제 수단 → EVM 또는 Solana → 사용자 지정 토큰.
  2. 컨트랙트 또는 민트 주소, 이름, 티커를 입력하세요. 고정 USD 가격이나 자동 DEX 가격을 선택하세요.

네트워크와 소수 자릿수를 확인해요. 프로젝트 전체 가격을 바꿔도 기존 견적은 유지돼요. 목록과 일치하는 것만으로 결제에 활성화되지는 않아요.

자동 가격 설정

DEX Screener는 정확히 일치하는 컨트랙트의 풀, $10,000의 유동성, 1시간 이내의 거래를 요구해요. 환율은 매분 갱신해요. 조회에 실패했거나 5분이 지난 환율로는 새 견적을 만들 수 없어요.

DEX 가격은 조작될 수 있으며 이 점검이 감사를 뜻하지는 않아요. 신뢰할 수 있는 표준 ERC-20 또는 기존 SPL 토큰을 사용하세요. Token-2022와 확장 기능은 지원하지 않아요. 적절한 풀이 없다면 고정 가격을 사용하세요.

통화 및 시간대

설정 → 시스템 → 지역 기본값 에서 새 프로젝트의 통화와 시간대, 새 계정의 시간대를 설정해요. 기존 설정과 크레딧은 바뀌지 않으며 대시보드 통화는 따로 지정할 수 있어요.

개인 시간대: 설정 → 계정 → 사용자 편집.

청구서 만들기

사용 결제 수단 → 이 청구서에 사용할 수단 선택 에서 받을 체인과 토큰을 제한할 수 있어요. 스토어의 모든 결제 수단 은 기본값을 유지해요.

  1. 열기 프로젝트 → 청구서 → 청구서 만들기.
  2. 스토어, 법정화폐, 금액을 선택하세요.
  3. 결제 링크를 공유하세요. 고객이 사용 가능한 체인과 토큰을 고르면 QR 코드, 남은 금액, 만료 시간, 확인 횟수가 표시돼요.

서비스를 시작하기 전에 각 결제 수단으로 소액 결제를 테스트하세요. 주문을 이행하기 전에 청구서를 확인하세요. 반환 URL만으로는 결제를 입증할 수 없어요.

연동 시에는 서명된 IPN/웹훅을 검증하고 다음으로 상태를 확인하세요: 청구서 API. 중복 이벤트는 같은 이벤트로 처리하세요.

API: 필터링 payment_methods 기준 chain_slug 및 asset_tickers. 비활성 선택지는 무시하며 일치하는 항목이 없으면 스토어 기본값을 사용해요. 체인만 지정하면 활성 자산이 모두 포함돼요. 티커가 같으면 자산 ID가 필요해요. 지갑과 환율도 여전히 필요해요.

금액 및 확인 횟수

스캐너가 오프라인인가요? 감지가 대기 중이어도 청구서의 설정된 결제 수단은 유지돼요. 체인 연결에서 지원 API를 확인하세요. 정상 상태라고 스캐너와 호환되는 것은 아니에요. 기본값은 독립된 제공업체 두 곳이에요.

지갑과 환율은 여전히 필요해요. Monero/Lightning 서비스가 결제 요청을 발행해야 해요.

API/MCP 오류에는 다음이 포함돼요: error.details.payment_methods. SDK 2.4.0에는 안전한 설명이 추가돼요: PHP getPaymentMethodIssues(), Python payment_method_issues, Node paymentMethodIssues. 오류 레퍼런스 →

암호화폐 견적은 올림 처리하고 스토어 스프레드를 포함해요. 법정화폐로 가격을 정한 청구서라도 받은 암호화폐가 은행 잔액으로 바뀌지는 않아요.

확인 횟수가 0이면 감지 즉시 정산되며 네트워크 확인의 보호를 받지 못해요. EVM 기본 코인 결제는 직접 전송으로 감지해요. 특이하거나 불확실한 결제는 다음에서 검토하세요: 확인 필요.

스캐너 API

확인 체인 연결 에서 호환 API, 전체 기록, 독립적인 제공업체를 확인하세요. 원시 노드의 과거 기록을 따라잡는 데는 시간이 걸려요. 모든 수신 API →

결제, 잔액, 유지 관리는 제공업체 할당량을 공유해요. 유휴 상태에서는 점검 빈도가 낮아져요. 오래된 청구서도 지연 결제와 체인 재구성을 계속 모니터링하며, 과거 기록 확인 후에는 최대 1시간 간격으로 검사해요. 사용 가능한 WSS 알림은 HTTP 스캔을 보완해요. 결제 화면을 닫아도 감지는 멈추지 않아요. 공개 노드에도 제한이 있으며 Wholly Crypto는 노드를 운영하지 않아요.

금액이 0인 청구서

기본적으로 차단돼요. 다음을 켜세요: 스토어 → 청구서 → 금액이 0인 청구서 허용 를 켜면 수동 또는 API로 총액이 0인 청구서를 만들 수 있어요. 결제, 수신 주소, 거래, 처리 수수료 없이 즉시 완료돼요.

결제 화면

스토어 → 결제 화면: 색상, 로고, 결제 수단, 링크, 시작·마무리 문구 글자 크기, 프로젝트·스토어 이름 표시를 설정해요. 새 스토어는 기본 스토어 디자인을 이어받아요. 변경 사항은 자동 저장돼요.

미리보기에서는 결제를 받을 수 없어요. 사용자 지정 HTML/CSS/JavaScript는 지원하지 않아요.

데모 체험하기.

IPN 및 웹훅

IPN은 모든 청구서 이벤트를 전송해요. 대상은 스토어 URL 또는 청구서의 ipn_url. 웹훅은 선택한 이벤트를 보내요. 둘 다 같은 JSON 스냅샷을 POST로 전송해요.

주문은 언제 이행하나요? 이벤트 기반 처리에는 다음을 사용하세요: event_type = invoice.settled 및 status = settled. 현재 청구서와 주문을 확인한 다음 한 번만 이행하세요. payment.received 만으로는 충분하지 않아요.

상태와 이벤트: Ethereum 및 Solana 예시

status 는 이벤트 생성 시점의 청구서 상태예요. event_type 는 무슨 일이 발생했는지 알려줘요.

  • Ethereum 예시: payment.received + processing, 다음으로 invoice.settled + settled.
  • Solana 예시: 감지 시 이미 최종 확정 상태라서 payment.received 및 invoice.settled 둘 다 다음을 포함해요: settled.

다른 체인에서도 어느 흐름이든 발생할 수 있어요. 서로 다른 이벤트이며 반드시 두 번의 결제를 뜻하지는 않아요. 다음은 같을 수 있지만: sequence 다음 값은 서로 달라요: event_id . 전달 순서는 보장되지 않아요. processing 가 먼저 와야 한다는 조건을 두지 마세요.

상태 및 콜백 데이터
청구서 상태의미
new결제 대기 중
processing부분 결제 또는 최종 확정 대기 중
settled청구서 규칙 또는 수동으로 승인됨
expired기한이 지났지만 지연 결제 모니터링은 계속될 수 있어요
invalid검토가 필요하거나 거절된 결제
cancelled취소됨, 환불 아님

이벤트: invoice.created, payment.received, invoice.processing, invoice.settled, invoice.expired, invoice.invalid, invoice.cancelled. 전체 이벤트 표 및 예외 규칙 →

amount_status: none, partial, paid, overpaid. paid 에는 허용 오차가 포함되지만 최종 확정은 포함되지 않아요. timing_status: on_time 또는 late. resolution: automatic, manually_settled 또는 manually_invalidated. 다음 조건이면 예외 정책을 적용하세요: requires_review 이 true일 때.

invoice_id 은 API 응답과 일치해요. amount, currency 및 order_id 는 원래 주문을 설명해요. payment_info 에는 전송, 정확한 암호화폐 금액, 고정된 견적·스프레드·허용 오차, 참고 환율이 추가돼요. 고객 데이터와 메타데이터는 비공개 정보예요.

paid_chain, paid_asset, paid_payment_method_id, paid_asset_amount, paid_asset_amount_received 및 settlement_exchange_rate 는 정산을 요약해요. 값은 고정되며 증거나 기록이 없으면 null로 남아요. 이후 입금은 다음으로 확인하세요: payment_info 또는 결제 API.

십진수 문자열을 사용하세요. 서로 다른 자산을 합치거나 미확인 자금을 누락으로 처리하지 마세요. 예외는 명시적으로 처리하세요. 경고만으로 주문 이행이나 환불이 허용되는 것은 아니에요. 검증된 내부 가스 충전은 고객 결제가 아니며 다음을 발생시키지 않아요: payment.received.

서명 비밀 키, 재시도, 전송 내역

별도의 서명 비밀 키: 스토어 → IPN 은 청구서의 사용자 지정 항목을 포함한 IPN 전송에 서명해요: ipn_url. 다음의 각 엔드포인트: 스토어 → 웹훅 에는 생성하거나 교체할 때 표시되는 개별 비밀 키가 있어요.

둘 다 Wholly-Signature 및 같은 SDK 검증기를 사용하지만 API 키가 아닌 해당 서명 비밀 키가 필요해요. IPN 비밀 키를 교체해도 웹훅 비밀 키는 바뀌지 않아요.

원본 본문, 타임스탬프, 프로젝트·스토어 범위를 검증하세요. 영구 저장한 뒤 HTTP 2xx를 반환하세요. 작업자는 설정한 API 호스트로 현재 청구서를 확인하고 데이터베이스 트랜잭션 안에서 주문을 한 번만 이행해요. 헤더에는 서명이 없으니 버전 2 본문의 서명된 식별 정보를 사용하세요.

이벤트 기반: 서명된 다음 항목으로 중복 제거: event_id, 그다음 필터링: invoice.settled. SDK 상태 기반: 프로젝트 + 다음 항목으로 묶기: invoice_id + sequence. 그다음 이벤트 유형에 관계없이 상태를 확인하세요. 이렇게 묶은 뒤 이벤트 필터를 추가하지 마세요. 두 방식 모두 주문 수준의 별도 중복 방지가 필요해요.

재시도는 원본 본문과 이벤트 ID를 유지해요. 이전 리비전이 새 리비전을 덮어쓰면 안 돼요. IPN은 최대 8번 시도하며 웹훅 재시도는 선택 사항이에요. 크레딧이 부족하면 알림 전송이 일시 중지되지만 결제는 계속돼요.

스토어 → IPN / 웹훅 → 기록 → 상세 에서 저장된 본문과 결과를 볼 수 있어요. 페이로드는 90일 후 만료돼요. 재전송이 정산의 증거는 아니에요.

전체 페이로드, 이벤트 표, 수신기 예제 →

거래소 환전

지원 자산을 Kraken, Binance, Coinbase로 보내세요. 코인을 그대로 보유하거나 반영된 입금을 환전. 법정화폐는 거래소에 남아요.

최소 입금액은 자금 모으기 한 번이 아니라 각 거래에 적용돼요. 최소 입금액 미만이면 계획이 중단돼요. 먼저 소액 잔액을 내 지갑으로 합치세요. 추가 네트워크 수수료가 들어요.

연결 및 경로 선택
  1. 설정 → 거래소: 전용 키를 연결하고 잔액을 확인한 뒤 프로젝트에 권한을 부여하세요. 출금 권한은 주지 말고, 키를 내 VPS IP에서만 쓰도록 제한하세요.
  2. 프로젝트 → 자금 모으기: 자산, 네트워크, 주소, 토큰 컨트랙트를 확인하세요. 각 체인·토큰에 대해 다른 지갑이나 거래소 한 곳을 선택하세요.

시장 정보는 2분마다 갱신돼요. 일치하고 잔액에 반영된 입금만 환전할 수 있으며, 시장 정보가 오래되면 새 주문이 중단돼요. 수수료와 반올림을 위해 원본 자산의 1%를 거래소에 남겨 두며, 처리 크레딧과는 별개예요.

최소 유지 금액 은 자동 자금 모으기 후 프로젝트 전체에 코인이나 토큰을 남겨 둬요. 실행 조건과는 별개이며 0이면 남기지 않아요. 수수료는 초과분에서 사용해요. 수동 전송은 바뀌지 않아요.

불확실한 전송은 재개하고 절대 새 전송으로 대체하지 마세요. 지갑은 확인되거나 미사용 견적이 만료될 때까지 예약돼요. 대규모 자금 모으기는 여러 묶음으로 나눠야 해요.

거래소의 보관, KYC, 지역 제한, 수수료가 적용돼요. 은행 지급이나 레버리지는 제공하지 않아요. 크레딧이 부족하면 새 환전은 멈추지만 제출한 주문은 계속 대조해요.

처리 크레딧

크레딧이 다 떨어져도 결제는 계속 받을 수 있어요. 기존 스토어의 청구서, 결제 화면, 결제 모니터링은 유지돼요. 다만 검증된 청구 연결이 없거나 계정이 정지된 경우는 다르며 새 청구서가 차단될 수 있어요.

계속 사용 가능사용 가능한 크레딧이 없으면 일시 중지
청구서, 결제 화면, 확인IPN/웹훅 및 재시도
지갑, 잔액, 백업자금 모으기: 전송, 가스, 환불, 새 거래소 환전
보고서, 읽기 API, 기존 설정프로젝트 및 스토어 생성
업데이트 확인 및 중단된 업데이트 복구새 버전 설치

크레딧 아이콘으로 충전하세요. 복구가 검증되면 자금을 전송하는 자금 모으기 규칙을 포함해 활성화된 자동화가 재개돼요. 재개하고 싶지 않은 규칙은 꺼 두세요.

자동 크레딧 충전

열기 자동 충전 은 요청 뒤에 있어요. 백업한 수신 지갑, 기준 잔액, 구매 금액, 일일 한도, 네트워크 수수료 상한을 선택하세요. 승인하고 저장하세요. 처음에는 꺼져 있어요.

제공되는 경우 BTC, ETH 또는 이더리움 USDC/USDT를 사용하세요. 토큰 전송 주소에는 ETH가 필요하며 이 규칙은 부족한 가스를 충전하지 않아요. 운영자는 전용 수신 지갑을 사용하고, 호스팅 판매자는 운영자에게 지불해요.

크레딧 부족으로 자금 모으기가 멈춰도 승인한 충전은 실행될 수 있어요. 크레딧 확정은 수신 서비스만 할 수 있어요. 자동 구매는 한 번에 하나만 실행돼요. 비활성화하면 아직 전송하지 않은 작업만 멈추며 제출한 거래는 취소되지 않아요.

자동 결제 복구

자동 충전에서 다음을 사용하세요: 결제 확인. 동일한 유효 결제를 재개하거나, 실패가 검증된 이더리움 전송을 종료하고 규칙을 일시 중지하세요. 대기 중이거나 불확실한 결제는 중복 전송을 막기 위해 보류 상태를 유지해요. 견적 만료는 결제 실패의 증거가 아니에요.

수수료 및 전체 접근 복구

기본 1% 수수료는 정산된 청구서의 원래 법정화폐 금액을 기준으로 해요. 고객의 암호화폐 결제는 분할되지 않아요.

수수료는 잔액이 음수가 되어도 계속 누적돼요. 부족한 금액을 채우고 계정의 유예 기준을 넘는 사용 가능 크레딧을 확보하세요. 연결이 정상이면 잔액 변경은 보통 10~15초 안에 표시돼요.

자동화에 유예가 있어도 업데이트를 설치하려면 검증된 크레딧이 0보다 커야 해요. 충전해도 업데이트가 자동 설치되지는 않아요.

일시 중지된 알림은 시도 횟수를 소모하지 않아요. 보관된 전송은 재개되지만 일반 만료 규칙은 그대로 적용돼요. 놓친 이벤트는 청구서 API로 대조하세요.

운영자가 처리 수수료를 끄면 새 처리 수수료나 크레딧 제한이 적용되지 않아요. 이전 비용은 기록에 남아요. 연결되지 않은 설치 환경에서도 프로젝트와 스토어를 설정할 수 있지만 청구서를 발행하려면 검증된 청구 연결이 필요해요. 이미 발행한 청구서는 계속 모니터링해요.

보고서

매출 차트와 필터는 다음 탭 위에 있어요: 프로젝트 및 스토어, 청구서, 지갑 및 자금 모으기. 검색은 아래에 있어요. 프로젝트 및 스토어에는 CSV 내보내기가 있어요. 사용자 지정 날짜 범위는 최대 366일이에요. 지갑에는 캐시된 잔액을 사용해요.

보고서 수치 안내
  • 매출은 정산일을 기준으로 수수료와 환불 전의 정산된 청구서 금액을 보여줘요. 지갑 잔액이나 이익이 아니에요.
  • 환산에는 과거 회계 환율이 아닌 현재 캐시된 환율을 사용해요. 환율이 없어도 원래 통화 합계는 볼 수 있어요.
  • 청구서 상태 차트는 청구서 생성일을 기준으로 해요. 확인 필요 수치는 현재 해결되지 않은 문제를 보여줘요.

AI 도우미 · MCP

프로젝트 범위로 직접 활성화하는 접근 주소: api.example.com/mcp. 결제를 조회하거나 청구서 생성을 승인할 수 있어요. MCP 설정 및 권한 →

SDKs

공식 SDK로 청구서를 만들고 결제를 확인하며 IPN/웹훅을 검증하세요.

PHP SDK

PHP 7.4+

Composer로 PHP 앱에 암호화폐 결제를 추가하세요.

composer require whollycrypto/php-sdk
GitHub 및 예제 ↗

Python SDK

Python 3.10+

런타임 의존성 없이 Python 앱이나 백엔드를 연결하세요.

python -m pip install whollycrypto
GitHub 및 예제 ↗

Node.js SDK

Node.js 22+

JavaScript와 TypeScript를 지원하며 npm 패키지 하나에 타입이 포함돼 있어요.

npm install whollycrypto
GitHub 및 예제 ↗

내 설치 환경의 API 도메인을 사용하고 API 키는 서버에 보관하세요. 모든 SDK는 MIT 라이선스예요.

자금 모으기

받은 자금을 원하는 목적지로 옮기세요. 규칙과 기록은 다음에서 관리해요: 프로젝트 → 자금 모으기.

기본 코인 전송 지원: 29개 체인. Monero는 조회 전용이에요. 토큰은 검증된 ERC-20과 기존 SPL을 지원해요. 수동 전송과 자동 자금 모으기는 같은 보호 기능을 사용해요.

수동 전송: 준비, 검토, 승인

BTC, EVM, SOL, TRX 외에 기본 코인 어댑터 18개를 지원해요. 거래 제출이 가능한 제공업체를 사용하세요. ZEC는 투명 주소만 지원하고, ADA는 토큰 출력을 유지하며, DOT는 Asset Hub를 사용하고, HBAR에는 릴레이가 필요해요. 보내는 목적지에 memo/tag/comment가 필요하면 외부 지갑을 사용해야 해요.

  1. 열기 프로젝트 → 지갑 → 자산 → 전송. 주소록 항목을 선택하거나 목적지를 입력하세요. 전체 주소와 네트워크를 확인하세요.
  2. 정확한 금액 또는 사용 가능 금액 모두 모으기를 선택하고 수수료 수준을 정하세요. 지원되는 토큰은 프로젝트 ETH를 가스비로 사용 (또는 해당 체인의 기본 코인)으로 같은 프로젝트와 체인에서 부족한 수수료를 충당할 수 있어요.
  3. 클릭 전송 준비. 출처, 목적지, 금액, 최대 수수료, 가스 배정을 검토하세요. 승인 및 전송 으로 이 계획을 승인해요. 준비만으로는 아무것도 보내지 않아요.

승인 후 가스 충전, 확인, 토큰 전송은 백그라운드에서 계속돼요. 다음을 확인하세요: 전송 활동, 창을 닫은 뒤에도 확인할 수 있어요. 브로드캐스트가 확인을 뜻하지는 않아요.

프로젝트 지갑에 유지할 ETH: 0은 추가로 남길 금액이 없다는 뜻이지 모든 ETH를 쓴다는 뜻이 아니에요. 0.005는 나중을 위해 최소 0.005 ETH를 남기므로 이 작업에는 추가 자금이 필요해요. 저장한 자동 규칙은 바뀌지 않아요.

자동 자금 모으기 설정
  1. 열기 자동 자금 모으기 설정 → 자산 → 설정. 지갑 주소 또는 지원되는 다음 대상을 선택하세요: 거래소 목적지, 둘 다 선택할 수는 없어요.
  2. 자금 모으기 최소 금액과 다음을 설정하세요: 최소 유지 금액. 예: 100 USDC에서 실행하고 20 USDC를 남기면 최대 80 USDC를 보내요. 유지 금액은 주소별이 아니라 프로젝트 전체 기준이에요.
  3. 토큰은 다음을 확인하세요: 프로젝트 ETH를 가스비로 사용 그리고 다음을 입력하세요: 일일 충전 한도. 자동 자금 모으기를 켜고 다음을 누르세요: 규칙 저장 후 확인하세요. 설정 화면을 열기만 해서는 활성화되지 않아요.

일일 한도는 토큰 규칙별로 최근 24시간 동안 배정하는 기본 코인 가스를 제한해요. €1은 가벼운 사용의 초기 한도로 삼을 수 있지만 비용 보장이나 일일 청구액은 아니에요. 가스 충전 거래에도 수수료가 있어요. 최대 네트워크 수수료 % 로 충전과 전송의 합계 수수료를 제한할 수 있어요.

자동으로 점검해요. 조건을 충족하고 토큰을 보유한 주소에만 가스를 보내며 빈 주소에는 보내지 않아요. 자금이 부족하고 자금 모으기 최소 금액에도 못 미치는 주소는 대기해요. 가스 한도 안내 →

권장 방법 및 일시 중지된 전송
  • 지갑을 백업하고 소액 전송을 테스트하세요. 기본 코인을 모두 보내기 전에 토큰부터 보내세요. 프로젝트의 다른 곳에 있는 ETH는 먼저 각 토큰 주소에 도착해야 해요. 사용하지 않은 가스는 내 지갑에 남아요.
  • 최신 잔액, 정상 제공업체, 충분한 기본 코인을 준비하세요. 자동 규칙에는 활성화되고 백업된 지갑이 필요하며, 활성 스토어에서 해당 자산도 켜져 있어야 해요. 다음이 부족하면: 처리 크레딧 전송이 일시 중지될 수 있어요.
  • 다음에서: 전송 활동진행 상태, 가스 충전, 탐색기 링크를 확인하세요. 결과가 불확실하면 같은 전송을 새로 확인하고 대체 전송을 만들지 마세요. 원인과 한도를 검토한 뒤에만 재개하세요.

전송이 비활성화됐나요? 확인할 항목: whollycrypto transfers status. 다음 작업 전에 활성화된 규칙을 모두 검토하세요: whollycrypto transfers enable: 서버 전체에 적용되며 저장된 규칙이 즉시 실행될 수 있어요. 이후 단계를 중지해도 이미 브로드캐스트한 거래는 되돌릴 수 없어요.

도메인

설정 → 시스템: 선택 관리 또는 도메인 추가. 저장하고 DNS를 검토한 뒤 게시하세요. 변경하지 않은 호스트는 DNS/SSL 검사를 건너뛰어요.

스토어 도메인

스토어 → 기본: 활성 판매자/결제/API 호스트를 선택하세요. 링크는 스토어 → 기본 스토어 → 시스템 순으로 선택하며, 폐기된 이름은 대체 주소를 사용해요. SDK 호스트는 별도로 설정하세요. 서명된 재시도는 원래 링크를 유지해요.

HTTPS는 자동으로 설정돼요. 설치 후 Cloudflare를 전환하세요. Let's Encrypt는 계속 활성 상태예요.

Cloudflare 점검 목록
  • 사용 Full (strict), Flexible은 사용하지 마세요. API 키는 필요 없어요.
  • 콘솔, 결제 화면, API의 캐시와 브라우저/봇 인증을 끄세요.
  • 허용 /.well-known/acme-challenge/ 를 80번 포트에서 리디렉션이나 인증 없이 허용해야 갱신할 수 있어요.

검사는 권한 있는 DNS에 질의하고 원본 연결이 직접 연결인지 Cloudflare인지 확인해요. 방문자는 이전 DNS를 캐시하고 있을 수 있어요.

5.6.2부터 콘솔 저장과 삭제는 POST를 사용하므로 “Not GET or POST” 예외가 필요 없어요. 로그인과 CSRF 보호는 유지돼요. 다음에서는: api.*, 공개 API 문서에 나온 메서드를 허용하세요.

계정 보안

다음에서 2FA를 설정하세요: 설정 → 계정. 프로젝트 전용 사용자는 다음을 사용하세요: 내 보안 를 바닥글에서 열어요. 비밀번호를 확인하고 TOTP QR 코드나 키를 스캔한 뒤 6자리 코드를 입력하세요.

사용해 보세요: Verifyr Authenticator 지원: iOS 또는 Android, 또는 다른 표준 TOTP 앱을 사용하세요. 일회용 복구 코드는 비밀번호와 별도로 보관하세요. HTTP Basic 보호는 켜 두세요.

복구 및 화면 설정

코드를 바꾸거나 2FA를 끄려면 비밀번호와 인증 앱 또는 미사용 복구 코드가 필요해요. 다른 세션은 로그아웃돼요. 휴대폰과 서버의 시간을 동기화하세요. 2FA는 침해된 서버를 보호하지 못해요.

테마 아이콘은 다음 순서로 전환돼요: 밝게 → 은은하게 → 어둡게 그리고 이 브라우저의 선택을 기억해요. 스토어 결제 화면 테마는 별도예요.

서버 보안

  • SSH 키를 사용하고 신뢰할 수 있는 IP만 SSH에 접근하도록 제한하세요. 테스트한 복구용 연결을 유지하세요.
  • 설치 후 Full (strict) 모드로 Cloudflare 프록시를 켜세요.
  • 다음에서: 설정 → 시스템 → 원본 IP 제한에서 사용 중인 각 호스트에 신뢰할 수 있는 IP나 범위를 허용하세요: merchant.* 또는 api.* 호스트 이름별로 설정해요. 현재 콘솔 IP는 계속 허용해야 해요.
  • 일반적으로 다음은 pay.* 열어 두세요. 고객이 어디서든 결제할 수 있어야 해요.
Cloudflare 및 접근 차단 복구

원한다면 Cloudflare 접근 규칙을 추가하세요. HTTPS 갱신 인증은 예외로 두고, API와 결제 화면에는 대화형 로그인 인증을 피하세요. 프록시 모드만으로 IP가 제한되지는 않아요.

접근이 차단됐나요? 실행할 명령: whollycrypto access-reset --domain merchant.example.com 를 SSH에서 실행하세요. 해당 호스트 이름만 5초 안에 다시 열리며 계정 인증은 유지돼요.

HTTPS 복구

whollycrypto ssl
whollycrypto ssl --fix

첫 번째 명령은 활성 인증서를 확인해요. --fix 는 TLS 지원 파일을 복구하고 없거나 곧 만료될 인증서를 갱신해요. Nginx가 실행 중이어야 하며 80/443 포트를 열어 두세요.

인증서 하나 재발급

실행 whollycrypto ssl --domain merchant.example.com --reissue 로 강제 교체하세요. 발급 제한이 적용돼요. Cloudflare가 HTTP 인증을 막으면 잠시 DNS 전용으로 바꾸세요. 지갑, 인증, 도메인은 변경되지 않아요.

일일 점검

  • 다음에서: 확인 필요청구서 또는 현재 페이지를 선택해 검토 완료 표시, 메모 추가, 재스캔을 할 수 있어요. 금전 관련 결정은 개별적으로 처리해야 해요.
  • 디스크 공간, 스캐너 지연, 독립적인 대체 노드를 모니터링하세요. 공개 엔드포인트는 처리 용량을 보장하지 않아요.
  • Linux를 최신으로 유지하고 SSH를 제한하세요. 사용자와 API 키에는 필요한 프로젝트와 권한만 허용하세요.

결정에는 사유가 필요해요. 환불에는 별도로 확인한 전송이 필요하며, 청구서 상태를 바꿔도 돈이 전송되지는 않아요.

업데이트 및 백업

읽어 보세요: 릴리스 노트, 그런 다음 다음을 사용하세요: 설정 → 시스템 → 소프트웨어 업데이트 또는 CLI를 사용하세요. 업데이트는 서명을 검증하고 백업을 만들며 상태를 확인해요. 설치 중에는 결제 화면이 일시 중지돼요.

whollycrypto update --check
whollycrypto update

업데이트는 백그라운드 작업을 최대 2분 기다리며, 이때 결제 화면은 계속 열려 있어요. 시간이 초과되면 타이머가 복원돼요.

0.1.31 이하 버전에서 업그레이드

이전 업데이터가 막혔나요? 이 명령을 한 번 실행하세요. 설치된 키로 도우미를 검증해요.

bash <(curl -fsSL https://releases.whollycrypto.com/update_wholly.sh)

테스트한 다음 백업을 유지하세요: 서버 외부 백업 대상은 PostgreSQL, 설정, 지갑 암호화 키, 지갑 내보내기 파일이에요. 로컬 복구 아카이브는 암호화되지 않아요.

서로 맞는 데이터베이스와 설정 백업을 함께 복원하세요. 마이그레이션을 중단하거나 새 데이터베이스에 이전 실행 파일을 사용하지 마세요. 크레딧 규칙 은 계속 적용돼요.

GitHub 대체 다운로드

설치와 업데이트는 자동으로 다음을 시도해요: 공식 GitHub 미러. 서명, 체크섬, 크레딧 검사는 여전히 필요해요.

서버 CLI

SSH에서 실행하는 root 명령이에요.

whollycrypto status
whollycrypto doctor
whollycrypto backup
모든 명령
명령용도
whollycrypto version설치된 버전.
whollycrypto status앱 및 데이터베이스 상태.
whollycrypto logs최근 앱 로그 80줄.
whollycrypto restart재시작 및 상태 확인.
whollycrypto doctor읽기 전용 설치 점검.
whollycrypto doctor --fix관리되는 권한과 누락된 CLI 링크 복구.
whollycrypto htaccessBasic Auth 로그인 재설정.
whollycrypto admin-reset관리자 비밀번호 재설정.
whollycrypto 2fa-reset비밀번호를 바꾸지 않고 계정 하나의 인증 앱 재설정.
whollycrypto transfers status
whollycrypto transfers enable
whollycrypto transfers disable
모든 프로젝트의 전송을 확인하거나 켜거나 일시 중지해요. 켜면 앱이 재시작되고 저장된 규칙이 즉시 실행될 수 있으므로 확인이 필요해요. 업데이트해도 일시 중지 상태는 유지돼요.
whollycrypto sslHTTPS 확인. 다음을 추가하면: --fix 복구해요.
whollycrypto access-reset --domain HOST호스트 이름 하나의 IP 제한 제거.
whollycrypto update --check서명된 업데이트 확인.
whollycrypto update백업, 업데이트, 재시작.
whollycrypto backuproot 전용 아카이브 위치: /root/whollycrypto/backups/releases/.
whollycrypto recover중단된 유지 관리나 스키마가 바뀌지 않은 업데이트를 복구해요. 데이터베이스를 자동 복원하지는 않아요.
whollycrypto reset프로젝트 하나, 모든 사업 프로젝트, 복구만 중에서 선택하세요.
whollycrypto uninstall --check
whollycrypto uninstall
미리 확인한 뒤 기본 런타임을 제거해요. 데이터베이스, 키, 백업은 남아요.
whollycrypto welcome콘솔 URL 및 링크.
whollycrypto --help명령 목록. 명령 뒤에 다음을 추가하면: --help 해당 옵션을 볼 수 있어요.
설치 문제 진단

점검은 읽기 전용이며, 확인이 필요하면 0이 아닌 종료 코드를 반환해요. --fix 는 관리되는 권한과 누락된 CLI 링크만 복구해요. 청구를 바꾸거나 데이터를 삭제하거나 서비스를 재시작하지 않아요.

초기화 범위 선택
whollycrypto reset
# Preview without changing anything:
whollycrypto reset --scope business --check
whollycrypto reset --scope project --project YOUR_PROJECT_IDENTIFIER --check

프로젝트 하나, 모든 사업 프로젝트, 복구만 중에서 선택하세요. 프로젝트 초기화는 선택한 프로젝트, 스토어, 지갑 기록, 결제 내역을 영구 삭제해요. 복구만 선택하면 관리되는 권한과 CLI 링크만 점검하고 고쳐요.

먼저 선택한 프로젝트를 끄고 미완료 결제·전송을 해결한 뒤 확인된 지갑 잔액을 옮기세요. 계정, 도메인, 노드, 크레딧, 청구 식별 정보, 설치 모드는 유지돼요. 운영자 수신 지갑과 호스팅 크레딧 기록은 보호돼요. 설정 마법사가 다시 열리지는 않아요.

데이터를 지우는 초기화에는 확인 문구 입력이 필요하며, 삭제 전에 검증된 복구 백업을 만들어요. 서버 밖에도 지갑 백업을 보관하세요. 이전 주소는 계속 자금을 받을 수 있지만 삭제된 프로젝트는 이를 추적하지 않아요. 캐시된 잔액만으로 지갑이 비었다고 판단할 수 없어요.

기본 설치 제거
whollycrypto uninstall --check
whollycrypto uninstall

백업과 확인 문구 입력 후 결제 화면, API, 작업자를 중지하고 런타임 파일과 관리되는 서버 연동을 제거해요. 대기 중인 결제나 전송이 있으면 제거할 수 없어요. 파일은 지우는 대신 복구 백업으로 이동해요.

데이터베이스, 설정, 키, 백업은 남아요. 공유 Nginx/PostgreSQL 패키지와 TLS 인증서는 건드리지 않아요. 오프라인 복구 명령이 출력돼요. 남겨 둔 데이터 위에 새 설치를 실행하지 마세요.

초기화와 제거 명령은 기본 VPS 설치용이며 Docker나 Umbrel용이 아니에요. 컨테이너는 해당 연동의 백업·중지 명령을 사용하고 볼륨을 보관하세요. 두 삭제 명령 모두 다음을 허용하지 않아요: --yes.

Basic Auth 로그인 재설정
whollycrypto htaccess

사용자를 고르고 이름과 비밀번호를 정한 뒤 확인하세요. 콘솔 계정이 아니라 브라우저의 첫 로그인 창을 재설정하는 작업이에요. 다른 사용자와 API 인증 정보는 바뀌지 않아요.

관리자 비밀번호 재설정
whollycrypto admin-reset

이메일로 관리자를 선택하고 새 비밀번호를 확인하세요. 세션과 계정 로그인 잠금은 해제되며 IP 제한은 유지돼요.

일반 재설정은 2FA를 유지해요. 인증 앱과 복구 코드를 모두 잃었다면 명시적으로 다음을 실행하세요: whollycrypto admin-reset --email admin@example.com --reset-2fa. 로그인 후 2FA를 다시 설정하세요.

데이터베이스는 필요하지만 앱이나 이전 비밀번호는 필요 없어요. 다른 계정, 지갑, 권한은 바뀌지 않으며 비활성 계정은 그대로 비활성 상태예요.

2FA 재설정

인증 앱과 복구 코드를 모두 잃었나요? root로 계정을 선택하세요.

whollycrypto 2fa-reset
# Or select the account directly:
whollycrypto 2fa-reset --email user@example.com

세션, 인증 앱, 복구 코드를 제거해요. 기존 비밀번호로 로그인해 2FA를 다시 설정하세요. 권한, 지갑, Basic Auth는 바뀌지 않으며 비활성 계정은 그대로 비활성 상태예요.

데이터베이스는 필요하지만 앱이나 크레딧은 필요 없어요. 비대화형 사용: --email 및 --yes.

비밀번호 생성 및 자동화

Enter를 누르면 다음 위치에 비밀번호가 생성돼요: /root/whollycrypto/config/credential-resets/: 비공개이며 암호화되지 않고, 성공 후 사용할 수 있어요. 직접 입력한 비밀번호는 저장되지 않아요.

whollycrypto htaccess --user admin --new-user operator
whollycrypto admin-reset --email admin@example.com

터미널이 없다면 기존 계정과 다음을 지정하세요: --generate 또는 --password-file /root/private-password.txt, 그리고 --yes. 비밀번호 파일은 root 소유여야 하며 권한 모드는 다음이어야 해요: 600. 비밀번호를 명령이나 환경 변수에 넣지 마세요.

--yes 는 확인만 건너뛰어요. 중단된 업데이트 복구를 먼저 완료하세요. 동시에 계정이 바뀌면 재설정이 중단돼요.