CTFd?
CTFd는 오픈소스 CTF 프레임워크입니다.
Github : https://github.com/CTFd/CTFd
첫번째 설치법
Docker container를 받아오기
설치법
1. 먼저, Docker를 설치해줍니다.
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
2. Docker가 설치가 완료되었다면 다음 명령어를 통해 최신 CTFd 이미지를 받아옵니다.
docker pull ctfd/ctfd
3. 다음 명령어를 통해 CTFd컨테이너를 생성합니다.
- 여기서 -p 8000:80로 해주시면 http 포트인 80으로 동작하도록 처리할 수 있습니다.
docker run -p 8000:8000 -it ctfd/ctfd
4. 위 과정을 마친다면 docker가 (기본적으로 8000번 포트에서)동작하게 됩니다.
두번째 설치법
쉘 스크립트파일을 실행하기
설치법
- 아무것도 설치되지 않은 서버(Ubuntu 16.04 LTS 추천)를 준비합니다.
- 해당 서버에 하단의 CTFd_setup.sh 를 내려받습니다.
- chmod +x CTFd_setup.sh를 통해 권한을 부여합니다.
- ./CTFd_setup.sh를 통해 설치합니다.
변경점
- CTFd 깃헙에 나와있는 설치가이드를 보고 따라하던 도중 docker-compose.yml 파일에서 문제가 발생하여 진행하지 못하고 있었습니다.
- 이에 대해 구글링하던 도중 이 영상을 찾게 되었습니다.
- 하지만 이 영상에 있는 코드도 문제가 있어 설치가 진행되지 않았습니다. 발생하는 문제를 해결해주기 위해 다음 코드를 추가하였습니다.
- apt-get install python-pip
- pip install setuptools
- apt install libicu-dev
- pip install wheel
'서버 > 일반' 카테고리의 다른 글
우분투에서 CTFd를 오류없이 설치하는 법 (9) | 2019.01.01 |
---|---|
우분투에 웹서버 설치하기(Apache2 + PHP + mySQL) (2) | 2018.10.06 |
좋은 자료 올려주셔서 감사합니다.
현재 gcp에서 구동해 보았는데요.
셋업툴을 실행하여 설치를 마치고 셋업페이지에서 기본설정을 완료하고 난뒤 로그인이나 챌린지같은 다른 페이지를 이동하는 과정들이 너무 오래걸리는데 저만 그런건가요??
그건 저도 그러더라구요..
그래서 지금 해결법을 찾아보고 있습니다 :)
@정준영 우분투18.04에서 위 방법중 2번으로 했더니... 셋업후 꺼지고 리부팅 됬는데... 그리고 아무일도 안일어납니다.. 무슨 문제가 있는건가요??
재부팅이 완료 되었음에도 CTFd가 정상적으로 deploy되지 않은 경우인가요?
네.. 재부팅 이후에 혹시 부팅시간이 좀더 걸리나 싶어서
10분정도 더 기다려 봤는데... 아무일도 일어나지 않았습니다..ㅠㅠ
신기한건 setup파일 다시 실행 시켰을때는 이미 설치가 다 어느정도 된것은 맞은지 빠르게 처리되고 다시 위 같이 재부팅한후 아무일도 일어나지 않습니다 ㅠㅠ
한가지 빼먹은게 있어서 이렇게 남깁니다..
설치할때는 조금 자세히 지켜봤는데,
마지막에 어느 한 경로를 못찾았다는 부분이 보였고, 재부팅후 반복적으로 "시스템오류"가 발견되었다고 합니다.
혹시 어떤 오류 메시지가 발생했는지 알 수 있을까요?
상세한 데이터 없이는 도움을 드리기에 한계가 있어서 ㅠㅠ
+ 이 글이 16.04를 베이스로 하고있어 패키지 의존성 문제가 있거나 상위버전용으로 만들어진 패키지가 없어 문제가 발생하는것일 가능성도 있습니다.
좀 삽질 하다가 결국 docker로 해서 했습니다... 그런데 이것도 포트포워딩이 좀 문제가 되서.. 아예 플랫폼을 딴데로 사용중입니다..
근데 이게 알려지지 않는 포트 사용하다 보니 dns정보 받는것은 쉽지 않네요.. 혹시 아시나요??
저같은 경우에는 NGINX 리버스 프록시 써서 HTTPS 적용하는 방식을 사용했었는데 이렇게 하면 아무래도 비교적 수월하게 받아올 수 있더라구요.
혹시 도움이 되실지 모르겠지만 이거 한번 참고해보심이 좋을 것 같습니다 :)
https://cragy0516.github.io/Deploy-Nginx-And-CTFd-with-Docker/