122 lines
6.5 KiB
YAML
122 lines
6.5 KiB
YAML
---
|
|
#==============================================================#
|
|
# File : vibe.yml
|
|
# Desc : Pigsty ai vibe coding sandbox
|
|
# Ctime : 2026-01-19
|
|
# Mtime : 2026-01-30
|
|
# Docs : https://pigsty.io/docs/conf/vibe
|
|
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
|
|
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
|
|
#==============================================================#
|
|
|
|
# VIBE CODING SANDBOX
|
|
# PostgreSQL with related extensions
|
|
# Code-Server, Jupyter, Claude Code
|
|
#
|
|
# Usage:
|
|
# curl https://repo.pigsty.io/get | bash
|
|
# ./configure -c vibe
|
|
# ./deploy.yml
|
|
# ./juice.yml # pgfs: juicefs on pgsql, mount on /fs
|
|
# ./vibe.yml # code-server, jupyter, and claude-code
|
|
|
|
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 }}
|
|
pgsql: { hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } } ,vars: { pg_cluster: pgsql }}
|
|
|
|
# optional modules
|
|
#minio: { hosts: { 10.10.10.10: { minio_seq: 1 }} ,vars: { minio_cluster: minio }}
|
|
#redis-ms:
|
|
# hosts: { 10.10.10.10: { redis_node: 1 , redis_instances: { 6379: { }, 6380: { replica_of: '10.10.10.10 6379' } } } }
|
|
# vars: { redis_cluster: redis-ms ,redis_password: 'redis.ms' ,redis_max_memory: 64MB }
|
|
|
|
vars:
|
|
#----------------------------------------------#
|
|
# INFRA: https://pigsty.io/docs/infra
|
|
#----------------------------------------------#
|
|
version: v4.0.0 # pigsty version string
|
|
admin_ip: 10.10.10.10 # admin node ip address
|
|
region: default # upstream mirror region: default,china,europe
|
|
infra_portal: # infra services exposed via portal
|
|
home : { domain: i.pigsty } # default domain name
|
|
dns_enabled: false # disable dns service
|
|
vtrace_enabled: false # enable vtrace extension
|
|
#blackbox_enabled: false # disable blackbox exporter
|
|
#alertmanager_enabled: false # disable alertmanager
|
|
infra_extra_services: # home page navigation entries
|
|
- { name: Code Server ,url: '/code' ,desc: 'VS Code Server' ,icon: 'code' }
|
|
- { name: Jupyter ,url: '/jupyter' ,desc: 'Jupyter Notebook' ,icon: 'jupyter' }
|
|
- { name: Claude Code ,url: '/ui/d/claude-code' ,desc: 'Claude Observability' ,icon: 'claude' }
|
|
|
|
#----------------------------------------------#
|
|
# NODE: https://pigsty.io/docs/node
|
|
#----------------------------------------------#
|
|
nodename_overwrite: false # do not overwrite node hostname on single node mode
|
|
node_tune: oltp # node tuning specs: oltp,olap,tiny,crit
|
|
node_dns_method: none # do not setup dns
|
|
node_repo_modules: node,infra,pgsql # add these repos directly to the singleton node
|
|
node_packages: [ openssh-server, juicefs, restic, rclone, uv, opencode, code-server, golang, asciinema, tmux ]
|
|
docker_enabled: true # enable docker service
|
|
node_firewall_mode: none # change to 'zone' to enable firewall
|
|
node_firewall_public_port: [22, 80, 443, 5432] # add custom public ports
|
|
#docker_registry_mirrors: ["https://docker.1panel.live","https://docker.1ms.run","https://docker.xuanyuan.me","https://registry-1.docker.io"]
|
|
|
|
#----------------------------------------------#
|
|
# PGSQL: https://pigsty.io/docs/pgsql
|
|
#----------------------------------------------#
|
|
pg_version: 18 # Default PostgreSQL Major Version is 18
|
|
pg_conf: oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.yml
|
|
pg_packages: [ pgsql-main, patroni, pgbackrest, pg_exporter, pgbackrest_exporter ]
|
|
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_users:
|
|
- { name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [dbrole_admin ] ,comment: pigsty admin user }
|
|
- { name: dbuser_view ,password: DBUser.Viewer ,pgbouncer: true ,roles: [dbrole_readonly] ,comment: read-only viewer }
|
|
pg_databases:
|
|
- { name: meta, baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [pigsty] ,extensions: [ postgis, timescaledb, vector ]}
|
|
pg_libs: 'timescaledb, pg_stat_statements, auto_explain, pg_wait_sampling'
|
|
pg_hba_rules:
|
|
- { user: all ,db: all ,addr: intra ,auth: pwd ,title: 'everyone intranet access with password' ,order: 800 }
|
|
- { user: all ,db: all ,addr: world ,auth: pwd ,title: 'everyone world access with password' ,order: 900 }
|
|
pg_crontab: [ '00 01 * * * /pg/bin/pg-backup full' ] # make a full backup every 1am
|
|
patroni_mode: remove # remove patroni after deployment
|
|
pgbouncer_enabled: false # disable pgbouncer pool
|
|
pgbouncer_exporter_enabled: false # disable pgbouncer_exporter on pgsql hosts?
|
|
pgbackrest_exporter_enabled: false # disable pgbackrest_exporter
|
|
pg_default_services: [] # do not provision pg services
|
|
#pg_reload: false # do not reload patroni/service
|
|
|
|
#----------------------------------------------#
|
|
# PASSWORD : https://pigsty.io/docs/setup/security/
|
|
#----------------------------------------------#
|
|
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
|
|
|
|
#----------------------------------------------#
|
|
# OPTIONAL VIBE COMPONENTS
|
|
#----------------------------------------------#
|
|
code_password: DBUser.Meta
|
|
jupyter_password: DBUser.Meta
|
|
juice_instances:
|
|
jfs:
|
|
path : /fs
|
|
meta : postgres://dbuser_meta:DBUser.Meta@10.10.10.10:5432/meta
|
|
data : --storage postgres --bucket 10.10.10.10:5432/meta --access-key dbuser_meta --secret-key DBUser.Meta
|
|
port : 9567
|
|
|
|
npm_packages: [ '@anthropic-ai/claude-code' , 'happy-coder' ]
|
|
#claude_env:
|
|
# ANTHROPIC_BASE_URL: https://open.bigmodel.cn/api/anthropic
|
|
# ANTHROPIC_API_URL: https://open.bigmodel.cn/api/anthropic
|
|
# ANTHROPIC_AUTH_TOKEN: your_api_service_token
|
|
# ANTHROPIC_MODEL: glm-4.7
|
|
# ANTHROPIC_SMALL_FAST_MODEL: glm-4.5-air
|
|
|
|
...
|