first commit
This commit is contained in:
parent
26e2f211e8
commit
e5b9471ec1
54
Dockerfile
Normal file
54
Dockerfile
Normal file
@ -0,0 +1,54 @@
|
||||
# http://product_installation_URL/?admin
|
||||
# Default login is "admin", password is "12345".
|
||||
FROM alpine:3.3
|
||||
MAINTAINER Andrey Arapov <andrey.arapov@nixaid.com>
|
||||
|
||||
# Install the dependencies
|
||||
RUN apk update && \
|
||||
apk add wget unzip gnupg1 nginx php-fpm \
|
||||
php-curl php-json php-dom php-zlib php-iconv php-openssl
|
||||
|
||||
# Create the application user so that PHP-FPM can run
|
||||
ENV USER rainloop
|
||||
ENV UID 7008
|
||||
ENV HOME /home/$USER
|
||||
ENV DATA /opt/rainloop
|
||||
RUN adduser -D -u $UID -h $HOME -s /bin/true $USER && \
|
||||
mkdir -p $DATA && \
|
||||
touch /var/log/php-fpm.log && \
|
||||
chown -Rh $USER:$USER $DATA /var/log/php-fpm.log
|
||||
|
||||
# Prepare the environment so that nginx can run as non-root
|
||||
RUN mkdir -p /var/log/rainloop /var/lib/nginx/tmp && \
|
||||
( cd /var/lib/nginx/tmp && \
|
||||
for i in client_body proxy fastcgi uwsgi scgi; do mkdir $i; done ) && \
|
||||
( cd /var/log/nginx && \
|
||||
touch error.log access.log ) && \
|
||||
touch /var/run/nginx.pid && \
|
||||
chown -Rh nginx:nginx /var/log/nginx /var/lib/nginx /var/run/nginx.pid /var/log/rainloop
|
||||
|
||||
# Obtain the latest version of the RainLoop Webmail Community edition,
|
||||
# verify its integrity using GnuPG and then decompress it
|
||||
USER $USER
|
||||
ENV RLFILE rainloop-community-latest.zip
|
||||
ENV RLFILESIG rainloop-community-latest.zip.asc
|
||||
ENV FINGERPRINT "3B797ECE694F3B7B70F311A4ED7C49D987DA4591"
|
||||
WORKDIR $DATA
|
||||
RUN wget -O $RLFILE http://repository.rainloop.net/v2/webmail/$RLFILE && \
|
||||
wget -O $RLFILESIG http://repository.rainloop.net/v2/webmail/$RLFILESIG && \
|
||||
export GNUPGHOME="$(mktemp -d)" && \
|
||||
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$FINGERPRINT" && \
|
||||
gpg --batch --verify $RLFILESIG $RLFILE && \
|
||||
unzip $RLFILE && \
|
||||
rm -rf "$GNUPGHOME" $RLFILE
|
||||
|
||||
# Copy the nginx configs and then launch the PHP-FPM and Nginx
|
||||
USER root
|
||||
COPY rainloop.conf /etc/nginx/conf.d/rainloop.conf
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
CMD /bin/sh -c "find /var/lib/nginx/tmp > /dev/null; \
|
||||
su -s /bin/sh $USER -c php-fpm && \
|
||||
su -s /bin/sh nginx -c nginx"
|
||||
|
||||
VOLUME [ "/opt/rainloop/data", "/var/log/rainloop" ]
|
||||
EXPOSE 80/tcp
|
56
README.md
Normal file
56
README.md
Normal file
@ -0,0 +1,56 @@
|
||||
# RainLoop webmail client
|
||||
|
||||
[RainLoop](http://www.rainloop.net/) is a Simple, modern & fast web-based email client.
|
||||
|
||||
|
||||
## Run the container
|
||||
|
||||
There are two ways of running the container, it could be either using the
|
||||
Docker Compose or a classic docker command.
|
||||
|
||||
**Docker Compose way**
|
||||
```
|
||||
docker-compose up webmail
|
||||
```
|
||||
|
||||
**Classic way**
|
||||
```
|
||||
docker run -d --name webmail -p 80:8080/tcp -v rainloop_data:/opt/rainloop/data andrey01/rainloop
|
||||
```
|
||||
|
||||
## Accessing the container
|
||||
|
||||
First, access the RainLoop admin page in order to set the admin password, your
|
||||
domains and configure the rest.
|
||||
|
||||
The default user is **admin** and a password is **12345**
|
||||
|
||||
**RainLoop admin page**
|
||||
```
|
||||
http://hostip/?admin
|
||||
```
|
||||
|
||||
## Stopping the container
|
||||
|
||||
**Docker Compose way**
|
||||
```
|
||||
docker-compose stop webmail
|
||||
```
|
||||
|
||||
**Classic way**
|
||||
```
|
||||
docker stop webmail
|
||||
```
|
||||
|
||||
## Building the image
|
||||
|
||||
If you wish, you can build the image by yourself.
|
||||
|
||||
```
|
||||
docker build -t andrey01/rainloop .
|
||||
```
|
||||
|
||||
## Additional notes
|
||||
|
||||
The persistent data will be kept in the `rainloop_data` Docker's volume.
|
||||
So before you delete it, keep in mind that you may want to [back it up](https://docs.docker.com/engine/userguide/containers/dockervolumes/#backup-restore-or-migrate-data-volumes) at the first.
|
13
docker-compose.yml
Normal file
13
docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
||||
version: '2'
|
||||
|
||||
volumes:
|
||||
rainloop_data: {}
|
||||
|
||||
services:
|
||||
webmail:
|
||||
image: andrey01/rainloop
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- "80:8080/tcp"
|
||||
volumes:
|
||||
- rainloop_data:/opt/rainloop/data
|
24
nginx.conf
Normal file
24
nginx.conf
Normal file
@ -0,0 +1,24 @@
|
||||
daemon off;
|
||||
error_log stderr info;
|
||||
user nginx;
|
||||
worker_processes 1;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
access_log /var/log/nginx/access.log main;
|
||||
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
gzip on;
|
||||
include conf.d/*.conf;
|
||||
}
|
37
rainloop.conf
Normal file
37
rainloop.conf
Normal file
@ -0,0 +1,37 @@
|
||||
server {
|
||||
listen 8080 default_server;
|
||||
server_name _;
|
||||
|
||||
access_log /var/log/rainloop/access.log;
|
||||
error_log /var/log/rainloop/error.log;
|
||||
|
||||
large_client_header_buffers 4 32k;
|
||||
client_max_body_size 50M;
|
||||
charset utf-8;
|
||||
|
||||
root /opt/rainloop;
|
||||
index index.php;
|
||||
|
||||
# deny access to .htaccess files
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# rainloop standard security
|
||||
location ^~ /data {
|
||||
deny all;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_index index.php;
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
fastcgi_keep_conn on;
|
||||
include fastcgi_params;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user