Compare commits

...

27 Commits

Author SHA1 Message Date
Markus Opolka
b08f7275ef Upgrading to Version 4.2.2+200504 2020-05-11 17:27:58 +02:00
Markus Opolka
216b15a805 Merge pull request #31 from jsfan/master
Added configuration which adds Nginx with Letsencrypt certificate
2020-05-05 22:20:58 +02:00
Markus Opolka
ad281e9249 Upgrading to Version 4.2.1+200428 2020-05-04 17:06:33 +02:00
Markus Opolka
b1a3e04cbc Upgrading to LTS Version 3.22.14+200423 2020-05-04 17:05:29 +02:00
Markus Opolka
3639cc38e8 Fix nginx example config
- Fixes issue #30
2020-04-30 08:34:17 +02:00
Christian Lerrahn
334d781c10 Added description of FPM setup with https to README 2020-04-29 19:19:23 +10:00
Markus Opolka
0536ebf480 Upgrading to Version 4.2.0+200422 2020-04-28 15:04:16 +02:00
Christian Lerrahn
2c1390a146 Made host name consistent across config files 2020-04-28 18:49:07 +10:00
Christian Lerrahn
51f229262d Added configuration which adds Nginx with Letsencrypt certificate 2020-04-28 18:45:15 +10:00
Markus Opolka
4a44c06b6e Upgrading to LTS Version 3.22.13+200415 2020-04-24 10:23:19 +02:00
Markus Opolka
70bc819758 Upgrading to Version 4.1.18+200416 2020-04-22 21:15:16 +02:00
Markus Opolka
68c542a9e6 Upgrading to Version 4.1.17+200414 2020-04-17 09:17:18 +02:00
Markus Opolka
e2affcdcf9 Upgrading to Version 4.1.16+200407 2020-04-15 08:53:05 +02:00
Markus Opolka
b6ea4dd302 Upgrading to LTS Version 3.22.12+200406 2020-04-15 08:51:13 +02:00
Markus Opolka
0d98aab2b5 Upgrading to Version 4.1.15+200402 2020-04-08 08:02:14 +02:00
Markus Opolka
853d5d9528 Upgrading to LTS Version 3.22.11+200330 2020-04-06 18:04:37 +02:00
Markus Opolka
1b638a4f5f Upgrading to Version 4.1.14+200331 2020-04-03 08:21:41 +02:00
Markus Opolka
b697f94e29 Upgrading to Version 4.1.13+200325 2020-04-01 08:48:15 +02:00
Markus Opolka
fc67dc080b Upgrading to LTS Version 3.22.10+200323 2020-03-31 08:21:02 +02:00
Markus Opolka
14a816aa84 Upgrading to Version 4.1.12+200324 2020-03-26 09:09:47 +01:00
Markus Opolka
5b67ddda66 Upgrading to Version 4.1.11+200316 2020-03-24 18:39:03 +01:00
Markus Opolka
ff43a9e529 Upgrading to LTS Version 3.22.9+200317 2020-03-24 11:09:42 +01:00
Markus Opolka
5b88d7341e Update README 2020-03-24 11:09:28 +01:00
Markus Opolka
1c832d1af8 Update README.md 2020-03-23 10:55:34 +01:00
Markus Opolka
6e1a43a938 Update README 2020-03-23 10:54:41 +01:00
Markus Opolka
0ec273d058 Upgrading to Version 4.1.10+200311 2020-03-16 18:55:25 +01:00
Markus Opolka
983a55571b Upgrading to LTS Version 3.22.8+200309 2020-03-16 18:54:02 +01:00
12 changed files with 168 additions and 17 deletions

View File

@@ -1,7 +1,7 @@
FROM php:7.2-apache FROM php:7.2-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.22.7+200225' ARG version='3.22.14+200423'
ARG sha256_checksum='766ce2b1e62566409f96869977bfa6f2d705a21fcb1751c0b0ae75156f56ca74' ARG sha256_checksum='c148af72e9b26c7803c8e98815ffed1a7bd75b10eefc7791e3826c4dc9553b62'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.2-fpm-alpine FROM php:7.2-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.22.7+200225' ARG version='3.22.14+200423'
ARG sha256_checksum='766ce2b1e62566409f96869977bfa6f2d705a21fcb1751c0b0ae75156f56ca74' ARG sha256_checksum='c148af72e9b26c7803c8e98815ffed1a7bd75b10eefc7791e3826c4dc9553b62'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.2-fpm FROM php:7.2-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='3.22.7+200225' ARG version='3.22.14+200423'
ARG sha256_checksum='766ce2b1e62566409f96869977bfa6f2d705a21fcb1751c0b0ae75156f56ca74' ARG sha256_checksum='c148af72e9b26c7803c8e98815ffed1a7bd75b10eefc7791e3826c4dc9553b62'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.2-apache FROM php:7.2-apache
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.1.9+200310' ARG version='4.2.2+200504'
ARG sha256_checksum='d90f415fe748c909de7ce47ee08bcf60b972f389af8e449cede69566bed93198' ARG sha256_checksum='3ac59a055e37880458d9f8ebed615fb9d55df574e26434254bceae10f8aeda2e'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.2-fpm-alpine FROM php:7.2-fpm-alpine
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.1.9+200310' ARG version='4.2.2+200504'
ARG sha256_checksum='d90f415fe748c909de7ce47ee08bcf60b972f389af8e449cede69566bed93198' ARG sha256_checksum='3ac59a055e37880458d9f8ebed615fb9d55df574e26434254bceae10f8aeda2e'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -1,7 +1,7 @@
FROM php:7.2-fpm FROM php:7.2-fpm
LABEL maintainer="markus@martialblog.de" LABEL maintainer="markus@martialblog.de"
ARG version='4.1.9+200310' ARG version='4.2.2+200504'
ARG sha256_checksum='d90f415fe748c909de7ce47ee08bcf60b972f389af8e449cede69566bed93198' ARG sha256_checksum='3ac59a055e37880458d9f8ebed615fb9d55df574e26434254bceae10f8aeda2e'
# Install OS dependencies # Install OS dependencies
RUN set -ex; \ RUN set -ex; \

