Compare commits

...

10 Commits

9 changed files with 103 additions and 38 deletions

View File

@ -89,7 +89,7 @@ services:
domain: "matrix.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/matrix"
pre_deploy_tasks: true
version: v1.90.0
version: v1.98.0
postgres_version: 15-alpine
allowed_sender_domain: true
@ -97,7 +97,7 @@ services:
domain: "element.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/element"
pre_deploy_tasks: true
version: v1.11.43
version: v1.11.51
privatebin:
domain: "paste.{{ base_domain }}"
@ -156,6 +156,11 @@ services:
- "www.cryptoaarhus.dk"
volume_folder: "{{ volume_website_folder }}/cryptoaarhus"
phanpy_website:
domain: "phanpy.data.coop"
volume_folder: "{{ volume_website_folder }}/phanpy"
version: latest
drone:
domain: "drone.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/drone"
@ -167,7 +172,9 @@ services:
pre_deploy_tasks: true
dns: 192.168.203.254
subnet: 192.168.203.0/24
version: "1.9"
version: "2.0"
postgres_version: 14-alpine
redis_version: alpine
mastodon:
domain: "social.{{ base_domain }}"

View File

@ -21,12 +21,6 @@
- docker-ce
- docker-compose-plugin
- name: Create docker-compose symlink
ansible.builtin.file:
name: /usr/local/bin/docker-compose
src: /usr/libexec/docker/cli-plugins/docker-compose
state: link
- name: Configure cron job to prune unused Docker data weekly
cron:
name: Prune unused Docker data

View File

@ -19,7 +19,7 @@
- overrides/dovecot
- overrides/postfix
- overrides/rspamd
- overrides/rainloop
- overrides/snappymail
loop_control:
loop_var: volume

View File

@ -1,10 +1,10 @@
# vim: ft=yaml.docker-compose
version: '3.6'
version: "3.8"
services:
postgres:
image: postgres:14-alpine
restart: always
image: postgres:{{ services.mailu.postgres_version }}
restart: unless-stopped
environment:
POSTGRES_DB: mailu
POSTGRES_USER: mailu
@ -15,8 +15,8 @@ services:
- "{{ services.mailu.dns }}"
redis:
image: redis:alpine
restart: always
image: redis:{{ services.mailu.redis_version }}
restart: unless-stopped
volumes:
- "./redis:/data"
depends_on:
@ -26,7 +26,7 @@ services:
front:
image: ghcr.io/mailu/nginx:{{ services.mailu.version }}
restart: always
restart: unless-stopped
env_file: mailu.env
environment:
VIRTUAL_HOST: "{{ services.mailu.domain }}"
@ -38,17 +38,25 @@ services:
expose:
- "80"
ports:
- "993:993"
- "25:25"
- "587:587"
- "465:465"
- "587:587"
- "110:110"
- "995:995"
- "143:143"
- "993:993"
networks:
- default
- webmail
- external_services
depends_on:
- resolver
dns:
- "{{ services.mailu.dns }}"
resolver:
image: ghcr.io/mailu/unbound:{{ services.mailu.version }}
restart: always
restart: unless-stopped
env_file: mailu.env
networks:
default:
@ -56,11 +64,15 @@ services:
admin:
image: ghcr.io/mailu/admin:{{ services.mailu.version }}
restart: always
env_file: "{{ services.mailu.volume_folder }}/mailu.env"
restart: unless-stopped
env_file: mailu.env
volumes:
- "./data:/data"
- "./dkim:/dkim"
networks:
default:
aliases:
- admin.mailu
depends_on:
- redis
- resolver
@ -69,7 +81,7 @@ services:
imap:
image: ghcr.io/mailu/dovecot:{{ services.mailu.version }}
restart: always
restart: unless-stopped
env_file: mailu.env
volumes:
- "./mail:/mail"
@ -82,7 +94,7 @@ services:
smtp:
image: ghcr.io/mailu/postfix:{{ services.mailu.version }}
restart: always
restart: unless-stopped
env_file: mailu.env
volumes:
- "./mailqueue:/queue"
@ -93,32 +105,33 @@ services:
dns:
- "{{ services.mailu.dns }}"
antispam:
image: ghcr.io/mailu/rspamd:{{ services.mailu.version }}
hostname: antispam
restart: always
restart: unless-stopped
env_file: mailu.env
volumes:
- "./filter:/var/lib/rspamd"
- "./overrides/rspamd:/etc/rspamd/override.d:ro"
- "./overrides/rspamd:/overrides:ro"
depends_on:
- front
- redis
- resolver
dns:
- "{{ services.mailu.dns }}"
webmail:
image: ghcr.io/mailu/rainloop:{{ services.mailu.version }}
restart: always
image: ghcr.io/mailu/webmail:{{ services.mailu.version }}
restart: unless-stopped
env_file: mailu.env
volumes:
- "./webmail:/data"
- "./overrides/rainloop:/overrides:ro"
- "./overrides/snappymail:/overrides:ro"
networks:
- webmail
depends_on:
- imap
- resolver
dns:
- "{{ services.mailu.dns }}"
- front
networks:
default:
@ -127,5 +140,7 @@ networks:
driver: default
config:
- subnet: "{{ services.mailu.subnet }}"
webmail:
driver: bridge
external_services:
external: true

