Simple server using EFK stack and Jenkins.
This server was build for the purpose of learning backend architecture and CI/CD.
All architecture build scripts are configured based on the ARM server environment.
This project includes a simple Python API server application.
You can check API server spec below.
- CI/CD - Jenkins
- Reverse Proxy - Nginx
- Database - MariaDB
- Container - Docker
- Logging - EFK (Elastic Search & Fluentd & Kibana)
- Monitoring - Uptime Kuma & Heimdall
- ElasticSearch 데이터 생명 주기 설정
- SSL 인증서 발급 및 Https 적용
- API 문서 작성 및 스키마 작성
- Jenkins CI/CD 파이프라인 작성 및 확인
- Scheduler worker 확인
- README Link
- Gitbook Link (will be added later)
- Clone this repository
- Run
docker-compose up -d --build
- Fork this repository
- Create your feature branch
- Go to application folder
cd application
- Run
python -m venv venv
- Install dependencies
pip install -r requirements.txt
- Commit your changes
- Make sure your code is formatted by
black
- Make pull request
- Python 3.10 이상 버전
- Docker
비밀번호를 포함한 계정 정보는 주석처리 되어 있습니다. 초기 설정(비밀번호 생성 등) 이후 해당 계정을 다시 적용시켜야하므로 반드시 초기 실행에서는 주석 상태를 유지하세요.
Default EFK stack Memory Limit - 2GB
docker compose up -d
도커 컨테이너에 접속하여 비밀번호를 설정합니다. 이때, 비밀번호는 ElasticSearch가 기본적으로 제공하는 기능을 활용하여 자동으로 비밀번호를 생성합니다.
docker exec -it <elasticsearch_container> /bin/bash
bash bin/elasticsearch-setup-passwords auto
위 두번째 명령어의 출력 내용을 반드시 기록해두세요.
docker compose down
fluentd.conf
, kibana.yml
파일에서 주석 처리된 부분을 모두 해제한 후, 비밀번호를 입력합니다.
docker compose up -d
추가 예정