View File

@@ -19,7 +19,14 @@ See the example configuration provided.
# Using the fpm image # Using the fpm image
To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. See *docker-compose.fpm.yml* for example To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. See *docker-compose.fpm.yml* for example.
# Using the fpm image with https
If you would like to run the fpm setup with https, you can get a free certificate from Letsencrypt. As an example, the configuration in *docker-compose.fpm-certbot.yml*
will take care of getting a certificate and installing it. Please note that you will have to adjust the domain name in the file *examples/nginx-certbot.conf* to match
the domain used in the *HOSTNAMES* variable in the docker-compose configuration file. If you added both the a domain and the hostname *www* within the domain,
*nginx-certbot.conf* needs to contain the domain without the hostname. E.g. if you set *"HOSTNAMES=example.org www.example.org"*, the path in *nginx-certbot.conf* needs
to contain *example.org*.
# Using an external database # Using an external database
@@ -37,6 +44,8 @@ Path: */var/www/html/upload/surveys*
The entrypoint will create a new config.php if none is provided and run the LimeSurvey command line interface for installation. The entrypoint will create a new config.php if none is provided and run the LimeSurvey command line interface for installation.
**Hint**: Changing the *ADMIN_* configuration has no effect after the initial configuration. It's best to do this within the application.
To change to LimeSurvey configuration, you can mount a Volume into the Container at: To change to LimeSurvey configuration, you can mount a Volume into the Container at:
- /my-data/config.php:/var/www/html/application/config/config.php - /my-data/config.php:/var/www/html/application/config/config.php
@@ -55,10 +64,10 @@ To change to LimeSurvey configuration, you can mount a Volume into the Container
| DB_TABLE_PREFIX | Database table prefix | | DB_TABLE_PREFIX | Database table prefix |
| DB_USERNAME | Database user | | DB_USERNAME | Database user |
| DB_PASSWORD | Database user's password | | DB_PASSWORD | Database user's password |
| ADMIN_USER | LimeSurvey Admin User | | ADMIN_USER | Initial LimeSurvey Admin User |
| ADMIN_NAME | LimeSurvey Admin Username | | ADMIN_NAME | Initial LimeSurvey Admin Username |
| ADMIN_EMAIL | LimeSurvey Admin Email | | ADMIN_EMAIL | Initial LimeSurvey Admin Email |
| ADMIN_PASSWORD | LimeSurvey Admin Password | | ADMIN_PASSWORD | Initial LimeSurvey Admin Password |
| PUBLIC_URL | Public URL for public scripts | | PUBLIC_URL | Public URL for public scripts |
| URL_FORMAT | URL Format. path or get | | URL_FORMAT | URL Format. path or get |

View File

@@ -0,0 +1,49 @@
version: "3.0"
services:
limesurvey:
build:
context: 4.0/fpm/
dockerfile: Dockerfile
volumes:
- /tmp/upload/surveys:/var/www/html/upload/surveys
- lime:/var/www/html
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-web:
build:
context: nginx-certbot/
dockerfile: Dockerfile
links:
- limesurvey
ports:
- "80:80"
- "443:443"
volumes:
- ./examples/nginx-certbot.conf:/etc/nginx/nginx.conf:ro
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
- lime:/var/www/html
environment:
- "HOSTNAMES=www.example.com example.com"
certbot:
image: certbot/certbot
restart: unless-stopped
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
lime-db:
image: mysql:5.7
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
volumes:
lime:

View File

@@ -0,0 +1,57 @@
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name _;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
index index.php;
set $host_path "/var/www/html";
root /var/www/html;
server_name _;
charset utf-8;
include /etc/nginx/mime.types;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
try_files $uri /index.php?$args;
}
location ~ ^/(protected|framework|themes/\w+/views) {
deny all;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
try_files $uri index.php;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass limesurvey:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
}

View File

@@ -12,6 +12,7 @@ http {
listen 80; listen 80;
index index.php; index index.php;
set $host_path "/var/www/html"; set $host_path "/var/www/html";
include /etc/nginx/mime.types;
root /var/www/html; root /var/www/html;
server_name localhost; server_name localhost;
charset utf-8; charset utf-8;

10
nginx-certbot/Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM nginx
RUN apt-get update && \
apt-get install -y certbot curl python-certbot-nginx && \
apt-get -y autoclean; apt-get -y autoremove; \
rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod 700 /entrypoint.sh
CMD ["/entrypoint.sh"]

View File

@@ -0,0 +1,25 @@
#!/bin/sh
cert_path=/etc/letsencrypt/live/$(echo $HOSTNAMES | awk '{print $1}')
mkdir -p cert_path
# if there is no certificate yet, get one
email="--email $CERT_EMAIL"
if [ -z $CERT_EMAIL ]
then
email='--register-unsafely-without-email'
fi
if [ ! -e $cert_path/privkey.pem ]
then
names=""
for h in $HOSTNAMES
do
names=$(echo "$names -d $h")
done
echo "Getting new certificate..."
/usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > /etc/letsencrypt/options-ssl-nginx.conf
/usr/bin/curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > /etc/letsencrypt/ssl-dhparams.pem
/usr/bin/certbot certonly --standalone $names --agree-tos $email
fi
nginx -g "daemon off;"