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
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 myapp
Show logs from the last 5 minutes:
miren logs --last 5m
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 Support for bug reports, feature requests, and community help
A Note on System Requirements
Miren runs several components—containerd, etcd, buildkit, metrics, and logging—that together use around 600MB of memory at idle. During builds, memory usage spikes as buildkit compiles your application. A single Rails app with Postgres can push total usage past 1.3GB during deployment, which is why we recommend 4GB minimum.
For storage, container images and build caches add up quickly. Base images for languages like Ruby or Python are 50-80MB compressed but expand on disk, and BuildKit caches intermediate build layers aggressively—keeping up to 10GB by default. A single Rails deployment can use 15-20GB between base images, build cache, and the container registry. With multiple apps and their version history, usage grows from there. Starting with 50GB gives you comfortable headroom; if you're tight on space, you'll see "no space left on device" errors during builds.
We're still learning about system requirements as more users deploy Miren in different contexts. If you have an interesting deployment scenario or resource constraints you'd like to discuss, come chat with us on Discord!
Next Steps
- Application Scaling - Configure how your app scales
- CLI Reference - Learn about all available commands
- App Commands - Detailed application command reference
- Disks - Persistent storage for your applications