NOTE: This project is still a work in progress. You can already check it out if you're curious, but I can't guarantee it will work out for you.
Duckypanel is a domain admin level control panel for the modern WildDuck email server. DuckyPanel is just an Angular frontend project. It uses the DuckyAPI REST API as the backend.
Things currently working in DuckyPanel and DuckyAPI.
- Authentication
- API keys allow you to easily call DuckyAPI
- Packages that allow you to set user quotas, currently only for show. Nothing happens when going over quota.
- Domain management, including domain aliases
- Deletes aliased domains, accounts, forwarders and DKIM when deleting a domain
- Manage DKIM for the domains
- Email account management, including account aliases
- Forwarder management
- Only allows seeing/editing of accounts/forwarders on a domain if that domain is added to the account
- Domains can not be added to multiple accounts
- Get expected DNS records for a domain, and check the currently published records
- Sorting and filtering
More to come!
- DuckyAPI
- A web server (if in production)
- Node.js (if in development)
Very easy to get started with. See the instructions here.
Recommended if you want to scale and distribute the applications differently. As an example you could host DuckyPanel on a fast CDN.
Get the latest release here and unzip it.
Copy config/example.json to config/production.json
. Then edit apiUrl
to be your publically accessible url of DuckyAPI, so DuckyPanel knows where to reach it.
Now you can serve DuckyPanel with any webserver you're comfortable with. You will need to configure the server to fall back to index.html
for the routing to work properly. Here are some configuration examples for the most popular web servers.
$ git clone https://github.com/louis-lau/DuckyPanel
$ npm install
Copy src/config/example.json to src/config/development.json
. Then edit apiUrl
to be your DuckyApi url.
Run npm start
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files. Do not use this in production.