diff --git a/README.md b/README.md index 5cf4d7a..4eb9e4d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # hedgedoc +Repository: https://github.com/hedgedoc/container + +Dokumentation: https://docs.hedgedoc.org/configuration/ \ No newline at end of file diff --git a/backup.sh b/backup.sh new file mode 100644 index 0000000..1efbb17 --- /dev/null +++ b/backup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +#Löscht alle "*.tar.gz" und "*.sql" Dateien die älter als 14 Tage sind: +find -P "/mnt/storage-bx20/data-nextcloud/bmen/files/Server/Hetzner-Cloud-CX21/hedgedoc/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +14 -exec rm {} \; +find -P "/mnt/storage-bx20/data-nextcloud/bmen/files/Server/Hetzner-Cloud-CX21/hedgedoc/" -maxdepth 1 -type f \( -name '*.sql' \) -ctime +14 -exec rm {} \; + +#Zur Sicherheit noch einen SQL-Dump der Datenbank +docker exec -i hedgedoc-db pg_dump codimd -U codimd > /mnt/storage-bx20/data-nextcloud/bmen/files/Server/Hetzner-Cloud-CX21/hedgedoc/hedgedoc-`date '+%Y%m%d%H%M'`.sql + +#Die Docker Container stoppen und die Datenverzeichnisse komprimieren und wegkopieren +cd /root/deployments/hedgedoc/ +docker-compose down +cd /opt/appdata/ +tar cvf /mnt/storage-bx20/data-nextcloud/bmen/files/Server/Hetzner-Cloud-CX21/hedgedoc/hedgedoc-`date '+%Y%m%d%H%M'`.tar.gz hedgedoc/ + +#Nextcloud Datenbank über die Dateiänderung Bescheid geben +docker exec --user www-data nextcloud php occ files:scan -p bmen/files/Server/Hetzner-Cloud-CX21/hedgedoc/ \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..352643d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,86 @@ +# Using version 3 to provide play-with-docker badge +# You can change to version 2 without breaking. +#version: '2' +version: '3' + +networks: + webproxy: + external: true + + backend-hedgedoc: + external: true + +services: + database: + # Don't upgrade PostgreSQL by simply changing the version number + # You need to migrate the Database to the new PostgreSQL version + image: postgres:9.6-alpine + container_name: hedgedoc-db + #mem_limit: 256mb # version 2 only + #memswap_limit: 512mb # version 2 only + #read_only: true # not supported in swarm mode please enable along with tmpfs + #tmpfs: + # - /run/postgresql:size=512K + # - /tmp:size=256K + environment: + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} + volumes: + - /opt/appdata/hedgedoc/db:/var/lib/postgresql/data + networks: + - backend-codimd + restart: always + + app: + # Uncomment the following section to build the image yourself: + #build: + # context: . + # dockerfile: debian/Dockerfile + # args: + # - "VERSION=master" + # - "HEDGEDOC_REPOSITORY=https://github.com/hedgedoc/hedgedoc.git" + image: quay.io/hedgedoc/hedgedoc:1.7.2 + container_name: hedgedoc + #mem_limit: 256mb # version 2 only + #memswap_limit: 512mb # version 2 only + #read_only: true # not supported in swarm mode, enable along with tmpfs + #tmpfs: + # - /tmp:size=10M + # # Make sure you remove this when you use filesystem as upload type + # - /hedgedoc/public/uploads:size=10M + environment: + # DB_URL is formatted like: ://:@:/ + # Other examples are: + # - mysql://hedgedoc:password@database:3306/hedgedoc + # - sqlite:///data/sqlite.db (NOT RECOMMENDED) + # - For details see the official sequelize docs: http://docs.sequelizejs.com/en/v3/ + # - CMD_DB_URL=postgres://hedgedoc:password@database:5432/hedgedoc + - CMD_DOMAIN=md.bmen.cc + - CMD_URL_ADDPORT=false + - CMD_PROTOCOL_USESSL=true + #- CMD_EMAIL=false + - CMD_ALLOW_EMAIL_REGISTER=false + - CMD_ALLOW_ANONYMOUS=false + - CMD_ALLOW_ANONYMOUS_EDITS=true + - CMD_DEFAULT_PERMISSION=limited + - CMD_IMAGE_UPLOAD_TYPE=filesystem + - CMD_DB_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@codimd-db:5432/${POSTGRES_DB} + - CMD_ALLOW_PDF_EXPORT=true + - CMD_ALLOW_FREEURL=true + volumes: + - /opt/appdata/hedgedoc/uploads:/hedgedoc/public/uploads + ports: + # Ports that are published to the outside. + # The latter port is the port inside the container. It should always stay on 3000 + # If you only specify a port it'll published on all interfaces. If you want to use a + # local reverse proxy, you may want to listen on 127.0.0.1. + # Example: + # - "127.0.0.1:3000:3000" + # - "3000:3000" + networks: + - webproxy + - backend-codimd + restart: always + depends_on: + - database \ No newline at end of file