git clone https://github.com/toktot/toktot-server
cd toktot프로젝트를 처음 실행하기 전에 다음 템플릿 파일들을 복사하여 실제 설정 파일을 만든다.
# 환경변수 파일 생성
cp .env.template .env
# 개발 환경 설정 파일 생성
cp application-dev.yml.template src/main/resources/application-dev.yml# 데이터베이스 비밀번호를 안전한 값으로 수정
DB_PASSWORD=your_secure_password_here
POSTGRES_PASSWORD=your_secure_password_here
# 개발/운영 프로파일 선택
SPRING_PROFILES_ACTIVE=docker-devspring:
datasource:
username: your_dev_username
password: your_dev_password
url: jdbc:postgresql://localhost:5432/toktot_dev# .env 파일을 본인만 읽을 수 있도록 설정
chmod 600 .env# PostgreSQL, Redis, Spring Boot만 실행
docker-compose -f docker-compose.local.yml up -d
# 로그 실시간 확인
docker-compose -f docker-compose.local.yml logs -f
# 애플리케이션 접속: http://localhost:8080# 전체 환경 실행 (PostgreSQL + Redis + Spring Boot + Nginx)
docker-compose up -d
# 빌드와 함께 실행
docker-compose up --build -d
# 로그 실시간 확인
docker-compose logs -f
# 특정 서비스 로그 확인
docker-compose logs -f app
docker-compose logs -f nginx
docker-compose logs -f postgres
# 애플리케이션 접속: http://your-server-ip# 도메인이 있는 경우 SSL 인증서 자동 설정
chmod +x scripts/setup-ssl.sh
./scripts/setup-ssl.sh your-domain.com your-email@example.com
# 예시
./scripts/setup-ssl.sh api.toktot.com admin@toktot.com# 컨테이너 상태 확인
docker-compose ps
# 컨테이너 중지
docker-compose down
# 볼륨까지 삭제 (데이터 초기화)
docker-compose down -v
# 특정 서비스만 재시작
docker-compose restart app
docker-compose restart nginx# Nginx 설정 테스트
docker-compose exec nginx nginx -t
# Nginx 재로드 (설정 변경 시)
docker-compose exec nginx nginx -s reload
# Nginx 접근 로그 확인
docker-compose exec nginx tail -f /var/log/nginx/access.log
# Nginx 에러 로그 확인
docker-compose exec nginx tail -f /var/log/nginx/error.log# 인증서 수동 갱신
docker-compose run --rm certbot renew
# 인증서 상태 확인
docker-compose run --rm certbot certificates
# 인증서 강제 갱신 (테스트용)
docker-compose run --rm certbot renew --force-renewalapplication.yml(공통 설정만)*.template파일들docker-compose.ymldocker-compose.local.ymlDockerfilenginx/nginx.confnginx/conf.d/default.confnginx/conf.d/proxy_params.conf
.envapplication-dev.ymllogs/디렉토리certbot/conf/(SSL 인증서)nginx/ssl/(SSL 관련 파일)nginx/conf.d/ssl.conf(생성된 SSL 설정)
- Docker Compose:
docker-compose.local.yml - 프로파일:
local - 포트: 8080 (직접 접근)
- HTTPS: 불필요
- Docker Compose:
docker-compose.yml - 프로파일:
dev - 포트: 80 (Nginx), 443 (HTTPS)
- HTTPS: Let's Encrypt 자동 인증서
- CI/CD: GitHub Actions 자동 배포
# 이미 사용 중인 포트 확인
lsof -i :8080
lsof -i :80
lsof -i :443
lsof -i :5432
# 기존 프로세스 종료 후 재시작# 설정 파일 문법 검사
docker-compose exec nginx nginx -t
# 설정 오류 로그 확인
docker-compose logs nginx
# 설정 파일 재로드
docker-compose exec nginx nginx -s reload# 통합 로그 모니터링 스크립트 실행
chmod +x scripts/log-management.sh
./scripts/log-management.sh
# 또는 개별 서비스 로그 확인
docker-compose logs -f --tail=100 app
docker-compose logs -f --tail=100 nginxdev브랜치에 푸시- GitHub Actions가 자동으로 빌드 및 배포
- Docker Hub에 이미지 푸시
- EC2 서버에서 자동 업데이트
- Spring Boot 로그:
docker-compose logs app - 데이터베이스 연결:
docker-compose logs postgres
- Nginx 프록시:
docker-compose logs nginx - SSL 인증서:
docker-compose logs certbot - 시스템 리소스:
docker stats