A graphical user interface for managing Docker Mailserver. The application allows easy management of email accounts, aliases, and monitoring of server status.
- 📊 Dashboard with server status information
- 👤 Email account management (add, delete)
↔️ Email alias management- 🔧 Docker Mailserver connection configuration
- 🌐 Multilingual support (English, Polish)
- Node.js (v16+)
- npm
- Docker Mailserver (installed and configured)
The application consists of two parts:
- Backend: Node.js/Express API for communicating with Docker Mailserver
- Frontend: React user interface with i18n support
cd backend
npm installConfigure the .env file with the appropriate environment variables:
PORT=3001
SETUP_SCRIPT=/path/to/docker-mailserver/setup.sh
cd frontend
npm installcd backend
npm run devcd frontend
npm startAfter running both parts, the application will be available at http://localhost:3000
After the first launch, go to the "Settings" tab and configure:
- Path to the
setup.shscript from Docker Mailserver - Docker Mailserver container name
The application supports multiple languages:
- English
- Polish
Languages can be switched using the language selector in the top navigation bar.
There are two ways to deploy using Docker:
docker run -d \
--name mailserver-gui \
-p 80:80 \
-e DOCKER_CONTAINER=mailserver \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
dunajdev/docker-mailserver-gui:latestNote: Replace mailserver with the name of your docker-mailserver container.
# Build and start the container
docker-compose up -dThe application will be available at http://localhost
DOCKER_CONTAINER: Name of your docker-mailserver container (required)PORT: Internal port for the Node.js server (defaults to 3001)NODE_ENV: Node.js environment (defaults to production)
- Single container with both frontend and backend
- Nginx serves the React frontend and proxies API requests
- Communication with docker-mailserver via Docker API
- No need for shared networks between containers
- Only the Docker socket needs to be mounted
- Minimal configuration (just set the container name)
For detailed Docker setup instructions, please refer to:
- README.docker.md - Detailed Docker setup guide
- README.dockerhub.md - Docker Hub specific information
This project uses Prettier for consistent code formatting. Configuration is defined in the root .prettierrc.json file.
Formatting is automatically applied to staged files before each commit using Husky and lint-staged. This ensures that all committed code adheres to the defined style guide.
You can also manually format the code using the npm scripts available in both the backend and frontend directories:
# Navigate to the respective directory (backend or frontend)
cd backend # or cd frontend
# Format all relevant files
npm run format
# Check if all relevant files are formatted correctly
npm run format:checkMIT