This commit is contained in:
Hattshire 2023-09-11 12:48:18 +00:00
parent 24bee4c85e
commit c084dd2a19
7 changed files with 86 additions and 22 deletions

View file

@ -0,0 +1,22 @@
#!/bin/bash
set -e
set -u
function create_user_and_database() {
local database=$1
echo " Creating user and database '$database'"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER $database;
CREATE DATABASE $database;
GRANT ALL PRIVILEGES ON DATABASE $database TO $database;
EOSQL
}
if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then
echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES"
for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do
create_user_and_database $db
done
echo "Multiple databases created"
fi

4
db.env Normal file
View file

@ -0,0 +1,4 @@
MYSQL_ROOT_PASSWORD=root
MYSQL_USER=nextcloud
MYSQL_PASSWORD=nextcloud
MYSQL_DATABASE=nextcloud

View file

@ -7,9 +7,10 @@ volumes:
# vhost.d:
html:
#NextCloud
nc-appdata:
nc-data:
nc-userdata:
nc-apps:
db-data:
networks:
proxy-tier:
@ -17,12 +18,12 @@ networks:
services:
# ============ NextCloud
nextcloud:
image: nextcloud
build: ./images/nc
restart: always
expose:
- 80
volumes:
- nc-appdata:/var/www/html
- nc-data:/var/www/html
- nc-userdata:/var/www/html/data
- nc-apps:/var/www/html/apps
environment:
@ -34,25 +35,37 @@ services:
- OVERWRITEPROTOCOL=https
- NEXTCLOUD_ADMIN_USER=Super
- "NEXTCLOUD_ADMIN_PASSWORD=&3Qv%CQCGp>zs-!f"
- OBJECTSTORE_S3_HOST=axkurj1fnll3.compat.objectstorage.sa-santiago-1.oraclecloud.com
- OBJECTSTORE_S3_BUCKET=palta.cyou-nextcloud-standard-1
- OBJECTSTORE_S3_KEY=40b34022e06916f8c1ce17cd3dc93438465feb00
- OBJECTSTORE_S3_SECRET=uZDPc7J6oic5p3S0BWBJm0YojLtDsL+Ukjh8MdSCxNs=
- OBJECTSTORE_S3_HOST=s3.us-west-001.backblazeb2.com
- OBJECTSTORE_S3_BUCKET=paltas
- OBJECTSTORE_S3_KEY=001602c9b6d6e420000000001
- OBJECTSTORE_S3_SECRET=K001WXz69MkRgVKk+7DP4mwbZYXe2fQ
- OBJECTSTORE_S3_PORT=443
- OBJECTSTORE_S3_SSL=true
- OBJECTSTORE_S3_REGION=sa-santiago-1
- OBJECTSTORE_S3_REGION=us-west-001
- OBJECTSTORE_S3_USEPATH_STYLE=true
- POSTGRES_HOST=db
- REDIS_HOST=redis
env_file:
- db.env
networks:
- default
- proxy-tier
depends_on:
- reverse_proxy
- db
- redis
nextcloud-janitor:
image: nextcloud
build: ./images/nc
restart: always
volumes:
- nc-appdata:/var/www/html
- nc-data:/var/www/html
- nc-userdata:/var/www/html/data
- nc-apps:/var/www/html/apps
entrypoint: /cron.sh
# depends_on:
depends_on:
- db
- redis
# =========== SSL
@ -78,7 +91,7 @@ services:
volumes:
- certs:/etc/nginx/certs
- acme:/etc/acme.sh
- ./vhost.d:/etc/nginx/vhost.d:ro
- ./vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
@ -88,3 +101,19 @@ services:
environment:
#- ACME_CA_URI=https://acme-staging-v02.api.letsencrypt.org/directory # test-server
- DEFAULT_EMAIL=admin@uwu.email
db:
# container_name: db
image: postgres:14-alpine
restart: always
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
env_file:
- db.env
shm_size: 256MB
redis:
image: redis:alpine
restart: always

4
docker-update.sh Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/bash
docker compose up --force-recreate --build -d --pull always
docker image prune -f

5
images/nc/Dockerfile Normal file
View file

@ -0,0 +1,5 @@
FROM nextcloud:25.0
RUN echo "*/5 * * * * php -f /var/www/nextcloud/occ preview:pre-generate">> /var/spool/cron/crontabs/www-data
RUN apt-get update && apt-get install -y ffmpeg imagemagick \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,10 +0,0 @@
## Start of configuration add by letsencrypt container
location ^~ /.well-known/acme-challenge/ {
auth_basic off;
auth_request off;
allow all;
root /usr/share/nginx/html;
try_files $uri =404;
break;
}
## End of configuration add by letsencrypt container

View file

@ -1,3 +1,13 @@
## Start of configuration add by letsencrypt container
location ^~ /.well-known/acme-challenge/ {
auth_basic off;
auth_request off;
allow all;
root /usr/share/nginx/html;
try_files $uri =404;
break;
}
## End of configuration add by letsencrypt container
# From: https://github.com/nextcloud/docker/blob/85e22b4a8e6b12d82d574c7eacd68656dac85bf5/.examples/docker-compose/with-nginx-proxy/postgres/fpm/proxy/uploadsize.conf
client_max_body_size 10G;
proxy_request_buffering off;