aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.docker/.htaccess (renamed from docker/.htaccess)0
-rw-r--r--.docker/nginx.conf (renamed from docker/alpine/nginx.conf)0
-rw-r--r--.docker/php-fpm.conf (renamed from docker/alpine/php-fpm.conf)0
-rwxr-xr-x.docker/services.d/.s6-svscan/finish (renamed from docker/alpine/services.d/.s6-svscan/finish)0
-rwxr-xr-x.docker/services.d/nginx/run (renamed from docker/alpine/services.d/nginx/run)0
-rwxr-xr-x.docker/services.d/php-fpm/run (renamed from docker/alpine/services.d/php-fpm/run)0
-rw-r--r--.dockerignore51
-rw-r--r--.gitattributes4
-rw-r--r--AUTHORS14
-rw-r--r--CHANGELOG.md63
-rw-r--r--Dockerfile (renamed from docker/alpine/Dockerfile.master)25
-rw-r--r--Dockerfile.armhf (renamed from docker/alpine/Dockerfile.armhf.master)8
-rw-r--r--README.md4
-rw-r--r--doc/md/Download-and-Installation.md8
-rw-r--r--doc/md/Unit-tests-Docker.md6
-rw-r--r--doc/md/docker/shaarli-images.md14
-rw-r--r--docker/alpine/Dockerfile.armhf.latest49
-rw-r--r--docker/alpine/Dockerfile.latest54
-rw-r--r--docker/alpine/IMAGE.md10
-rw-r--r--docker/debian/Dockerfile.stable37
-rw-r--r--docker/debian/IMAGE.md5
-rw-r--r--docker/debian/nginx.conf72
-rw-r--r--docker/debian/supervised.conf13
-rw-r--r--tests/docker/alpine36/Dockerfile (renamed from docker/test/alpine36/Dockerfile)0
-rw-r--r--tests/docker/debian8/Dockerfile (renamed from docker/test/debian8/Dockerfile)0
-rw-r--r--tests/docker/debian9/Dockerfile (renamed from docker/test/debian9/Dockerfile)0
-rw-r--r--tests/docker/ubuntu16/Dockerfile (renamed from docker/test/ubuntu16/Dockerfile)0
27 files changed, 165 insertions, 272 deletions
diff --git a/docker/.htaccess b/.docker/.htaccess
index f601c1ee..f601c1ee 100644
--- a/docker/.htaccess
+++ b/.docker/.htaccess
diff --git a/docker/alpine/nginx.conf b/.docker/nginx.conf
index 07fba33f..07fba33f 100644
--- a/docker/alpine/nginx.conf
+++ b/.docker/nginx.conf
diff --git a/docker/alpine/php-fpm.conf b/.docker/php-fpm.conf
index 0843c164..0843c164 100644
--- a/docker/alpine/php-fpm.conf
+++ b/.docker/php-fpm.conf
diff --git a/docker/alpine/services.d/.s6-svscan/finish b/.docker/services.d/.s6-svscan/finish
index 1dadeeaf..1dadeeaf 100755
--- a/docker/alpine/services.d/.s6-svscan/finish
+++ b/.docker/services.d/.s6-svscan/finish
diff --git a/docker/alpine/services.d/nginx/run b/.docker/services.d/nginx/run
index 21e7b0d6..21e7b0d6 100755
--- a/docker/alpine/services.d/nginx/run
+++ b/.docker/services.d/nginx/run
diff --git a/docker/alpine/services.d/php-fpm/run b/.docker/services.d/php-fpm/run
index 21dd0107..21dd0107 100755
--- a/docker/alpine/services.d/php-fpm/run
+++ b/.docker/services.d/php-fpm/run
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..a0d28dc6
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,51 @@
1# Docker-ignore
2.dev
3.git
4.github
5tests
6
7# Shaarli runtime resources
8cache/*
9data/*
10pagecache/*
11tmp/*
12
13# Eclipse project files
14.settings
15.buildpath
16.project
17
18# Raintpl generated pages
19*.rtpl.php
20
21# 3rd-party dependencies
22vendor/
23
24# Release archives
25*.tar.gz
26*.zip
27inc/languages/*/LC_MESSAGES/shaarli.mo
28
29# Development and test resources
30coverage
31doxygen
32sandbox
33phpmd.html
34
35# User plugin configuration
36plugins/*/config.php
37
38# 3rd party themes
39tpl/*
40!tpl/default
41!tpl/vintage
42
43# Front end
44node_modules
45tpl/default/js
46tpl/default/css
47tpl/default/fonts
48tpl/default/img
49tpl/vintage/js
50tpl/vintage/css
51tpl/vintage/img
diff --git a/.gitattributes b/.gitattributes
index 6b6ffbd5..9d22f11b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,7 +33,9 @@ Dockerfile text
33.travis.yml export-ignore 33.travis.yml export-ignore
34doc/**/*.json export-ignore 34doc/**/*.json export-ignore
35doc/**/*.md export-ignore 35doc/**/*.md export-ignore
36docker/ export-ignore 36.docker/ export-ignore
37.dockerignore export-ignore
38Dockerfile* export-ignore
37Doxyfile export-ignore 39Doxyfile export-ignore
38Makefile export-ignore 40Makefile export-ignore
39node_modules/ export-ignore 41node_modules/ export-ignore
diff --git a/AUTHORS b/AUTHORS
index c0414c0e..409a0308 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,6 @@
1 588 ArthurHoaro <arthur@hoa.ro> 1 647 ArthurHoaro <arthur@hoa.ro>
2 283 VirtualTam <virtualtam@flibidi.net> 2 327 VirtualTam <virtualtam@flibidi.net>
3 179 nodiscc <nodiscc@gmail.com> 3 187 nodiscc <nodiscc@gmail.com>
4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net> 4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net>
5 15 Florian Eula <eula.florian@gmail.com> 5 15 Florian Eula <eula.florian@gmail.com>
6 13 Emilien Klein <emilien@klein.st> 6 13 Emilien Klein <emilien@klein.st>
@@ -9,10 +9,11 @@
9 8 Christophe HENRY <christophe.henry@sbgodin.fr> 9 8 Christophe HENRY <christophe.henry@sbgodin.fr>
10 6 B. van Berkum <dev@dotmpe.com> 10 6 B. van Berkum <dev@dotmpe.com>
11 5 Lucas Cimon <lucas.cimon@gmail.com> 11 5 Lucas Cimon <lucas.cimon@gmail.com>
12 5 Mark Schmitz <kramred@gmail.com>
13 5 kalvn <kalvnthereal@gmail.com>
12 4 Alexandre Alapetite <alexandre@alapetite.fr> 14 4 Alexandre Alapetite <alexandre@alapetite.fr>
13 4 David Sferruzza <david.sferruzza@gmail.com> 15 4 David Sferruzza <david.sferruzza@gmail.com>
14 4 Immánuel Fodor <immanuelfactor+github@gmail.com> 16 4 Immánuel Fodor <immanuelfactor+github@gmail.com>
15 4 kalvn <kalvnthereal@gmail.com>
16 3 Teromene <teromene@teromene.fr> 17 3 Teromene <teromene@teromene.fr>
17 2 Chris Kuethe <chris.kuethe@gmail.com> 18 2 Chris Kuethe <chris.kuethe@gmail.com>
18 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org> 19 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org>
@@ -24,11 +25,15 @@
24 2 julienCXX <software@chmodplusx.eu> 25 2 julienCXX <software@chmodplusx.eu>
25 2 philipp-r <philipp-r@users.noreply.github.com> 26 2 philipp-r <philipp-r@users.noreply.github.com>
26 1 Adrien Oliva <adrien.oliva@yapbreak.fr> 27 1 Adrien Oliva <adrien.oliva@yapbreak.fr>
28 1 Alexandre G.-Raymond <alex@ndre.gr>
27 1 Alexis J <alexis@effingo.be> 29 1 Alexis J <alexis@effingo.be>
30 1 Angristan <angristan@users.noreply.github.com>
28 1 BoboTiG <bobotig@gmail.com> 31 1 BoboTiG <bobotig@gmail.com>
29 1 Bronco <bronco@warriordudimanche.net> 32 1 Bronco <bronco@warriordudimanche.net>
33 1 Buster One <37770318+buster-one@users.noreply.github.com>
30 1 D Low <daniellowtw@gmail.com> 34 1 D Low <daniellowtw@gmail.com>
31 1 Daniel Jakots <vigdis@chown.me> 35 1 Daniel Jakots <vigdis@chown.me>
36 1 Dennis Verspuij <dennisverspuij@users.noreply.github.com>
32 1 Dimtion <zizou.xena@gmail.com> 37 1 Dimtion <zizou.xena@gmail.com>
33 1 Fanch <fanch-github@qth.fr> 38 1 Fanch <fanch-github@qth.fr>
34 1 Felix Bartels <felix@host-consultants.de> 39 1 Felix Bartels <felix@host-consultants.de>
@@ -37,6 +42,7 @@
37 1 Franck Kerbiriou <FranckKe@users.noreply.github.com> 42 1 Franck Kerbiriou <FranckKe@users.noreply.github.com>
38 1 Gary Marigliano <gmarigliano93@gmail.com> 43 1 Gary Marigliano <gmarigliano93@gmail.com>
39 1 Guillaume Virlet <github@virlet.org> 44 1 Guillaume Virlet <github@virlet.org>
45 1 Jonathan Amiez <jonathan.amiez@gmail.com>
40 1 Jonathan Druart <jonathan.druart@gmail.com> 46 1 Jonathan Druart <jonathan.druart@gmail.com>
41 1 Julien Pivotto <roidelapluie@inuits.eu> 47 1 Julien Pivotto <roidelapluie@inuits.eu>
42 1 Kevin Canévet <kevin@streamroot.io> 48 1 Kevin Canévet <kevin@streamroot.io>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3218f4d8..bafbd06c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,10 +5,58 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
5and this project adheres to [Semantic Versioning](http://semver.org/). 5and this project adheres to [Semantic Versioning](http://semver.org/).
6 6
7## [v0.10.0](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0) - UNPUBLISHED 7## [v0.10.0](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0) - UNPUBLISHED
8**PHP 5.5 compatibility has been dropped.** Shaarli now requires at least PHP 5.6.
9
10### Added
11- Add a filter to display public links only
12- Add PHP 7.2 support
13- Add German translation
14- Resolve front-end dependencies from NPM
15- Build front-end bundles with Yarn and Webpack
16- Lint Javascript code with ESLint
17- Lint SASS code with SASSLint
18- Support redirection in cURL download callback
19- Introduce multi-stage builds for Docker images
20- Use Travis matrix and stages to run Javascript tests in a dedicated environment
21
22### Changed
23- Use a specific page title in all pages
24- Daily: run hooks before creating the columns
25- Load theme translations files automatically
26- Make max download size and timeout configurable
27- Make Nginx logs accessible as stdout/stderr for Docker images
28- Update buttons used to toggle link visibility filters
29- Rewrite Javascript code for ES6 compliance
30- Refactor IP ban management
31- Refactor user login management
32- Refactor server-side session management
33- Update Doxygen configuration
34- Update Parsedown
35
36### Removed
37- Drop support for PHP 5.5
38- Remove vendored front-end libraries
39- Remove environment specific .gitignore entries
40
41### Fixed
42- Ignore the case while checking DOCTYPE during the file import
43- Fix removal of on=... attributes from html generated from Markdown
44- httpd: always forward the 'Authorization' header
45- Ensure user-specific CSS file is loaded
46- Fix feed permalink rendering when Markdown escaping is enabled
47- Fix order of tags with the same number of occurrences
48
49### Security
50- Update `.htaccess` to prevent accessing Git metadata when using a Git-based installation
51
52
53## [v0.9.7](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) - 2018-06-20
54### Changed
55- Build the Docker images from the local Git sources
8 56
9 57
10## [v0.9.6](https://github.com/shaarli/Shaarli/releases/tag/v0.9.6) - 2018-03-25 58## [v0.9.6](https://github.com/shaarli/Shaarli/releases/tag/v0.9.6) - 2018-03-25
11## Changed 59### Changed
12- htaccess: prevent accessing resources not managed by SCM 60- htaccess: prevent accessing resources not managed by SCM
13- htaccess: always forward the 'Authorization' HTTP header 61- htaccess: always forward the 'Authorization' HTTP header
14 62
@@ -222,6 +270,19 @@ Theming:
222- Markdown plugin: escape HTML entities by default 270- Markdown plugin: escape HTML entities by default
223 271
224 272
273## [v0.8.7](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) - 2018-06-20
274### Changed
275- Build the Docker image from the local Git sources
276
277### Removed
278- Disable PHP 5.3 Travis build (unsupported)
279
280
281## [v0.8.6](https://github.com/shaarli/Shaarli/releases/tag/v0.8.6) - 2018-02-19
282### Changed
283- Run version check tests against the 'stable' branch
284
285
225## [v0.8.5](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5) - 2018-01-04 286## [v0.8.5](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5) - 2018-01-04
226**XSS vulnerability fixed. Please update.** 287**XSS vulnerability fixed. Please update.**
227 288
diff --git a/docker/alpine/Dockerfile.master b/Dockerfile
index 7bbe1fb7..4cda6f31 100644
--- a/docker/alpine/Dockerfile.master
+++ b/Dockerfile
@@ -1,13 +1,20 @@
1# Stage 1: 1# Stage 1:
2# - Get Shaarli sources 2# - Copy Shaarli sources
3# - Build documentation
4FROM python:3-alpine as docs
5ADD . /usr/src/app/shaarli
6RUN cd /usr/src/app/shaarli \
7 && pip install --no-cache-dir mkdocs \
8 && mkdocs build
9
10# Stage 2:
3# - Resolve PHP dependencies with Composer 11# - Resolve PHP dependencies with Composer
4FROM composer:latest as composer 12FROM composer:latest as composer
5RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \ 13COPY --from=docs /usr/src/app/shaarli /app/shaarli
6 && mv Shaarli-master shaarli \ 14RUN cd shaarli \
7 && cd shaarli \
8 && composer --prefer-dist --no-dev install 15 && composer --prefer-dist --no-dev install
9 16
10# Stage 2: 17# Stage 3:
11# - Frontend dependencies 18# - Frontend dependencies
12FROM node:9.9-alpine as node 19FROM node:9.9-alpine as node
13COPY --from=composer /app/shaarli shaarli 20COPY --from=composer /app/shaarli shaarli
@@ -16,7 +23,7 @@ RUN cd shaarli \
16 && yarn run build \ 23 && yarn run build \
17 && rm -rf node_modules 24 && rm -rf node_modules
18 25
19# Stage 3: 26# Stage 4:
20# - Shaarli image 27# - Shaarli image
21FROM alpine:3.6 28FROM alpine:3.6
22LABEL maintainer="Shaarli Community" 29LABEL maintainer="Shaarli Community"
@@ -39,9 +46,9 @@ RUN apk --update --no-cache add \
39 php7-zlib \ 46 php7-zlib \
40 s6 47 s6
41 48
42COPY nginx.conf /etc/nginx/nginx.conf 49COPY .docker/nginx.conf /etc/nginx/nginx.conf
43COPY php-fpm.conf /etc/php7/php-fpm.conf 50COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf
44COPY services.d /etc/services.d 51COPY .docker/services.d /etc/services.d
45 52
46RUN rm -rf /etc/php7/php-fpm.d/www.conf \ 53RUN rm -rf /etc/php7/php-fpm.d/www.conf \
47 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \ 54 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
diff --git a/docker/alpine/Dockerfile.armhf.master b/Dockerfile.armhf
index 6c89adc3..5dcc34aa 100644
--- a/docker/alpine/Dockerfile.armhf.master
+++ b/Dockerfile.armhf
@@ -1,5 +1,5 @@
1FROM lsiobase/alpine.armhf:3.6 1FROM lsiobase/alpine.armhf:3.6
2MAINTAINER Shaarli Community 2LABEL maintainer="Shaarli Community"
3 3
4RUN apk --update --no-cache add \ 4RUN apk --update --no-cache add \
5 ca-certificates \ 5 ca-certificates \
@@ -21,9 +21,9 @@ RUN apk --update --no-cache add \
21 php7-zlib \ 21 php7-zlib \
22 s6 22 s6
23 23
24COPY nginx.conf /etc/nginx/nginx.conf 24COPY .docker/nginx.conf /etc/nginx/nginx.conf
25COPY php-fpm.conf /etc/php7/php-fpm.conf 25COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf
26COPY services.d /etc/services.d 26COPY .docker/services.d /etc/services.d
27 27
28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \ 28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \
29 && rm -rf /etc/php7/php-fpm.d/www.conf \ 29 && rm -rf /etc/php7/php-fpm.d/www.conf \
diff --git a/README.md b/README.md
index df9018b6..8199e3f8 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,10 @@ _Do you want to share the links you discover?_
6_Shaarli is a minimalist link sharing service that you can install on your own server._ 6_Shaarli is a minimalist link sharing service that you can install on your own server._
7_It is designed to be personal (single-user), fast and handy._ 7_It is designed to be personal (single-user), fast and handy._
8 8
9[![](https://img.shields.io/badge/stable-v0.8.6-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.8.6) 9[![](https://img.shields.io/badge/stable-v0.8.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7)
10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli) 10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli)
11&bull; 11&bull;
12[![](https://img.shields.io/badge/latest-v0.9.6-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.6) 12[![](https://img.shields.io/badge/latest-v0.9.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7)
13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli) 13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli)
14&bull; 14&bull;
15[![](https://img.shields.io/badge/master-v0.10.x-blue.svg)](https://github.com/shaarli/Shaarli) 15[![](https://img.shields.io/badge/master-v0.10.x-blue.svg)](https://github.com/shaarli/Shaarli)
diff --git a/doc/md/Download-and-Installation.md b/doc/md/Download-and-Installation.md
index ebda2e8a..14649e06 100644
--- a/doc/md/Download-and-Installation.md
+++ b/doc/md/Download-and-Installation.md
@@ -24,11 +24,11 @@ Using one of the following methods:
24 24
25In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. Download our **shaarli-full** archive to include dependencies. 25In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. Download our **shaarli-full** archive to include dependencies.
26 26
27The current latest released version is `v0.9.6` 27The current latest released version is `v0.9.7`
28 28
29```bash 29```bash
30$ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.6/shaarli-v0.9.6-full.zip 30$ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.7/shaarli-v0.9.7-full.zip
31$ unzip shaarli-v0.9.6-full.zip 31$ unzip shaarli-v0.9.7-full.zip
32$ mv Shaarli /path/to/shaarli/ 32$ mv Shaarli /path/to/shaarli/
33``` 33```
34 34
@@ -93,7 +93,7 @@ $ composer install --no-dev --prefer-dist
93_Use at your own risk!_ 93_Use at your own risk!_
94 94
95Install [Composer](Unit-tests.md#install_composer) to manage Shaarli PHP dependencies, 95Install [Composer](Unit-tests.md#install_composer) to manage Shaarli PHP dependencies,
96and [yarn](https://yarnpkg.com/lang/en/docs/install/) 96and [yarn](https://yarnpkg.com/lang/en/docs/install/)
97for front-end dependencies. 97for front-end dependencies.
98 98
99To get the latest changes from the `master` branch: 99To get the latest changes from the `master` branch:
diff --git a/doc/md/Unit-tests-Docker.md b/doc/md/Unit-tests-Docker.md
index c2de7cc7..59bd5b45 100644
--- a/doc/md/Unit-tests-Docker.md
+++ b/doc/md/Unit-tests-Docker.md
@@ -8,7 +8,7 @@ Read first:
8 8
9### Docker test images 9### Docker test images
10 10
11Test Dockerfiles are located under `docker/tests/<distribution>/Dockerfile`, 11Test Dockerfiles are located under `tests/docker/<distribution>/Dockerfile`,
12and can be used to build Docker images to run Shaarli test suites under common 12and can be used to build Docker images to run Shaarli test suites under common
13Linux environments. 13Linux environments.
14 14
@@ -27,7 +27,7 @@ What's behind the curtains:
27 - test PHP dependencies (OS packages) 27 - test PHP dependencies (OS packages)
28 - Composer 28 - Composer
29- the local workspace is mapped to the container's `/shaarli/` directory, 29- the local workspace is mapped to the container's `/shaarli/` directory,
30- the files are rsync'd to so tests are run using a standard Linux user account 30- the files are rsync'd so tests are run using a standard Linux user account
31 (running tests as `root` would bypass permission checks and may hide issues) 31 (running tests as `root` would bypass permission checks and may hide issues)
32- the tests are run inside the container. 32- the tests are run inside the container.
33 33
@@ -36,7 +36,7 @@ What's behind the curtains:
36```bash 36```bash
37# build the Debian 9 Docker image 37# build the Debian 9 Docker image
38$ cd /path/to/shaarli 38$ cd /path/to/shaarli
39$ cd docker/test/debian9 39$ cd tests/docker/debian9
40$ docker build -t shaarli-test:debian9 . 40$ docker build -t shaarli-test:debian9 .
41``` 41```
42 42
diff --git a/doc/md/docker/shaarli-images.md b/doc/md/docker/shaarli-images.md
index 12f7b5d1..e6fbff64 100644
--- a/doc/md/docker/shaarli-images.md
+++ b/doc/md/docker/shaarli-images.md
@@ -8,9 +8,9 @@ The images can be found in the [`shaarli/shaarli`](https://hub.docker.com/r/shaa
8repository. 8repository.
9 9
10### Available image tags 10### Available image tags
11- `latest`: latest branch (tarball release) 11- `latest`: latest branch
12- `master`: master branch (tarball release) 12- `master`: master branch
13- `stable`: stable branch (tarball release) 13- `stable`: stable branch
14 14
15The `latest` and `master` images rely on: 15The `latest` and `master` images rely on:
16 16
@@ -24,7 +24,13 @@ The `stable` image relies on:
24- [PHP5-FPM](http://php-fpm.org/) 24- [PHP5-FPM](http://php-fpm.org/)
25- [Nginx](http://nginx.org/) 25- [Nginx](http://nginx.org/)
26 26
27Additional [Dockerfiles](https://github.com/shaarli/Shaarli/tree/master/docker) are provided for the `arm32v7` platform, relying on [Linuxserver.io Alpine armhf images](https://hub.docker.com/r/lsiobase/alpine.armhf/). These images must be built using [`docker build`](https://docs.docker.com/engine/reference/commandline/build/) on an `arm32v7` machine or using an emulator such as [qemu](https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/). 27Additional Dockerfiles are provided for the `arm32v7` platform, relying on
28[Linuxserver.io Alpine armhf
29images](https://hub.docker.com/r/lsiobase/alpine.armhf/). These images must be
30built using [`docker
31build`](https://docs.docker.com/engine/reference/commandline/build/) on an
32`arm32v7` machine or using an emulator such as
33[qemu](https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/).
28 34
29### Download from DockerHub 35### Download from DockerHub
30```bash 36```bash
diff --git a/docker/alpine/Dockerfile.armhf.latest b/docker/alpine/Dockerfile.armhf.latest
deleted file mode 100644
index 824a1926..00000000
--- a/docker/alpine/Dockerfile.armhf.latest
+++ /dev/null
@@ -1,49 +0,0 @@
1FROM lsiobase/alpine.armhf:3.6
2MAINTAINER Shaarli Community
3
4RUN apk --update --no-cache add \
5 ca-certificates \
6 curl \
7 nginx \
8 php7 \
9 php7-ctype \
10 php7-curl \
11 php7-fpm \
12 php7-gd \
13 php7-iconv \
14 php7-intl \
15 php7-json \
16 php7-mbstring \
17 php7-openssl \
18 php7-phar \
19 php7-session \
20 php7-xml \
21 php7-zlib \
22 s6
23
24COPY nginx.conf /etc/nginx/nginx.conf
25COPY php-fpm.conf /etc/php7/php-fpm.conf
26COPY services.d /etc/services.d
27
28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \
29 && rm -rf /etc/php7/php-fpm.d/www.conf \
30 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
31 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
32
33
34WORKDIR /var/www
35RUN curl -L https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar xzf - \
36 && mv Shaarli-latest shaarli \
37 && cd shaarli \
38 && composer --prefer-dist --no-dev install \
39 && rm -rf ~/.composer \
40 && chown -R nginx:nginx . \
41 && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \
42 && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log
43
44VOLUME /var/www/shaarli/data
45
46EXPOSE 80
47
48ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
49CMD []
diff --git a/docker/alpine/Dockerfile.latest b/docker/alpine/Dockerfile.latest
deleted file mode 100644
index 755d8751..00000000
--- a/docker/alpine/Dockerfile.latest
+++ /dev/null
@@ -1,54 +0,0 @@
1# Stage 1:
2# - Get Shaarli sources
3# - Resolve PHP dependencies with Composer
4FROM composer:latest as composer
5RUN curl -L https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar xzf - \
6 && mv Shaarli-latest shaarli \
7 && cd shaarli \
8 && composer --prefer-dist --no-dev install
9
10# Stage 2:
11# - Shaarli image
12FROM alpine:3.6
13LABEL maintainer="Shaarli Community"
14
15RUN apk --update --no-cache add \
16 ca-certificates \
17 nginx \
18 php7 \
19 php7-ctype \
20 php7-curl \
21 php7-fpm \
22 php7-gd \
23 php7-iconv \
24 php7-intl \
25 php7-json \
26 php7-mbstring \
27 php7-openssl \
28 php7-session \
29 php7-xml \
30 php7-zlib \
31 s6
32
33COPY nginx.conf /etc/nginx/nginx.conf
34COPY php-fpm.conf /etc/php7/php-fpm.conf
35COPY services.d /etc/services.d
36
37RUN rm -rf /etc/php7/php-fpm.d/www.conf \
38 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
39 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
40
41
42WORKDIR /var/www
43COPY --from=composer /app/shaarli shaarli
44
45RUN chown -R nginx:nginx . \
46 && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \
47 && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log
48
49VOLUME /var/www/shaarli/data
50
51EXPOSE 80
52
53ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
54CMD []
diff --git a/docker/alpine/IMAGE.md b/docker/alpine/IMAGE.md
deleted file mode 100644
index a8952257..00000000
--- a/docker/alpine/IMAGE.md
+++ /dev/null
@@ -1,10 +0,0 @@
1## Alpine images
2- [Alpine Linux](https://www.alpinelinux.org/)
3- [PHP-FPM](http://php-fpm.org/)
4- [Nginx](http://nginx.org/)
5
6### `shaarli/shaarli:latest`
7- [Shaarli](https://github.com/shaarli/Shaarli), `latest` branch
8
9### `shaarli/shaarli:master`
10- [Shaarli](https://github.com/shaarli/Shaarli), `master` branch
diff --git a/docker/debian/Dockerfile.stable b/docker/debian/Dockerfile.stable
deleted file mode 100644
index fc9588b0..00000000
--- a/docker/debian/Dockerfile.stable
+++ /dev/null
@@ -1,37 +0,0 @@
1FROM debian:jessie
2MAINTAINER Shaarli Community
3
4ENV TERM dumb
5RUN apt-get update \
6 && apt-get install --no-install-recommends -y \
7 ca-certificates \
8 curl \
9 nginx-light \
10 php5-curl \
11 php5-fpm \
12 php5-gd \
13 php5-intl \
14 supervisor \
15 && apt-get clean
16
17RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini
18RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini
19COPY nginx.conf /etc/nginx/nginx.conf
20COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
21
22ADD https://getcomposer.org/composer.phar /usr/local/bin/composer
23RUN chmod 755 /usr/local/bin/composer
24
25WORKDIR /var/www
26RUN curl -L https://github.com/shaarli/Shaarli/archive/stable.tar.gz | tar xzf - \
27 && mv Shaarli-stable shaarli \
28 && cd shaarli \
29 && composer --prefer-dist --no-dev install
30RUN rm -rf html \
31 && chown -R www-data:www-data .
32
33VOLUME /var/www/shaarli/data
34
35EXPOSE 80
36
37CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
diff --git a/docker/debian/IMAGE.md b/docker/debian/IMAGE.md
deleted file mode 100644
index d85b1d7a..00000000
--- a/docker/debian/IMAGE.md
+++ /dev/null
@@ -1,5 +0,0 @@
1## shaarli:stable
2- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
3- [PHP5-FPM](http://php-fpm.org/)
4- [Nginx](http://nginx.org/)
5- [Shaarli (stable)](https://github.com/shaarli/Shaarli/tree/stable)
diff --git a/docker/debian/nginx.conf b/docker/debian/nginx.conf
deleted file mode 100644
index e8754d9b..00000000
--- a/docker/debian/nginx.conf
+++ /dev/null
@@ -1,72 +0,0 @@
1user www-data www-data;
2daemon off;
3worker_processes 4;
4
5events {
6 worker_connections 768;
7}
8
9http {
10 include mime.types;
11 default_type application/octet-stream;
12 keepalive_timeout 20;
13
14 client_max_body_size 10m;
15
16 index index.html index.php;
17
18 server {
19 listen 80;
20 root /var/www/shaarli;
21
22 access_log /var/log/nginx/shaarli.access.log;
23 error_log /var/log/nginx/shaarli.error.log;
24
25 location ~ /\. {
26 # deny access to dotfiles
27 access_log off;
28 log_not_found off;
29 deny all;
30 }
31
32 location ~ ~$ {
33 # deny access to temp editor files, e.g. "script.php~"
34 access_log off;
35 log_not_found off;
36 deny all;
37 }
38
39 location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
40 # cache static assets
41 expires max;
42 add_header Pragma public;
43 add_header Cache-Control "public, must-revalidate, proxy-revalidate";
44 }
45
46 location = /favicon.ico {
47 # serve the Shaarli favicon from its custom location
48 alias /var/www/shaarli/images/favicon.ico;
49 }
50
51 location / {
52 # Slim - rewrite URLs
53 try_files $uri /index.php$is_args$args;
54 }
55
56 location ~ (index)\.php$ {
57 # Slim - split URL path into (script_filename, path_info)
58 try_files $uri =404;
59 fastcgi_split_path_info ^(.+\.php)(/.+)$;
60
61 # filter and proxy PHP requests to PHP-FPM
62 fastcgi_pass unix:/var/run/php5-fpm.sock;
63 fastcgi_index index.php;
64 include fastcgi.conf;
65 }
66
67 location ~ \.php$ {
68 # deny access to all other PHP scripts
69 deny all;
70 }
71 }
72}
diff --git a/docker/debian/supervised.conf b/docker/debian/supervised.conf
deleted file mode 100644
index 5acd9795..00000000
--- a/docker/debian/supervised.conf
+++ /dev/null
@@ -1,13 +0,0 @@
1[program:php5-fpm]
2command=/usr/sbin/php5-fpm -F
3priority=5
4autostart=true
5autorestart=true
6
7[program:nginx]
8command=/usr/sbin/nginx
9priority=10
10autostart=true
11autorestart=true
12stdout_events_enabled=true
13stderr_events_enabled=true
diff --git a/docker/test/alpine36/Dockerfile b/tests/docker/alpine36/Dockerfile
index fa84f6e2..fa84f6e2 100644
--- a/docker/test/alpine36/Dockerfile
+++ b/tests/docker/alpine36/Dockerfile
diff --git a/docker/test/debian8/Dockerfile b/tests/docker/debian8/Dockerfile
index eaa34e9b..eaa34e9b 100644
--- a/docker/test/debian8/Dockerfile
+++ b/tests/docker/debian8/Dockerfile
diff --git a/docker/test/debian9/Dockerfile b/tests/docker/debian9/Dockerfile
index 3ab4b93d..3ab4b93d 100644
--- a/docker/test/debian9/Dockerfile
+++ b/tests/docker/debian9/Dockerfile
diff --git a/docker/test/ubuntu16/Dockerfile b/tests/docker/ubuntu16/Dockerfile
index e53ed9e3..e53ed9e3 100644
--- a/docker/test/ubuntu16/Dockerfile
+++ b/tests/docker/ubuntu16/Dockerfile