Untitled

https://github.com/benphelps/homepage

설명

homepage.png

설치

  1. /data에 homepage용 디렉토리 생성: mkdir /data/dashboard
  2. Docker 명령어로 컨테이너 생성 docker run -p 4080:3000 -v /data/dashboard:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:latest
    1. or docker compose로 컨테이너 생성하기
version: "3.3"
services:
  homepage:
    image: ghcr.io/benphelps/homepage:latest
    container_name: homepage
    ports:
      - 4080:3000
    volumes:
      - /data/dashboard:/app/config # Make sure your local config directory exists
      - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations

services.yaml

#일부분만 작성하였음.

- Main Service:
    - Proxmox:
        icon: proxmox.png
        href: "<http://vm>.[도메인]/"
        description: VM 서버
        widget:
            type: proxmox
            fields: ["vms", "lxc", "cpu", "mem"]
            url: <https://vm>.[도메인]
            username: api@pam!dashboard
            password: [토큰값]

    - Adguard Home:
        icon: adguard-home.png
        href: "<http://192.168.0.1:1300>"
        description: 라우터에서 작동하는 광고제거기
        widget:
            type: adguard
            url: <http://192.168.0.1:1300>
            username: [로그인아이디]
            password: [로그인 비밀번호]
    
- Main Docker:
    - Docker:
        icon: docker.png
        href: "<https://192.168.0.30:4001>"
        description: 도커 전용 메인CT(LXC)
        server: srv-dkrvm-main
        widget:
            type: portainer
            fields: ["running", "stopped", "total"]
            url: http://[portainer 도메인주소]
            env: 2
            key: [api 키]

- NPM:
    - Docker:
        icon: docker.png
        href: tcp://192.168.0.30:4100
        description: NPM 운영서버(LXC)
        server: srv-dkrvm-npm
        container: nginx-proxy-manager
        widget:
            type: portainer
            fields: ["running", "stopped", "total"]
            url: http://[portainer 도메인주소]
            env: 6
            key: [api 키]

    - Nginx Proxy Manager:
        icon: nginxproxymanager.png
        href: "<http://proxy.kimlulz.dev/>"
        description: 역방향 프록시 관리 어플리케이션
        server: srv-dkrvm-npm
        container: nginx-proxy-manager
        widget:
            type: npm
            fields: ["enabled", "disabled", "total"]
            url: https://[npm의 도메인주소 혹은 아이피:포트]]
            username: [이메일주소]
            password: [비밀번호]

<aside> 💡 Portainer Service Widget의 ENV값 추출방법 *https://docs.portainer.io/api/access 참조*

****httpie 설치 후 http GET [https://[Portainer 도메인주소]/api/endpoints](<https://docker.kimlulz.dev/api/endpoints>) X-API-Key:[API 키] 입력 후 나오는 값에서 Id값이 env값임.

"Id": 7,
        "Name": "[Environment 이름]",

</aside>

docker.yaml

#VMS가 구동되고 있는 서버는 socket랑 연결
srv-dkrvm-main:
    socket: /var/run/docker.sock

#NPM CT
srv-dkrvm-npm:
  host: 192.168.0.31
  port: 4100

#GitLab VM
srv-dkrvm-gitlab:
  host: 192.168.0.32
  port: 4200