설정
Semaphore는 여러 가지 방법으로 설정할 수 있습니다:
- 온라인 구성 도구 — 온라인에서 설정 을 생성하는 웹 인터페이스입니다.
- 설정 파일 — Semaphore를 설정하는 기본적이고 가장 유연한 방법입니다.
- 환경 변수 — 컨테이너 또는 클라우드 네이티브 배포에 유용합니다.
설정 옵션
사용 가능한 전체 설정 옵션 목록입니다:
| 설정 파일 옵션 / 환경 변수 | 설명 |
|---|---|
| 공통 | |
git_client SEMAPHORE_GIT_CLIENT | Git 클라이언트 유형입니다. cmd_git(기본값) 또는 go_git을 사용할 수 있습니다. |
git_attempts SEMAPHORE_GIT_ATTEMPTS | 작업이 실패 처리되기 전에 git clone 또는 pull을 시도하는 횟수입니다. 시도 사이에 지수 백오프(1초, 2초, 4초, … 최대 60초)를 사용합니다. 기본값: 4. 재시도를 비활성화하려면 1로 설정하십시오. |
ssh_config_path SEMAPHORE_SSH_PATH | 사용자 지정 SSH 설정 파일의 경로입니다. 기본값: ~/.ssh/config. |
port SEMAPHORE_PORT | 웹 인터페이스를 사용할 수 있는 TCP 포트입니다. 기본값: :3000 |
interface SEMAPHORE_INTERFACE | 바인드 주소입니다(비어 있으면 모든 인터페이스). 서버에 네트 워크 인터페이스가 여러 개인 경우 유용합니다. |
tmp_path SEMAPHORE_TMP_PATH | 복제된 리포지토리와 생성된 파일이 저장되는 디렉터리의 경로입니다. 기본값: /tmp/semaphore |
dirs.secrets SEMAPHORE_SECRETS_PATH | 시크릿(예: Vault 토큰 파일)이 저장되는 디렉터리의 경로입니다. 기본값: /tmp/semaphore. dirs.secrets가 설정되지 않았거나 기본값 그대로인 경우 레거시 최상위 secrets_path도 여전히 허용됩니다. |
dirs.repos SEMAPHORE_REPOS_DIR | 리포지토리가 저장되는 디렉터리의 경로입니다. |
dirs.ssh_agent_sockets SEMAPHORE_SSH_AGENT_SOCKETS_DIR | SSH 에이전트 소켓이 저장되는 디렉터리의 경로입니다. 기본값: /tmp/semaphore |
home_dir_mode SEMAPHORE_HOME_DIR_MODE | 작업에 대해 HOME 환경 변수를 설정하는 방식을 제어합니다. 옵션: template_dir(기본값), project_home, user_home. |
max_parallel_tasks SEMAPHORE_MAX_PARALLEL_TASKS | 서버에서 실행할 수 있는 최대 병렬 작업 수입니다. 기본값: 9999 |
max_task_duration_sec SEMAPHORE_MAX_TASK_DURATION_SEC | 작업의 최대 실행 시간(초)입니다. |
max_tasks_per_templateSEMAPHORE_MAX_TASKS_PER_TEMPLATE | 각 템플릿에 대해 데이터베이스에 저장되는 최근 작업의 최대 개수입니다. |
schedule.timezone SEMAPHORE_SCHEDULE_TIMEZONE | 작업 예약 및 cron 작업에 사용되는 시간대입니다. 기본값: UTC |
oidc_providers SEMAPHORE_OIDC_PROVIDERS | OpenID 공급자 설정입니다. 여러 OpenID 공급자를 지정할 수 있습니다. OpenID 설정에 대한 자세한 내용은 OpenID를 참조하십시오. |
password_login_disable SEMAPHORE_PASSWORD_LOGIN_DISABLED | 비밀번호 로그인을 거부합니다. |
non_admin_can_create_project SEMAPHORE_NON_ADMIN_CAN_CREATE_PROJECT | 관리자가 아닌 사용자도 프로젝트를 생성할 수 있도록 허용합니다. |
env_vars SEMAPHORE_ENV_VARS | 작업 실행에 노출되는 환경 변수를 담은 JSON 맵입니다. |
forwarded_env_vars SEMAPHORE_FORWARDED_ENV_VARS | 작업 실행으로 전달될 호스트 환경 변수의 JSON 배열입니다. |
apps SEMAPHORE_APPS | 앱 설정을 담은 JSON 맵입니다. |
use_remote_runner SEMAPHORE_USE_REMOTE_RUNNER | 원격 러너를 사용하려면 활성화하십시오. |
runner_registration_token SEMAPHORE_RUNNER_REGISTRATION_TOKEN | 러너가 서버에 등록할 때 사용하는 부트스트랩 토큰입 니다. |
| 구독 | |
subscription.key SEMAPHORE_SUBSCRIPTION_KEY | 구독 키 또는 토큰입니다. 설정하면 웹 UI에서의 활성화가 비활성화됩니다. |
subscription.key_file SEMAPHORE_SUBSCRIPTION_KEY_FILE | 구독 키 또는 토큰 파일의 경로입니다. |
subscription.server_url SEMAPHORE_SUBSCRIPTION_SERVER_URL | 구독/결제 서버 URL입니다. 기본값: https://portal.semaphoreui.com/billing |
| JWT | |
jwt.enabled SEMAPHORE_JWT_ENABLED | 활성화하면 Semaphore가 각 작업 실행에 대해 수명이 짧은 JWT를 발급하고 /.well-known/jwks.json을 통해 공개 키를 노출합니다. |
jwt.issuer SEMAPHORE_JWT_ISSUER | 발급된 JWT의 iss 클레임에 들어가는 값입니다. |
jwt.default_ttl SEMAPHORE_JWT_DEFAULT_TTL | 발급된 작업 JWT의 기본 수명으로, Go duration 형식(예: 30m, 1h)입니다. 기본값: 1h |
jwt.max_ttl SEMAPHORE_JWT_MAX_TTL | 템플릿별 JWT TTL의 절대 상한으로, Go duration 형식입니다. 기본값: 24h |
| 러너 | |
runner.registration_token_file SEMAPHORE_RUNNER_REGISTRATION_TOKEN_FILE | 러너 등록 토큰이 들어 있는 파일의 경로입니다. |
runner.token SEMAPHORE_RUNNER_TOKEN | 러너 인증 토큰입니다. runner.token_file과 동시에 사용할 수 없습니다. |
runner.token_file SEMAPHORE_RUNNER_TOKEN_FILE | 러너 등록용 토큰 파일의 경로입니다. |
runner.private_key_file SEMAPHORE_RUNNER_PRIVATE_KEY_FILE | 러너의 개인 키 파일 경로입니다. |
runner.one_off SEMAPHORE_RUNNER_ONE_OFF | 러너가 하나의 작업만 처리하고 종료합니다. 동적 러너에 유용합니다. |
runner.enabled SEMAPHORE_RUNNER_ENABLED | 러너를 활성화합니다. |
runner.webhook SEMAPHORE_RUNNER_WEBHOOK | 러너의 webhook URL입니다. |
runner.name SEMAPHORE_RUNNER_NAME | 러너 이름입니다. |
runner.tags SEMAPHORE_RUNNER_TAGS | 러너 태그의 JSON 배열입니다. |
runner.max_parallel_tasks SEMAPHORE_RUNNER_MAX_PARALLEL_TASKS | 러너의 최대 병렬 작업 수입니다. 기본값: 9999. |
runner.check_interval_seconds SEMAPHORE_RUNNER_CHECK_INTERVAL_SECONDS | 러너가 새 작업을 확인하고 진행 상황을 보고하기 위해 서버를 폴링하는 주기(초)입니다. 기본값: 1. 값을 높이면 요청 수가 줄어드는 대신 작업 수신이 약간 느려집니다. |
runner.project_id SEMAPHORE_RUNNER_PROJECT_ID | 러너를 단일 프로젝트로 제한합니다. |
runner.connection.server_ca_cert_file SEMAPHORE_RUNNER_SERVER_CA_CERT_FILE | 시스템 신뢰 저장소에 더해 Semaphore 서버 인증서를 검증하는 데 사용되는 PEM 번들입니다. 서버가 자체 서명 인증서나 내부 CA 인증서를 사용하는 경우 설정하십시오. |
runner.connection.skip_tls_verify SEMAPHORE_RUNNER_SKIP_TLS_VERIFY | 서버 인증서 검증을 완전히 비활성화합니다. 안전하지 않으므로(MITM에 취약) 테스트 용도로만 사용하십시오. |
runner.executor SEMAPHORE_RUNNER_EXECUTOR | 전체 러너 실행기 설정(type과 그 아래에 중첩된 docker 또는 k8s 설정)을 담은 JSON 객체입니다. 하나의 환경 변수로 실행기 블록 전체를 설정하려는 경우 사용하십시오. |
runner.executor.type — | 러너가 각 작업을 실행하는 데 사용하는 전략입니다: local(기본값), k8s 또는 docker. |
runner.executor.k8s.kubeconfig SEMAPHORE_RUNNER_K8S_KUBECONFIG | kubeconfig 파일의 경로입니다. 비어 있으면 클러스터 내 설정을 사용합니다. |
runner.executor.k8s.namespace SEMAPHORE_RUNNER_K8S_NAMESPACE | 임시 작업 Pod가 생성되는 네임스페이스입니다. 기본값: semaphore |
runner.executor.k8s.image SEMAPHORE_RUNNER_K8S_IMAGE | 빌드 컨테이너의 기본 컨테이너 이미지입니다. 기본값: semaphoreui/job:latest |
runner.executor.k8s.helper_image SEMAPHORE_RUNNER_K8S_HELPER_IMAGE | git-clone 초기화 컨테이너 에 사용되는 이미지입니다. 기본값: semaphoreui/helper:latest |
runner.executor.k8s.service_account SEMAPHORE_RUNNER_K8S_SERVICE_ACCOUNT | 작업 Pod가 실행되는 서비스 계정입니다. 기본값: default |
runner.executor.k8s.pull_secrets SEMAPHORE_RUNNER_K8S_PULL_SECRETS | 각 Pod에 연결되는 imagePullSecrets의 쉼표로 구분된 목록입니다. |
runner.executor.k8s.poll_interval_seconds SEMAPHORE_RUNNER_K8S_POLL_INTERVAL_SECONDS | 실행기가 Pod 상태를 폴링하는 주기(초)입니다. 기본값: 3 |
runner.executor.k8s.cleanup_grace_seconds SEMAPHORE_RUNNER_K8S_CLEANUP_GRACE_SECONDS | Pod 삭제 시 유예 기간(초)입니다. 기본값: 30 |
runner.executor.docker.host SEMAPHORE_RUNNER_DOCKER_HOST | Docker 데몬 URL(unix://, tcp:// 또는 npipe://)입니다. 비어 있으면 표준 환경(DOCKER_HOST)과 플랫폼 기본 소켓을 사용합니다. |
runner.executor.docker.tls_verify SEMAPHORE_RUNNER_DOCKER_TLS_VERIFY | tcp:// 연결에 대해 TLS 인증서 검증을 활성화합니다. |
runner.executor.docker.cert_path SEMAPHORE_RUNNER_DOCKER_CERT_PATH | 상호 TLS용 ca.pem, cert.pem, key.pem이 들어 있는 디렉터리입니다. |
runner.executor.docker.image SEMAPHORE_RUNNER_DOCKER_IMAGE | 빌드 컨테이너의 기본 이미지입니다. 기본값: semaphoreui/job:latest |
runner.executor.docker.helper_image SEMAPHORE_RUNNER_DOCKER_HELPER_IMAGE | 일시적인 git-clone 컨테이너에 사용되는 이미지입니다. 기본값: semaphoreui/helper:latest |
runner.executor.docker.network SEMAPHORE_RUNNER_DOCKER_NETWORK | 빌드 컨테이너가 참여하는 Docker 네트워크입니다. 기본값: bridge |
runner.executor.docker.pull_policy SEMAPHORE_RUNNER_DOCKER_PULL_POLICY | 이미지 pull 정책입니다: always, if-not-present(기본값) 또는 never. |
runner.executor.docker.cpu_limit SEMAPHORE_RUNNER_DOCKER_CPU_LIMIT | 0보다 크면 빌드 컨테이너의 CPU를 제한합니다(--cpus로 전달됨). |
runner.executor.docker.memory_limit SEMAPHORE_RUNNER_DOCKER_MEMORY_LIMIT | 비어 있지 않으면 빌드 컨테이너의 메모리를 제한합니다(예: 2g). |
runner.executor.docker.poll_interval_seconds SEMAPHORE_RUNNER_DOCKER_POLL_INTERVAL_SECONDS | 컨테이너 상태를 폴링하는 주기(초)입니다. 기본값: 2 |
runner.executor.docker.cleanup_grace_seconds SEMAPHORE_RUNNER_DOCKER_CLEANUP_GRACE_SECONDS | docker stop에 전달되는 타임아웃(초)입니다. 기본값: 30 |
runner.executor.docker.privileged SEMAPHORE_RUNNER_DOCKER_PRIVILEGED | 빌드 컨테이너를 --privileged로 실행합니다. 위험하며 기본적으로 꺼져 있습니다. |
| 러너(서버 측 플릿) | |
runners.offline_timeout_sec SEMAPHORE_RUNNERS_OFFLINE_TIMEOUT_SEC | 이 시간(초) 동안 하트비트가 없으면 러너를 오프라인으로 간주합니다. 해당 러너의 "starting" 상태 작업은 재할당됩니다. 기본값: 120 |
runners.task_fail_timeout_sec SEMAPHORE_RUNNERS_TASK_FAIL_TIMEOUT_SEC | 이 시간(초) 동안 하트비트가 없으면 러너의 "running" 상태 작업을 실패 처리합니다. offline_timeout_sec보다 작은 값은 해당 값으로 맞춰집니다. 기본값: 420 |
runners.reconcile_interval_sec SEMAPHORE_RUNNERS_RECONCILE_INTERVAL_SEC | 디스패치된 작업을 러너 생존 상태와 대조하는 주기(초)입니다. 기본값: 30 |
| 팀 | |
teams.invites_enabled SEMAPHORE_TEAMS_INVITES_ENABLED | 사용자가 팀에 구성원을 초대할 수 있도록 허용합니다. |
teams.invite_type SEMAPHORE_TEAMS_INVITE_TYPE | 초대 유형입니다: username(기본값), email, both. |
teams.members_can_leave SEMAPHORE_TEAMS_MEMBERS_CAN_LEAVE | 구성원이 팀을 떠날 수 있도록 허용합니다. |
| 데이터베이스 | |
sqlite.host SEMAPHORE_DB_HOST | SQLite 데이터베이스 파일의 경로입니다. |
mysql.host SEMAPHORE_DB_HOST | MySQL 데이터베이스 호스트입니다. |
mysql.name SEMAPHORE_DB_NAME | MySQL 데이터베이스(스키마) 이름입니다. |
mysql.user SEMAPHORE_DB_USER | MySQL 사용자 이름입니다. |
mysql.pass SEMAPHORE_DB_PASS | MySQL 사용자의 비밀번호입니다. |
postgres.host SEMAPHORE_DB_HOST | Postgres 데이터베이스 호스트입니다. |
postgres.name SEMAPHORE_DB_NAME | Postgres 데이터베이스(스키마) 이름입니다. |
postgres.user SEMAPHORE_DB_USER | Postgres 사용자 이름입니다. |
postgres.pass SEMAPHORE_DB_PASS | Postgres 사용자의 비밀번호입니다. |
dialect SEMAPHORE_DB_DIALECT | sqlite(기본값), postgres 또는 mysql을 사용할 수 있습니다. |
*.options SEMAPHORE_DB_OPTIONS | 데이터베이스 연결 옵션을 담은 JSON 맵입니다. |
| 보안 | |
access_key_encryption SEMAPHORE_ACCESS_KEY_ENCRYPTION | 데이터베이스에 저장된 액세스 키를 암호화하는 데 사용되는 Base64 인코딩 키입니다. 자세한 내용은 데이터베이스 암호화 참조를 참조하십시오. |
option_encryption SEMAPHORE_OPTION_ENCRYPTION | 기존 단일 키 방식(순환 없음)으로 DB 옵션(JWT 서명 키)을 암호화하는 데 사용되는 Base64 인코딩 키입니다. 설정하지 않으면 액세스 키를 대신 사용합니다. |
cookie_hash SEMAPHORE_COOKIE_HASH | 쿠키 서명에 사용되는 Base64 인코딩 HMAC 키입니다. |
cookie_encryption SEMAPHORE_COOKIE_ENCRYPTION | 쿠키 암호화에 사용되는 Base64 인코딩 키입니다. |
web_host SEMAPHORE_WEB_ROOT | Semaphore를 하위 경로로 사용하려는 경우 유용합니다. 예: http://yourdomain.com/semaphore. 끝에 /를 붙이지 마십시오. |
tls.enabled SEMAPHORE_TLS_ENABLED | Semaphore 서버와의 보안 통신을 위한 TLS(HTTPS)를 활성화하거나 비활성화합니다. |
tls.cert_file SEMAPHORE_TLS_CERT_FILE | TLS 인증서 파일의 경로입니다. |
tls.key_file SEMAPHORE_TLS_KEY_FILE | TLS 키 파일의 경로입니다. |
tls.http_redirect_addr SEMAPHORE_TLS_HTTP_REDIRECT_ADDR | HTTP→HTTPS 리디렉션 리스너의 주소(host[:port])입니다. tls.http_redirect_port와 동시에 사용할 수 없습니다. |
tls.http_redirect_port SEMAPHORE_TLS_HTTP_REDIRECT_PORT | HTTP 트래픽을 HTTPS로 리디렉션할 포트입니다. tls.http_redirect_addr와 동시에 사용할 수 없습니다. |
mfa.totp.enabled SEMAPHORE_TOTP_ENABLED | TOTP를 사용한 2단계 인증을 활성화합니다. |
mfa.totp.app_name SEMAPHORE_TOTP_ISSUER | TOTP 인증 앱에 표시되는 발급자 레이블(Semaphore 제목)입니다. |
mfa.totp.allow_recovery SEMAPHORE_TOTP_ALLOW_RECOVERY | 사용자가 복구 코드를 사용하여 TOTP를 재설정할 수 있도록 허용합니다. |
mfa.email.enabled SEMAPHORE_EMAIL_2TP_ENABLED | 이메일 기반 다단계 인증을 활성화합니다. |
mfa.email.allow_login_as_external_user SEMAPHORE_EMAIL_2TP_ALLOW_LOGIN_AS_EXTERNAL_USER | 외부(이메일 전용) 사용자로 로그인할 수 있도록 허용합니다. |
mfa.email.allow_create_external_user SEMAPHORE_EMAIL_2TP_ALLOW_CREATE_EXTERNAL_USER | 최초 로그인 시 외부 사용자 생성을 허용합니다. |
mfa.email.allowed_domains SEMAPHORE_EMAIL_2TP_ALLOWED_DOMAINS | 허용되는 이메일 도메인의 JSON 배열입니다. |
mfa.email.disable_for_oidc SEMAPHORE_EMAIL_2TP_DISABLE_FOR_OIDC | OIDC로 인증한 사용자에 대해 이메일 MFA를 비활성화합니다. |
| 암호화 | |
encryption.keys_file SEMAPHORE_ENCRYPTION_KEYS_FILE | 암호화 키링을 보관하는 별도 파일(YAML 또는 JSON)의 경로입니다. 변경 사항을 감시하므로 서버를 재시작하지 않아도 수정 내용이 적용됩니다. 설정하지 않으면 레거시 access_key_encryption 필드가 사용됩니다. |
encryption.keys_poll_interval SEMAPHORE_ENCRYPTION_KEYS_POLL_INTERVAL | keys_file의 변경 사항을 폴링하는 주기(15s와 같은 Go duration)입니다. 0은 폴링을 비활성화합니다(SIGHUP으로는 여전히 강제로 다시 로드할 수 있음). 기본값: 15s |
| 프로세스 | |
process.user SEMAPHORE_PROCESS_USER | 래핑된 프로세스(Ansible, Terraform, OpenTofu 등)가 실행될 사용자입니다. |
process.uid SEMAPHORE_PROCESS_UID | 래핑된 프로세스(Ansible, Terraform, OpenTofu 등)가 실행될 사용자의 ID입니다. |
process.gid SEMAPHORE_PROCESS_GID | 래핑된 프로세스(Ansible, Terraform, OpenTofu 등)가 실행될 그룹의 ID입니다. |
process.chroot SEMAPHORE_PROCESS_CHROOT | 래핑된 프로세스의 chroot 디렉터리입니다. |
process.no_new_privs SEMAPHORE_PROCESS_NO_NEW_PRIVS | 래핑된 프로세스가 새로운 권한을 얻을 수 없도록 no_new_privs 플래그를 설정합니다. |
process.app_namespaces.user SEMAPHORE_PROCESS_APP_NS_USER | 앱 실행에 대해 UID/GID를 격리합니다(CLONE_NEWUSER). Linux 전용입니다. |
process.app_namespaces.mount SEMAPHORE_PROCESS_APP_NS_MOUNT | 앱 실행에서 시크릿 tmpfs와 같은 호스트 마운트 지점을 숨깁니다(CLONE_NEWNS). Linux 전용입니다. |
process.app_namespaces.pid SEMAPHORE_PROCESS_APP_NS_PID | 앱 실행에서 호스트 프로세스를 숨깁니다(CLONE_NEWPID). Linux 전용입니다. |
process.app_namespaces.ipc SEMAPHORE_PROCESS_APP_NS_IPC | 앱 실행에 대해 SysV IPC 및 POSIX 메시지 큐를 격리합니다(CLONE_NEWIPC). Linux 전용입니다. |
process.app_namespaces.uts SEMAPHORE_PROCESS_APP_NS_UTS | 앱 실행에 대해 호스트 이름과 도메인을 격리합니다(CLONE_NEWUTS). Linux 전용입니다. |
| 이메일 | |
email_sender SEMAPHORE_EMAIL_SENDER | 발신자의 이메일 주소입니다. |
email_host SEMAPHORE_EMAIL_HOST | SMTP 서버 호스트 이름입니다. |
email_port SEMAPHORE_EMAIL_PORT | SMTP 서버 포트입니다. |
email_secure SEMAPHORE_EMAIL_SECURE | 암호화되지 않은 SMTP 연결을 안전한 암호화 연결로 업그레이드하는 StartTLS를 활성화합니다. |
email_tls SEMAPHORE_EMAIL_TLS | SMTP 서버와의 통신에 SSL 또는 TLS 연결을 사용합니다. |
email_tls_min_version SEMAPHORE_EMAIL_TLS_MIN_VERSION | 연결에 사용할 최소 TLS 버전입니다. |
email_username SEMAPHORE_EMAIL_USERNAME | SMTP 서버 인증용 사용자 이름입니다. |
email_password SEMAPHORE_EMAIL_PASSWORD | SMTP 서버 인증용 비밀번호입니다. |
email_alert SEMAPHORE_EMAIL_ALERT | 이메일 알림을 활성화하는 플래그입니다. |
| 메신저 | |
telegram_alert SEMAPHORE_TELEGRAM_ALERT | Telegram으로 알림을 보내려면 True로 설정하십시오. telegram_chat 및 telegram_token과 함께 사용해야 합니다. |
telegram_chat SEMAPHORE_TELEGRAM_CHAT | 알림을 보낼 채팅의 Chat ID로 설정하십시오. 자세한 내용은 Telegram 알림 설정을 참조하십시오. |
telegram_token SEMAPHORE_TELEGRAM_TOKEN | 알림 페이로드를 받을 봇의 Authorization Token으로 설정하십시오. 자세한 내용은 Telegram 알림 설정을 참조하십시오. |
slack_alert SEMAPHORE_SLACK_ALERT | Slack으로 알림을 보내려면 True로 설정하십시오. slack_url과 함께 사용해야 합니다. |
slack_url SEMAPHORE_SLACK_URL | Slack webhook URL입니다. Semaphore는 이 URL로 Slack 형식의 JSON 알림을 POST합니다. |
microsoft_teams_alert SEMAPHORE_MICROSOFT_TEAMS_ALERT | Microsoft Teams 알림을 활성화하는 플래그입니다. |
microsoft_teams_url SEMAPHORE_MICROSOFT_TEAMS_URL | Microsoft Teams webhook URL입니다. |
rocketchat_alert SEMAPHORE_ROCKETCHAT_ALERT | Rocket.Chat으로 알 림을 보내려면 True로 설정하십시오. rocketchat_url과 함께 사용해야 합니다. v2.9.56부터 사용할 수 있습니다. |
rocketchat_url SEMAPHORE_ROCKETCHAT_URL | Rocket.Chat webhook URL입니다. Semaphore는 이 URL로 Rocket.Chat 형식의 JSON 알림을 POST합니다. v2.9.56부터 사용할 수 있습니다. |
dingtalk_alert SEMAPHORE_DINGTALK_ALERT | Dingtalk 알림을 활성화합니다. |
dingtalk_url SEMAPHORE_DINGTALK_URL | Dingtalk 메신저 webhook URL입니다. |
gotify_alert SEMAPHORE_GOTIFY_ALERT | Gotify 알림을 활성화합니다. |
gotify_url SEMAPHORE_GOTIFY_URL | Gotify 서버 URL입니다. |
gotify_token SEMAPHORE_GOTIFY_TOKEN | Gotify 서버 토큰입니다. |
| LDAP | |
ldap_enable SEMAPHORE_LDAP_ENABLE | LDAP 인증을 활성화하는 플래그입니다. |
ldap_needtls SEMAPHORE_LDAP_NEEDTLS | LDAP 연결에 대해 TLS를 활성화하거나 비활성화하는 플래그입니다. |
ldap_binddn SEMAPHORE_LDAP_BIND_DN | 인증을 위해 LDAP 서버에 바인딩하는 데 사용되는 고유 이름(DN)입니다. |
ldap_bindpassword SEMAPHORE_LDAP_BIND_PASSWORD | 인증을 위해 LDAP 서버에 바인딩하는 데 사용되는 비밀번호입니다. |
ldap_server SEMAPHORE_LDAP_SERVER | LDAP 서버의 호스트 이름과 포트입니다(예: ldap-server.com:1389). |
ldap_searchdn SEMAPHORE_LDAP_SEARCH_DN | LDAP 디렉터리에서 사용자를 검색하는 데 사용되는 기본 고유 이름(DN)입니다(예: dc=example,dc=org). |
ldap_searchfilter SEMAPHORE_LDAP_SEARCH_FILTER | LDAP 디렉터리에서 사용자를 검색하는 데 사용되는 필터입니다(예: (&(objectClass=inetOrgPerson)(uid=%s))). |
ldap_mappings.dn SEMAPHORE_LDAP_MAPPING_DN | 사용자 인증 시 고유 이름(DN) 매핑으로 사용할 LDAP 속성입니다. |
ldap_mappings.mail SEMAPHORE_LDAP_MAPPING_MAIL | 사용자 인증 시 이메일 주소 매핑으로 사용할 LDAP 속성입니다. |
ldap_mappings.uid SEMAPHORE_LDAP_MAPPING_UID | 사용자 인증 시 사용자 ID(UID) 매핑으로 사용할 LDAP 속성입니다. |
ldap_mappings.cn SEMAPHORE_LDAP_MAPPING_CN | 사용자 인증 시 일반 이름(CN) 매핑으로 사용할 LDAP 속성입니다. |
| 로깅 | |
log.events.format SEMAPHORE_EVENT_LOG_FORMAT | 이벤트 로그 형식입니다. json으로 설정하거나, 텍스트 형식을 사용하려면 비워 두십시오. |
log.events.enabled SEMAPHORE_EVENT_LOG_ENABLED | 이벤트 로깅을 활성화하거나 비활성화합니다. |
log.events.logger SEMAPHORE_EVENT_LOGGER | 이벤트 로거 설정을 담은 JSON 맵입니다. |
log.tasks.format SEMAPHORE_TASK_LOG_FORMAT | 작업 로그 형식입니다. json으로 설정하거나, 텍스트 형식을 사용하려면 비워 두십시오. |
log.tasks.enabled SEMAPHORE_TASK_LOG_ENABLED | 작업 로깅을 활성화하거나 비활성화합니다. |
log.tasks.logger SEMAPHORE_TASK_LOGGER | 작업 로거 설정을 담은 JSON 맵입니다. |
log.tasks.result_logger SEMAPHORE_TASK_RESULT_LOGGER | 작업 결과 로거 설정을 담은 JSON 맵입니다. |
syslog.enabled SEMAPHORE_SYSLOG_ENABLED | 설정된 syslog 서버로의 로그 기록을 활성화하거나 비활성화합니다. |
syslog.network SEMAPHORE_SYSLOG_NETWORK | Syslog 서버에 연결하는 데 사용되는 프로토콜입니다: udp 또는 tcp. |
syslog.address SEMAPHORE_SYSLOG_ADDRESS | Syslog 서버의 호스트 이름과 포트입니다. 예: localhost:514. |
syslog.tag SEMAPHORE_SYSLOG_TAG | Syslog 서버에서 Semaphore UI 레코드를 표시하는 데 사용되는 태그입니다. |
syslog.format SEMAPHORE_SYSLOG_FORMAT | Syslog 메시지의 형식입니다. rfc5424로 설정하거나, 기본값을 사용하려면 비워 두십시오. |
| 디버깅 | |
debugging.api_delay SEMAPHORE_API_DELAY | API 응답에 지연을 추가합니다(디버깅 용도). |
debugging.pprof_dump_dir SEMAPHORE_PPROF_DUMP_DIR | pprof 덤프 파일용 디렉터리입니다. |
| 고가용성(HA) | |
ha.enabled SEMAPHORE_HA_ENABLED | 고가용성(HA) 모 드를 활성화합니다. |
ha.node_id SEMAPHORE_HA_NODE_ID | HA 노드의 고유 식별자입니다. |
ha.redis.addr SEMAPHORE_HA_REDIS_ADDR | HA에 사용되는 Redis 서버의 주소입니다. 예: localhost:6379. |
ha.redis.db SEMAPHORE_HA_REDIS_DB | Redis 데이터베이스 번호입니다. |
ha.redis.pass SEMAPHORE_HA_REDIS_PASS | Redis 서버의 비밀번호입니다. |
ha.redis.user SEMAPHORE_HA_REDIS_USER | Redis 서버의 사용자 이름입니다. |
ha.redis.tls SEMAPHORE_HA_REDIS_TLS | Redis 연결에 TLS를 활성화합니다. |
ha.redis.tls_skip_verify SEMAPHORE_HA_REDIS_TLS_SKIP_VERIFY | Redis 연결에 대한 TLS 인증서 검증을 건 너뜁니다. |
자주 묻는 질문
1. Semaphore UI의 공개 URL을 설정하는 방법
Semaphore 앞단에 nginx 또는 다른 웹 서버를 사용하는 경우 web_host 설정 옵션을 지정해야 합니다.
예를 들어 서버에 Semaphore로 요청을 프록시하는 NGINX를 구성했다고 가정하겠습니다.
서버 주소가 https://example.com이고 https://example.com/semaphore로 오는 모든 요청을 Semaphore로 프록시합니다.
이 경우 web_host는 https://example.com/semaphore가 됩니다.