initial commit

This commit is contained in:
Sebastian Hugentobler 2016-07-13 17:07:43 +02:00
commit b557c71c37
10 changed files with 189 additions and 0 deletions

2
.gitignore vendored Executable file
View File

@ -0,0 +1,2 @@
*~
.DS_Store

35
Dockerfile Normal file
View File

@ -0,0 +1,35 @@
FROM thallian/php7-fpm:latest
RUN apk add --no-cache openssl tar nginx postgresql-client aspell rsyslog
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted \
php7 \
php7-imap \
php7-apcu \
php7-dom \
php7-json \
php7-xml \
php7-session \
php7-pdo \
php7-pdo_pgsql \
php7-sockets \
php7-exif \
php7-iconv \
php7-openssl \
php7-mbstring \
php7-sockets \
php7-mcrypt \
php7-zip \
php7-pspell
RUN ln -s /usr/bin/php7 /usr/bin/php
RUN mkdir /var/lib/roundcube
RUN wget -qO- https://github.com/roundcube/roundcubemail/releases/download/1.2.0/roundcubemail-1.2.0-complete.tar.gz | tar xz -C /var/lib/roundcube --strip 1
RUN chown -R nginx:nginx /var/lib/roundcube
RUN mkdir /run/nginx
ADD /rootfs /
ENV FPMUSER nginx
ENV FPMGROUP nginx

View File

@ -0,0 +1,6 @@
[template]
src = "config.inc.php.tmpl"
dest = "/var/lib/roundcube/config/config.inc.php"
gid = 101
uid = 100
mode = "0660"

View File

@ -0,0 +1,3 @@
[template]
src = "nginx.conf.tmpl"
dest = "/etc/nginx/nginx.conf"

View File

@ -0,0 +1,25 @@
<?php
$config = array();
$config['db_dsnw'] = '{{getenv "DATABASEDSN"}}';
$config['log_driver'] = 'syslog';
$config['default_host'] = '{{getenv "IMAPHOST"}}';
$config['smtp_server'] = '{{getenv "SMTPHOST"}}';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['use_https'] = true;
$config['des_key'] = '{{getenv "KEY"}}';
$config['cipher_method'] = '{{getenv "CIPHERMETHOD"}}';
$config['mail_domain'] = '%t';
$config['password_charset'] = 'UTF-8';
$config['plugins'] = array('managesieve', 'password', 'archive', 'zipdownload');
$config['spellcheck_engine'] = 'pspell';
$config['default_charset'] = 'UTF-8';

View File

@ -0,0 +1,55 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
keepalive_timeout 65;
gzip off;
upstream php {
server 127.0.0.1:9000;
}
server {
listen 80;
server_name {{ getenv "DOMAIN"}};
root /var/lib/roundcube;
index index.php index.html;
client_max_body_size 1G;
location ~ ^/(data|config|\.ht|db_structure\.xml|README|AUTHORS|COPYING-AGPL|COPYING-README) {
deny all;
}
location / {
try_files $uri $uri/ index.php;
}
location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name = 404;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
fastcgi_read_timeout 300;
fastcgi_pass php_roundcube;
}
location ~* ^.+.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
}

View File

@ -0,0 +1,8 @@
#!/usr/bin/with-contenv sh
#PGPASSWORD=$DBPASSWORD psql -h $DBHOST -U $DBUSER -d $DBNAME -c "SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'nc_appconfig')" | grep f
if [ $? -ne 1 ]; then
fi

49
rootfs/etc/rsyslog.conf Normal file
View File

@ -0,0 +1,49 @@
# rsyslogd.conf
#
# if you experience problems, check:
# http://www.rsyslog.com/troubleshoot
#### MODULES ####
module(load="imuxsock") # local system logging support (e.g. via logger command)
#module(load="imklog") # kernel logging support (previously done by rklogd)
module(load="immark") # --MARK-- message support
module(load="imudp") # UDP listener support
input(type="imudp" port="514")
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* action(type="omfile" file="/dev/console")
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none action(type="omfile" file="/var/log/messages")
# The authpriv file has restricted access.
authpriv.* action(type="omfile" file="/var/log/secure")
# Log all the mail messages in one place.
mail.* action(type="omfile" file="/dev/console")
roundcube.* action(type="omfile" file="/dev/console")
# Log cron stuff
cron.* action(type="omfile" file="/var/log/cron")
# Everybody gets emergency messages
*.emerg action(type="omusrmsg" users="*")
# Save news errors of level crit and higher in a special file.
uucp,news.crit action(type="omfile" file="/var/log/spooler")
# Save boot messages also to boot.log
local7.* action(type="omfile" file="/var/log/boot.log")
# log every host in its own directory
if $fromhost-ip then /var/log/$fromhost-ip/messages
# Include all .conf files in /etc/rsyslog.d
$IncludeConfig /etc/rsyslog.d/*.conf
$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
*.info;mail.none;authpriv.none;cron.none;*.* @@graylog:514;GRAYLOGRFC5424 # forward everything to remote server

View File

@ -0,0 +1,3 @@
#!/usr/bin/with-contenv sh
exec nginx -g "daemon off;"

View File

@ -0,0 +1,3 @@
#!/usr/bin/with-contenv sh
exec rsyslogd -n