시놀로지 도커에 Authentik 설치하기 – 나만의 인증 서버/페이지 구성하기

image.png.jpg

https://svrforum.com/svr/808688

 

달소님이 올려주신 가이드는 우분투에서 설치 하는 방법 입니다만

큰 수정 없이 시놀로지 도커에서 설치가 가능합니다

 

우선 조금 다른 부분이 7.2 컨테이너 매니저를 이용해서 설치를 할 생각 인데요

7.2가 아니신 분들은 도커에 portainer를 설치해서 사용하시던지

기존 도커 컴포즈 설치 하시던 방법 대로 설치 하시면 될 거 같습니다

  • 우선 파일 스테이션을 통해서 /volume1/docker/authentik 폴더를 만들어 줍니다

 

그 후에 https://goauthentik.io/docker-compose.yml

Loading

 

version: "3.4"

services:
  postgresql:
    image: docker.io/library/postgres:12-alpine
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 5s
    volumes:
      - database:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${PG_PASS:?database password required}
      POSTGRES_USER: ${PG_USER:-authentik}
      POSTGRES_DB: ${PG_DB:-authentik}
    env_file:
      - .env
  redis:
    image: docker.io/library/redis:alpine
    command: --save 60 1 --loglevel warning
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 3s
    volumes:
      - redis:/data
  server:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.5.4}
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
    volumes:
      - ./media:/media
      - ./custom-templates:/templates
    env_file:
      - .env
    ports:
      - "${COMPOSE_PORT_HTTP:-9000}:9000"
      - "${COMPOSE_PORT_HTTPS:-9443}:9443"
    depends_on:
      - postgresql
      - redis
  worker:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.5.4}
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
    # `user: root` and the docker socket volume are optional.
    # See more for the docker socket integration here:
    # https://goauthentik.io/docs/outposts/integrations/docker
    # Removing `user: root` also prevents the worker from fixing the permissions
    # on the mounted folders, so when removing this make sure the folders have the correct UID/GID
    # (1000:1000 by default)
    user: root
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./media:/media
      - ./certs:/certs
      - ./custom-templates:/templates
    env_file:
      - .env
    depends_on:
      - postgresql
      - redis

volumes:
  database:
    driver: local
  redis:
    driver: local

파일 스테이션을 통해서 docker-compose.yml 에서 요구하는 폴더를 생성 해주세요

 

image.png.jpg

  • /volume1/docker/authentik/var/run/docker.sock
  • /volume1/docker/authentik/certs
  • /volume1/docker/authentik/custom-templates
  • /volume1/docker/authentik/media
  • /volume1/docker/authentik/redis
  • /volume1/docker/authentik/database

 위의 트리대로 생성을 다 해주시고 나서 ssh로 접속을 해줍니다

.env를 만들기 위한 과정인데요 시놀 도커는 우분투가 아니라

암호화키 생성을 도와줄 패키지를 설치합니다.

sudo apt-get install -y pwgen

 

그런 다음 다음 명령을 실행하여 비밀번호와 비밀 키를 생성하고 파일에 씁니다 .env.

echo “PG_PASS=$(pwgen -s 40 1)” >> .env
echo “AUTHENTIK_SECRET_KEY=$(pwgen -s 50 1)” >> .env

이 부분이 실행이 안됩니다 

  • ssh 접속 후 sudo -i 입력을 통해 관리자 권한으로 진행 합니다
  • cd /volume1/docker/authentik 으로 만들어 둔 폴더로 이동
echo "PG_PASS=$(openssl rand -base64 40)" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 50)" >> .env
  • 위의 명령을 한 줄씩 실행 해주시면 됩니다

pwgen 대신에 opnessl을 이용해 만들어진 40자 50자의 암호를 가지고 .env 파일을 생성하는 작업이고요

pwgen과 어느정도 비슷한 보안 수준일 겁니다

 

컨테이너 매니저로 이동 하셔서

 

image.png.jpg

프로젝트 이름과 만들어 둔 경로 그리고 도커 컴포즈 파일을 업로드 하시던지 만들기로 붙여넣기 하시던지 해서

다음 다음 누르면 별 다른 문제 없이 바로 생성이 될 겁니다

 

그 후에는 

https://svrforum.com/svr/808688

달소님 가이드를 참고 하시면 됩니다

 

적용 하는데 문제가 생기는지 확인은 못해봤습니다만 큰 문제는 없지 않을까 생각해봅니다

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다