]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
docker: remove `dev` image, update documentation
authorVirtualTam <virtualtam@flibidi.net>
Sat, 29 Jul 2017 13:26:27 +0000 (15:26 +0200)
committerVirtualTam <virtualtam@flibidi.net>
Sat, 29 Jul 2017 13:32:22 +0000 (15:32 +0200)
Relates to https://github.com/shaarli/Shaarli/issues/843

Changed:
- Update Docker image list
- Update Docker documentation structure

Removed:
- Delete Dockerfile and resources for the `dev` image
- Cleanup `doc/` resources

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
13 files changed:
doc/Docker.md [deleted file]
doc/REST-API.md [deleted file]
doc/Versioning-and-Branches.md [deleted file]
doc/_Sidebar.md [deleted file]
doc/md/docker/docker-101.md [moved from doc/md/Docker-101.md with 100% similarity]
doc/md/docker/resources.md [moved from doc/md/Docker-resources.md with 100% similarity]
doc/md/docker/reverse-proxy-configuration.md [moved from doc/md/Reverse-proxy-configuration.md with 100% similarity]
doc/md/docker/shaarli-images.md [moved from doc/md/Shaarli-images.md with 98% similarity]
docker/development/Dockerfile [deleted file]
docker/development/IMAGE.md [deleted file]
docker/development/nginx.conf [deleted file]
docker/development/supervised.conf [deleted file]
mkdocs.yml

