(simatec) first Beta
This commit is contained in:
parent
a0a87ae945
commit
3e85dbf451
5 changed files with 266 additions and 2 deletions
1
.env
1
.env
|
@ -1 +0,0 @@
|
|||
12345
|
63
README.md
63
README.md
|
@ -13,3 +13,66 @@ https://www.mailpiler.org/
|
|||
|
||||
### Installation Guide:
|
||||
|
||||
* Install Docker
|
||||
|
||||
`curl -sSL https://get.docker.com/ | CHANNEL=stable sh
|
||||
systemctl enable --now docker`
|
||||
|
||||
* Install Docker-Compose
|
||||
|
||||
`curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose`
|
||||
|
||||
* reboot your system
|
||||
|
||||
`reboot now`
|
||||
|
||||
* remove postfix
|
||||
|
||||
`apt purge postfix`
|
||||
|
||||
* Clone repository
|
||||
|
||||
`cd /opt
|
||||
clone https://github.com/simatec/piler-docker.git
|
||||
cd /opt/piler-docker`
|
||||
|
||||
configure your Piler seetings
|
||||
|
||||
`nano piler.conf`
|
||||
|
||||
after config start the Install
|
||||
|
||||
`./install-piler.sh`
|
||||
|
||||
Congratulations your Piler is installed...
|
||||
|
||||
**********************************************************************************************************
|
||||
|
||||
## Changelog
|
||||
|
||||
### 0.1.0 (08.03.2022)
|
||||
* (simatec) first beta
|
||||
|
||||
## License
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 simatec
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
80
docker-compose.yml
Normal file
80
docker-compose.yml
Normal file
|
@ -0,0 +1,80 @@
|
|||
version: "3"
|
||||
services:
|
||||
|
||||
mysql:
|
||||
image: mariadb:10.5
|
||||
container_name: mysql_piler
|
||||
restart: unless-stopped
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- dac_override
|
||||
- setuid
|
||||
- setgid
|
||||
environment:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
||||
- "TZ=Europe/Berlin"
|
||||
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
||||
healthcheck:
|
||||
test: mysql --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} piler --execute "show tables"
|
||||
interval: "60s"
|
||||
timeout: "5s"
|
||||
start_period: "15s"
|
||||
retries: 3
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
|
||||
memcached:
|
||||
image: memcached:latest
|
||||
container_name: memcached_piler
|
||||
restart: unless-stopped
|
||||
cap_drop:
|
||||
- ALL
|
||||
command: -m 64
|
||||
|
||||
piler:
|
||||
image: sutoj/piler:1.3.11
|
||||
container_name: piler
|
||||
restart: unless-stopped
|
||||
hostname: ${PILER_DOMAIN}
|
||||
init: true
|
||||
environment:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_HOSTNAME=mysql
|
||||
- PILER_HOSTNAME=${PILER_DOMAIN}
|
||||
- MEMCACHED_HOST=memcached
|
||||
- TZ=Europe/Berlin
|
||||
ports:
|
||||
- "25:25"
|
||||
- "8080:80"
|
||||
- "8443:443"
|
||||
volumes:
|
||||
- piler_etc:/etc/piler
|
||||
- piler_var:/var/piler
|
||||
- /etc/localtime:/etc/localtime
|
||||
healthcheck:
|
||||
test: curl -s smtp://localhost/
|
||||
interval: "60s"
|
||||
timeout: "3s"
|
||||
start_period: "15s"
|
||||
retries: 3
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
memory: 512M
|
||||
limits:
|
||||
memory: 512M
|
||||
|
||||
depends_on:
|
||||
- "memcached"
|
||||
- "mysql"
|
||||
|
||||
volumes:
|
||||
db_data: {}
|
||||
piler_etc: {}
|
||||
piler_var: {}
|
98
install-piler.sh
Normal file
98
install-piler.sh
Normal file
|
@ -0,0 +1,98 @@
|
|||
#!/bin/bash
|
||||
|
||||
. ./piler.conf
|
||||
ln -s ./piler.conf .env
|
||||
|
||||
# docker stop
|
||||
echo "start docker-compose for Piler"
|
||||
|
||||
cd /opt/piler
|
||||
docker-compose up -d
|
||||
|
||||
echo "backup the File config-site.php"
|
||||
cp /var/lib/docker/volumes/piler_piler_etc/_data/config-site.php /var/lib/docker/volumes/piler_piler_etc/_data/config-site.php.bak
|
||||
|
||||
echo "set User settings ..."
|
||||
|
||||
cat >> /var/lib/docker/volumes/piler_piler_etc/_data/config-site.php <<EOF
|
||||
|
||||
// Smarthost
|
||||
$config['SMARTHOST'] = '$SMARTHOST';
|
||||
$config['SMARTHOST_PORT'] = '25';
|
||||
|
||||
// CUSTOM
|
||||
\$config['PROVIDED_BY'] = '$PILER_DOMAIN';
|
||||
\$config['SUPPORT_LINK'] = 'mailto:$SUPPORT_MAIL';
|
||||
\$config['COMPATIBILITY'] = '';
|
||||
|
||||
// fancy features.
|
||||
\$config['ENABLE_INSTANT_SEARCH'] = 1;
|
||||
\$config['ENABLE_TABLE_RESIZE'] = 1;
|
||||
|
||||
\$config['ENABLE_DELETE'] = 1;
|
||||
\$config['ENABLE_ON_THE_FLY_VERIFICATION'] = 1;
|
||||
|
||||
// general settings.
|
||||
\$config['TIMEZONE'] = '$TIME_ZONE';
|
||||
|
||||
// authentication
|
||||
// Enable authentication against an imap server
|
||||
\$config['ENABLE_IMAP_AUTH'] = 1;
|
||||
\$config['RESTORE_OVER_IMAP'] = 1;
|
||||
\$config['IMAP_RESTORE_FOLDER_INBOX'] = 'INBOX';
|
||||
\$config['IMAP_RESTORE_FOLDER_SENT'] = 'Sent';
|
||||
\$config['IMAP_HOST'] = '$IMAP_SERVER';
|
||||
\$config['IMAP_PORT'] = 993;
|
||||
\$config['IMAP_SSL'] = true;
|
||||
|
||||
// authentication against an ldap directory (disabled by default)
|
||||
//\$config['ENABLE_LDAP_AUTH'] = 1;
|
||||
//\$config['LDAP_HOST'] = '$SMARTHOST';
|
||||
//\$config['LDAP_PORT'] = 389;
|
||||
//\$config['LDAP_HELPER_DN'] = 'cn=administrator,cn=users,dc=mydomain,dc=local';
|
||||
//\$config['LDAP_HELPER_PASSWORD'] = 'myxxxxpasswd';
|
||||
//\$config['LDAP_MAIL_ATTR'] = 'mail';
|
||||
//\$config['LDAP_AUDITOR_MEMBER_DN'] = '';
|
||||
//\$config['LDAP_ADMIN_MEMBER_DN'] = '';
|
||||
//\$config['LDAP_BASE_DN'] = 'ou=Benutzer,dc=krs,dc=local';
|
||||
|
||||
// authentication against an Uninvention based ldap directory
|
||||
//\$config['ENABLE_LDAP_AUTH'] = 1;
|
||||
//\$config['LDAP_HOST'] = '$SMARTHOST';
|
||||
//\$config['LDAP_PORT'] = 7389;
|
||||
//\$config['LDAP_HELPER_DN'] = 'uid=ldap-search-user,cn=users,dc=mydomain,dc=local';
|
||||
//\$config['LDAP_HELPER_PASSWORD'] = 'myxxxxpasswd';
|
||||
//\$config['LDAP_AUDITOR_MEMBER_DN'] = '';
|
||||
//\$config['LDAP_ADMIN_MEMBER_DN'] = '';
|
||||
//\$config['LDAP_BASE_DN'] = 'cn=users,dc=mydomain,dc=local';
|
||||
//\$config['LDAP_MAIL_ATTR'] = 'mailPrimaryAddress';
|
||||
//\$config['LDAP_ACCOUNT_OBJECTCLASS'] = 'person';
|
||||
//\$config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'person';
|
||||
//\$config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'mailAlternativeAddress';
|
||||
EOF
|
||||
|
||||
if [ "$USE_MAILCOW" = true ] ; then
|
||||
|
||||
echo "set Mailcow Api-Key config"
|
||||
|
||||
cat >> /var/lib/docker/volumes/piler_piler_etc/_data/config-site.php <<EOF
|
||||
|
||||
// Mailcow API
|
||||
$config['MAILCOW_API_KEY'] = '$MAILCOW_APIKEY';
|
||||
$config['MAILCOW_SET_REALNAME'] = true;
|
||||
$config['CUSTOM_EMAIL_QUERY_FUNCTION'] = 'query_mailcow_for_email_access';
|
||||
$config['MAILCOW_HOST'] = '$MAILCOW_HOST'; // default $config['IMAP_HOST']
|
||||
include('auth-mailcow.php');
|
||||
EOF
|
||||
|
||||
curl -o /var/lib/docker/volumes/piler_piler_etc/_data/auth-mailcow.php https://raw.githubusercontent.com/patschi/mailpiler-mailcow-integration/master/auth-mailcow.php
|
||||
fi
|
||||
|
||||
# docker start
|
||||
echo "restart docker-compose ..."
|
||||
|
||||
cd /opt/piler
|
||||
docker-compose restart
|
||||
|
||||
echo "Piler install completed successfully"
|
||||
echo "you can start in your Browser with http://${PILER_DOMAIN}!"
|
26
piler.conf
26
piler.conf
|
@ -1 +1,25 @@
|
|||
121234555345
|
||||
################################ User Settings ##################################
|
||||
|
||||
PILER_DOMAIN="piler.example.com" # your Piler Domain
|
||||
SUPPORT_MAIL="admin@example.com" # your Mailserver Admin Mail
|
||||
IMAP_SERVER="imap.example.com" # your IMAP Server
|
||||
TIME_ZONE="Europe/Berlin" # your Timezone
|
||||
SMARTHOST="127.0.0.1" # Default 127.0.0.1
|
||||
|
||||
##################################################################################
|
||||
|
||||
################################ MySql Settings ##################################
|
||||
|
||||
MYSQL_DATABASE="piler" # MySql Database
|
||||
MYSQL_USER="piler" # MySql User
|
||||
MYSQL_PASSWORD="<your-mysql-password>" # MySql Password
|
||||
|
||||
##################################################################################
|
||||
|
||||
########################### optional Mailcow Settings ############################
|
||||
|
||||
USE_MAILCOW=false # if Use Mailcow API Options set "true"
|
||||
MAILCOW_APIKEY="your_Mailcow_API-Key" # your Mailcow API-Key
|
||||
MAILCOW_HOST="mail.example.com" # your Mailcow Host Domain
|
||||
|
||||
###################################################################################
|
||||
|
|
Loading…
Reference in a new issue