feat: .env 기반 ADMIN_TOKEN 관리

- docker-compose가 .env 자동 로드
- .env는 gitignore (token 노출 방지)
- .env.example 템플릿 추가
- README 절차 업데이트

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
th-kim0823
2026-04-25 19:45:18 +09:00
parent c76ecbaf32
commit 0c73d655a7
3 changed files with 11 additions and 2 deletions

2
.env.example Normal file
View File

@@ -0,0 +1,2 @@
ADMIN_TOKEN=강한-랜덤-토큰-여기-넣기
PORT=8501

1
.gitignore vendored
View File

@@ -5,4 +5,5 @@ venv/
*.db *.db
*.sqlite *.sqlite
.env .env
!.env.example
.streamlit/secrets.toml .streamlit/secrets.toml

View File

@@ -14,8 +14,12 @@
# 1. 팀 배정 (호스트에서 1회, participants.json 생성) # 1. 팀 배정 (호스트에서 1회, participants.json 생성)
python3 assign_teams.py python3 assign_teams.py
# 2. 컨테이너 실행 # 2. .env 작성 (1회)
export ADMIN_TOKEN="강한-토큰-아무거나" cp .env.example .env
# .env 파일을 열어 ADMIN_TOKEN을 강한 랜덤 토큰으로 변경
# 빠르게: python3 -c "import secrets; print(secrets.token_urlsafe(16))"
# 3. 컨테이너 실행
docker compose up -d --build docker compose up -d --build
# 로그 # 로그
@@ -28,6 +32,8 @@ docker compose down
docker compose down -v docker compose down -v
``` ```
`.env`는 git ignore. token 노출 방지.
- 투표 DB는 docker volume `vote-data`에 영속 → 컨테이너 재시작해도 유지 - 투표 DB는 docker volume `vote-data`에 영속 → 컨테이너 재시작해도 유지
- `participants.json`은 호스트→컨테이너 read-only mount → 재배정 시 호스트에서 변경하고 컨테이너만 재시작 - `participants.json`은 호스트→컨테이너 read-only mount → 재배정 시 호스트에서 변경하고 컨테이너만 재시작