Skip to content
Snippets Groups Projects
readme_template 4.58 KiB
Newer Older
[![$GITHUB_REPONAME]($GITHUB_REPONAME_HEADER)](https://github.com/$GITHUB_USERNAME/$GITHUB_REPONAME)
---

[![Docker Pulls](https://img.shields.io/docker/pulls/griefed/$DOCKERHUB_REPONAME?style=flat-square)](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/griefed/$DOCKERHUB_REPONAME?label=Image%20size&sort=date&style=flat-square)](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/griefed/$DOCKERHUB_REPONAME?label=Docker%20build&style=flat-square)](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[![Docker Cloud Automated build](https://img.shields.io/docker/cloud/automated/griefed/$DOCKERHUB_REPONAME?label=Docker%20build&style=flat-square)](https://hub.docker.com/repository/docker/griefed/$DOCKERHUB_REPONAME)
[![GitHub Repo stars](https://img.shields.io/github/stars/Griefed/$GITHUB_REPONAME?label=GitHub%20Stars&style=social)](https://github.com/Griefed/$GITHUB_REPONAME)
[![GitHub forks](https://img.shields.io/github/forks/Griefed/$GITHUB_REPONAME?label=GitHub%20Forks&style=social)](https://github.com/Griefed/$GITHUB_REPONAME)

$GITHUB_REPONAME

$DESCRIPTION

[![$CREATOR_REPONAME]($GITHUB_REPONAME_SCREENSHOT)](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 [$BASE_IMAGE](https://hub.docker.com/r/$BASE_IMAGE) as the base image, as seen on $EXAMPLE_SITE_LINK.
The [$BASE_IMAGE](https://hub.docker.com/r/$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

### Pre-built images

```docker-compose.yml
version: '3.6'
services:
  $DOCKERHUB_REPONAME:
    container_name: $DOCKERHUB_REPONAME
    image: griefed/$DOCKERHUB_REPONAME
    restart: unless-stopped
    volumes:
      - ./path/to/config:/config
    environment:
      - TZ=Europe/Berlin
      - PUID=1000  # User ID
      - PGID=1000  # Group ID
Griefed's avatar
Griefed committed
      - DOMAIN=www.example.com
      - PROTOCOL=https
    ports:
      - 80:$CONTAINER_PORT
      - $CONTAINER_PORT2
## Raspberry Pi

To run this container on a Raspberry Pi, use the `arm`-tag. I've tested it on a Raspberry Pi 3B.

`griefed/$DOCKERHUB_REPONAME: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
Griefed's avatar
Griefed committed
DOMAIN | The address of the device this container is running on. Can be an IP or sub.domain.tld.
PROTOCOL | The protocol used to access this container. Either HTTP or HTTPS.
ports | The port where the service will be available at.

## 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)
```

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
Griefed's avatar
Griefed committed
      - DOMAIN=www.example.com
      - PROTOCOL=https
    ports:
      - 8080:$CONTAINER_PORT
```

1. Clone the repository: `git clone https://github.com/Griefed/$GITHUB_REPONAME.git ./$GITHUB_REPONAME`
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!