Kubernetes
Helmを使用してSteelEngineをデプロイする
前提条件
- Kubernetes 1.19+
- Helm 3.0+
- PVプロビジョナーのサポート
インストール
# Clone repo
git clone https://github.com/steelengineai/steelengine.git && cd steelengine
# Generate secrets
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
# Install
helm install steelengine ./helm/steelengine \
--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 steelengine --create-namespaceクラウド固有の値
helm install steelengine ./helm/steelengine \
--values ./helm/steelengine/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://steelengine.yourdomain.com" \
--namespace steelengine --create-namespacehelm install steelengine ./helm/steelengine \
--values ./helm/steelengine/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://steelengine.yourdomain.com" \
--namespace steelengine --create-namespacehelm install steelengine ./helm/steelengine \
--values ./helm/steelengine/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://steelengine.yourdomain.com" \
--namespace steelengine --create-namespace主要な設定
# Custom values.yaml
app:
replicaCount: 2
env:
NEXT_PUBLIC_APP_URL: "https://steelengine.yourdomain.com"
OPENAI_API_KEY: "sk-..."
postgresql:
persistence:
size: 50Gi
ingress:
enabled: true
className: nginx
tls:
enabled: true
app:
host: steelengine.yourdomain.comすべてのオプションについては helm/steelengine/values.yaml を参照してください。
外部データベース
postgresql:
enabled: false
externalDatabase:
enabled: true
host: "your-db-host"
port: 5432
username: "postgres"
password: "your-password"
database: "steelengine"
sslMode: "require"コマンド
# Port forward for local access
kubectl port-forward deployment/steelengine-steelengine-app 3000:3000 -n steelengine
# View logs
kubectl logs -l app.kubernetes.io/component=app -n steelengine --tail=100
# Upgrade
helm upgrade steelengine ./helm/steelengine --namespace steelengine
# Uninstall
helm uninstall steelengine --namespace steelengine