feat: Add HedgeDoc service

This commit is contained in:
Simon 2021-07-21 11:07:36 +02:00
parent 4cd564f530
commit a5be480d39
5 changed files with 152 additions and 0 deletions

33
hedgedoc/.env Normal file
View File

@ -0,0 +1,33 @@
########
# DOCKER
COMPOSE_FILE=../postgres/docker-compose.yml:./docker-compose.traefik.yml:./docker-compose.yml
##########
# HEDGEDOC
HEDGEDOC_DOMAIN=md.cool.life
#HEDGEDOC_VOLUME_NAME=
#HEDGEDOC_CONTAINER_NAME=
#HEDGEDOC_IMAGE=
#NODE_ENV=
#CMD_PROTOCOL_USESSL=
#CMD_ALLOW_GRAVATAR=
#CMD_ALLOW_FREEURL=
#CMD_ALLOW_EMAIL_REGISTER=
##########
# POSTGRES
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=database
#POSTGRES_VOLUME_NAME=
#POSTGRES_CONTAINER_NAME=
#POSTGRES_IMAGE=
#########
# TRAEFIK
#TRAEFIK_NETWORK_NAME=
#TRAEFIK_ROUTER_NAME=

33
hedgedoc/README.md Normal file
View File

@ -0,0 +1,33 @@
# HedgeDoc
> Le meilleur moyen d'écrire et partager votre savoir en markdown.
## Docker compose
La configuration est séparé en 3 fichiers :
- docker-compose.yml avec le service spécifique à HedgeDoc
- docker-compose.traefik.yml avec la configuration spécifique pour Traefik
- ../postgres/docker-compose.yml pour la partie base de donnée
## Configuration
[De nombreuses variables d'environnement][documentation] peuvent être précisé pour configurer HedgeDoc.
Modifier les variables dans le fichier `.env`.
Lancer le service :
```sh
docker-compose up -d
```
## Liens
- [Site officiel][website]
- [Github][github]
- [L'image Docker][docker]
[website]: https://hedgedoc.org/
[docker]: https://hub.docker.com/r/linuxserver/hedgedoc
[github]: https://github.com/hedgedoc/hedgedoc
[documentation]: https://docs.hedgedoc.org/configuration/

View File

@ -0,0 +1,13 @@
version: "3.8"
networks:
default:
name: ${TRAEFIK_NETWORK_NAME:-traefik}
services:
hedgedoc:
labels:
- traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-hedgedoc}.rule=Host(`${HEDGEDOC_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-hedgedoc}.entrypoints=web

View File

@ -0,0 +1,26 @@
version: "3.8"
volumes:
hedgedoc:
name: ${HEDGEDOC_VOLUME_NAME:-hedgedoc}
services:
hedgedoc:
container_name: ${HEDGEDOC_CONTAINER_NAME:-hedgedoc}
image: ${HEDGEDOC_IMAGE:-linuxserver/hedgedoc:1.8.2-ls22}
restart: always
depends_on:
- postgres
volumes:
- hedgedoc:/config
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
# https://docs.hedgedoc.org/configuration/
CMD_DB_URL: postgres://${POSTGRES_USER:?err}:${POSTGRES_PASSWORD:?err}@postgres:${POSTGRES_PORT:-5432}/${POSTGRES_DB:?err}
CMD_DOMAIN: ${HEDGEDOC_DOMAIN:?err}
NODE_ENV: ${NODE_ENV:-development} # `production` or `development`
CMD_PROTOCOL_USESSL: ${CMD_PROTOCOL_USESSL:-false}
CMD_ALLOW_GRAVATAR: ${CMD_ALLOW_GRAVATAR:-true}
CMD_ALLOW_FREEURL: ${CMD_ALLOW_FREEURL:-false}
CMD_ALLOW_EMAIL_REGISTER: ${CMD_ALLOW_EMAIL_REGISTER:-true}

47
hedgedoc/run Normal file
View File

@ -0,0 +1,47 @@
#!/bin/bash
set -eu
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. $DIR/../help.sh
. $DIR/../postgres/run --only-source
hedgedoc_help() {
echo "./run backup : Lancement de la sauvegarde de HedgeDoc"
echo "./run restore : Restauration de la sauvegarde de HedgeDoc"
}
hedgedoc_backup() {
script_env
BACKUP_DATE_DEFAULT=`date +%Y%m%d_%H%M%S`
BACKUP_DATE=${BACKUP_DATE:-$BACKUP_DATE_DEFAULT}
backup_folder_create
POSTGRES_BACKUP_FILE=backups/${BACKUP_DATE}_${HEDGEDOC_DOMAIN}_postgres.sql
postgres_backup
docker run -it --rm -v $HOME/backups/${HEDGEDOC_DOMAIN}:/backup --volumes-from hedgedoc alpine:3.12.3 ash -c "cd config && tar cvf /backup/${BACKUP_DATE}_${HEDGEDOC_DOMAIN}_config.tar ."
}
hedgedoc_restore() {
script_env
postgres_restore
docker run -it --rm -v $HOME/backups/${HEDGEDOC_DOMAIN}:/backup --volumes-from hedgedoc alpine:3.12.3 ash -c "cd /config && tar xvf /backup/${BACKUP_DATE}_${HEDGEDOC_DOMAIN}_config.tar --strip 1"
}
if [ $# -ge 1 ]; then
if [ "${1}" == "backup" ]; then
script_start
hedgedoc_backup
script_end
elif [ "${1}" == "restore" ]; then
script_start
hedgedoc_restore
script_end
elif [ "${1}" != "--only-source" ]; then
hedgedoc_help
fi
else
hedgedoc_help
fi