From 62af4d9952ff76a6a94df2eb45b3d0cfe18335aa Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Tue, 28 Jun 2022 07:23:31 +0200 Subject: [PATCH] Add nextcloud config first attempt --- services/nextcloud/.env | 8 +++++ services/nextcloud/.env.example | 6 ++++ services/nextcloud/.gitignore | 3 ++ services/nextcloud/README.md | 13 ++++++++ services/nextcloud/docker-compose.yml | 44 +++++++++++++++++++++++++++ services/nextcloud/nginx.conf | 44 +++++++++++++++++++++++++++ services/nextcloud/setup.sh | 2 ++ 7 files changed, 120 insertions(+) create mode 100644 services/nextcloud/.env create mode 100644 services/nextcloud/.env.example create mode 100644 services/nextcloud/.gitignore create mode 100644 services/nextcloud/README.md create mode 100644 services/nextcloud/docker-compose.yml create mode 100644 services/nextcloud/nginx.conf create mode 100755 services/nextcloud/setup.sh diff --git a/services/nextcloud/.env b/services/nextcloud/.env new file mode 100644 index 0000000..f94392e --- /dev/null +++ b/services/nextcloud/.env @@ -0,0 +1,8 @@ +# env for nextcloud +# Database configuration +MYSQL_ROOT_PASSWORD=qdhfkqfhkvbskdvazf +MYSQL_PASSWORD=kqddkfjkqfjqsld +MYSQL_DATABASE=nextcloud +MYSQL_USER=nextcloud + +REDIS_PASSWORD=qdhfkqfKFVOFGJKGFKQSFJD \ No newline at end of file diff --git a/services/nextcloud/.env.example b/services/nextcloud/.env.example new file mode 100644 index 0000000..05ea47e --- /dev/null +++ b/services/nextcloud/.env.example @@ -0,0 +1,6 @@ +# env for nextcloud +# Database configuration +MYSQL_ROOT_PASSWORD=secret +MYSQL_PASSWORD=secret +MYSQL_DATABASE=nextcloud +MYSQL_USER=nextcloud \ No newline at end of file diff --git a/services/nextcloud/.gitignore b/services/nextcloud/.gitignore new file mode 100644 index 0000000..088b471 --- /dev/null +++ b/services/nextcloud/.gitignore @@ -0,0 +1,3 @@ +./data/ + +!./data/.gitkeep diff --git a/services/nextcloud/README.md b/services/nextcloud/README.md new file mode 100644 index 0000000..9c46ac8 --- /dev/null +++ b/services/nextcloud/README.md @@ -0,0 +1,13 @@ +# Nextcloud configuration + +## Setup + +```bash +chmod +x ./setup.sh +./setup.sh +``` + +## References + +- [Nextcloud with docker-compose](https://stangneth.com/2022/02/02/nextcloud-with-docker-compose/) +- [Setup Nextcloud with Redis using Docker](https://markontech.com/docker/setup-nextcloud-with-redis-using-docker/) \ No newline at end of file diff --git a/services/nextcloud/docker-compose.yml b/services/nextcloud/docker-compose.yml new file mode 100644 index 0000000..cd41764 --- /dev/null +++ b/services/nextcloud/docker-compose.yml @@ -0,0 +1,44 @@ +--- +version: '3' + +volumes: + nextcloud: + db: +services: + db: + image: mariadb:latest + restart: always + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed + volumes: + - ./data/db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-secret} + - MYSQL_PASSWORD=${MYSQL_PASSWORD:-secret} + - MYSQL_DATABASE=${MYSQL_DATABASE:-nextcloud} + - MYSQL_USER=${MYSQL_USER:-nextcloud} + redis: + image: redis:latest + restart: always + command: redis-server --requirepass ${REDIS_PASSWORD:-secret} + + app: + image: nextcloud:latest + restart: always + ports: + - "8080:80" + links: + - db + - redis + volumes: + - ./data/app/:/var/www/html + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-secret} + - MYSQL_PASSWORD=${MYSQL_PASSWORD:-secret} + - MYSQL_DATABASE=${MYSQL_DATABASE:-nextcloud} + - MYSQL_USER=${MYSQL_USER:-nextcloud} + - MYSQL_HOST=db + - REDIS_HOST_PASSWORD=${REDIS_PASSWORD:-secret} + depends_on: + - db + - redis +... \ No newline at end of file diff --git a/services/nextcloud/nginx.conf b/services/nextcloud/nginx.conf new file mode 100644 index 0000000..5302687 --- /dev/null +++ b/services/nextcloud/nginx.conf @@ -0,0 +1,44 @@ +# nginx reverse proxy for nextcloud + +server { + server_name cloud.s1gm4.eu; + listen 80; + listen [::]:80; + + # Redirect to https + location / { + redirect 302 https://localhost:8080$request_uri; + } + + # For dehydrated ssl certification + location /.well-known/acme-challenge { + alias /var/www/dehydrated; + } +} + +server { + # SSL configuration + # + listen 443 ssl; + listen [::]:443 ssl; + # + + ssl_certificate /var/www/dehydrated/certs/cloud.s1gm4.eu/fullchain.pem; + ssl_certificate_key /var/www/dehydrated/certs/cloud.s1gm4.eu/privkey.pem; + + # Add index.php to the list if you are using PHP + index index.html index.htm index.php; + + server_name cloud.s1gm4.eu; + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + location ~ /\.ht { + deny all; + } + # For dehydrated ssl certification + location /.well-known/acme-challenge { + alias /var/www/dehydrated; + } +} \ No newline at end of file diff --git a/services/nextcloud/setup.sh b/services/nextcloud/setup.sh new file mode 100755 index 0000000..0fbbfd5 --- /dev/null +++ b/services/nextcloud/setup.sh @@ -0,0 +1,2 @@ +#!/bin/sh +mkdir -p ./data/{app,db}