View File

@ -17,7 +17,7 @@ services:
- "./certs:/etc/nginx/certs:ro"
- "/var/run/docker.sock:/tmp/docker.sock:ro"
labels:
- com.github.nginx-proxy.nginx
- com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy
{% if letsencrypt_enabled %}
acme:

View File

@ -0,0 +1,22 @@
# vim: ft=yaml.docker-compose
version: "3.8"
services:
web:
image: docker.data.coop/unipi:{{ services.phanpy_website.version }}
restart: unless-stopped
networks:
- external_services
environment:
VIRTUAL_HOST: "{{ services.phanpy_website.domain }}"
LETSENCRYPT_HOST: "{{ services.phanpy_website.domain }}"
LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}"
command: --remote=https://git.data.coop/reynir/phanpy.git#production
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun"
networks:
external_services:
external: true

View File

@ -6,7 +6,9 @@ services:
image: boky/postfix:{{ services.postfix.version }}
restart: always
networks:
- postfix
postfix:
aliases:
- postfix
volumes:
- "./dkim:/etc/opendkim/keys"
environment:

View File

@ -43,7 +43,10 @@ DISABLE_STATISTICS=True
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=rainloop
WEBMAIL=snappymail
# Expose the API interface (value: true, false)
API=false
# Dav server implementation (value: radicale, none)
WEBDAV=none
@ -51,6 +54,9 @@ WEBDAV=none
# Antivirus solution (value: clamav, none)
ANTIVIRUS=none
# Scan Macros solution (value: true, false)
SCAN_MACROS=false
###################################
# Mail settings
###################################
@ -70,6 +76,9 @@ RELAYNETS=
# Will relay all outgoing mails if configured
RELAYHOST=
# Enable fetchmail
FETCHMAIL_ENABLED=False
# Fetchmail delay
FETCHMAIL_DELAY=600
@ -108,11 +117,14 @@ WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Path to the API interface if enabled
WEB_API=/api
# Website name
SITENAME={{ base_domain }}
# Linked Website URL
WEBSITE=https://{{ services.mailu.domain }}
WEBSITE=https://{{ base_domain }}
@ -127,7 +139,7 @@ WEBSITE=https://{{ services.mailu.domain }}
# LOG_DRIVER=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mail_server
COMPOSE_PROJECT_NAME=mailu
# Number of rounds used by the password hashing scheme
CREDENTIAL_ROUNDS=12
@ -147,12 +159,25 @@ LOG_LEVEL=WARNING
# Timezone for the Mailu containers. See this link for all possible values https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Europe/Copenhagen
# Default spam threshold used for new users
DEFAULT_SPAM_THRESHOLD=80
# API token required for authenticating to the RESTful API.
# This is a mandatory setting for using the RESTful API.
API_TOKEN=
###################################
# Container address settings
###################################
ADMIN_ADDRESS=admin.mailu
###################################
# Database settings
###################################
DB_FLAVOR=postgresql
DB_USER=mailu
DB_PW={{ postgres_passwords.mailu }}
DB_HOST=postgres
DB_NAME=mailu