콘텐츠로 이동

포터블 빌드

설정

Linux나 Windows에서 Docker 없이 HolyArrs를 일반 프로그램으로 실행하세요. 기본 실행 방법은 여전히 Docker입니다.

시작하기 전에

시작하기 전에 링크
  • 빌드 장비에 Python 3, Git, Docker.
  • 일반 프로젝트 빌드로 채워진 Go 모듈 캐시와, app/frontend/package-lock.json으로 설치한 프런트엔드 의존성.
  • 빌드된 웹 앱이 커밋되어 있어야 합니다. 빌드는 커밋된 소스만 사용합니다. 커밋하지 않은 수정은 빠집니다.

빌드하고 실행하기

빌드하고 실행하기 링크
  1. 체크아웃한 폴더에서 아카이브를 빌드하세요.

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    체크아웃 밖의 새 출력 폴더를 쓰세요. 대상마다 아카이브 하나와 SHA256SUMS 파일이 만들어집니다.

  2. 아카이브를 SHA256SUMS와 대조해 확인하세요.

  3. 새 폴더에 압축을 푸세요. 프로그램과 설정은 서로 다른 폴더에 두세요.

  4. 설정 경로를 직접 지정해 시작하세요.

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    Windows PowerShell에서는:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. http://your-server:6262를 여세요. 첫 실행 마법사가 표시됩니다. 소유자 계정을 바로 만드세요. 처음 접속한 사람이 소유자가 됩니다.

실행할 사용자

실행할 사용자 링크

HolyArrs는 전용 계정으로 실행하고, 설정과 미디어에만 쓰기 권한을 주세요.

  • 컨테이너 밖에서 PUID와 PGID 없이 root로 실행하면 “started as root outside a container”(컨테이너 밖에서 root로 시작됨)와 함께 멈춥니다.
  • PUID와 PGID를 설정하면 설정 폴더를 그 사용자에게 넘기고 그 사용자로 전환합니다.
  • Windows에서는 그 계정의 NTFS 권한으로 설정 폴더를 보호하세요.

재시작과 제한

재시작과 제한 링크

아카이브는 서비스를 설치하지 않습니다. 자동 재시작과 엄격한 메모리 제한은 쓰는 서비스 관리자(systemd, NSSM, 작업 스케줄러)에서 설정하세요. 앱에서 하는 재시작과 백업 복원은 둘 다 프로그램을 종료하고 다시 시작되기를 기대합니다.

업데이트와 되돌리기

업데이트와 되돌리기 링크
  1. 앱을 중지하기 전에 새 아카이브를 확인하세요.
  2. HolyArrs를 중지하고 마스터 키를 포함해 설정 폴더 전체를 복사하세요. 또는 앱에서 백업을 만들고 키를 따로 보관하세요.
  3. 새 프로그램은 다른 폴더에 압축을 푸세요. 예전 프로그램과 예전 설정 사본은 남겨 두세요.
  4. 새 프로그램을 기존 설정으로 시작하세요. 로그인이 되고 /health에 running(실행 중)이 표시되어야 합니다.

백업을 참고하세요.

문제가 생기면

문제가 생기면 링크
증상 원인 해결
“started as root outside a container” root로 시작했습니다 전용 사용자로 실행하거나 PUID와 PGID를 설정하세요.
복원 뒤에 앱이 종료됩니다 복원은 데이터를 준비해 두고 코드 75로 종료합니다 다시 시작하면 적용됩니다. 서비스 관리자가 재시작하도록 설정하세요.
Linux에서 HTTPS 호출이 실패합니다 시스템 CA 인증서가 없습니다 설치하세요.
빌드가 출력이 이미 있다고 합니다 이미 있는 출력 폴더는 거부됩니다 새 폴더를 고르세요.
빌드 옵션
옵션 하는 일 기본값
--targets 빌드할 대상만 쉼표로 구분해 지정 linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource 빌더 컨테이너마다 CPU 1개, 2 GiB, 프로세스 256개를 받습니다. Go는 패키지를 한 번에 하나씩 빌드합니다. 패키징은 여전히 이 제한 밖인 호스트에서 실행됩니다. 꺼짐

빌드는 프로젝트가 고정해 둔 Go 빌더 이미지에서 네트워크를 끈 채 실행되므로 아무것도 다운로드하지 않습니다. 모듈 캐시는 읽기 전용으로 마운트됩니다. 대상 중 하나라도 실패하면 출력 폴더는 남지 않습니다. 커밋은 버전 번호에 붙고 프로그램에 들어갑니다. 앱과 백업이 이 값을 표시합니다.

아카이브에 들어 있는 것

프로그램, 라이선스, 서드파티 고지, 가이드, 소스 매니페스트, 패키지 식별 정보입니다. 별도의 소스 아카이브에는 프로젝트 소스와 Go 의존성이 들어 있습니다. 바이너리 옆에 함께 보관하세요.

SHA256SUMS는 파일이 일치한다는 것을 증명합니다. 서명은 아닙니다. 같은 커밋, 버전, 입력이면 같은 아카이브가 나오므로 다시 빌드해서 확인할 수 있습니다.

실행 참고 사항
주제 세부 내용
설정 경로 기본값 /config. 항상 -config를 지정하고 로컬 디스크에 두세요.
메모리 목표 GOMEMLIMIT이 없으면 384 MiB. 할당한 메모리의 약 80퍼센트로 설정하세요. 목표일 뿐 엄격한 제한은 아닙니다.
저메모리 모드 Linux에서는 약 2.5 GiB 이하이면 저절로 켜집니다. 목표는 메모리의 4분의 1로, 192에서 384 MiB 사이로 내려갑니다. HOLYARRS_LOW_MEMORY=1 또는 0으로 직접 정할 수 있습니다.
Node 실행에는 필요 없습니다.
하드링크 다운로드와 라이브러리 폴더를 한 파일 시스템에 두세요.

HolyArrs는 무료입니다. 시간을 아끼는 데 도움이 됐다면 GitHub에서 스타를 누르거나, 후원하거나, 커피 한 잔을 사 주세요.