# installer dpaste avec nginx et docker sur linux

description : article sur comment installer dpaste avec nginx et docker sur debian
categories : Sysadmin;
tags : Linux; Docker; Freec0ding;
Table Of Contents

intro

Dans cet article, je vais détailler comment installer dpaste avec nginx en utilisant docker sur linux.

postgresql

Pour installer la base de données, voir : comment installer mysql et postgresql avec docker sur linux.

Pour dpaste je vais utiliser la base de données PostgreSQL :
Je crée la base de données pour dpaste :

sudo docker exec -it postgresql-container psql -U postgres
1
2
CREATE USER dpaste WITH ENCRYPTED PASSWORD 'example-password';
CREATE DATABASE dpastedb OWNER dpaste;

dpaste

Le fichier docker-compose pour dpaste : dpaste-docker-compose.yml :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
networks:
  dpaste_network:
    name: dpaste-network
  sql_network:
    name: sql-network
    external: true

services:
  dpaste:
    image: darrenofficial/dpaste:latest
    container_name: dpaste-container
    restart: always
    networks:
      - dpaste_network
      - sql_network
    environment:
      DATABASE_URL: postgres://dpaste:example-password@postgresql/dpastedb

Je crée le container dpaste-container :

sudo docker-compose -p dpaste -f ./dpaste-docker-compose.yml up -d

nginx

Pour installer nginx, voir : comment installer nginx avec docker sur linux.

Le fichier de config dpaste.conf dans le container web /srv/web/nginx/conf/conf.d/ :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# dpaste

server {
  listen 80;
  listen [::]:80;

  server_name paste.freec0ding.dev;

  access_log /var/log/nginx/paste_access.log;
  error_log /var/log/nginx/paste_error.log;

  server_tokens off;

  return 301 https://$http_host$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;

  server_name paste.freec0ding.dev;

  ssl_certificate /etc/letsencrypt/live/freec0ding.dev/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/freec0ding.dev/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/freec0ding.dev/chain.pem;

  access_log /var/log/nginx/paste_access.log;
  error_log /var/log/nginx/paste_error.log;

  server_tokens off;

  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_pass http://dpaste:8000;
  }
}

Je restart le container nginx :

sudo docker exec nginx-container service nginx restart

Le résulta :



Table Of Contents