侧边栏壁纸
博主头像
李先生ol 博主等级

行动起来,活在当下

  • 累计撰写 27 篇文章
  • 累计创建 17 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Runtipi — 每个人的个人家庭服务器

李先生ol
2025-10-19 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

Runtipi 超级nas应用中心

Runtipi 是一个个人家庭服务器管理器,使在单个服务器上管理和运行多个服务变得简单。它基于Docker,并提供一个简单的网页界面来管理您的服务。Runtipi 设计得非常易于使用,因此您无需担心手动配置或网络问题。只需在您的服务器上安装 Runtipi,并使用网页界面添加和管理服务。您可以在应用商店仓库中看到可用的服务列表,如果您找不到所需的服务,还有许多社区应用商店供您选择,甚至您可以创建自己的应用商店。要开始使用 Runtipi,请按照下面的安装说明进行操作。

官方地址https://github.com/runtipi/runtipi

services:
  runtipi-reverse-proxy:
    container_name: runtipi-reverse-proxy
    depends_on:
      runtipi:
        condition: service_healthy
    image: traefik:v3.5
    restart: unless-stopped
    ports:
      - 3180:80
      - 3143:443
    command: --providers.docker
    volumes:
      - /share/Container/runtipi/traefik:/etc/traefik
      - /share/Container/runtipi/traefik/shared:/shared
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - tipi_main_network

  runtipi-db:
    container_name: runtipi-db
    image: postgres:14
    restart: unless-stopped
    stop_grace_period: 1m
    volumes:
      - /share/Container/runtipi/data/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: tipi
      POSTGRES_DB: tipi
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d tipi -U tipi"]
      interval: 5s
      timeout: 10s
      retries: 20
      start_period: 5s
    networks:
      - tipi_main_network

  runtipi-queue:
    container_name: runtipi-queue
    image: rabbitmq:4-alpine
    restart: unless-stopped
    environment:
      RABBITMQ_DEFAULT_USER: tipi
      RABBITMQ_DEFAULT_PASS: rabbitmq
    networks:
      - tipi_main_network

  runtipi:
    container_name: runtipi
    healthcheck:
      start_period: 10s
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
      interval: 5s
      timeout: 10s
      retries: 20
    image: ghcr.nju.edu.cn/runtipi/runtipi:v4.4.0
    restart: unless-stopped
    depends_on:
      runtipi-db:
        condition: service_healthy
      runtipi-queue:
        condition: service_started
    volumes:
      # Data
      - /share/Container/runtipi/media:/data/media
      - /share/Container/runtipi/state:/data/state
      - /share/Container/runtipi/repos:/data/repos
      - /share/Container/runtipi/apps:/data/apps
      - /share/Container/runtipi/logs:/data/logs
      - /share/Container/runtipi/traefik:/data/traefik
      - /share/Container/runtipi/user-config:/data/user-config
      - /share/Container/runtipi/app-data:/app-data
      - /share/Container/runtipi/backups:/data/backups
      # Static
      #- /share/Container/runtipi/config.env:/data/.env
      - /share/Container/runtipi/cache:/cache
      - /share/Container/runtipi/runtipi.yml:/data/docker-compose.yml
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /proc:/host/proc
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      LOCAL: true
      NODE_ENV: production
      ROOT_FOLDER_HOST: /share/Container/runtipi
      POSTGRES_USERNAME: tipi
      POSTGRES_PASSWORD: postgres
      RABBITMQ_USERNAME: tipi
      RABBITMQ_PASSWORD: rabbitmq
      RABBITMQ_HOST: runtipi-queue
      INTERNAL_IP: 192.168.0.108   #改成自己内网ip
      TIPI_VERSION: 0.0.0
      LOG_LEVEL: debug
      APPS_REPO_ID: 67a91b6b7bc618c3916b04af5c9aa896a7f0416d762ee96f0cb350b1aab74a10
      APPS_REPO_URL: https://github.com/runtipi/runtipi-appstore
    networks:
      - tipi_main_network
    labels:
      # ---- General ----- #
      runtipi.managed: true
      traefik.enable: true
      traefik.http.middlewares.redirect-to-https.redirectscheme.scheme: https
      traefik.http.middlewares.runtipi.forwardauth.address: http://runtipi:3000/api/auth/traefik}

      # ---- Dashboard ----- #
      traefik.http.services.dashboard.loadbalancer.server.port: 3000
      # Local ip
      traefik.http.routers.dashboard.rule: PathPrefix("/")
      traefik.http.routers.dashboard.service: dashboard
      traefik.http.routers.dashboard.entrypoints: web
      # Websecure
      traefik.http.routers.dashboard-insecure.rule: Host(`${DOMAIN}`) && PathPrefix(`/`)
      traefik.http.routers.dashboard-insecure.service: dashboard
      traefik.http.routers.dashboard-insecure.entrypoints: web
      traefik.http.routers.dashboard-insecure.middlewares: redirect-to-https
      traefik.http.routers.dashboard-secure.rule: Host(`${DOMAIN}`) && PathPrefix(`/`)
      traefik.http.routers.dashboard-secure.service: dashboard
      traefik.http.routers.dashboard-secure.entrypoints: websecure
      traefik.http.routers.dashboard-secure.tls.certresolver: myresolver
      # Local domain
      traefik.http.routers.dashboard-local-insecure.rule: Host(`${LOCAL_DOMAIN}`)
      traefik.http.routers.dashboard-local-insecure.entrypoints: web
      traefik.http.routers.dashboard-local-insecure.service: dashboard
      traefik.http.routers.dashboard-local-insecure.middlewares: redirect-to-https
      # Secure
      traefik.http.routers.dashboard-local.rule: Host(`${LOCAL_DOMAIN}`)
      traefik.http.routers.dashboard-local.entrypoints: websecure
      traefik.http.routers.dashboard-local.tls: true
      traefik.http.routers.dashboard-local.service: dashboard
      
networks:
  tipi_main_network:
    driver: bridge
    name: runtipi_tipi_main_network

0

评论区