inital setup
This commit is contained in:
10
.env.sample
Normal file
10
.env.sample
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
WIKITAG=26
|
||||||
|
DBTAG=10.6
|
||||||
|
OFFICETAG=6.4
|
||||||
|
|
||||||
|
BASEDIR=
|
||||||
|
INTRANET=
|
||||||
|
|
||||||
|
DB_NAME=
|
||||||
|
DB_USER=
|
||||||
|
DB_PASS=
|
||||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
files/
|
||||||
|
.env
|
||||||
68
README.md
68
README.md
@@ -1,2 +1,68 @@
|
|||||||
# compose-nextcloud
|
# Basic Nextcloud with MariaDB and Onlyoffice docker-compose config
|
||||||
|
* can be run on single node setup or in swarm
|
||||||
|
|
||||||
|
## howto
|
||||||
|
### single node
|
||||||
|
#### start container
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
#### stop container (and remove)
|
||||||
|
```bash
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
#### view logs
|
||||||
|
```bash
|
||||||
|
docker compose logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
#### reload config
|
||||||
|
```bash
|
||||||
|
docker compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
### swarm
|
||||||
|
#### start aka deploy
|
||||||
|
hint: drone fails to start until git auth source is created and set in vars
|
||||||
|
```bash
|
||||||
|
docker stack deploy -c docker-compose.yml cloud
|
||||||
|
```
|
||||||
|
|
||||||
|
#### stop container aka stack
|
||||||
|
```bash
|
||||||
|
docker stack rm cloud
|
||||||
|
```
|
||||||
|
|
||||||
|
#### view logs
|
||||||
|
```bash
|
||||||
|
docker service logs cloud_cloud -f
|
||||||
|
docker service logs cloud_db -f
|
||||||
|
docker service logs cloud_office -f
|
||||||
|
```
|
||||||
|
|
||||||
|
#### reload config (no downtime if replica 2 or more)
|
||||||
|
```bash
|
||||||
|
docker service update cloud_cloud
|
||||||
|
docker service update cloud_db
|
||||||
|
docker service update cloud_office
|
||||||
|
```
|
||||||
|
|
||||||
|
## example caddy config
|
||||||
|
```
|
||||||
|
cloud.example.com {
|
||||||
|
reverse_proxy cloud:80
|
||||||
|
encode gzip
|
||||||
|
|
||||||
|
# Service discovery via well-known
|
||||||
|
redir /.well-known/carddav /remote.php/carddav 301
|
||||||
|
redir /.well-known/caldav /remote.php/caldav 301
|
||||||
|
}
|
||||||
|
office.example.com {
|
||||||
|
reverse_proxy office:80
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## config onlyoffice in nextcloud
|
||||||
|
comming soon
|
||||||
81
docker-compose.yml
Normal file
81
docker-compose.yml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# https://docs.docker.com/compose/compose-file/compose-file-v3/
|
||||||
|
---
|
||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
cloud:
|
||||||
|
image: nextcloud:${CLOUDTAG:-latest}
|
||||||
|
container_name: cloud
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
max_replicas_per_node: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/config/:/var/www/html/config/
|
||||||
|
- ${BASEDIR:-.}/files/apps/:/var/www/html/custom_apps/
|
||||||
|
- ${BASEDIR:-.}/files/data/:/var/www/html/data/
|
||||||
|
- ${BASEDIR:-.}/files/themes/:/var/www/html/themes/
|
||||||
|
- ${BASEDIR:-.}/files/skeleton/:/var/www/html/core/skeleton/
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
environment:
|
||||||
|
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
||||||
|
- MYSQL_DATABASE=${DB_NAME:-nextcloud}
|
||||||
|
- MYSQL_USER=${DB_USER:-nextcloud}
|
||||||
|
- MYSQL_PASSWORD=${DB_PASS:-nextcloudpasswd}
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- cloudnet
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mariadb:${DBTAG:-latest}
|
||||||
|
container_name: wikidb
|
||||||
|
restart: unless-stopped
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
max_replicas_per_node: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/clouddb/:/var/lib/mysql/
|
||||||
|
environment:
|
||||||
|
- MARIADB_RANDOM_ROOT_PASSWORD=yes
|
||||||
|
- MARIADB_DATABASE=${DB_NAME:-nextcloud}
|
||||||
|
- MARIADB_USER=${DB_USER:-nextcloud}
|
||||||
|
- MARIADB_PASSWORD=${DB_PASS:-nextcloudpasswd}
|
||||||
|
networks:
|
||||||
|
- cloudnet
|
||||||
|
|
||||||
|
office:
|
||||||
|
image: onlyoffice/documentserver:${OFFICETAG:-latest}
|
||||||
|
container_name: office
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
max_replicas_per_node: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/officedata:/var/www/onlyoffice/Data
|
||||||
|
- ${BASEDIR:-.}/files/officedb:/var/lib/postgresql
|
||||||
|
# - ${BASEDIR:-.}/files/officelog:/var/log/onlyoffice
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- cloudnet
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
name: ${INTRANET:-backend}
|
||||||
|
wikinet:
|
||||||
Reference in New Issue
Block a user