Docker-based SOGo groupware setup for UCS environments using existing infrastructure for authentication and mail services.
This project provides a simple way to run SOGo as a groupware frontend while reusing:
- UCS for LDAP and user management
- UCS Mail Server for IMAP and SMTP
- optional Keycloak for SSO
- Nginx Proxy Manager as reverse proxy
- optional Proxmox Mail Gateway for spam filtering
The intended architecture separates responsibilities between infrastructure components.
Internet
↓
Proxmox Mail Gateway (optional)
↓
UCS Mail Server
↓
SOGo (Docker)
↓
Nginx Proxy Manager
| Component | Responsibility |
|---|---|
| Proxmox Mail Gateway | Spam filtering and mail security |
| UCS Mail Server | Mail delivery via IMAP / SMTP |
| UCS LDAP | User and group management |
| SOGo | Webmail, calendar, contacts and groupware frontend |
| Nginx Proxy Manager | Reverse proxy and TLS termination |
| Keycloak (optional) | Single Sign-On |
This repository intentionally does not provide a full mail stack, but focuses on running SOGo as the frontend for an existing UCS environment.
- Docker-based deployment
- Integration with UCS LDAP
- Uses UCS mail infrastructure
- Optional Keycloak SSO
- Compatible with Nginx Proxy Manager
- Optional Proxmox Mail Gateway support
- Simple installation scripts
The following components must already exist:
- UCS Domain Controller
- UCS Mail Server (IMAP + SMTP)
- Docker
- Docker Compose
- Reverse proxy (recommended: Nginx Proxy Manager)
Optional:
- Proxmox Mail Gateway
- Keycloak
Clone the repository:
git clone https://github.com/wienni112/ucs-platform.git
cd ucs-platform/sogoCreate environment configuration:
cp .env.example .envEdit the configuration:
nano .envInstall and start SOGo:
./scripts/install.shVerify installation:
./scripts/healthcheck.shExample .env configuration:
SOGO_DOMAIN=mail.example.com
LDAP_HOST=ucs.example.local
LDAP_BASE=dc=example,dc=local
LDAP_BIND_DN=uid=sogo,cn=users,dc=example,dc=local
LDAP_PASSWORD=secret
IMAP_HOST=ucs.example.local
SMTP_HOST=ucs.example.localExample for Nginx Proxy Manager
Forward traffic to the SOGo container.
Recommended headers:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
Update the containers with:
./scripts/update.shCreate a backup with:
./scripts/backup.shBackups include:
- configuration
- environment variables
- database dump
Verify container and service status:
./scripts/healthcheck.shucs-platform
├── docs
├── scripts
├── sogo
│ ├── docker-compose.yml
│ ├── config
│ └── README.md
├── LICENSE
└── README.md
This project focuses on running SOGo as webmail and groupware frontend.
It does not replace UCS mail services.
Mail delivery, authentication and spam filtering remain handled by the UCS infrastructure.
Planned improvements include:
- Keycloak SSO integration
- automated Docker image builds
- UCS App Center integration
- improved installation scripts
- deployment automation
This project is licensed under the MIT License.
Contributions are welcome.
If you find a bug or want to propose a feature, please open an issue.
David Wieninger https://github.com/wienni112