diff --git a/autogpt_platform/frontend/src/components/CustomNode.tsx b/autogpt_platform/frontend/src/components/CustomNode.tsx index 6646fcdce3..050723ffb5 100644 --- a/autogpt_platform/frontend/src/components/CustomNode.tsx +++ b/autogpt_platform/frontend/src/components/CustomNode.tsx @@ -607,7 +607,7 @@ export function CustomNode({ data, id, width, height }: NodeProps) { {" "} {blockCost.cost_amount}{" "} - per {blockCost.cost_type} + credits/{blockCost.cost_type} )} diff --git a/autogpt_platform/infra/helm/autogpt-market/templates/backendconfig.yaml b/autogpt_platform/infra/helm/autogpt-market/templates/backendconfig.yaml index e7f7c8a8f1..0e7c138d37 100644 --- a/autogpt_platform/infra/helm/autogpt-market/templates/backendconfig.yaml +++ b/autogpt_platform/infra/helm/autogpt-market/templates/backendconfig.yaml @@ -1,7 +1,7 @@ apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: - name: {{ include "autogpt-market.fullname" . }} + name: {{ include "autogpt-market.fullname" . }}-backend-config spec: customRequestHeaders: headers: diff --git a/autogpt_platform/infra/helm/autogpt-market/templates/deployment.yaml b/autogpt_platform/infra/helm/autogpt-market/templates/deployment.yaml index a1b10c22e5..cb6d7faa45 100644 --- a/autogpt_platform/infra/helm/autogpt-market/templates/deployment.yaml +++ b/autogpt_platform/infra/helm/autogpt-market/templates/deployment.yaml @@ -41,7 +41,7 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - name: http - containerPort: {{ .Values.service.port }} + containerPort: {{ .Values.service.targetPort }} protocol: TCP livenessProbe: {{- toYaml .Values.livenessProbe | nindent 12 }} @@ -53,15 +53,6 @@ spec: volumeMounts: {{- toYaml . | nindent 12 }} {{- end }} - - name: cloud-sql-proxy - image: "{{ .Values.cloudSqlProxy.image.repository }}:{{ .Values.cloudSqlProxy.image.tag }}" - args: - - "--structured-logs" - {{- if .Values.cloudSqlProxy.usePrivateIp }} - - "--private-ip" - {{- end }} - - "--port={{ .Values.cloudSqlProxy.port }}" - - "{{ .Values.cloudSqlProxy.instanceConnectionName }}" {{- with .Values.volumes }} volumes: {{- toYaml . | nindent 8 }} diff --git a/autogpt_platform/infra/helm/autogpt-market/templates/service.yaml b/autogpt_platform/infra/helm/autogpt-market/templates/service.yaml index ca126063dc..3895c760f8 100644 --- a/autogpt_platform/infra/helm/autogpt-market/templates/service.yaml +++ b/autogpt_platform/infra/helm/autogpt-market/templates/service.yaml @@ -4,11 +4,15 @@ metadata: name: {{ include "autogpt-market.fullname" . }} labels: {{- include "autogpt-market.labels" . | nindent 4 }} + {{- with .Values.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} spec: type: {{ .Values.service.type }} ports: - port: {{ .Values.service.port }} - targetPort: http + targetPort: {{ .Values.service.targetPort }} protocol: TCP name: http selector: diff --git a/autogpt_platform/infra/helm/autogpt-market/values.dev.yaml b/autogpt_platform/infra/helm/autogpt-market/values.dev.yaml index 27fe4b2bd4..e8588fe0f4 100644 --- a/autogpt_platform/infra/helm/autogpt-market/values.dev.yaml +++ b/autogpt_platform/infra/helm/autogpt-market/values.dev.yaml @@ -12,11 +12,11 @@ serviceAccount: service: type: ClusterIP - port: 8000 - targetPort: 8005 + port: 8015 + targetPort: 8015 annotations: cloud.google.com/neg: '{"ingress": true}' - beta.cloud.google.com/backend-config: '{"default": "autogpt-market"}' + beta.cloud.google.com/backend-config: '{"default": "autogpt-market-backend-config"}' ingress: enabled: true @@ -25,7 +25,7 @@ ingress: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: "agpt-dev-agpt-market-ip" networking.gke.io/managed-certificates: "autogpt-market-cert" - kubernetes.io/ingress.allow-http: "false" + networking.gke.io/v1beta1.FrontendConfig: "autogpt-market-frontend-config" hosts: - host: dev-market.agpt.co paths: @@ -34,12 +34,12 @@ ingress: backend: service: name: autogpt-market - port: 8000 + port: 8015 defaultBackend: service: name: autogpt-market port: - number: 8000 + number: 8015 resources: requests: @@ -52,7 +52,7 @@ resources: livenessProbe: httpGet: path: /health - port: 8000 + port: 8015 initialDelaySeconds: 60 periodSeconds: 20 timeoutSeconds: 10 @@ -60,7 +60,7 @@ livenessProbe: readinessProbe: httpGet: path: /health - port: 8000 + port: 8015 initialDelaySeconds: 60 periodSeconds: 20 timeoutSeconds: 10 @@ -95,9 +95,14 @@ cors: env: APP_ENV: "dev" + PYRO_HOST: "0.0.0.0" ENABLE_AUTH: "true" SUPABASE_JWT_SECRET: "" - SUPABASE_ANON_KEY: "" - SUPABASE_URL: "" DATABASE_URL: "" + SENTRY_DSN: "" + SUPABASE_SERVICE_ROLE_KEY: "" + GITHUB_CLIENT_ID: "" + GITHUB_CLIENT_SECRET: "" + FRONTEND_BASE_URL: "https://dev-builder.agpt.co/" + SUPABASE_URL: "https://adfjtextkuilwuhzdjpf.supabase.co" BACKEND_CORS_ALLOW_ORIGINS: "https://dev-builder.agpt.co" \ No newline at end of file diff --git a/autogpt_platform/infra/helm/autogpt-market/values.prod.yaml b/autogpt_platform/infra/helm/autogpt-market/values.prod.yaml new file mode 100644 index 0000000000..702dcce863 --- /dev/null +++ b/autogpt_platform/infra/helm/autogpt-market/values.prod.yaml @@ -0,0 +1,109 @@ +# prod values, overwrite base values as needed. + +image: + repository: us-east1-docker.pkg.dev/agpt-prod/agpt-market-prod/agpt-market-prod + pullPolicy: Always + tag: "latest" + +serviceAccount: + annotations: + iam.gke.io/gcp-service-account: "prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + name: "prod-agpt-market-sa" + +service: + type: ClusterIP + port: 8015 + targetPort: 8015 + annotations: + cloud.google.com/neg: '{"ingress": true}' + beta.cloud.google.com/backend-config: '{"default": "autogpt-market-backend-config"}' + +ingress: + enabled: true + className: "gce" + annotations: + kubernetes.io/ingress.class: gce + kubernetes.io/ingress.global-static-ip-name: "agpt-prod-agpt-market-ip" + networking.gke.io/managed-certificates: "autogpt-market-cert" + networking.gke.io/v1beta1.FrontendConfig: "autogpt-market-frontend-config" + hosts: + - host: market.agpt.co + paths: + - path: / + pathType: Prefix + backend: + service: + name: autogpt-market + port: 8015 + defaultBackend: + service: + name: autogpt-market + port: + number: 8015 + +resources: + requests: + cpu: 200m + memory: 1Gi + limits: + cpu: 2 + memory: 2Gi + +livenessProbe: + httpGet: + path: /health + port: 8015 + initialDelaySeconds: 60 + periodSeconds: 20 + timeoutSeconds: 10 + failureThreshold: 12 +readinessProbe: + httpGet: + path: /health + port: 8015 + initialDelaySeconds: 60 + periodSeconds: 20 + timeoutSeconds: 10 + failureThreshold: 12 + +domain: "market.agpt.co" + +cloudSqlProxy: + image: + repository: gcr.io/cloud-sql-connectors/cloud-sql-proxy + tag: 2.11.4 + instanceConnectionName: "agpt-prod:us-central1:agpt-server-prod" + port: 5432 + resources: + requests: + memory: "2Gi" + cpu: "1" + +cors: + allowOrigin: "https://platform.agpt.co" + allowMethods: + - "GET" + - "POST" + - "PUT" + - "DELETE" + - "OPTIONS" + allowHeaders: + - "Content-Type" + - "Authorization" + maxAge: 3600 + allowCredentials: true + +env: + APP_ENV: "prod" + PYRO_HOST: "0.0.0.0" + ENABLE_AUTH: "true" + SUPABASE_JWT_SECRET: "" + DATABASE_URL: "" + SENTRY_DSN: "" + SUPABASE_SERVICE_ROLE_KEY: "" + GITHUB_CLIENT_ID: "" + GITHUB_CLIENT_SECRET: "" + FRONTEND_BASE_URL: "https://platform.agpt.co/" + SUPABASE_URL: "https://bgwpwdsxblryihinutbx.supabase.co" + BACKEND_CORS_ALLOW_ORIGINS: "https://platform.agpt.co" + diff --git a/autogpt_platform/infra/helm/autogpt-market/values.yaml b/autogpt_platform/infra/helm/autogpt-market/values.yaml index b5227f5f09..6b6bd1add9 100644 --- a/autogpt_platform/infra/helm/autogpt-market/values.yaml +++ b/autogpt_platform/infra/helm/autogpt-market/values.yaml @@ -71,15 +71,6 @@ resources: {} # cpu: 100m # memory: 128Mi -livenessProbe: - httpGet: - path: / - port: http -readinessProbe: - httpGet: - path: / - port: http - autoscaling: enabled: false minReplicas: 1 diff --git a/autogpt_platform/infra/helm/redis-values.prod.yaml b/autogpt_platform/infra/helm/redis-values.prod.yaml new file mode 100644 index 0000000000..ea59144775 --- /dev/null +++ b/autogpt_platform/infra/helm/redis-values.prod.yaml @@ -0,0 +1,15 @@ +architecture: standalone +auth: + enabled: true + password: "" #empty on purpose +master: + persistence: + enabled: true + size: 3Gi + configmap: + redis.conf: | + bind 127.0.0.1 + protected-mode yes + requirepass password +replica: + replicaCount: 0 \ No newline at end of file diff --git a/autogpt_platform/infra/terraform/environments/prod.tfvars b/autogpt_platform/infra/terraform/environments/prod.tfvars new file mode 100644 index 0000000000..43f2ae63c1 --- /dev/null +++ b/autogpt_platform/infra/terraform/environments/prod.tfvars @@ -0,0 +1,100 @@ +project_id = "agpt-prod" +region = "us-central1" +zone = "us-central1-a" +network_name = "prod-gke-network" +subnet_name = "prod-gke-subnet" +subnet_cidr = "10.0.0.0/24" +cluster_name = "prod-gke-cluster" +node_count = 4 +node_pool_name = "prod-main-pool" +machine_type = "e2-highmem-4" +disk_size_gb = 100 +static_ip_names = ["agpt-backend-ip", "agpt-frontend-ip", "agpt-ws-backend-ip", "agpt-market-ip"] + + +service_accounts = { + "prod-agpt-backend-sa" = { + display_name = "AutoGPT prod backend Account" + description = "Service account for agpt prod backend" + }, + "prod-agpt-frontend-sa" = { + display_name = "AutoGPT prod frontend Account" + description = "Service account for agpt prod frontend" + }, + "prod-agpt-ws-backend-sa" = { + display_name = "AutoGPT prod WebSocket backend Account" + description = "Service account for agpt prod websocket backend" + }, + "prod-agpt-market-sa" = { + display_name = "AutoGPT prod Market backend Account" + description = "Service account for agpt prod market backend" + } +} + +workload_identity_bindings = { + "prod-agpt-backend-workload-identity" = { + service_account_name = "prod-agpt-backend-sa" + namespace = "prod-agpt" + ksa_name = "prod-agpt-backend-sa" + }, + "prod-agpt-frontend-workload-identity" = { + service_account_name = "prod-agpt-frontend-sa" + namespace = "prod-agpt" + ksa_name = "prod-agpt-frontend-sa" + }, + "prod-agpt-ws-backend-workload-identity" = { + service_account_name = "prod-agpt-ws-backend-sa" + namespace = "prod-agpt" + ksa_name = "prod-agpt-ws-backend-sa" + }, + "prod-agpt-market-workload-identity" = { + service_account_name = "prod-agpt-market-sa" + namespace = "prod-agpt" + ksa_name = "prod-agpt-market-sa" + } +} + +role_bindings = { + "roles/container.developer" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-ws-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ], + "roles/cloudsql.client" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ], + "roles/cloudsql.editor" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ], + "roles/cloudsql.instanceUser" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ], + "roles/iam.workloadIdentityUser" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-ws-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ] + "roles/compute.networkUser" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-ws-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ], + "roles/container.hostServiceAgentUser" = [ + "serviceAccount:prod-agpt-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-frontend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-ws-backend-sa@agpt-prod.iam.gserviceaccount.com", + "serviceAccount:prod-agpt-market-sa@agpt-prod.iam.gserviceaccount.com" + ] +} + +pods_ip_cidr_range = "10.1.0.0/16" +services_ip_cidr_range = "10.2.0.0/20" \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index a397a00b65..28dc686c43 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,6 +1,8 @@ site_name: AutoGPT Documentation site_url: https://docs.agpt.co/ repo_url: https://github.com/Significant-Gravitas/AutoGPT +repo_name: AutoGPT +edit_uri: edit/master/docs/content docs_dir: content nav: - Home: index.md @@ -10,7 +12,7 @@ nav: - Setup: server/setup.md - Advanced Setup: server/advanced_setup.md - Using Ollama: server/ollama.md - - Using D-ID: serveer/d_id.md + - Using D-ID: server/d_id.md - AutoGPT Agent: - Introduction: AutoGPT/index.md @@ -69,14 +71,27 @@ nav: theme: name: material custom_dir: overrides + language: en icon: + repo: fontawesome/brands/github logo: material/book-open-variant - favicon: favicon.png + edit: material/pencil + view: material/eye + favicon: assets/favicon.png features: - navigation.sections - - toc.follow + - navigation.footer - navigation.top + - navigation.tracking + - navigation.tabs + # - navigation.path + - toc.follow + - toc.integrate + - content.action.edit + - content.action.view - content.code.copy + - content.code.annotate + - content.tabs.link palette: # Palette toggle for light mode - media: "(prefers-color-scheme: light)" @@ -137,6 +152,20 @@ markdown_extensions: plugins: - table-reader - search + - git-revision-date-localized: + enable_creation_date: true + + +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/Significant-Gravitas/AutoGPT + - icon: fontawesome/brands/x-twitter + link: https://x.com/Auto_GPT + - icon: fontawesome/brands/instagram + link: https://www.instagram.com/autogpt/ + - icon: fontawesome/brands/discord + link: https://discord.gg/autogpt extra_javascript: - https://unpkg.com/tablesort@5.3.0/dist/tablesort.min.js diff --git a/docs/favicon.png b/docs/overrides/assets/favicon.png similarity index 100% rename from docs/favicon.png rename to docs/overrides/assets/favicon.png diff --git a/docs/requirements.txt b/docs/requirements.txt index 074e062b04..73c7682333 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,3 +2,4 @@ mkdocs mkdocs-material mkdocs-table-reader-plugin pymdown-extensions +mkdocs-git-revision-date-localized-plugin