Sample services
Sample services are working examples that nullplatform maintains in public repositories. Each one ships its service specification, workflows, and the OpenTofu code your agent runs to provision it, so you can adopt it as is or use it as the starting point for your own. They are examples, not the limit of what you can run: any service you craft works the same way.
Samples
Each row is one service, as defined in the latest release of its repository:
- Service: the service's name. If the name doesn't say where the service runs, the platform appears in parentheses, such as (AWS) or (Kubernetes).
- Slug: the service's unique identifier. It stays the same even if the name changes.
- Repository: links to the folder with the service's code. Some repositories hold two related services, such as a database server and the databases that run on it.
| Service | Slug | Category | Subcategory | Repository |
|---|---|---|---|---|
| AWS DocumentDB Cluster | documentdb-cluster | Database | Document Database | services-document-db/documentdb-cluster |
| AWS DocumentDB Database | documentdb-database | Database | Document Database | services-document-db/documentdb-database |
| AWS DynamoDB | aws-dynamodb | Database | NoSQL Database | services-dynamo-db/dynamodb |
| Aurora PostgreSQL DB (AWS) | aurora-postgres-db | Database | Relational Database | services-postgresql-aurora/aurora-postgres-db |
| Aurora PostgreSQL Server (AWS) | aurora-postgres-server | Database | Relational Database | services-postgresql-aurora/aurora-postgres-server |
| Azure Cosmos DB | azure-cosmos-db | Database | NoSQL Database | services-azure-cosmos-db/azure-cosmos-db |
| Azure PostgreSQL Flexible Server | azure-postgresql-flexible-server | Database | Relational Database | services-postgresql-flexible-server/postgresql-flexible-server |
| Postgres DB (Kubernetes) | postgres-db | Database | Relational Database | services-postgresql-k-8-s/postgres-db |
| RDS PostgreSQL (AWS) | rds-postgres | Database | Relational Database | services-postgresql-rds/rds-postgres-server |
| RDS PostgreSQL DB (AWS) | rds-postgres-db | Database | Relational Database | services-postgresql-rds/rds-postgres-db |
| RDS SQL Server (AWS) | rds-sqlserver | Database | Relational Database | services-sqlserver-rds/rds-sqlserver-server |
| RDS SQL Server DB (AWS) | rds-sqlserver-db | Database | Relational Database | services-sqlserver-rds/rds-sqlserver-db |
| Serverless Valkey (AWS) | serverless-valkey | Database | In-memory Cache | services-valkey/valkey |
| AWS SNS | aws-sns | Messaging | Pub/Sub | services-aws-sns/sns |
| AWS SQS | aws-sqs | Messaging | Queue | services-aws-sqs/sqs |
| Endpoint Exposer (Istio) | http-route-access-control | Networking | Endpoint Exposure | services-endpoint-exposer |
| Path Router (Istio) | path-router | Networking | Path Routing | services-path-router |
| AWS S3 Bucket | aws-s3-bucket | Storage | Object Storage | services-s-3/aws-s3-bucket |
| Azure Blob Storage | azure-blob-storage | Storage | Object Storage | services-blob-storage/azure-blob-storage |
Each repository has its own releases and changelog. A service that's no longer maintained stays listed, with Deprecated at the start of its name.
How adopting a sample service works
The repository's README has the exact steps and values for each service. The flow is the same for all of them:
- Grant the agent its cloud permissions. Apply the requirements module in
<path>/specs/requirements/<cloud>in your cloud account. It sets up the permissions your agent needs to provision the service. - Register the service in nullplatform. Use the
service_definitionandservice_definition_agent_associationmodules from tofu-modules. The first one registers the service specification from the repository, and the second one routes the service's actions to your agents. Some repositories include a ready-to-apply module for this in<path>/specs/install/<cloud>. - Complete the service's own prerequisites. Some services need more before their first run, such as a state bucket, agent environment variables, or DNS records.
Once it's registered, developers create the service from the nullplatform UI and link it to their applications, like any other service.
You need a running agent with a notification channel for your services before you adopt one. If you don't have it yet, set it up first.
Next steps
- Craft a service: build your own service or adapt a sample
- Set up runners: get an agent ready to provision services
- Provisioning overview: how nullplatform relays service actions to your agent
- Manage and provision services: create services and link them to applications