Skip to main content

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.
ServiceSlugCategorySubcategoryRepository
AWS DocumentDB Clusterdocumentdb-clusterDatabaseDocument Databaseservices-document-db/documentdb-cluster
AWS DocumentDB Databasedocumentdb-databaseDatabaseDocument Databaseservices-document-db/documentdb-database
AWS DynamoDBaws-dynamodbDatabaseNoSQL Databaseservices-dynamo-db/dynamodb
Aurora PostgreSQL DB (AWS)aurora-postgres-dbDatabaseRelational Databaseservices-postgresql-aurora/aurora-postgres-db
Aurora PostgreSQL Server (AWS)aurora-postgres-serverDatabaseRelational Databaseservices-postgresql-aurora/aurora-postgres-server
Azure Cosmos DBazure-cosmos-dbDatabaseNoSQL Databaseservices-azure-cosmos-db/azure-cosmos-db
Azure PostgreSQL Flexible Serverazure-postgresql-flexible-serverDatabaseRelational Databaseservices-postgresql-flexible-server/postgresql-flexible-server
Postgres DB (Kubernetes)postgres-dbDatabaseRelational Databaseservices-postgresql-k-8-s/postgres-db
RDS PostgreSQL (AWS)rds-postgresDatabaseRelational Databaseservices-postgresql-rds/rds-postgres-server
RDS PostgreSQL DB (AWS)rds-postgres-dbDatabaseRelational Databaseservices-postgresql-rds/rds-postgres-db
RDS SQL Server (AWS)rds-sqlserverDatabaseRelational Databaseservices-sqlserver-rds/rds-sqlserver-server
RDS SQL Server DB (AWS)rds-sqlserver-dbDatabaseRelational Databaseservices-sqlserver-rds/rds-sqlserver-db
Serverless Valkey (AWS)serverless-valkeyDatabaseIn-memory Cacheservices-valkey/valkey
AWS SNSaws-snsMessagingPub/Subservices-aws-sns/sns
AWS SQSaws-sqsMessagingQueueservices-aws-sqs/sqs
Endpoint Exposer (Istio)http-route-access-controlNetworkingEndpoint Exposureservices-endpoint-exposer
Path Router (Istio)path-routerNetworkingPath Routingservices-path-router
AWS S3 Bucketaws-s3-bucketStorageObject Storageservices-s-3/aws-s3-bucket
Azure Blob Storageazure-blob-storageStorageObject Storageservices-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:

  1. 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.
  2. Register the service in nullplatform. Use the service_definition and service_definition_agent_association modules 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>.
  3. 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.

note

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​