Getting Started
Get up and running with Miren in minutes.
Installation
Install Miren with a single command:
curl -fsSL https://miren.cloud/install | sudo bash
This script will:
- Download the latest Miren release
- Install the
mirenCLI binary - Set up the Miren server
- Configure everything you need to start deploying
System Requirements
- Operating System: Linux (kernel 5.10+)
- Architecture: x86_64 or arm64
- Memory: 4GB minimum, 8GB recommended
- Storage: 50GB minimum, 100GB recommended
See System Requirements for details on why these numbers matter.
Verify Installation
Check that Miren is installed correctly:
miren version
Start the Miren Server
(Skip this step if you are using our demo cluster)
Set up and start the Miren server:
sudo miren server install
This will:
- Download required components
- Register your cluster with miren.cloud (follow the prompts)
- Install and start the Miren systemd service
- Configure your CLI to use the local cluster
To skip cloud registration and run standalone:
sudo miren server install --without-cloud
Using Our Demo Cluster
Ask for access to our demo cluster in #miren-club on Discord.
# Once you have access, connect to the demo cluster
$ miren login
$ miren cluster add
Select a cluster to bind:
NAME ORGANIZATION ADDRESS
▸ miren-demo mirendev 1.2.3.4:8443 (+7)
Deploy Your First App
Miren automatically detects and builds your app. Supported languages include:
- Python: Detects
requirements.txt,Pipfile,pyproject.toml,uv.lock - JavaScript/Node: Detects
package.json(npm, yarn) - Bun: Detects
bun.lockb - Go: Detects
go.mod - Ruby: Detects
Gemfile - Rust: Detects
Cargo.toml
Don't see your language? You can always provide a Dockerfile.
Use miren deploy --analyze to see what Miren detects without actually building or deploying:
miren deploy --analyze
This shows the detected stack, services, environment variables, and how each service will be started.
Just run:
cd your-project
miren init
miren deploy
That's it! Miren will:
- Detect your language and framework
- Build a container image
- Deploy your app
- Show you the URL to access it
Note: Your first app gets a default route automatically. For subsequent apps, you'll need to configure routes manually. See Working with Routes.
"How do I configure multiple instances of my application?"
By default, you don't!
A core philosophy of Miren is that guessing replica/instance/copy counts is the wrong way to manage application scaling by default. For that reason, from day 1, Miren has built around autoscaling application instances. It does this using the same technique that Google Cloud Run uses, namely that as the amount of traffic to the application increases, additional instances are automatically launched.
And as the traffic reduces, the instance counts are automatically reduced.
If an application isn't stateless and needs to only run a certain number of copies, the application can be switched to fixed mode where you set the number of instances. This is commonly used for services that your application also needs, like databases, background workers, etc.
See Application Scaling for full documentation on configuring scaling behavior.
Check Your Application
View All Applications
miren app list
View Application Details
miren app
Or to view a specific app:
miren app --app myapp
View Deployment History
See past deployments:
miren app history
View Logs
See what your application is doing:
miren logs
View logs for a specific app:
miren logs app -a myapp
Show logs from the last 5 minutes:
miren logs --last 5m
See Logs for the full reference on filtering, build logs, system logs, and more.
Managing Applications
Initialize a New Application
If you want to set up a new project:
miren init
This creates the necessary configuration for your project.
Delete an Application
Remove an application and all its resources:
miren app delete myapp
Environment Variables
Manage environment variables for your application:
# View environment variables
miren env list
# Set an environment variable (then redeploy)
miren env set --env KEY=value
Persistent Storage with Disks
Need to store data that survives restarts? Add a disk to your service in .miren/app.toml:
[[services.db.disks]]
name = "myapp-data"
mount_path = "/data"
size_gb = 10
NOTE: Disks can only be used with fixed instance scheduled services, which the default web service is not.
Your data is automatically backed up to Miren Cloud. See Disks for full documentation.
Working with Routes
When you deploy your first application, Miren automatically creates a default route for it.
For additional apps, you'll need to either create a custom route:
miren route set myapp.example.com myapp
Or set the app as the new default:
miren route set-default myapp
View HTTP routes for your applications:
miren route
Troubleshooting
Application Won't Start
Check the logs:
miren logs
Can't Access Application
Verify the app is running:
miren app status
Check the routes:
miren route
Need Help?
- Check the CLI Reference for command details
- View the FAQ
- See Troubleshooting for diagnostics, bug reports, and community help
Next Steps
- App Configuration — Learn when and how to configure your app
- Application Scaling — Configure how your app scales
- CLI Reference — Learn about all available commands
- Disks — Persistent storage for your applications