Skip to content

Setup Manganese

Work in progress

This page is being written. The five steps below are complete enough to follow; screenshots and the finer points of each step are still to come.

Manganese lets the users of a "billing account", a company (or a business unit) or a person, create and operate App Servers on your Muppy instance, from the Manganese menu or from the Manganese MCP, without seeing the infrastructure underneath. Before the first of them can create an App Server, the Muppy administrator prepares five things: a Host to run the App Servers on, LXD on that Host, the App Definitions those users may pick, the pool Manganese provisions from when nobody chooses one, and the billing account itself.

1. Provision a Host for the Manganese App Servers

A Manganese App Server is an LXC container, so it needs a Host running LXD, with a PostgreSQL cluster for its databases and Traefik for its public URLs. Step 2 installs the three on any Muppy-managed Host running Ubuntu 24.04 or later.

Two ways to get one:

Either way, the step ends with a Host in the ==Managed== state.

2. Install LXD App. Server

Open the Host form and, from its Action menu, launch Install LXD App. Server. One wizard installs the three things an App Server host runs, each behind its own toggle, all on by default:

  • LXD, which runs the App Servers' containers. The wizard asks for the LXD channel, the LXC Capacity (how many containers may exist on this Host; it proposes the Host's RAM in GB divided by 1.5), the preseed template, and the network port range reserved for the containers' network proxies.
  • PostgreSQL, which serves the App Servers' databases: version, locale, cluster and its postgresql.conf template.
  • Traefik, which routes the App Servers' public URLs: the DNS domain, the Let's Encrypt email and the Traefik release.

Every value is pre-filled from the Muppy settings. Launch dispatches three tasks; follow them under Muppy ▸ Tasks.

When the LXD task completes, the Host carries two pools, shown on its LXD tab and listed under Muppy ▸ Configuration ▸ Ressources Allocation: an Instances Allocator named <host name>_LXC_ALLOCATOR, sized by the LXC Capacity above, and a Ports Allocator. The first one is what step 4 selects.

Ubuntu 24.04 or later, with facts up to date

The wizard refuses a Host running an older Ubuntu, and a Host whose facts have not been collected yet (it reads the OS version from them): run Update Facts on the Host first.

3. Expose the App Definitions

A Manganese user sees only the App Definitions whose Manganese toggle is on. Open Muppy ▸ Applications ▸ Applications and filter the list with the Manganese filter to see which ones already are. Then open each definition your users need and switch on Manganese, next to Dev Server Type.

The Odoo App Definitions Muppy ships come with the toggle on. A definition you wrote yourself starts with it off.

4. Set the default allocator pool

Open Muppy ▸ Configuration ▸ Settings, select Manganese in the left sidebar, set Default LXD allocator pool to the Instances Allocator of step 2, and save.

This is the pool Manganese provisions from when nobody chooses one: the Create App Server wizard shows it pre-selected, and an MCP call that names no pool gets it. Until it is set, creating an App Server from Manganese fails with a message that points back to this screen.

A pool with no company serves every billing account. A pool owned by a company only serves that company's users.

5. Create the Manganese billing account

Open Muppy ▸ Configuration ▸ Users ▸ Create Manganese Billing Account. Choose the account type, Personal or Company (a company account takes the company's name, tax ID and address), then fill in the First User (Admin): their name, their email, which is also their login, and whether to send the invitation email that lets them set their password.

Create Account creates the billing account and its first user, who is its Manganese administrator: the one who creates App Servers and adds the other users of the account.

What happens next

The administrator logs in, opens the Manganese menu and creates the first App Server from App. Servers ▸ Create App Server, picking one of the App Definitions of step 3. It lands in the pool of step 4, on the Host of step 1.