Direkt zum Hauptinhalt

Installation via Docker

Beschreibung:

SOGo Groupware mit ActiveSync CalDAV, Carddav.
Authentifizierung gegen einen Vorhandenen IMAP/Server.
Das heißt zum einloggen wird Email Adrese und KEnnwort benötigt.

Vorrausetzung:

Feste Öffentliche IP Adresse

Installation:

Server installation:

Vorraussetzung:

Den Offiziellen PGP Schlüssel

Zu finden unter : https://www.sogo.nu/download.html

So Sieht die URL aus, zum Zeitpunkt des Artikels auch der aktuelle

https://keys.openpgp.org/vks/v1/by-fingerprint/74FFC6D72B925A34B5D356BDF8A27B36A6E2EAE9

apt install docker.io docker-compose curl

Verzeichnis erstellen

mkdir /root/sogo

nun die .env Datei erstellen

nano /root/sogo/.env

Inhalt

# SOGo-Konfiguration
MAIL_DOMAIN=example.com
IMAP_SERVER=imap.example.com
SMTP_SERVER=smtp.example.com
SOGO_TIMEZONE=Europe/Berlin
SOGO_SESSION_MAX=2592000

# DB
POSTGRES_DB=sogo
POSTGRES_USER=sogo
POSTGRES_PASSWORD=supergeheim

# Reverse Proxy & SSL
DOMAIN_NAME=mail.example.com
EMAIL=admin@example.com

Supervisord

nano /root/sogo/supervisord.conf

Inhalt

[supervisord]
nodaemon=true

[program:sogo]
command=/usr/sbin/sogod -W -WOWorkersCount 2 -WOPort 20000
user=sogo
autorestart=true
stderr_logfile=/var/log/sogo/sogo.err.log
stdout_logfile=/var/log/sogo/sogo.out.log

Docker File

nano /root/sogo/Docker

Inhalt

FROM debian:bookworm

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    gnupg2 \
    apt-transport-https \
    ca-certificates \
    wget \
    lsb-release \
    sudo \
    supervisor \
    postgresql-client \
    sogo \
    sope4.9-gdl1-mysql \
    sope4.9-gdl1-postgresql \
    sogo-activesync \
    sogo-sieve \
    nginx \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

COPY supervisord.conf /etc/supervisor/conf.d/sogo.conf

VOLUME ["/var/lib/sogo", "/var/log/sogo"]

EXPOSE 20000

CMD ["/usr/bin/supervisord"]

Docker Compose File 

nano /root/sogo/docker-compose.yml

Inhalt

version: '3.8'

networks:
  sogo-net:
    driver: bridge

services:
  postgres:
    image: postgres:15
    container_name: sogo-postgres
    restart: always
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    networks:
     - sogo-net
    
  sogo:
    build: .
    container_name: sogo
    restart: always
    environment:
      - SOGO_SOGO_DEFAULTDOMAIN=${MAIL_DOMAIN}
      - SOGO_IMAP_SERVER=imaps://${IMAP_SERVER}:993
      - SOGO_SMTP_SERVER=smtps://${SMTP_SERVER}:465
      #diese beiden bei selbssignierten certs
      - SOGO_SOGoTrustProxyAuthentication=YES
      - SOGO_NSSAllowUntrustedCertificates=YES
      - SOGO_TIMEZONE=${SOGO_TIMEZONE}
      - SOGO_ENABLE_EAS=true
      - SOGO_SOGoMaximumSessionDuration=${SOGO_SESSION_MAX}
      - SOGO_SOGoMailDomain=${MAIL_DOMAIN}
      - SOGO_SOGoProfileURL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}/sogo_user_profile
      - SOGO_SOGoFolderInfoURL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}/sogo_folder_info
      - SOGO_SOGoACLsURL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}/sogo_acls
    volumes:
      - ./sogo_data:/var/lib/sogo
      - ./sogo_logs:/var/log/sogo
    depends_on:
      - postgres
    networks:
      - sogo-net

  caddy:
    image: caddy:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    command: caddy reverse-proxy --from ${DOMAIN_NAME} --to sogo:20000
    volumes:
      - ./data/caddy/data:/data
      - ./data/caddy/config:/config
    networks:
      - sogo-net


Nun den Starten

cd /root/sogo
docker-compose up -d

Nun einloggen auf https://example.com

Debug:

in der compose datei auf restart no stellen.

...
sogo:
    build: .
    container_name: sogo
    restart: no
...


Den container neustarten mit down up-d

Dann in den Container einloggen und sogo manuell starten

docker exec -it sogo bash

Nun im Container Sogo manuell starten

sudo -u sogo /usr/sbin/sogod -W -WOWorkersCount 1 -WOPort 20000