diff --git a/doc/Docker.md b/doc/Docker.md
deleted file mode 100644 (file)
index a7d2efb..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-#Docker
-- [Docker usage](#docker-usage)[](.html)
-- [Get and run a Shaarli image](#get-and-run-a-shaarli-image)[](.html)
-- [Resources](#resources)[](.html)
-
-## Docker usage
-### Basics
-Install [Docker](https://www.docker.com/), by following the instructions relevant[](.html)
-to your OS / distribution, and start the service.
-
-#### Search an image on [DockerHub](https://hub.docker.com/)[](.html)
-
-```bash
-$ docker search debian
-
-NAME            DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
-ubuntu          Ubuntu is a Debian-based Linux operating s...   2065    [OK][](.html)
-debian          Debian is a Linux distribution that's comp...   603     [OK][](.html)
-google/debian                                                   47                 [OK][](.html)
-```
-
-#### Show available tags for a repository
-```bash
-$ curl https://index.docker.io/v1/repositories/debian/tags | python -m json.tool
-
-% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
-Dload  Upload   Total   Spent    Left  Speed
-100  1283    0  1283    0     0    433      0 --:--:--  0:00:02 --:--:--   433
-```
-
-Sample output:
-```json
-[[](.html)
-    {
-        "layer": "85a02782",
-        "name": "stretch"
-    },
-    {
-        "layer": "59abecbc",
-        "name": "testing"
-    },
-    {
-        "layer": "bf0fd686",
-        "name": "unstable"
-    },
-    {
-        "layer": "60c52dbe",
-        "name": "wheezy"
-    },
-    {
-        "layer": "c5b806fe",
-        "name": "wheezy-backports"
-    }
-]
-
-```
-
-#### Pull an image from DockerHub
-```bash
-$ docker pull repository[:tag][](.html)
-
-$ docker pull debian:wheezy
-wheezy: Pulling from debian
-4c8cbfd2973e: Pull complete
-60c52dbe9d91: Pull complete
-Digest: sha256:c584131da2ac1948aa3e66468a4424b6aea2f33acba7cec0b631bdb56254c4fe
-Status: Downloaded newer image for debian:wheezy
-```
-
-## Get and run a Shaarli image
-### DockerHub repository
-The images can be found in the [`shaarli/shaarli`](https://hub.docker.com/r/shaarli/shaarli/)[](.html)
-repository.
-
-### Available image tags
-- `latest`: master branch (tarball release)
-- `stable`: stable branch (tarball release)
-- `dev`: master branch (Git clone)
-
-All images rely on:
-- [Debian 8 Jessie](https://hub.docker.com/_/debian/)[](.html)
-- [PHP5-FPM](http://php-fpm.org/)[](.html)
-- [Nginx](http://nginx.org/)[](.html)
-
-### Download from DockerHub
-```bash
-$ docker pull shaarli/shaarli
-latest: Pulling from shaarli/shaarli
-32716d9fcddb: Pull complete
-84899d045435: Pull complete
-4b6ad7444763: Pull complete
-e0345ef7a3e0: Pull complete
-5c1dd344094f: Pull complete
-6422305a200b: Pull complete
-7d63f861dbef: Pull complete
-3eb97210645c: Pull complete
-869319d746ff: Already exists
-869319d746ff: Pulling fs layer
-902b87aaaec9: Already exists
-Digest: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98
-Status: Downloaded newer image for shaarli/shaarli:latest
-```
-
-### Create and start a new container from the image
-```bash
-# map the host's :8000 port to the container's :80 port
-$ docker create -p 8000:80 shaarli/shaarli
-d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
-
-# launch the container in the background
-$ docker start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
-d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
-
-# list active containers
-$ docker ps
-CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
-d40b7af693d6  shaarli/shaarli  /usr/bin/supervisor  15 seconds ago  Up 4 seconds  0.0.0.0:8000->80/tcp  backstabbing_galileo
-```
-
-### Stop and destroy a container
-```bash
-$ docker stop backstabbing_galileo  # those docker guys are really rude to physicists!
-backstabbing_galileo
-
-# check the container is stopped
-$ docker ps
-CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
-
-# list ALL containers
-$ docker ps -a
-CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                      PORTS               NAMES
-d40b7af693d6        shaarli/shaarli     /usr/bin/supervisor   5 minutes ago       Exited (0) 48 seconds ago                       backstabbing_galileo
-
-# destroy the container
-$ docker rm backstabbing_galileo  # let's put an end to these barbarian practices
-backstabbing_galileo
-
-$ docker ps -a
-CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
-```
-
-## Resources
-### Docker
-- [Interactive Docker training portal](https://www.katacoda.com/courses/docker/) on [Katakoda](https://www.katacoda.com/)[](.html)
-- [Where are Docker images stored?](http://blog.thoward37.me/articles/where-are-docker-images-stored/)[](.html)
-- [Dockerfile reference](https://docs.docker.com/reference/builder/)[](.html)
-- [Dockerfile best practices](https://docs.docker.com/articles/dockerfile_best-practices/)[](.html)
-- [Volumes](https://docs.docker.com/userguide/dockervolumes/)[](.html)
-
-### DockerHub
-- [Repositories](https://docs.docker.com/userguide/dockerrepos/)[](.html)
-- [Teams and organizations](https://docs.docker.com/docker-hub/orgs/)[](.html)
-- [GitHub automated build](https://docs.docker.com/docker-hub/github/)[](.html)
-
-### Service management
-- [Using supervisord](https://docs.docker.com/articles/using_supervisord/)[](.html)
-- [Nginx in the foreground](http://nginx.org/en/docs/ngx_core_module.html#daemon)[](.html)
-- [supervisord](http://supervisord.org/)[](.html)
diff --git a/doc/REST-API.md b/doc/REST-API.md
deleted file mode 100644 (file)
index d790997..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#REST API
-## Usage
-
-See the [REST API documentation](http://shaarli.github.io/api-documentation/).[](.html)
-
-## Authentication
-
-All requests to Shaarli's API must include a JWT token to verify their authenticity.
-
-This token has to be included as an HTTP header called `Authentication: Bearer <jwt token>`.
-
-JWT resources :
-
- * [jwt.io](https://jwt.io) (including a list of client per language).[](.html)
- * RFC : https://tools.ietf.org/html/rfc7519
- * https://float-middle.com/json-web-tokens-jwt-vs-sessions/
- * HackerNews thread: https://news.ycombinator.com/item?id=11929267
-
-
-### Shaarli JWT Token
-
-JWT tokens are composed by three parts, separated by a dot `.` and encoded in base64:
-
-```
-[header].[payload].[signature][](.html)
-```
-
-#### Header
-
-Shaarli only allow one hash algorithm, so the header will always be the same:
-
-```json
-{
-    "typ": "JWT",
-    "alg": "HS512"
-}
-```
-
-Encoded in base64, it gives:
-
-```
-ewogICAgICAgICJ0eXAiOiAiSldUIiwKICAgICAgICAiYWxnIjogIkhTNTEyIgogICAgfQ==
-```
-
-#### Payload
-
-**Validity duration**
-
-To avoid infinite token validity, JWT tokens must include their creation date in UNIX timestamp format (timezone independant - UTC) under the key `iat` (issued at). This token will be accepted during 9 minutes.
-
-```json
-{
-    "iat": 1468663519
-}
-```
-
-See [RFC reference](https://tools.ietf.org/html/rfc7519#section-4.1.6).[](.html)
-
-
-#### Signature
-
-The signature authenticate the token validity. It contains the base64 of the header and the body, separated by a dot `.`, hashed in SHA512 with the API secret available in Shaarli administration page.
-
-Signature example with PHP:
-
-```php
-$content = base64_encode($header) . '.' . base64_encode($payload);
-$signature = hash_hmac('sha512', $content, $secret);
-```
-
-
-### Complete example
-
-#### PHP
-
-```php
-function generateToken($secret) {
-    $header = base64_encode('{
-        "typ": "JWT",
-        "alg": "HS512"
-    }');
-    $payload = base64_encode('{
-        "iat": '. time() .'
-    }');
-    $signature = hash_hmac('sha512', $header .'.'. $payload , $secret);
-    return $header .'.'. $payload .'.'. $signature;
-}
-
-$secret = 'mysecret';
-$token = generateToken($secret);
-echo $token;
-```
-
-> `ewogICAgICAgICJ0eXAiOiAiSldUIiwKICAgICAgICAiYWxnIjogIkhTNTEyIgogICAgfQ==.ewogICAgICAgICJpYXQiOiAxNDY4NjY3MDQ3CiAgICB9.1d2c54fa947daf594fdbf7591796195652c8bc63bffad7f6a6db2a41c313f495a542cbfb595acade79e83f3810d709b4251d7b940bbc10b531a6e6134af63a68`
-
-```php
-$options = [[](.html)
-    'http' => [[](.html)
-        'method' => 'GET',
-        'jwt' => $token,
-    ],
-];
-$context = stream_context_create($options);
-file_get_contents($apiEndpoint, false, $context);
-```
diff --git a/doc/Versioning-and-Branches.md b/doc/Versioning-and-Branches.md
deleted file mode 100644 (file)
index bbc7719..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#Versioning and Branches
-[**WORK IN PROGRESS**][](.html)
-
-It's important to understand how Shaarli branches work, especially if you're maintaining a 3rd party tools for Shaarli (theme, plugin, etc.), to be sure stay compatible.
-
-## `master` branch
-
-The `master` branch is the development branch. Any new change MUST go through this branch using Pull Requests.
-
-Remarks:
-
-  * This branch shouldn't be used for production as it isn't necessary stable.
-  * 3rd party aren't required to be compatible with the latest changes.
-  * Official plugins, themes and libraries (contained within Shaarli organization repos) must be compatible with the master branch.
-  * The version in this branch is always `dev`.
-
-## `v0.x` branch
-
-This `v0.x` branch, points to the latest `v0.x.y` release.
-
-Explanation:
-
-When a new version is released, it might contains a major bug which isn't detected right away. For example, a new PHP version is released, containing backward compatibility issue which doesn't work with Shaarli.
-
-In this case, the issue is fixed in the `master` branch, and the fix is backported the to the `v0.x` branch. Then a new release is made from the `v0.x` branch.
-
-This workflow allow us to fix any major bug detected, without having to release bleeding edge feature too soon.
-
-## `latest` branch
-
-This branch point the latest release. It recommended to use it to get the latest tested changes.
-
-## `stable` branch
-
-The `stable` branch doesn't contain any major bug, and is one major digit version behind the latest release.
-
-For example, the current latest release is `v0.8.3`, the stable branch is an alias to the latest `v0.7.x` release. When the `v0.9.0` version will be released, the stable will move to the latest `v0.8.x` release.
-
-Remarks:
-
-  * Shaarli release pace isn't fast, and the stable branch might be a few months behind the latest release.
-
-## Releases
-
-Releases are always made from the latest `v0.x` branch.
-
-Note that for every release, we manually generate a tarball which contains all Shaarli dependencies, making Shaarli's installation only one step.
-
-## Advices on 3rd party git repos workflow
-
-### Versioning
-
-Any time a new Shaarli release is published, you should publish a new release of your repo if the changes affected you since the latest release (take a look at the [changelog](https://github.com/shaarli/Shaarli/releases) (*Draft* means not released yet) and the commit log (like [`tpl` folder](https://github.com/shaarli/Shaarli/commits/master/tpl/default) for themes)). You can either:[](.html)
-
-   - use the Shaarli version number, with your repo version. For example, if Shaarli `v0.8.3` is released, publish a `v0.8.3-1` release, where `v0.8.3` states Shaarli compatibility and `-1` is your own version digit for the current Shaarli version.
-   - use your own versioning scheme, and state Shaarli compatibility in the release description.
-
-Using this, any user will be able to pick the release matching his own Shaarli version.
-
-### Major bugfix backport releases
-
-To be able to support backported fixes, it recommended to use our workflow:
-
-```bash
-# In master, fix the major bug
-git commit -m "Katastrophe"
-git push origin master
-# Get your commit hash
-git log --format="%H" -n 1
-# Create a new branch from your latest release, let's say v0.8.2-1 (the tag name)
-git checkout -b katastrophe v0.8.2-1
-# Backport the fix commit to your brand new branch
-git cherry-pick <fix commit hash>
-git push origin katastrophe
-# Then you just have to make a new release from the `katastrophe` branch tagged `v0.8.3-1`
-```
diff --git a/doc/_Sidebar.md b/doc/_Sidebar.md
deleted file mode 100644 (file)
index 8df2e56..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#_Sidebar
-- [Home](Home.html)
-- Setup
-    - [Download and Installation](Download-and-Installation.html)
-    - [Upgrade and migration](Upgrade-and-migration.html)
-    - [Server requirements](Server-requirements.html)
-    - [Server configuration](Server-configuration.html)
-    - [Server security](Server-security.html)
-    - [Shaarli configuration](Shaarli-configuration.html)
-    - [Plugins](Plugins.html)
-- [Docker](Docker.html)
-- [Usage](Usage.html)
-    - [Sharing button](Sharing-button.html) (bookmarklet)
-    - [Browsing and Searching](Browsing-and-Searching.html)
-    - [Firefox share](Firefox-share.html)
-    - [RSS feeds](RSS-feeds.html)
-    - [REST API](REST-API.html)
-- How To
-    - [Backup, restore, import and export](Backup,-restore,-import-and-export.html)
-    - [Copy an existing installation over SSH and serve it locally](Copy-an-existing-installation-over-SSH-and-serve-it-locally.html)
-    - [Create and serve multiple Shaarlis (farm)](Create-and-serve-multiple-Shaarlis-(farm).html)
-    - [Download CSS styles from an OPML list](Download-CSS-styles-from-an-OPML-list.html)
-    - [Datastore hacks](Datastore-hacks.html)
-- [Troubleshooting](Troubleshooting.html)
-- [Development](Development.html)
-    - [GnuPG signature](GnuPG-signature.html)
-    - [Coding guidelines](Coding-guidelines.html)
-    - [Directory structure](Directory-structure.html)
-    - [3rd party libraries](3rd-party-libraries.html)
-    - [Plugin System](Plugin-System.html)
-    - [Release Shaarli](Release-Shaarli.html)
-    - [Versioning and Branches](Versioning-and-Branches.html)
-    - [Security](Security.html)
-    - [Static analysis](Static-analysis.html)
-    - [Theming](Theming.html)
-    - [Unit tests](Unit-tests.html)
-- About
-    - [FAQ](FAQ.html)
-    - [Community & Related software](Community-&-Related-software.html)
similarity index 98%
rename from doc/md/Shaarli-images.md
rename to doc/md/docker/shaarli-images.md
index 25f6cfdd6e305e2661287d2d143ceb4a1a61c2fd..6d108d21249880a64cac62ef82e070a5958f2867 100644 (file)
@@ -7,7 +7,6 @@ repository.
 ### Available image tags
 - `latest`: master branch (tarball release)
 - `stable`: stable branch (tarball release)
-- `dev`: master branch (Git clone)
 
 All images rely on:
 - [Debian 8 Jessie](https://hub.docker.com/_/debian/)
diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile
deleted file mode 100644 (file)
index d9ef8da..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-FROM debian:jessie
-MAINTAINER Shaarli Community
-
-ENV TERM dumb
-RUN apt-get update \
-    && apt-get install --no-install-recommends -y \
-       ca-certificates \
-       nginx-light \
-       php5-curl \
-       php5-fpm \
-       php5-gd \
-       php5-intl \
-       supervisor \
-       git \
-       nano \
-    && apt-get clean
-
-RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini
-RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini
-COPY nginx.conf /etc/nginx/nginx.conf
-COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
-
-ADD https://getcomposer.org/composer.phar /usr/local/bin/composer
-RUN chmod 755 /usr/local/bin/composer
-
-WORKDIR /var/www
-RUN git clone https://github.com/shaarli/Shaarli.git shaarli \
-    && cd shaarli \
-    && composer --prefer-dist install
-RUN rm -rf html \
-    && echo "<?php phpinfo(); ?>" > index.php \
-    && chown -R www-data:www-data .
-
-VOLUME /var/www/shaarli/data
-
-EXPOSE 80
-
-CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
diff --git a/docker/development/IMAGE.md b/docker/development/IMAGE.md
deleted file mode 100644 (file)
index e2ff0f0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-## shaarli:dev
-- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
-- [PHP5-FPM](http://php-fpm.org/)
-- [Nginx](http://nginx.org/)
-- [Shaarli](https://github.com/shaarli/Shaarli)
-
-### Development tools
-- [composer](https://getcomposer.org/)
-- [git](http://git-scm.com/)
-- [nano](http://www.nano-editor.org/)
diff --git a/docker/development/nginx.conf b/docker/development/nginx.conf
deleted file mode 100644 (file)
index 79c45bf..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-user www-data www-data;
-daemon off;
-worker_processes 4;
-
-events {
-    worker_connections  768;
-}
-
-http {
-    include            mime.types;
-    default_type       application/octet-stream;
-    keepalive_timeout  20;
-
-    client_max_body_size 10m;
-
-    index index.html index.php;
-
-    server {
-        listen       80;
-        root         /var/www/shaarli;
-
-        access_log  /var/log/nginx/shaarli.access.log;
-        error_log   /var/log/nginx/shaarli.error.log;
-
-        location /phpinfo/ {
-            # add a PHP info page for convenience
-            fastcgi_pass   unix:/var/run/php5-fpm.sock;
-            fastcgi_index  index.php;
-            fastcgi_param  SCRIPT_FILENAME  /var/www/index.php;
-            include fastcgi_params;
-        }
-
-        location ~ /\. {
-            # deny access to dotfiles
-            access_log off;
-            log_not_found off;
-            deny all;
-        }
-        
-        location ~ ~$ {
-            # deny access to temp editor files, e.g. "script.php~"
-            access_log off;
-            log_not_found off;
-            deny all;
-        }
-
-        location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
-            # cache static assets
-            expires    max;
-            add_header Pragma public;
-            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
-        }
-
-        location = /favicon.ico {
-            # serve the Shaarli favicon from its custom location
-            alias /var/www/shaarli/images/favicon.ico;
-        }
-
-        location / {
-            # Slim - rewrite URLs
-            try_files $uri /index.php$is_args$args;
-        }
-
-        location ~ (index)\.php$ {
-            # Slim - split URL path into (script_filename, path_info)
-            try_files $uri =404;
-            fastcgi_split_path_info ^(.+\.php)(/.+)$;
-
-            # filter and proxy PHP requests to PHP-FPM
-            fastcgi_pass   unix:/var/run/php5-fpm.sock;
-            fastcgi_index  index.php;
-            include        fastcgi.conf;
-        }
-
-        location ~ \.php$ {
-            # deny access to all other PHP scripts
-            deny all;
-        }
-    }
-}
diff --git a/docker/development/supervised.conf b/docker/development/supervised.conf
deleted file mode 100644 (file)
index 5acd979..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-[program:php5-fpm]
-command=/usr/sbin/php5-fpm -F
-priority=5
-autostart=true
-autorestart=true
-
-[program:nginx]
-command=/usr/sbin/nginx
-priority=10
-autostart=true
-autorestart=true
-stdout_events_enabled=true
-stderr_events_enabled=true
index d6dd3fc275bc8bfbfdcd0b7a9a419504b35a033c..cbac149ad1d01ff6a848ba257b6804449fa4e2c1 100644 (file)
@@ -16,10 +16,10 @@ pages:
     - Shaarli configuration: Shaarli-configuration.md
     - Plugins: Plugins.md
 - Docker:
-    - Docker 101: Docker-101.md
-    - Shaarli images: Shaarli-images.md
-    - Reverse proxy configuration: Reverse-proxy-configuration.md
-    - Docker resources: Docker-resources.md
+    - Docker 101: docker/docker-101.md
+    - Shaarli images: docker/shaarli-images.md
+    - Reverse proxy configuration: docker/reverse-proxy-configuration.md
+    - Docker resources: docker/resources.md
 - Usage:
     - Features: Features.md
     - Bookmarklet: Bookmarklet.md