readme_template 7.38 KiB
[](https://github.com/$CREATOR_USERNAME/$CREATOR_REPONAME)
---
[](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[](https://github.com/Griefed/$GITHUB_REPONAME)
[](https://github.com/Griefed/$GITHUB_REPONAME)
$GITHUB_REPONAME
$DESCRIPTION
[](https://github.com/$CREATOR_USERNAME/$CREATOR_REPONAME)
---
Creates a Container which runs [$CREATOR_USERNAME's](https://github.com/$CREATOR_USERNAME) [$CREATOR_REPONAME](https://github.com/$CREATOR_USERNAME/$CREATOR_REPONAME), with [lsiobase/$BASE_IMAGE](https://hub.docker.com/r/lsiobase/$BASE_IMAGE) as the base image, as seen on $EXAMPLE_SITE_LINK.
The lsiobase/$BASE_IMAGE image is a custom base image built with [Alpine linux](https://alpinelinux.org/) and [S6 overlay](https://github.com/just-containers/s6-overlay).
Using this image allows us to use the same user/group ids in the container as on the host, making file transfers much easier
## Deployment
Tags | Description
-----|-------------
$DOCKERHUB_TAG_ONE | Use tag `$DOCKERHUB_TAG_ONE` if accessing $CREATOR_REPONAME via IP:PORT
$DOCKERHUB_TAG_TWO | Use tag `$DOCKERHUB_TAG_TWO` if accessing $CREATOR_REPONAME through a reverse proxy line NGINX
```docker-compose.yml
version: '3.6'
services:
$DOCKERHUB_REPONAME:
container_name: $DOCKERHUB_REPONAME
image: $DOCKERHUB_USERNAME/$DOCKERHUB_REPONAME
restart: unless-stopped
volumes:
- ./path/to/config:/config
environment:
- TOKEN=<YOUR_BOT_TOKEN_HERE>
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
ports:
- 3000:$CONTAINER_PORT
- $CONTAINER_PORT2
```
## Raspberry Pi
To run this container on a Raspberry Pi, use the `arm`-prefix for the `$DOCKERHUB_TAG_ONE`- and `$DOCKERHUB_TAG_TWO`-tags. I've tested the `$DOCKERHUB_TAG_ONE`-tag on a Raspberry Pi 3B.
`$DOCKERHUB_USERNAME/$DOCKERHUB_REPONAME:$DOCKERHUB_TAG_ONE-arm`
`$DOCKERHUB_USERNAME/$DOCKERHUB_REPONAME:$DOCKERHUB_TAG_TWO-arm`
## Configuration
Configuration | Explanation
------------ | -------------
[Restart policy](https://docs.docker.com/compose/compose-file/#restart) | "no", always, on-failure, unless-stopped
config volume | Contains config files and logs.
data volume | Contains your/the containers important data.
TZ | Timezone
PUID | for UserID
PGID | for GroupID
ports | The port where $DOCKERHUB_REPONAME will be available at. Only relevant when using `$DOCKERHUB_USERNAME/$DOCKERHUB_REPONAME:$DOCKERHUB_TAG_ONE`
## User / Group Identifiers
When using volumes, permissions issues can arise between the host OS and the container. [Linuxserver.io](https://www.linuxserver.io/) avoids this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
## Specify channels to ignore:
D-Zone will, by default, listen to all channels on the servers which your bot is connected to.
If you want to set ignoreChannels, you need to edit your `discord-config.json`file in the folder you specified in your `volumes:`.
Edit the "servers" block on a per server basis, e.g.:
```json
"servers": [
{
"id": "<YOUR_SERVER_ID_HERE",
"default": true,
"ignoreChannels": ["TEXTCHANNEL_ID1","TEXTCHANNEL_ID2","TEXTCHANNEL_ID3"]
}
]
```
If you want to define multiple servers, see https://github.com/d-zone-org/d-zone/blob/master/discord-config-example.json
## Running D-Zone behind a reverse proxy like NGINX
If you want to serve d-zone with a reverse proxy like nginx and HTTPS, then this may be of help to you:
```docker-compose.yml
version: '3.6'
services:
d-zone:
container_name: $DOCKERHUB_REPONAME
image: griefed/$DOCKERHUB_REPONAME:$DOCKERHUB_TAG_TWO
restart: unless-stopped
volumes:
- ./path/to/config/files:/config
environment:
- TOKEN=<YOUR_BOT_TOKEN_HERE>
- TZ=Europe/Berlin
- PUID=1000 #User ID
- PGID=1000 #Group ID
```
I use a dockerized NGINX as a reverse proxy, specifically [linuxserver/swag](https://hub.docker.com/r/linuxserver/swag).
```nginx
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name SUBDMOAIN.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
# enable for ldap auth, fill in ldap details in ldap.conf
#include /config/nginx/ldap.conf;
# enable for Authelia
#include /config/nginx/authelia-server.conf;
location / {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable the next two lines for ldap auth
#auth_request /auth;
#error_page 401 =200 /ldaplogin;
# enable for Authelia
#include /config/nginx/authelia-location.conf;
include /config/nginx/proxy.conf;
resolver 127.0.0.11 valid=30s;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_request_headers on;
set $upstream_app d-zone;
set $upstream_port 3000;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
```
### Building the image yourself
Use the [Dockerfile](https://github.com/Griefed/$GITHUB_REPONAME/Dockerfile) to build the image yourself, in case you want to make any changes to it
#### docker-compose.yml
```docker-compose.yml
version: '3.6'
services:
$DOCKERHUB_REPONAME:
container_name: $DOCKERHUB_REPONAME
build: ./$GITHUB_REPONAME/
restart: unless-stopped
volumes:
- ./path/to/config/files:/config
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
ports:
- 8080:$CONTAINER_PORT
- $CONTAINER_PORT2
```
1. Clone the repository: `git clone https://github.com/Griefed/$GITHUB_REPONAME.git ./$GITHUB_REPONAME`
1. Rename **Dockerfile.$DOCKERHUB_TAG_ONE** to **Dockerfile**: `mv Dockerfile.$DOCKERHUB_TAG_ONE Dockerfile`
1. Prepare docker-compose.yml file as seen above
1. `docker-compose up -d --build $DOCKERHUB_REPONAME`
1. Visit IP.ADDRESS.OF.HOST:8080
1. ???
1. Profit!