用于运行 Docker 应用的配置模板。
| 模板 | 说明 |
|---|---|
| supabase | Supabase 自托管开源 BaaS |
| dify | Dify AI 应用开发平台 |
| odoo | Odoo 开源 ERP 系统 |
| electric | Electric 实时同步引擎 |
| maybe | Maybe 个人财务管理 |
| teable | Teable 无代码数据库 |
| registry | Docker Registry 镜像代理 |
supabase 配置模板提供了自建 Supabase 的参考配置,使用 Pigsty 托管的 PostgreSQL 作为底层存储。
更多细节,请参考 Supabase 自建教程
supabaseel8, el9, d12, u22, u24x86_64meta,rich启用方式:
./configure -c supabase [-i <primary_ip>]
源文件地址:pigsty/conf/supabase.yml
all:
children:
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } }, vars: { repo_enabled: false } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }
#----------------------------------------------#
# PostgreSQL cluster for Supabase self-hosting
#----------------------------------------------#
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-meta
pg_users:
# supabase 角色
- { name: anon ,login: false }
- { name: authenticated ,login: false }
- { name: dashboard_user ,login: false ,replication: true ,createdb: true ,createrole: true }
- { name: service_role ,login: false ,bypassrls: true }
# supabase 用户
- { name: supabase_admin ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: true ,roles: [ dbrole_admin ] ,superuser: true ,replication: true ,createdb: true ,createrole: true ,bypassrls: true }
- { name: authenticator ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: false ,roles: [ dbrole_admin, authenticated ,anon ,service_role ] }
- { name: supabase_auth_admin ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: false ,roles: [ dbrole_admin ] ,createrole: true }
- { name: supabase_storage_admin ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: false ,roles: [ dbrole_admin, authenticated ,anon ,service_role ] ,createrole: true }
- { name: supabase_functions_admin ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: false ,roles: [ dbrole_admin ] ,createrole: true }
- { name: supabase_replication_admin ,password: 'DBUser.Supa' ,replication: true ,roles: [ dbrole_admin ]}
- { name: supabase_etl_admin ,password: 'DBUser.Supa' ,replication: true ,roles: [ pg_read_all_data ]}
- { name: supabase_read_only_user ,password: 'DBUser.Supa' ,bypassrls: true ,roles: [ pg_read_all_data, dbrole_readonly ]}
pg_databases:
- name: postgres
baseline: supabase.sql
owner: supabase_admin
comment: supabase postgres database
schemas: [ extensions ,auth ,realtime ,storage ,graphql_public ,supabase_functions ,_analytics ,_realtime ]
extensions:
- { name: pgcrypto ,schema: extensions }
- { name: pg_net ,schema: extensions }
- { name: pgjwt ,schema: extensions }
- { name: uuid-ossp ,schema: extensions }
- { name: pgsodium ,schema: extensions }
- { name: supabase_vault ,schema: extensions }
- { name: pg_graphql ,schema: extensions }
- { name: pg_jsonschema ,schema: extensions }
- { name: wrappers ,schema: extensions }
- { name: http ,schema: extensions }
- { name: pg_cron ,schema: extensions }
- { name: timescaledb ,schema: extensions }
- { name: pg_tle ,schema: extensions }
- { name: vector ,schema: extensions }
- { name: pgmq ,schema: extensions }
- { name: supabase ,owner: supabase_admin ,comment: supabase analytics database }
pg_libs: 'timescaledb, pgsodium, plpgsql, plpgsql_check, pg_cron, pg_net, pg_stat_statements, auto_explain, pg_wait_sampling, pg_tle, plan_filter'
pg_extensions: [ pg18-main ,pg18-time ,pg18-gis ,pg18-rag ,pg18-fts ,pg18-olap ,pg18-feat ,pg18-lang ,pg18-type ,pg18-util ,pg18-func ,pg18-admin ,pg18-stat ,pg18-sec ,pg18-fdw ,pg18-sim ,pg18-etl]
pg_parameters: { cron.database_name: postgres }
pg_hba_rules:
- { user: all ,db: postgres ,addr: intra ,auth: pwd ,title: 'allow supabase access from intranet' }
- { user: all ,db: postgres ,addr: 172.17.0.0/16 ,auth: pwd ,title: 'allow access from local docker network' }
node_crontab:
- '00 01 * * * postgres /pg/bin/pg-backup full'
- '* * * * * postgres /pg/bin/supa-kick' # 处理 _analytics 延迟问题
#----------------------------------------------#
# Supabase 无状态容器 (默认用户密码: supabase/pigsty)
#----------------------------------------------#
supabase:
hosts: { 10.10.10.10: {} }
vars:
docker_enabled: true
app: supabase
apps:
supabase:
conf:
# 重要:修改 JWT_SECRET 并重新生成凭据!
JWT_SECRET: your-super-secret-jwt-token-with-at-least-32-characters-long
ANON_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
SERVICE_ROLE_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
PG_META_CRYPTO_KEY: your-encryption-key-32-chars-min
DASHBOARD_USERNAME: supabase
DASHBOARD_PASSWORD: pigsty
LOGFLARE_PUBLIC_ACCESS_TOKEN: 1234567890abcdef...
LOGFLARE_PRIVATE_ACCESS_TOKEN: fedcba0987654321...
# PostgreSQL 连接配置
POSTGRES_HOST: 10.10.10.10
POSTGRES_PORT: 5436
POSTGRES_DB: postgres
POSTGRES_PASSWORD: DBUser.Supa
# Supabase 外部访问地址
SITE_URL: https://supa.pigsty
API_EXTERNAL_URL: https://supa.pigsty
SUPABASE_PUBLIC_URL: https://supa.pigsty
# S3/MinIO 文件存储配置
S3_BUCKET: data
S3_ENDPOINT: https://sss.pigsty:9000
S3_ACCESS_KEY: s3user_data
S3_SECRET_KEY: S3User.Data
MINIO_DOMAIN_IP: 10.10.10.10
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
infra_portal:
home : { domain: i.pigsty }
minio : { domain: m.pigsty ,endpoint: "${admin_ip}:9001" ,scheme: https ,websocket: true }
supa : { domain: supa.pigsty ,endpoint: "10.10.10.10:8000" ,websocket: true ,certbot: supa.pigsty }
node_etc_hosts: [ "10.10.10.10 i.pigsty sss.pigsty supa.pigsty" ]
# 使用 MinIO 作为 PostgreSQL 备份存储
minio_endpoint: https://sss.pigsty:9000
pgbackrest_method: minio
pgbackrest_repo:
minio:
type: s3
s3_endpoint: sss.pigsty
s3_bucket: pgsql
s3_key: pgbackrest
s3_key_secret: S3User.Backup
# ... 更多配置
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
grafana_view_password: DBUser.Viewer
pg_admin_password: DBUser.DBA
pg_monitor_password: DBUser.Monitor
pg_replication_password: DBUser.Replicator
patroni_password: Patroni.API
haproxy_admin_password: pigsty
minio_secret_key: S3User.MinIO
etcd_root_password: Etcd.Root
supabase 模板提供了完整的 Supabase 自建方案,让您可以在自己的基础设施上运行这个开源 Firebase 替代品。
架构组成:
关键特性:
部署步骤:
curl https://repo.pigsty.io/get | bash # 下载 Pigsty
./configure -c supabase # 使用 supabase 配置模板
./install.yml # 安装 Pigsty、PostgreSQL、MinIO
./docker.yml # 安装 Docker
./app.yml # 启动 Supabase 容器
访问方式:
# Supabase Studio
https://supa.pigsty (用户名: supabase, 密码: pigsty)
# 直接连接 PostgreSQL
psql postgres://supabase_admin:DBUser.Supa@10.10.10.10:5432/postgres
适用场景:
注意事项:
SITE_URL、API_EXTERNAL_URL)dify 配置模板提供了自建 Dify AI 应用开发平台的参考配置,使用 Pigsty 托管的 PostgreSQL 和 pgvector 作为向量存储。
更多细节,请参考 Dify 部署教程
dify(位于 app/dify.yml)el8, el9, d12, u22, u24x86_64meta启用方式:
./configure -c app/dify [-i <primary_ip>]
源文件地址:pigsty/conf/app/dify.yml
all:
children:
# Dify 应用
dify:
hosts: { 10.10.10.10: {} }
vars:
app: dify
apps:
dify:
file:
- { path: /data/dify ,state: directory ,mode: 0755 }
conf:
NGINX_SERVER_NAME: dify.pigsty
SECRET_KEY: sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U # 请修改!
DIFY_PORT: 5001
DIFY_DATA: /data/dify
# 数据库配置
DB_USERNAME: dify
DB_PASSWORD: difyai123456
DB_HOST: 10.10.10.10
DB_PORT: 5432
DB_DATABASE: dify
# pgvector 向量存储配置
VECTOR_STORE: pgvector
PGVECTOR_HOST: 10.10.10.10
PGVECTOR_PORT: 5432
PGVECTOR_USER: dify
PGVECTOR_PASSWORD: difyai123456
PGVECTOR_DATABASE: dify
# PostgreSQL 数据库
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-meta
pg_users:
- { name: dify ,password: difyai123456 ,pgbouncer: true ,roles: [ dbrole_admin ] ,superuser: true }
pg_databases:
- { name: dify ,owner: dify ,revokeconn: true ,comment: dify main database }
- { name: dify_plugin ,owner: dify ,revokeconn: true ,comment: dify plugin database }
pg_hba_rules:
- { user: dify ,db: all ,addr: 172.17.0.0/16 ,auth: pwd ,title: 'allow dify from docker' }
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
docker_enabled: true
infra_portal:
home : { domain: i.pigsty }
dify : { domain: dify.pigsty ,endpoint: "10.10.10.10:5001" ,websocket: true ,certbot: dify.pigsty }
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
dify 模板提供了 Dify AI 应用开发平台的一键部署方案。
Dify 是什么:
关键特性:
/data/dify部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/dify
vi pigsty.yml # 修改密码和域名
./install.yml # 安装 Pigsty 和 PostgreSQL
./docker.yml # 安装 Docker
./app.yml # 启动 Dify 容器
访问方式:
# Dify Web 界面
http://dify.pigsty:5001
# 或通过 Nginx 代理
https://dify.pigsty
适用场景:
注意事项:
SECRET_KEY,使用 openssl rand -base64 42 生成odoo 配置模板提供了自建 Odoo 开源 ERP 系统的参考配置,使用 Pigsty 托管的 PostgreSQL 作为数据库。
更多细节,请参考 Odoo 部署教程
odoo(位于 app/odoo.yml)el8, el9, d12, u22, u24x86_64meta启用方式:
./configure -c app/odoo [-i <primary_ip>]
源文件地址:pigsty/conf/app/odoo.yml
all:
children:
# Odoo 应用 (默认用户密码: admin/admin)
odoo:
hosts: { 10.10.10.10: {} }
vars:
app: odoo
apps:
odoo:
file:
- { path: /data/odoo ,state: directory, owner: 100, group: 101 }
- { path: /data/odoo/webdata ,state: directory, owner: 100, group: 101 }
- { path: /data/odoo/addons ,state: directory, owner: 100, group: 101 }
conf:
PG_HOST: 10.10.10.10
PG_PORT: 5432
PG_USERNAME: odoo
PG_PASSWORD: DBUser.Odoo
ODOO_PORT: 8069
ODOO_DATA: /data/odoo/webdata
ODOO_ADDONS: /data/odoo/addons
ODOO_DBNAME: odoo
ODOO_VERSION: 19.0
# Odoo 数据库
pg-odoo:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-odoo
pg_users:
- { name: odoo ,password: DBUser.Odoo ,pgbouncer: true ,roles: [ dbrole_admin ] ,createdb: true }
- { name: odoo_ro ,password: DBUser.Odoo ,pgbouncer: true ,roles: [ dbrole_readonly ] }
- { name: odoo_rw ,password: DBUser.Odoo ,pgbouncer: true ,roles: [ dbrole_readwrite ] }
pg_databases:
- { name: odoo ,owner: odoo ,revokeconn: true ,comment: odoo main database }
pg_hba_rules:
- { user: all ,db: all ,addr: 172.17.0.0/16 ,auth: pwd ,title: 'allow access from docker' }
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
docker_enabled: true
infra_portal:
home : { domain: i.pigsty }
odoo : { domain: odoo.pigsty ,endpoint: "10.10.10.10:8069" ,websocket: true ,certbot: odoo.pigsty }
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
odoo 模板提供了 Odoo 开源 ERP 系统的一键部署方案。
Odoo 是什么:
关键特性:
/data/odoo/data/odoo/addons部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/odoo
vi pigsty.yml # 修改密码和域名
./install.yml # 安装 Pigsty 和 PostgreSQL
./docker.yml # 安装 Docker
./app.yml # 启动 Odoo 容器
访问方式:
# Odoo Web 界面
http://odoo.pigsty:8069
# 默认管理员账号
用户名: admin
密码: admin (首次登录时设置)
适用场景:
注意事项:
/data/odoo/addons 安装自定义模块electric 配置模板提供了部署 Electric SQL 实时同步服务的参考配置,实现 PostgreSQL 到客户端的实时数据同步。
更多细节,请参考 Electric 部署教程
electric(位于 app/electric.yml)el8, el9, d12, u22, u24x86_64meta启用方式:
./configure -c app/electric [-i <primary_ip>]
源文件地址:pigsty/conf/app/electric.yml
all:
children:
infra:
hosts: { 10.10.10.10: { infra_seq: 1 } }
vars:
app: electric
apps:
electric:
conf:
DATABASE_URL: 'postgresql://electric:DBUser.Electric@10.10.10.10:5432/electric?sslmode=require'
ELECTRIC_PORT: 8002
ELECTRIC_PROMETHEUS_PORT: 8003
ELECTRIC_INSECURE: true
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-meta
pg_users:
- { name: electric ,password: DBUser.Electric ,pgbouncer: true ,replication: true ,roles: [dbrole_admin] }
pg_databases:
- { name: electric ,owner: electric }
pg_hba_rules:
- { user: electric ,db: replication ,addr: infra ,auth: ssl ,title: 'allow electric ssl access' }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
docker_enabled: true
infra_portal:
home : { domain: i.pigsty }
electric : { domain: elec.pigsty ,endpoint: "${admin_ip}:8002" ,websocket: true }
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
electric 模板提供了 Electric SQL 实时同步服务的一键部署方案。
Electric 是什么:
关键特性:
部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/electric
vi pigsty.yml # 修改密码和域名
./install.yml # 安装 Pigsty 和 PostgreSQL
./docker.yml # 安装 Docker
./app.yml # 启动 Electric 容器
访问方式:
# Electric API 端点
http://elec.pigsty:8002
# Prometheus 指标
http://elec.pigsty:8003/metrics
# 在前端应用中使用
const electric = new ElectricClient({
url: 'http://elec.pigsty:8002'
});
适用场景:
注意事项:
replication 权限sslmode=require)ELECTRIC_INSECURE: false 启用安全模式maybe 配置模板提供了部署 Maybe 开源个人财务管理系统的参考配置,使用 Pigsty 托管的 PostgreSQL 作为数据库。
更多细节,请参考 Maybe 部署教程
maybe(位于 app/maybe.yml)el8, el9, d12, u22, u24x86_64meta启用方式:
./configure -c app/maybe [-i <primary_ip>]
源文件地址:pigsty/conf/app/maybe.yml
all:
children:
# Maybe 应用 (个人财务管理)
maybe:
hosts: { 10.10.10.10: {} }
vars:
app: maybe
apps:
maybe:
file:
- { path: /data/maybe ,state: directory ,mode: 0755 }
- { path: /data/maybe/storage ,state: directory ,mode: 0755 }
conf:
MAYBE_VERSION: latest
MAYBE_PORT: 5002
MAYBE_DATA: /data/maybe
APP_DOMAIN: maybe.pigsty
# 必须修改:使用 openssl rand -hex 64 生成
SECRET_KEY_BASE: sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U
# 数据库配置
DB_HOST: 10.10.10.10
DB_PORT: 5432
DB_USERNAME: maybe
DB_PASSWORD: MaybeFinance2025
DB_DATABASE: maybe_production
# Maybe 数据库
pg-maybe:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-maybe
pg_users:
- { name: maybe ,password: MaybeFinance2025 ,pgbouncer: true ,roles: [ dbrole_admin ] ,createdb: true }
- { name: maybe_ro ,password: MaybeFinance2025 ,pgbouncer: true ,roles: [ dbrole_readonly ] }
- { name: maybe_rw ,password: MaybeFinance2025 ,pgbouncer: true ,roles: [ dbrole_readwrite ] }
pg_databases:
- { name: maybe_production ,owner: maybe ,revokeconn: true ,comment: maybe main database }
pg_hba_rules:
- { user: maybe ,db: all ,addr: 172.17.0.0/16 ,auth: pwd ,title: 'allow maybe from docker' }
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
docker_enabled: true
infra_portal:
home : { domain: i.pigsty }
maybe : { domain: maybe.pigsty ,endpoint: "10.10.10.10:5002" ,websocket: true }
repo_enabled: false
node_repo_modules: node,infra,pgsql
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
maybe 模板提供了 Maybe 开源个人财务管理系统的一键部署方案。
Maybe 是什么:
关键特性:
/data/maybe部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/maybe
vi pigsty.yml # 修改密码和域名
./install.yml # 安装 Pigsty 和 PostgreSQL
./docker.yml # 安装 Docker
./app.yml # 启动 Maybe 容器
访问方式:
# Maybe Web 界面
http://maybe.pigsty:5002
# 或通过 Nginx 代理
https://maybe.pigsty
适用场景:
注意事项:
SECRET_KEY_BASE,使用 openssl rand -hex 64 生成teable 配置模板提供了部署 Teable 开源无代码数据库的参考配置,使用 Pigsty 托管的 PostgreSQL 作为数据库。
更多细节,请参考 Teable 部署教程
teable(位于 app/teable.yml)el8, el9, d12, u22, u24x86_64meta启用方式:
./configure -c app/teable [-i <primary_ip>]
源文件地址:pigsty/conf/app/teable.yml
all:
children:
# Teable 应用
teable:
hosts: { 10.10.10.10: {} }
vars:
app: teable
apps:
teable:
conf:
POSTGRES_HOST: "10.10.10.10"
POSTGRES_PORT: "5432"
POSTGRES_DB: "teable"
POSTGRES_USER: "dbuser_teable"
POSTGRES_PASSWORD: "DBUser.Teable"
PRISMA_DATABASE_URL: "postgresql://dbuser_teable:DBUser.Teable@10.10.10.10:5432/teable"
PUBLIC_ORIGIN: "http://tea.pigsty"
PUBLIC_DATABASE_PROXY: "10.10.10.10:5432"
TIMEZONE: "UTC"
# Teable 数据库
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-meta
pg_users:
- { name: dbuser_teable ,password: DBUser.Teable ,pgbouncer: true ,roles: [ dbrole_admin ] ,superuser: true }
pg_databases:
- { name: teable ,owner: dbuser_teable ,comment: teable database }
pg_hba_rules:
- { user: teable ,db: all ,addr: 172.17.0.0/16 ,auth: pwd ,title: 'allow teable from docker' }
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
docker_enabled: true
infra_portal:
home : { domain: i.pigsty }
teable : { domain: tea.pigsty ,endpoint: "10.10.10.10:8890" ,websocket: true ,certbot: tea.pigsty }
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
teable 模板提供了 Teable 开源无代码数据库的一键部署方案。
Teable 是什么:
关键特性:
部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/teable
vi pigsty.yml # 修改密码和域名
./install.yml # 安装 Pigsty 和 PostgreSQL
./docker.yml # 安装 Docker
./app.yml # 启动 Teable 容器
访问方式:
# Teable Web 界面
http://tea.pigsty:8890
# 或通过 Nginx 代理
https://tea.pigsty
# 同时可以直接 SQL 访问底层数据
psql postgresql://dbuser_teable:DBUser.Teable@10.10.10.10:5432/teable
适用场景:
注意事项:
PUBLIC_ORIGIN 为外部访问地址registry 配置模板提供了部署 Docker Registry 镜像代理的参考配置,可用作 Docker Hub 镜像加速或私有镜像仓库。
更多细节,请参考 Registry 部署教程
registry(位于 app/registry.yml)el8, el9, d12, u22, u24x86_64, aarch64meta启用方式:
./configure -c app/registry [-i <primary_ip>]
源文件地址:pigsty/conf/app/registry.yml
all:
children:
# Docker Registry 镜像代理
registry:
hosts: { 10.10.10.10: {} }
vars:
app: registry
apps:
registry:
file:
- { path: /data/registry ,state: directory ,mode: 0755 }
conf:
REGISTRY_DATA: /data/registry
REGISTRY_PORT: 5000
REGISTRY_UI_PORT: 5080
REGISTRY_STORAGE_DELETE_ENABLED: true
REGISTRY_LOG_LEVEL: info
REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io
REGISTRY_PROXY_TTL: 168h # 缓存 7 天
infra: { hosts: { 10.10.10.10: { infra_seq: 1 } } }
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 } }, vars: { etcd_cluster: etcd } }
vars:
version: v4.0.0
admin_ip: 10.10.10.10
region: default
infra_portal:
home : { domain: i.pigsty }
registry : { domain: d.pigsty ,endpoint: "10.10.10.10:5000" ,certbot: d.pigsty }
registry-ui : { domain: dui.pigsty ,endpoint: "10.10.10.10:5080" }
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18
#----------------------------------------------#
# PASSWORD
#----------------------------------------------#
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
# ... 更多密码配置
registry 模板提供了 Docker Registry 镜像代理的一键部署方案。
Registry 是什么:
关键特性:
/data/registry部署步骤:
curl -fsSL https://repo.pigsty.io/get | bash
./configure -c app/registry
vi pigsty.yml # 修改域名
./install.yml # 安装 Pigsty 基础设施
./docker.yml # 安装 Docker
./app.yml # 启动 Registry 容器
配置 Docker 客户端:
# 编辑 /etc/docker/daemon.json
{
"registry-mirrors": ["https://d.pigsty"],
"insecure-registries": ["d.pigsty"]
}
# 重启 Docker
sudo systemctl restart docker
访问方式:
# Registry API
https://d.pigsty/v2/_catalog
# Web UI
http://dui.pigsty:5080
# 拉取镜像(自动使用代理)
docker pull nginx:latest
适用场景:
注意事项:
REGISTRY_PROXY_TTL: 168h)