Quick Start
Create a Free deployment, understand readiness, and send your first messages with Docker or a native SDK
Create a Free deployment, connect to it, and read back your own messages. Docker is one option. The native SDK example works with Python, Rust, or TypeScript on your machine and does not require Docker.
If your deployment already says initialized, continue with network access and credentials. You do not need to find the Quick Start card in the Console to follow this guide.
1. Create Your Free Deployment
- Open laserdata.cloud and sign in with GitHub, Google, or Microsoft.
- Complete the profile form and accept the terms.
- Select your organization and its existing division.
- Open the Free deployment creation form and review the cloud and region.
- Create the deployment and open its page.
Signup requires a name and Title / Position. A new workspace also needs an Organization Name. For personal use, Student or Hobbyist is a valid title, and the organization can use your project name. If your employer blocks every supported sign-in provider, contact LaserData. There is no separate email-and-password signup.
An organization contains divisions, which contain environments. The starter flow creates sandbox when no existing environment is selected. Use these initial groups for your first deployment. Read Organization Hierarchy when you need more groups or members.
Free eligibility, resources, and region availability are described in Tiers & Storage. A Pro organization badge controls organization allowances, not the deployment price. Creating another organization does not provide another Free deployment.
2. Wait for the Deployment
Creation starts a background provisioning task. Keep the deployment page open or return to it later. Setup time varies with capacity and startup, so use the status and recent activity rather than a fixed countdown.
initialized means that the setup workflow completed. It does not prove that your browser or application can reach the endpoint. Check Heartbeats for recent node reports, then continue with the connection steps below.
Stream UI also requires permission to read this deployment. If its button remains disabled after initialization, read When the Console Blocks You. Logs and Metrics remain useful for identifying the failed step.
3. Limit Network Access
A network rule controls which source addresses can reach the deployment. A CIDR range describes a group of IP addresses. For one IPv4 address, use a /32 range.
Managed Free deployments start with a global 0.0.0.0/0 rule. This permits connections from every IPv4 address and is not a privacy feature. Authentication is still required.
Before sending application data:
- Open the deployment Access Rules tab.
- Add a rule for your current public IP or trusted network.
- Enable TCP for this example and HTTP if you will use Stream UI.
- Replace or remove the global rule.
Paid deployments need an access rule before clients can connect. Stream UI connects from your browser directly to the node, so its rule must permit your browser IP. See Access Rules.
4. Choose Your Credentials
Open Credentials in the deployment page and use Show or Copy only when needed. Copy the deployment domain and the Iggy credentials. A Cloud API key manages Cloud resources and cannot replace an Iggy password or Personal Access Token.
The initial Iggy administrator is named root. This is an Iggy account, not your operating-system root account or your Cloud organization role. Use the username shown in Credentials rather than substituting admin.
For an application, use a dedicated Iggy user with the required stream and topic permissions and issue its Personal Access Token. The token inherits that user's permissions. Do not include real passwords or tokens in screenshots, reports, or shared logs. See Authentication.
5. Send and Read Messages
Choose the client that fits your machine:
| Client | Requirements | Next step |
|---|---|---|
| Python | Python 3.10 or later | Open the SDK Quickstart and select Python |
| TypeScript | Node.js 22.14 or later | Open the SDK Quickstart and select TypeScript |
| Rust | The Rust version listed in the SDK guide | Open the SDK Quickstart and select Rust |
| Docker | Docker installed locally | Continue with the commands below |
For a Cloud deployment, use its connection details and skip the SDK guide's local-server setup. You do not need to install Iggy or Laser Stack on your machine.
Pull the Docker Image
docker pull ghcr.io/laserdata/quickstart:latestRun the Producer
Use your deployment domain and Iggy credentials:
docker run ghcr.io/laserdata/quickstart \
/producer {DOMAIN} \
-u {USERNAME} \
-p {PASSWORD}The producer sends messages to sample-stream and sample-topic. To use a Personal Access Token, replace both -u and -p arguments with -t {TOKEN}. Do not combine the two authentication methods.
Run the Consumer
Open another terminal with the same domain and authentication method:
docker run ghcr.io/laserdata/quickstart \
/consumer {DOMAIN} \
-u {USERNAME} \
-p {PASSWORD}The consumer prints the messages that it reads. This send-and-read result is the connection test. You can also inspect sample-stream and sample-topic in Stream UI when browser access is available.
Understand the First Metrics
A fresh deployment can contain platform streams, topics, and connected service clients. The health prober writes to _ld/prober every five seconds by default. Managed services also maintain their own records. These counts are not evidence that another customer is using your deployment.
Use Include prober in Metrics to distinguish probe traffic where the option is available. Inspect the topic used by your example to identify your own messages. The total counts vary with enabled services. Read Monitoring for health labels, system traffic, and shared-host metrics.
When the Console Blocks You
| Symptom | Next step |
|---|---|
| Stream UI is disabled | Make sure that status is initialized and your role includes deployment:read in this environment |
| Streams says Access denied | Read deployment permissions. A network rule cannot grant a missing Cloud permission |
| Backends requests deployment configuration access | This page requires deployment:config:manage. You do not need to configure a backend to send your first messages |
| The browser or client times out | Make sure that the rule permits your current source IP and the protocol you are using |
| A client rejects credentials | Use Iggy credentials or an Iggy Personal Access Token, not your SSO login or Cloud API key |
| Health Probe says Degraded while nodes look healthy | Compare the timestamps and meanings in Monitoring |
If you created the organization and are its only administrator, a deployment permission denial is not an instruction to find another administrator. Reload the Console and sign in again. If it persists, contact LaserData with the deployment ID, environment, time and timezone, and correlation ID if available. Do not send credentials.
Finish the Trial
To remove the deployment, open its Overview page and find Delete Deployment near the bottom. This action requires deployment:manage. If the action is missing for the organization owner, use the permission guidance above.
Delete only when you no longer need the deployment. Deletion permanently removes its resources and data. Protected mode adds an emailed code before deletion. It does not pause the server or block client traffic, and turning it off does not delete anything. See resource protection and the delete API.
Connection Options
| Option | Description |
|---|---|
-t, --token <TOKEN> | Use a Personal Access Token instead of username/password |
--transport <tcp|quic|http|ws> | Transport protocol (default: tcp) |
--no-tls | Disable TLS (local development only) |
--messages-count <N> | Number of messages to send or receive |
--stream <NAME> | Custom stream name |
--topic <NAME> | Custom topic name |
Run /producer --help or /consumer --help inside the container to list all flags.
Quick Start via API
To create a Free-tier deployment through the API, use your API key:
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/deployments/starter \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"cloud": "aws",
"region": "us-west-1"
}'Supply cloud and region. You can also supply environment_name, environment_id, or deployment_name. See Create a Starter Deployment for the full request.