Pārlūkot izejas kodu

Add few Docker Compose examples

Frédéric Guillot 5 gadi atpakaļ
vecāks
revīzija
519fbcf581

+ 4 - 0
contrib/README.md

@@ -0,0 +1,4 @@
+The contrib directory contains various useful things contributed by the community.
+
+Community contributions are not officially supported by the maintainers.
+There is no guarantee whatsoever that anything in this folder works.

+ 2 - 0
contrib/docker-compose/Caddyfile

@@ -0,0 +1,2 @@
+miniflux.example.org
+reverse_proxy miniflux:8080

+ 13 - 0
contrib/docker-compose/README.md

@@ -0,0 +1,13 @@
+Docker-Compose Examples
+=======================
+
+Here are few Docker Compose examples:
+
+- `basic.yml`: Basic example
+- `caddy.yml`: Use Caddy as reverse-proxy with automatic HTTPS
+- `traefik.yml`: Use Traefik as reverse-proxy with automatic HTTPS
+
+```bash
+docker-compose -f basic.yml up -d db
+docker-compose -f basic.yml up
+```

+ 25 - 0
contrib/docker-compose/basic.yml

@@ -0,0 +1,25 @@
+version: '3.3'
+services:
+  miniflux:
+    image: miniflux/miniflux:latest
+    container_name: miniflux
+    ports:
+      - "80:8080"
+    depends_on:
+      - db
+    environment:
+      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+      - RUN_MIGRATIONS=1
+      - CREATE_ADMIN=1
+      - ADMIN_USERNAME=admin
+      - ADMIN_PASSWORD=test123
+  db:
+    image: postgres:latest
+    container_name: postgres
+    environment:
+      - POSTGRES_USER=miniflux
+      - POSTGRES_PASSWORD=secret
+    volumes:
+      - miniflux-db:/var/lib/postgresql/data
+volumes:
+  miniflux-db:

+ 38 - 0
contrib/docker-compose/caddy.yml

@@ -0,0 +1,38 @@
+version: '3.3'
+services:
+  caddy:
+    image: caddy:2
+    container_name: caddy
+    depends_on:
+      - miniflux
+    ports:
+      - "80:80"
+      - "443:443"
+    volumes:
+      - $PWD/Caddyfile:/etc/caddy/Caddyfile
+      - caddy_data:/data
+      - caddy_config:/config
+  miniflux:
+    image: miniflux/miniflux:latest
+    container_name: miniflux
+    depends_on:
+      - db
+    environment:
+      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+      - RUN_MIGRATIONS=1
+      - CREATE_ADMIN=1
+      - ADMIN_USERNAME=admin
+      - ADMIN_PASSWORD=test123
+      - BASE_URL=https://miniflux.example.org
+  db:
+    image: postgres:latest
+    container_name: postgres
+    environment:
+      - POSTGRES_USER=miniflux
+      - POSTGRES_PASSWORD=secret
+    volumes:
+      - miniflux-db:/var/lib/postgresql/data
+volumes:
+  miniflux-db:
+  caddy_data:
+  caddy_config:

+ 48 - 0
contrib/docker-compose/traefik.yml

@@ -0,0 +1,48 @@
+version: '3.3'
+services:
+  traefik:
+    image: "traefik:v2.3"
+    container_name: traefik
+    command:
+      - "--providers.docker=true"
+      - "--providers.docker.exposedbydefault=false"
+      - "--entrypoints.websecure.address=:443"
+      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
+      - "--certificatesresolvers.myresolver.acme.email=postmaster@example.com"
+      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
+    depends_on:
+      - miniflux
+    ports:
+      - "443:443"
+    volumes:
+      - "./letsencrypt:/letsencrypt"
+      - "/var/run/docker.sock:/var/run/docker.sock:ro"
+  miniflux:
+    image: miniflux/miniflux:latest
+    container_name: miniflux
+    depends_on:
+      - db
+    expose:
+      - "8080"
+    environment:
+      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
+      - RUN_MIGRATIONS=1
+      - CREATE_ADMIN=1
+      - ADMIN_USERNAME=admin
+      - ADMIN_PASSWORD=test123
+      - BASE_URL=https://miniflux.example.org
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.miniflux.rule=Host(`miniflux.example.org`)"
+      - "traefik.http.routers.miniflux.entrypoints=websecure"
+      - "traefik.http.routers.miniflux.tls.certresolver=myresolver"
+  db:
+    image: postgres:latest
+    container_name: postgres
+    environment:
+      - POSTGRES_USER=miniflux
+      - POSTGRES_PASSWORD=secret
+    volumes:
+      - miniflux-db:/var/lib/postgresql/data
+volumes:
+  miniflux-db: