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:

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
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:
    image: alinto/sogo:latest
    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