Pré-requisitos
- Kubernetes 1.19+
- Helm 3.0+
- Suporte a provisionador de PV
Instalação
# Clone o repositório
git clone https://github.com/ZoenSpace/sim.git && cd sim
# Gere os segredos
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
# Instale
helm install sim ./helm/sim \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--namespace simstudio --create-namespaceValues específicos por nuvem
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-aws.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespacehelm install sim ./helm/sim \
--values ./helm/sim/examples/values-azure.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespacehelm install sim ./helm/sim \
--values ./helm/sim/examples/values-gcp.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespaceConfiguração principal
# values.yaml personalizado
app:
replicaCount: 2
env:
NEXT_PUBLIC_APP_URL: "https://sim.yourdomain.com"
OPENAI_API_KEY: "sk-..."
postgresql:
persistence:
size: 50Gi
ingress:
enabled: true
className: nginx
tls:
enabled: true
app:
host: sim.yourdomain.comVeja helm/sim/values.yaml para todas as opções.
Banco de dados externo
postgresql:
enabled: false
externalDatabase:
enabled: true
host: "your-db-host"
port: 5432
username: "postgres"
password: "your-password"
database: "simstudio"
sslMode: "require"Comandos
# Port forward para acesso local
kubectl port-forward deployment/sim-sim-app 3000:3000 -n simstudio
# Ver logs
kubectl logs -l app.kubernetes.io/component=app -n simstudio --tail=100
# Upgrade
helm upgrade sim ./helm/sim --namespace simstudio
# Desinstalar
helm uninstall sim --namespace simstudioCommon Questions
O chart Helm usa por padrão limite de 8 Gi de memória / 4 Gi de request e limite de 2000m de CPU / 1000m de request por pod do app. O pod roda como non-root (UID 1001) com fsGroup 1001 por segurança.
Sim. Defina postgresql.enabled como false e configure a seção externalDatabase com host, porta, username, password, nome do banco e sslMode. O banco externo precisa ter a extensão pgvector instalada.
O chart Helm oferece suporte a secrets Kubernetes pré-existentes via app.secrets.existingSecret. Defina enabled como true e informe o nome do secret. Isso integra com External Secrets Operator, HashiCorp Vault, Azure Key Vault e ferramentas similares. Os mapeamentos de chaves podem ser personalizados se o seu secret usar nomes diferentes.
Sim. Defina app.replicaCount no seu values.yaml. O chart oferece suporte ao scaling padrão do Kubernetes. Garanta que o banco consiga lidar com as conexões adicionais das várias réplicas.
Sim. O chart Helm inclui arquivos de values de exemplo para AWS EKS (values-aws.yaml), Azure AKS (values-azure.yaml), GCP GKE (values-gcp.yaml), além de arquivos para produção, desenvolvimento, bancos externos, secrets externos e deployments whitelabeled.
O chart oferece suporte a ingress com className configurável (ex.: nginx), terminação TLS e configuração de host separada para o app. Ative com ingress.enabled: true e defina o host em ingress.app.host.