# One-click deploys

A one-click deploy is a ready-made stack: an app together with its database and settings, put into a project in one go. Browse them at [runalf.com/one-click](/one-click), or on a project's canvas under **+ Create → One-click deploy**.

## Deploying one

1. Pick one, for example **Umami** (web analytics).
2. Choose the project it goes into, or let it make a new one.
3. Fill in what it asks for. Most ask for nothing: passwords and keys are generated.
4. **Deploy**.

You get:

- its services in the project, wired to each other by [references](/docs/variables-and-secrets) (the app's `DATABASE_URL` is `${{umami-db.DATABASE_URL}}`, kept up to date);
- its databases made the way the dashboard makes [one](/docs/databases): private, always on, a snapshot every day;
- an HTTPS address for the public service;
- a note on what to do first (the default login, what to change);
- the generated passwords and keys, **shown once**. They're stored as [secrets](/docs/variables-and-secrets): copy them then if you'll need them elsewhere.

From there they're ordinary services and databases: change images, variables, scaling or domains like any other, or delete them.

They appear as one [group](#groups) on the project's canvas, named after the deploy.

A project can't hold two things with the same name, so the same deploy twice goes into two projects.

## Where they come from

The catalog is a public repository: [SmartAlfred/one-click](https://github.com/SmartAlfred/one-click). Each folder is one deploy and holds an [alf.toml](/docs/alf-toml), the same file a project keeps beside its code; the name, description and what the form asks for are in it under `[template]`. Alf reads the repository as it is, about once a minute, so a deploy merged there is on the page right after.

To add one, open a pull request there: its README explains the format. To deploy a stack of your own without publishing it, write it in your project's [alf.toml](/docs/alf-toml) and deploy that.

## Groups

A group is a frame on the project's canvas around what belongs together: services, computers and buckets. A one-click deploy, the services of one repository with their bucket, or whatever you decide.

- **Made for you**: a one-click deploy is one group; importing a compose file offers one, named after the repository.
- **Make your own**: **+ Create → Group**, give it a name and a colour, and tick what goes in it. Services, computers and buckets are listed apart.
- **Change one**: click its name on the canvas to rename it, recolour it or change what's in it. The **Settings** of a service, a computer or a bucket have its group too.
- **Move one**: drag it by its name; everything in it moves together.
- **Remove one**: what was in it stays where it is, ungrouped. A group with nothing left in it disappears by itself.

Groups are only for looking at. Nothing about how anything runs, reaches anything else or is billed depends on them, and each thing is in one group at most.

## The canvas is shared

Where the cards are on a project's canvas is the project's, not your browser's: when someone in your organization drags a card or a group, everyone sees it there within a few seconds. Cards nobody moved are laid out by themselves, each group as a block of its own.
