Infisical 은 오픈소스, 엔드투엔드 암호화 방식을 사용하는 시크릿 관리 프로그램이다.
메디스트림이라는 회사의 기술 블로그에 올라온 Doppler 도입기를 읽고 시크릿 관리 도구에 관심이 생겼다.
우리 회사에도 시크릿 관리 도구를 도입하면 매우 유용하게 잘 쓸거 같았다.
그래서 이것저것 찾아보던 중 Infisical 을 발견하게 되었다.
Doppler 와 기능은 거의 비슷하면서 오픈소스라서 self-hosting 해서 사용할 수 있었다.
docker-compose 로 로컬에 Infisical 설치 및 실행하는 방법에 대해서 알아보자.
git clone https://github.com/Infisical/infisical
cd infisical
.env.example
파일을 복사해서 .env
파일 만들기.env
파일은 infisical 을 실행하는데 필요한 환경변수를 설정하는데 사용된다.
cp .env.example .env
docker-compose.yml
파일 수정하기Rancher Desktop 사용자에 한해서 필요한 작업이다.
infisical-backend 컨테이너의 외부 포트 바인딩 번호를 80 -> 8888 로 변경한다.
Rancher Desktop 이 80번 포트와 443 포트를 사용하고 있기 때문에 80번 포트를 사용할 수 없어서다.
Rancher Desktop 을 사용하고 있지 않다면 굳이 수정하지 않아도 된다.
version: "3"
services:
backend:
container_name: infisical-backend
restart: unless-stopped
depends_on:
- mongo
image: infisical/infisical:latest
env_file: .env
ports:
- 8888:8080 # 👈 여기
environment:
- NODE_ENV=production
networks:
- infisical
redis:
image: redis
container_name: infisical-dev-redis
env_file: .env
environment:
- ALLOW_EMPTY_PASSWORD=yes
ports:
- 6379:6379
networks:
- infisical
volumes:
- redis_data:/data
mongo:
container_name: infisical-mongo
image: mongo
restart: always
env_file: .env
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
volumes:
- mongo-data:/data/db
networks:
- infisical
volumes:
mongo-data:
driver: local
redis_data:
driver: local
networks:
infisical:
docker-compose -f docker-compose.yml up -d
https://github.com/Infisical/infisical?tab=readme-ov-file#run-infisical-locally