First steps

This page assumes xListman is installed (Install) and walks you from nothing to a working list with a post on it.

1. Configure

Generate a config and set the public URL your users will see in emails.

./xlistman config init

Edit xlistman.yaml and set web.base_url to the origin people will use — for local testing http://localhost:8080 is fine. See Configuration for every option.

Validate the file:

./xlistman config check

2. Start the daemon

./xlistman serve

You should see the listen addresses and SMTP mode logged at startup.

3. Add a domain

A list lives under a virtual domain. Add yours:

./xlistman domain add example.com "Example domain"

4. Create a list

Create a discussion list with a first owner. The owner’s address becomes a Subscriber automatically if it isn’t one already:

./xlistman list create dev@example.com --type discussion --owner you@example.com

5. Sign in

Open the web UI at http://localhost:8080, enter you@example.com, and follow the magic link that arrives in your mail. There are no passwords — the link is your login, and it’s valid once.

6. Deliver mail

For the list to actually receive and send mail, your mail server has to hand the list domain to xListman over LMTP (or the pipe socket). This is the step people usually underestimate — set aside time for it. The MTA integration guide covers Postfix, exim, and pipe mode in detail.

Until then, smtp.mode: sink in the config writes outbound mail to a directory instead of relaying it, which is handy for exercising the inbound half without a mail server.

7. Post and subscribe

Write to dev@example.com and the post goes to the list. Subscribe a second address from the list page’s subscribe form — you’ll see double opt-in in action: the request lands as Pending, the confirmation email activates it, and the member appears on the list.

Next: Configuration, or jump straight to MTA integration when you’re ready to wire mail for real.