Verified Commit 80070dd7 authored by Gaëtan Blond's avatar Gaëtan Blond

Merge branch 'master' of gitlab.utc.fr:picasoft/projets/dockerfiles

parents 67bccde4 cc1ed824
......@@ -38,6 +38,7 @@ services:
networks:
- proxy
- umap
restart: unless-stopped
db:
image: postgis/postgis:12-3.0-alpine
......
FROM debian:buster
ARG LUFI_BUILD_VERSION=0.05.5
ARG LUFI_BUILD_VERSION=fix-209-cannot-send-mail
ENV APP_HOME=/lufi
# Install dependencies
......@@ -21,8 +21,11 @@ RUN wget "$SUPERCRONIC_URL" \
&& ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
# Get Lufi release
RUN wget https://framagit.org/fiat-tux/hat-softwares/lufi/-/releases/${LUFI_BUILD_VERSION}.zip && unzip ${LUFI_BUILD_VERSION}.zip \
&& rm ${LUFI_BUILD_VERSION}.zip && mv lufi-${LUFI_BUILD_VERSION} lufi
# RUN wget https://framagit.org/fiat-tux/hat-softwares/lufi/-/releases/${LUFI_BUILD_VERSION}.zip \
RUN wget -O ${LUFI_BUILD_VERSION}.zip https://framagit.org/fiat-tux/hat-softwares/lufi/-/archive/${LUFI_BUILD_VERSION}/lufi-${LUFI_BUILD_VERSION}.zip \
&& unzip ${LUFI_BUILD_VERSION}.zip \
&& rm ${LUFI_BUILD_VERSION}.zip \
&& mv lufi-${LUFI_BUILD_VERSION} lufi
WORKDIR ${APP_HOME}
......
......@@ -10,12 +10,31 @@ Il peut recevoir des variables d'environnement avec la syntaxe suivante : `$ENV[
Le thème est injecté directement dans l'image à partir du dossier [picadrop](./picadrop).
Il ne contient pas de modifications esthétiques pour le moment, juste une modification des URL (CGU...).
### Premier lancement
Copier les fichiers de secrets en enlevant le `.example` et remplacer les valeurs.
Vérifier que le dossier correspondant au `device` de `lufi-data` existe sur l'hôte et que le propriétaire est bien l'utilisateur correspondant à Lufi dans le LDAP.
Exemple pour un `device` qui vaut `/DATA/docker/lufi` et un utilisateur avec l'UID `5002` et le GID `502` (valeurs actuelles dans le LDAP) :
```bash
$ sudo chown -R 5002:502 /DATA/lufi
```
Ce dossier doit être stocké sur un disque dur et non sur un SSD, en bout de chaîne. Voir [cette documentation](https://wiki.picasoft.net/doku.php?id=technique:docker:good_practices:storage#cas_particulier).
### Lancement
Copier les fichiers de secrets en enlevant le `.example` et lancer le fichier Compose.
```bash
docker-compose up -d
```
### Mise à jour
Jusqu'à ce que [cette issue](https://framagit.org/fiat-tux/hat-softwares/lufi/-/issues/209#note_793653) soit fermée, la branche `fix-209-cannot-send-mail` est utilisée.
Une fois qu'elle sera fermée, on pourra utiliser les numéros de release comme indiqué ci dessous. Il faudra changer l'URL de téléchargement dans le `Dockerfile` en décommentant le `wget` et en enlevant l'actuel.
Il suffit de changer `LUFI_BUILD_VERSION` dans le `Dockerfile` et de reconstruire l'image.
Aucune autre opération n'est nécessaire pour effectuer les migrations et relancer le service.
......
......@@ -2,8 +2,16 @@ version: "3.7"
volumes:
lufidb-data:
lufi-data:
name: lufidb-data
lufi-files:
driver: local
driver_opts:
type: bind
device: /DATA/docker/lufi
o: bind
name: lufi-files
lufi-data:
name: lufi-data
networks:
proxy:
......@@ -12,7 +20,7 @@ networks:
services:
lufi:
image: registry.picasoft.net/lufi:0.05.2
image: registry.picasoft.net/lufi:fix-mail
build: .
container_name: lufi
depends_on:
......
#!/bin/sh
#!/bin/bash
if [ -z "${EMAIL_PASSWORD}" ]; then
echo "EMAIL_PASSWORD not set, exiting!"
......
......@@ -139,12 +139,12 @@
mail => {
# Valid values are 'sendmail' and 'smtp'
how => 'smtp',
owargs => { host => 'mail.picasoft.net', ssl => 'starttls', sasl_username => 'drop', sasl_password => $ENV{'EMAIL_PASSWORD'}, helo => 'drop.test.picasoft.net'}
howargs => { host => 'mail.picasoft.net', ssl => 'starttls', sasl_username => 'drop', sasl_password => $ENV{'EMAIL_PASSWORD'}, helo => 'drop.picasoft.net'}
},
# Email sender address
# optional, default to no-reply@lufi.io
mail_sender => 'drop@picasoft.net'
mail_sender => 'drop@picasoft.net',
#############
# DB settings
......
pica-lufi/picadrop/public/img/lufi-min.png

2.59 KB | W: | H:

pica-lufi/picadrop/public/img/lufi-min.png

897 Bytes | W: | H:

pica-lufi/picadrop/public/img/lufi-min.png
pica-lufi/picadrop/public/img/lufi-min.png
pica-lufi/picadrop/public/img/lufi-min.png
pica-lufi/picadrop/public/img/lufi-min.png
  • 2-up
  • Swipe
  • Onion skin
FROM python:3.8-alpine
LABEL maintainer quentinduchemin@tuta.io
ARG METRICS_BOT_VERSION=v1.0
ARG METRICS_BOT_VERSION=v1.1
# Get release
RUN wget -O code.tar.gz https://gitlab.utc.fr/picasoft/projets/picasoft-metrics-bot/-/archive/${METRICS_BOT_VERSION}/picasoft-metrics-bot-${METRICS_BOT_VERSION}.tar.gz \
......
......@@ -11,7 +11,7 @@ networks:
services:
metrics-bot:
image: registry.picasoft.net/pica-metrics-bot:v1.0
image: registry.picasoft.net/pica-metrics-bot:v1.1
build: .
container_name: pica-metrics-services
volumes:
......
......@@ -16,14 +16,14 @@ volumes:
services:
mobilizon:
image: registry.picasoft.net/pica-mobilizon:1.0.0
image: registry.picasoft.net/pica-mobilizon:1.0.2
build:
context: ./app
dockerfile: Dockerfile
args:
- NODE_V=14
- MOBILIZON_GIT_URL=https://framagit.org/framasoft/mobilizon.git
- MOBILIZON_GIT_TAG=1.0.0
- MOBILIZON_GIT_TAG=1.0.2
- MIX_ENV=prod
container_name: mobilizon-app
volumes:
......
## Peertube
Ce dossier contient les fichiers nécessaires pour monter une instance de [PeerTube](https://joinpeertube.org), un service d'hébergement de vidéos libre et fédéré.
## Configuration
Copier les fichiers de secret en enlevant le `.example` et en mettant à jour les variables dedans avec les bons secrets.
## Lancement
Simplement lancer le fichier compose.
Au premier lancement :
- L'initialisation est automatique.
- Elle échoue si PeerTube n'arrive pas à se connecter au serveur SMTP.
- Le mot de passe root est dans les logs !
## Mise à jour
Pour l'instant (au 12/11/2020), l'image Docker officielle n'a pas de tags de versions à jour.
Le seul tag à jour est un *rolling* tag, `production-buster`.
À suivre !
version: "3.3"
volumes:
peertube_psql:
peertube_data:
driver: local
driver_opts:
type: bind
device: /DATA/docker/peertube
o: bind
peertube_config:
peertube_postfix_keys:
peertube_redis_data:
networks:
peertube:
ipam:
driver: default
proxy:
external: true
services:
peertube:
# If you don't want to use the official image and build one from sources
# build:
# context: .
# dockerfile: ./support/docker/production/Dockerfile.buster
image: chocobozzz/peertube:production-buster
container_name: peertube-app
env_file:
- ./secrets/peertube.secrets
- ./secrets/peertube-db.secrets
labels:
traefik.http.routers.peertube-app.entrypoints: websecure
traefik.http.routers.peertube-app.rule: Host(`tube.picasoft.net`)
traefik.http.services.peertube-app.loadbalancer.server.port: "9000"
# Added because it is in their upstream traefik.toml
# (because Peertube permit to view a video hosted by host A on site B)
traefik.http.middlewares.peertube-app.headers.framedeny: false
traefik.enable: "true"
volumes:
- peertube_data:/data
- peertube_config:/config
networks:
- peertube
- proxy
depends_on:
- postgres
- redis
restart: "always"
postgres:
image: postgres:10-alpine
container_name: peertube-db
env_file:
- ./secrets/peertube-db.secrets
volumes:
- peertube_psql:/var/lib/postgresql/data
networks:
- peertube
restart: "always"
labels:
traefik.enable: "false"
redis:
image: redis:4-alpine
container_name: peertube-cache
volumes:
- peertube_redis_data:/data
networks:
- peertube
restart: "always"
labels:
traefik.enable: "false"
# Database / Postgres service configuration
POSTGRES_USER=peertube
POSTGRES_PASSWORD=peertube
# Postgres database name "peertube"
POSTGRES_DB=peertube
# Editable only with a suffix :
#POSTGRES_DB=peertube_prod
#PEERTUBE_DB_SUFFIX=_prod
PEERTUBE_DB_USERNAME=peertube
PEERTUBE_DB_PASSWORD=peertube
# Default to Postgres service name "postgres" in docker-compose.yml
PEERTUBE_DB_HOSTNAME=postgres
# Server configuration
PEERTUBE_WEBSERVER_HOSTNAME=peertube.test.picasoft.net
# If you do not use https and a reverse-proxy in docker-compose.yml
#PEERTUBE_WEBSERVER_PORT=80
#PEERTUBE_WEBSERVER_HTTPS=false
# If you need more than one IP as trust_proxy
# pass them as a comma separated array:
PEERTUBE_TRUST_PROXY=["127.0.0.1", "loopback", "172.18.0.0/16"]
# E-mail configuration
# If you use a Custom SMTP server
PEERTUBE_SMTP_USERNAME=peertube
PEERTUBE_SMTP_PASSWORD=ChangeMe
# Default to Postfix service name "postfix" in docker-compose.yml
# May be the hostname of your Custom SMTP server
PEERTUBE_SMTP_HOSTNAME=mail.picasoft.net
PEERTUBE_SMTP_PORT=587
PEERTUBE_SMTP_FROM=peertube@picasoft.net
PEERTUBE_SMTP_TLS=false
PEERTUBE_SMTP_DISABLE_STARTTLS=false
PEERTUBE_ADMIN_EMAIL=peertube@picasoft.net
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\
#PEERTUBE_SIGNUP_ENABLED=true
#PEERTUBE_TRANSCODING_ENABLED=true
#PEERTUBE_CONTACT_FORM_ENABLED=true
......@@ -21,6 +21,7 @@ ADD entrypoint.sh /entrypoint.sh
ADD default.conf /etc/nginx/conf.d/default.conf
ADD index.html /var/www/localhost/htdocs/index.html
ADD picasoft.svg /var/www/localhost/htdocs/picasoft.svg
ADD picasoft-logo-whiteboard.png /var/www/localhost/htdocs/picasoft-logo-whiteboard.png
ADD default.css /var/www/localhost/htdocs/default.css
RUN chmod +x /entrypoint.sh
......
......@@ -15,5 +15,8 @@ server {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
}
/* INIT */
*{
margin: 0;
box-sizing: border-box;
font-family: sans-serif;
font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-align: center;
}
:root {
--background: #303030;
--background-darker: #272727;
--background-lighter: #333333;
--background-header: #18684D;
--background-warning: #8C2424;
--color: #DDDDDD;
}
.flex-center-column {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.flex-row-spacearound {
display: flex;
width: 100%;
justify-content: space-around;
}
.margin-small {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.margin-medium {
margin-top: 1em;
margin-bottom: 1em;
}
.margin-big {
margin-top: 4em;
margin-bottom: 4em;
}
/* SPECIFIC */
body{
background-color: #303030;
color: white;
background-color: var(--background);
color: var(--color);
font-size: 1.2em;
}
header{
background-color: #1A7A5A;
background-color: var(--background-header);
padding: 5px;
padding-top: 10px;
}
header h1{
display: inline;
}
header img{
height: 2em;
width: auto;
article{
width: 100%;
}
.warning{
background-color: #FFC0C0;
margin: auto;
margin-top: 25px;
margin-bottom: 25px;
padding: 10px;
color: #FF0000;
border-radius: 10px;
width: 70%;
border: solid red 1px;
.logo{
width: 9em;
}
.createForm{
width: 90%;
margin: auto;
text-align: center;
.main-center{
width: 85%;
max-width: 640px;
}
label{
display: block;
margin: 5px;
.warning{
padding: 15px;
background-color: var(--background-warning);
border-radius: 10px;
}
input[type="text"]{
margin: 5px;
border: none;
border-radius: 5px;
width: 80%;
width: 100%;
height: 3em;
}
.randomName, input[type="submit"]{
display: inline-block;
width: 40%;
margin-right: 5%;
margin-left: 5%;
color: white;
background-color: #00AFEF;
.buttons * {
padding: 20px;
color: var(--color);
font-size: 1em;
background-color: #075C7B;
width: 11em;
max-width: 48%;
border: none;
border-radius: 10px;
transition: 0.5s;
transition: 0.2s;
font-weight: bold;
text-decoration: none;
}
input[type="submit"]:hover, .randomName:hover{
background-color: #00BFFF;
.buttons *:hover{
background-color: #077299;
}
h2{
padding: 20px;
padding-left: 40px;
footer a {
color: #CCCCCC;
text-decoration: underline;
margin: 0 10px;
}
a{
color: #FFFFFF;
text-decoration: none;
#help{
display: none;
}
.helpLink a{
display: inline-block;
padding: 5px;
font-weight: bold;
background-color: #00AFEF;
border-radius: 5px;
transition: 0.5s;
margin: 5px;
#help:target{
display: flex;
align-items: center;
width: 80%;
margin-left: auto;
margin-right: auto;
}
.helpLink a:hover{
background-color: #00BFFF;
#help thead tr th {
padding-bottom: 10px;
}
p{
padding: 5px;
#help tr.odd {
background-color: var(--background-lighter);
}
#help{
display: none;
#help tr.even {
background-color: var(--background-darker);
}
#help:target{
display: block;
width: 70%;
margin: auto;
#help td, #help th {
text-align: left;
padding: 5px 20px 5px 5px;
}
footer a{
color: #C0C0C0;
text-decoration: underline;
#help td:nth-child(1), #help th:nth-child(1) {
font-weight: bold;
width: 28vw;
max-width: 280px;
}
#help td:nth-child(2), #help th:nth-child(2),
#help td:nth-child(3), #help th:nth-child(3) {
width: 28vw;
max-width: 220px;
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment