Postix is a simple administration tool tailored for your vmail server (Dovecot, Postfix, MySQL).
  • HTML 47.8%
  • CSS 27%
  • C# 23%
  • JavaScript 1.3%
  • Dockerfile 0.9%
Find a file
twerner 93f6ec3bdd
All checks were successful
Build and Deploy WebClient / build-and-push (push) Successful in 3s
Merge pull request 'feature/auth' (#2) from feature/auth into main
Reviewed-on: #2
2026-03-14 16:11:13 +00:00
.forgejo/workflows remove useless build step 2026-03-14 16:14:22 +01:00
.github/ISSUE_TEMPLATE chore: remove CI/CD and tooling configuration files 2026-02-20 18:30:03 +01:00
assets feature/refactor-architecture (#1) 2026-02-20 17:19:33 +00:00
src Add Serilog logging to WebClient with file and console sinks 2026-03-14 17:10:35 +01:00
.gitignore feature/refactor-architecture (#1) 2026-02-20 17:19:33 +00:00
.repomixignore feature/refactor-architecture (#1) 2026-02-20 17:19:33 +00:00
AGENTS.md docs(readme): restructure README with improved sections and build instructions 2026-02-26 20:22:21 +01:00
docker-compose.yml build(config): rename postix-web service to webclient in docker-compose 2026-02-26 21:00:11 +01:00
GEMINI.md feature/refactor-architecture (#1) 2026-02-20 17:19:33 +00:00
LICENSE added license 2024-02-07 16:29:36 +01:00
README.md docs(readme): restructure README with improved sections and build instructions 2026-02-26 20:22:21 +01:00
repomix.config.json feature/refactor-architecture (#1) 2026-02-20 17:19:33 +00:00

codecov

Logo

Postix

Postix is a simple administration tool tailored for your vmail server (Dovecot, Postfix, MySQL).
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Project Structure
  3. Getting Started
  4. Build & Run
  5. Technology Stack
  6. Roadmap
  7. Contributing
  8. License
  9. Contact

About The Project

Postix is a web interface for managing your vmail server (Dovecot, Postfix, MySQL). You can add, edit, and delete domains, accounts, and aliases.

The application consists of a REST API, a Blazor front-end and two databases. One database is a PostgreSQL which acts as the Postix application database, while the other is the vmail database which holds the mail server configurations.

(back to top)

Project Structure

src/
├── Postix.sln
├── DataClasses/               # Logic-less POCOs
├── DomainManagement.Contract/ # Domain interfaces
├── DomainManagement/          # Domain logic
├── AccountManagement.Contract/
├── AccountManagement/
├── AliasManagement.Contract/
├── AliasManagement/
├── VmailDataStoring.Contract/ # Persistence interfaces
├── VmailDataStoring/          # EF Core repositories
├── Workflows.Contract/        # Workflow interfaces
├── Workflows/                 # Business process orchestration
├── DiMappings/                # Dependency injection
├── ServiceClient/             # REST API (ASP.NET Core)
└── WebClient/                 # Blazor UI

(back to top)

Getting Started

  1. Clone the repo

    git clone https://github.com/to-wer/Postix.git
    
  2. Create appsettings.Development.json with local configuration

  3. Start databases with Docker Compose:

    docker-compose up -d
    
  4. Build the solution:

    cd src
    dotnet build Postix.sln
    

(back to top)

Build & Run

REST API (ServiceClient)

dotnet run --project src/ServiceClient/ServiceClient.csproj

Blazor UI (WebClient)

dotnet run --project src/WebClient/WebClient.csproj

Publish WebClient (Docker)

docker build -t postix-webclient -f src/WebClient/Dockerfile src/

(back to top)

Technology Stack

  • .NET 10.0
  • C# 13
  • ASP.NET Core
  • Blazor
  • Entity Framework Core
  • Tabler.io
  • PostgreSQL
  • MySQL

(back to top)

Roadmap

  • Entra-ID Authentication

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Torsten Werner - @TorstenWerner10 - tw@to-wer.dev

Project Link: https://github.com/to-wer/Postix

(back to top)