mirror of
https://github.com/rorydavidson/owncloud-nginx-letsencrypt-docker.git
synced 2025-01-10 00:36:52 +01:00
First real commit
This commit is contained in:
parent
094d5334d6
commit
59ab0d8029
45
README.md
45
README.md
@ -1,2 +1,43 @@
|
|||||||
# owncloud-docker
|
# owncloud-nginx-letsencrypt-docker
|
||||||
Docker compose and information to run OwnCLoud with an Nginx proxy and LetsEncrypt
|
|
||||||
|
This is a simple repo with information on the a `docker-compose.yml` to run [ownCLoud](https://owncloud.org/) with an Nginx proxy and LetsEncrypt using Docker, as I was able to find anything that did everything I needed based on the official documentation from ownCloud and kept separate volumes for data.
|
||||||
|
|
||||||
|
## Information sources
|
||||||
|
|
||||||
|
This is consolidated based on information from the following places and thanks to them:
|
||||||
|
- [ownCloud server repository](https://github.com/owncloud-docker/server)
|
||||||
|
- [LetsEncrypt NGINX Proxy companion](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion/)
|
||||||
|
|
||||||
|
## Get started
|
||||||
|
|
||||||
|
Pretty straightforward, follow these steps...
|
||||||
|
|
||||||
|
Set up the necessary environment variables at the command line (or equivalent method on the relevant operating system):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat << EOF >| .env
|
||||||
|
OWNCLOUD_VERSION=10.0
|
||||||
|
OWNCLOUD_DOMAIN=localhost
|
||||||
|
ADMIN_USERNAME=admin
|
||||||
|
ADMIN_PASSWORD=admin
|
||||||
|
HTTP_PORT=80
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Change the hostname variables above and in the `docker-compose.yml` file as necessary specifically the variables in the owncloud service environment block:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=local.local.info
|
||||||
|
- VIRTUAL_PORT=8080
|
||||||
|
- LETSENCRYPT_HOST=local.local.info
|
||||||
|
- LETSENCRYPT_EMAIL=x@x.x
|
||||||
|
```
|
||||||
|
|
||||||
|
And then run docker compose up to get going.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d`
|
||||||
|
```
|
||||||
|
|
||||||
|
You should then be able to access it at the domain name you entered and it will redirect to the https URL with a valid certificate.
|
||||||
|
97
docker-compose.yml
Normal file
97
docker-compose.yml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
version: '2.1'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
files:
|
||||||
|
driver: local
|
||||||
|
mysql:
|
||||||
|
driver: local
|
||||||
|
backup:
|
||||||
|
driver: local
|
||||||
|
redis:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx-proxy:
|
||||||
|
image: jwilder/nginx-proxy
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
|
- /apps/docker-articles/nginx/vhost.d:/etc/nginx/vhost.d
|
||||||
|
- /apps/docker-articles/nginx/certs:/etc/nginx/certs:ro
|
||||||
|
- /apps/docker-articles/nginx/html:/usr/share/nginx/html
|
||||||
|
labels:
|
||||||
|
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
|
||||||
|
|
||||||
|
letsencrypt:
|
||||||
|
image: jrcs/letsencrypt-nginx-proxy-companion:latest
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
- /apps/docker-articles/nginx/vhost.d:/etc/nginx/vhost.d
|
||||||
|
- /apps/docker-articles/nginx/certs:/etc/nginx/certs:rw
|
||||||
|
- /apps/docker-articles/nginx/html:/usr/share/nginx/html
|
||||||
|
|
||||||
|
owncloud:
|
||||||
|
image: owncloud/server:${OWNCLOUD_VERSION}
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- ${HTTP_PORT}:8080
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=local.local.info
|
||||||
|
- VIRTUAL_PORT=8080
|
||||||
|
- LETSENCRYPT_HOST=local.local.info
|
||||||
|
- LETSENCRYPT_EMAIL=x@x.x
|
||||||
|
- OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
|
||||||
|
- OWNCLOUD_DB_TYPE=mysql
|
||||||
|
- OWNCLOUD_DB_NAME=owncloud
|
||||||
|
- OWNCLOUD_DB_USERNAME=owncloud
|
||||||
|
- OWNCLOUD_DB_PASSWORD=owncloud
|
||||||
|
- OWNCLOUD_DB_HOST=db
|
||||||
|
- OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
|
||||||
|
- OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||||
|
- OWNCLOUD_MYSQL_UTF8MB4=true
|
||||||
|
- OWNCLOUD_REDIS_ENABLED=true
|
||||||
|
- OWNCLOUD_REDIS_HOST=redis
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "/usr/bin/healthcheck"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- files:/mnt/data
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: webhippie/mariadb:latest
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- MARIADB_ROOT_PASSWORD=owncloud
|
||||||
|
- MARIADB_USERNAME=owncloud
|
||||||
|
- MARIADB_PASSWORD=owncloud
|
||||||
|
- MARIADB_DATABASE=owncloud
|
||||||
|
- MARIADB_MAX_ALLOWED_PACKET=128M
|
||||||
|
- MARIADB_INNODB_LOG_FILE_SIZE=64M
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "/usr/bin/healthcheck"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- mysql:/var/lib/mysql
|
||||||
|
- backup:/var/lib/backup
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: webhippie/redis:latest
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- REDIS_DATABASES=1
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "/usr/bin/healthcheck"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- redis:/var/lib/redis
|
Loading…
Reference in New Issue
Block a user