로컬에 Infisical 설치하는 방법

뉴우비(newwwbi)·2024년 1월 18일
0

TIL

목록 보기
5/5
post-thumbnail

Infisical

Infisical 은 오픈소스, 엔드투엔드 암호화 방식을 사용하는 시크릿 관리 프로그램이다.

메디스트림이라는 회사의 기술 블로그에 올라온 Doppler 도입기를 읽고 시크릿 관리 도구에 관심이 생겼다.
우리 회사에도 시크릿 관리 도구를 도입하면 매우 유용하게 잘 쓸거 같았다.
그래서 이것저것 찾아보던 중 Infisical 을 발견하게 되었다.
Doppler 와 기능은 거의 비슷하면서 오픈소스라서 self-hosting 해서 사용할 수 있었다.

설치 과정

docker-compose 로 로컬에 Infisical 설치 및 실행하는 방법에 대해서 알아보자.

1. infisical 깃허브 리포지토리 클론하기

git clone https://github.com/Infisical/infisical

2. 생성된 소스코드 디렉토리로 이동하기

cd infisical

3. .env.example 파일을 복사해서 .env 파일 만들기

.env 파일은 infisical 을 실행하는데 필요한 환경변수를 설정하는데 사용된다.

cp .env.example .env

4. 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:

5. docker-compose 로 컨테이너 실행하기

docker-compose -f docker-compose.yml up -d

6. 웹브라우저로 접속하기

http://localhost:8888


7. 정상적으로 실행되었을 때 보이는 화면

참고 자료

https://github.com/Infisical/infisical?tab=readme-ov-file#run-infisical-locally

profile
배운 지식을 다른 사람과 공유하고 싶습니다

0개의 댓글