Codapult
料金プラグインブログドキュメントデモ

開発者のためのSaaSボイラープレート

© 2026 Codapult. All rights reserved.

Built with Codapult

プロジェクト

  • 料金
  • プラグイン
  • ドキュメント
  • SaaSテンプレート比較

会社概要

  • お問い合わせ

法的情報

  • プライバシーポリシー
  • 利用規約
全記事

Getting Started

  • Introduction
  • Quick Start
  • Project Structure
  • License and Permitted Use

Configuration

  • Environment Variables
  • App Configuration

Authentication

  • Authentication
  • OAuth Providers
  • Two-Factor & Passwordless
  • Enterprise SSO (SAML)

Database

  • Database
  • Migrations

Teams

  • Teams & Organizations
  • Permissions & RBAC
  • SCIM Provisioning

Payments

  • Payments & Billing
  • Stripe Setup
  • LemonSqueezy Setup
  • Polar Setup
  • Payment Webhooks

Api

  • API Layer
  • tRPC
  • GraphQL

Ai

  • AI Features
  • Streaming Chat
  • RAG and Semantic Search
  • Quotas and Memory

Email

  • Email
  • Email Templates

Infrastructure

  • Infrastructure
  • Self-Hosting
  • File Storage
  • Docker
  • Background Jobs
  • Terraform & Pulumi
  • Kubernetes

Ui

  • UI & Theming

I18n

  • Internationalization

Content Management

  • Content Management

Admin

  • Admin Panel

Security

  • Security

Monitoring

  • Analytics & Monitoring

Modules

  • Module Architecture
  • Waitlist
  • Audit Log
  • White-Labeling
  • Workflow Automation
  • A/B Testing
  • Welcome Page
  • Referrals
  • GDPR Export and Deletion
  • Outgoing Webhooks

Plugins

  • Plugin System
  • AI Kit Plugin
  • CRM Plugin
  • Helpdesk Plugin
  • Email Marketing Plugin

Deployment

  • Deployment
  • Troubleshooting

Upgrading

  • Upgrading Codapult

Developer Tools

  • AI Agents & IDEs
  • MCP Server
  • Testing
Infrastructure

Terraform & Pulumi

Provision AWS infrastructure for Codapult with Terraform or Pulumi.

Codapult includes equivalent AWS infrastructure templates in infra/terraform/ and infra/pulumi/.

What Gets Provisioned

ResourcePurpose
VPC + public subnetsIsolated network across availability zones
Security groupsALB ingress and ECS task access
ECRDocker image registry with image scanning and lifecycle policy
ECS FargateServerless container hosting for the Next.js app
ALBHTTP/HTTPS load balancing with /api/health checks
ACM + Route53Optional TLS certificate and DNS record when domain_name is set
S3Optional private upload bucket for the S3 storage adapter
SSM Parameter StoreEncrypted application secrets
CloudWatchContainer logs and ECS observability

The templates do not provision a database. Use Turso/libSQL or managed PostgreSQL and pass the connection values as secrets.

Terraform

cd infra/terraform
cp terraform.tfvars.example terraform.tfvars
terraform init
terraform plan
terraform apply

Build and push the app image:

ECR_URL=$(terraform output -raw ecr_repository_url)
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin "$ECR_URL"
docker build -t "$ECR_URL:latest" ../..
docker push "$ECR_URL:latest"
aws ecs update-service \
  --cluster "$(terraform output -raw ecs_cluster_name)" \
  --service "$(terraform output -raw ecs_service_name)" \
  --force-new-deployment

Important variables:

VariableDescription
project, environment, aws_regionResource naming and target region
vpc_cidr, availability_zonesNetwork layout
container_cpu, container_memory, desired_countFargate sizing
domain_name, route53_zone_idOptional HTTPS custom domain
enable_s3_storageCreate private S3 upload bucket
turso_database_url, turso_auth_tokenTurso/libSQL database connection
better_auth_secretBetter Auth signing secret
stripe_secret_key, stripe_webhook_secretStripe billing
resend_api_key, openai_api_keyEmail and AI integrations

Pulumi

cd infra/pulumi
pnpm install
pulumi stack init production
pulumi config set aws:region us-east-1
pulumi config set tursoUrl "libsql://..." --secret
pulumi config set tursoToken "..." --secret
pulumi config set authSecret "..." --secret
pulumi up

Useful Pulumi config keys:

KeyDescription
project, environmentResource naming
containerPort, cpu, memory, desiredCountECS task configuration
domainName, route53ZoneIdOptional TLS and DNS
enableS3Optional S3 uploads bucket
healthCheckPathALB health check path
tursoUrl, tursoTokenDatabase connection
authSecret, stripeKey, stripeWebhook, resendKey, openaiKeyApp secrets

Outputs

Both templates expose the app URL, ECR repository URL, ECS cluster/service names, S3 bucket name, and CloudWatch log group. Use these outputs from CI/CD to push images and trigger ECS deployments.

Production Notes

  • Store secrets in terraform.tfvars only for local operator workflows; prefer CI secret stores for automated deployments.
  • Set domain_name/domainName only when the Route53 zone is available in the AWS account.
  • Use private subnets and NAT gateways if your compliance requirements prohibit public ECS task IPs; the included template favors a lower-cost public-subnet baseline.
  • Configure STORAGE_PROVIDER="s3" and S3 env vars when using the provisioned bucket for uploads.
Background JobsKubernetes