# # Copyright (C) 2019 Josh Habdas # # This file is part of After Dark. # # After Dark is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # After Dark is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # DOCKER-VERSION 19.03.1-ce, build 74b1e89e8a # COMPOSE-VERSION 1.24.1 # HOW TO USE THIS FILE # # 1. Install Docker and Docker Compose on a host machine # 2. Copy `Dockerfile` and `docker-compose.yml` to directory of choice # 3. Run `docker build .` to build after-dark image # 4. Run `mkdir -p site/content` to contain your config and site content # 5. Create a temporary container to copy site config and welcome post from container to host # ``` # docker create -it --name temp $(docker images -q | head -n 1) sh && \ # docker cp temp:/opt/after-dark/config.toml ./site && \ # docker cp temp:/opt/after-dark/content/post/ ./site/content/ && \ # docker rm -fv temp # ``` # 6. Add a rule to your hosts file like: `127.0.0.1 after-dark.local` to match traefik label # 7. Bring the stack up with `docker-compose up -d` then check state with `docker-compose ps` # 8. If both traefik and web services are up navigate to http://after-dark.local in a browser # 9. Make a change to the site config for content and watch the page reload with the updates version: "3.7" services: traefik: image: traefik:v2.0.0 command: # - "--log.level=DEBUG" # - "--api.insecure=true" - "--global.checkNewVersion=false" - "--global.sendAnonymousUsage=false" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" ports: - "80:80" # - "8080:8080" # Traefik Web UI (enabled by --api.insecure) volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # So that Traefik can listen to the Docker events # - ./traefik.toml:/etc/traefik/traefik.toml # Start using config web: build: . expose: - "80" volumes: - ./site/content:/opt/after-dark/content/:ro - ./site/config.toml:/opt/after-dark/config.toml:ro labels: - traefik.enable=true - traefik.http.routers.after-dark.entrypoints=web - traefik.http.routers.after-dark.rule=Host(`after-dark.local`)