Installation
OwnMaily installs via a single command. The script installs Docker if needed, downloads the Docker Compose configuration, and starts the stack. The whole process takes a few minutes.
Run the install script
SSH into your server and run:
curl -fsSL https://ownmaily.com/install.sh | bash The script will walk you through a short setup. Follow the prompts.
Enter your installation URL
The first thing the script asks for is your Installation URL. This is the
public address where your OwnMaily instance will be reachable - for example,
https://mail.yourdomain.com.
This URL is baked into your configuration and used to generate links in emails. Getting it right matters. See What is the Installation URL? for a full explanation and guidance for your specific situation.
Wait for the stack to start
After you confirm the URL, the script pulls the Docker images and starts the containers. This usually takes 1-2 minutes on a fresh server, longer on a slow connection. You will see log output as the containers initialize.
When the stack is ready, the script prints the URL where OwnMaily is running. You should also see a health check confirmation.
Open the app in your browser
Navigate to your Installation URL in a browser. You should see the OwnMaily setup wizard. If the page does not load, wait 30 seconds and try again - the app container may still be initializing.
If it still does not load, run docker logs ownmaily-app-1 to see what is happening.
See Troubleshooting for common issues.
Complete the setup wizard
The wizard runs the first time you open the app. It has five steps:
- Welcome. Overview of what you need. Click Continue.
- Owner account. Set your email address and password. This is the only admin account - OwnMaily is single-user.
- General settings. Set your site name, Installation URL, timezone, and physical address. The Installation URL is pre-filled from your browser - verify it is correct before continuing. See What is the Installation URL?
- Connect SMTP. Select your provider (Resend, Mailgun, or Amazon SES) and enter your API credentials. You can skip this and add it later in Settings.
- Send a test email. Confirm delivery is working. You can also skip this and finish setup directly.
If you skip SMTP, emails will not send. The app falls back to a mode that logs email attempts to the console but never delivers them. There is no error in the UI - campaigns will show as "sent" with zero opens. Configure SMTP before sending to real subscribers. See Emails not sending.
You are in
After completing the wizard, you land on the OwnMaily dashboard. From here you can import subscribers, create campaigns, and configure your settings.
If you are setting up for production use, continue to the Production Checklist to make sure everything is properly configured before you start sending.